macbook pro 2018 T2 芯片安装 archlinux 双系统

文章目录

    • @[toc]
    • 配置无线网和分区
    • 修改时区
    • 安装内核和驱动
    • 自动生成 fstab 文件
    • 配置 pacman
    • 切换到安装好的系统
      • 设置时区
      • 配置 pacman 国内源
      • 安装 gui
      • 安装 GRUB 引导
        • 建立引导
      • 增加内核模块
      • 配置开机自启
      • 修改 root 用户密码
      • 创建普通用户
        • 配置 sudo
    • 重启进入新系统
      • 配置 wlan 自动连接 wifi
      • 配置 dns
      • 开启时钟自动同步
      • 安装服务

之前使用官方镜像安装过一次 archlinuxmac 的双系统,但是确实很多驱动,键盘不能用,触摸板和 touchbar 都不能用,找过一些文章编译镜像,相当的困难,这次通过 t2linux-wiki 找到了 Arch Linux ISO for Macs with T2 ,通过大佬做的镜像来重新实现 archlinuxmac 的双系统

我这里使用的镜像是 archlinux-t2-2024.02.04-t2-x86_64.iso ,目前还遗留了以下几个问题:

  • touchbar 能显示,能用 F1~F12,但是其他功能还用不了,还需要找方法调整
  • 屏幕亮度调整和键盘背光还没实现
  • 声音调整还没实现
  • 电源管理

配置无线网和分区

这个 t2 的镜像,不需要还原 wifi 驱动,直接按照我之前的博客来连接 wifi 和分区就可以了:macbook pro 2018 安装 arch linux 双系统

修改时区

设置为上海的时区

timedatectl set-timezone Asia/Shanghai

验证时区和时间

timedatectl

安装内核和驱动

参照 Installing Arch Linux on a Mac with the T2 Chip 这一块

使用 Arch Linux ISO for Macs with T2 这里面的镜像,可以直接执行下面的命令,也可以检查一下 /etc/pacman.conf 里面有没有 https://mirror.funami.tech/arch-mact2/os/x86_64 这个仓库,这个仓库里面有下面的包,不过是国外的服务器,速度会比较慢,这个步骤需要耐心(我花了差不多1小时),当然,也可以切换成国内源,后面有写

pacstrap /mnt base linux-t2 apple-t2-audio-config apple-bcm-firmware iwd grub efibootmgr tiny-dfr t2fanrd

自动生成 fstab 文件

archlinux 可以用 genfstab -U 来以 UUID 的格式来生成 fstab 文件

genfstab -U /mnt >> /mnt/etc/fstab

配置 pacman

把当前用的 pacman 的配置覆盖掉新系统里面的

cat /etc/pacman.conf > /mnt/etc/pacman.conf

切换到安装好的系统

arch-chroot /mnt

设置时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

运行 hwclock 生成 /etc/adjtime

hwclock --systohc

配置 pacman 国内源

增加 archlinuxcn 源

cat << EOF >> /etc/pacman.conf
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/\$arch
EOF

配置国内源,这个看自己大家的情况了,国内的话,可以直接覆盖掉 /etc/pacman.d/mirrorlist 文件,这样能起到加速的作用,下面列举一些国内源

  • https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch #清华大学
  • https://mirrors.163.com/archlinux/$repo/os/$arch #网易
  • https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch #中科大
  • https://mirrors.zju.edu.cn/archlinux/$repo/os/$arch #浙江大学
  • https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch #重庆大学
  • https://mirrors.lzu.edu.cn/archlinux/$repo/os/$arch #兰州大学
  • https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch #上海交通大
  • https://mirrors.stuhome.net/archlinux/$repo/os/$arch #成都电子科大
  • https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch #大连东软信息学院
echo 'Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist

更新源

pacman -Syu

安装 gui

不同 gui 的区别,可以看我的另一篇博客:虚拟机内使用 archinstall 安装 arch linux 2024.01.01

我这里安装的是 i3+sddm

pacman -S i3-wm i3status i3blocks i3lock rxvt-unicode dmenu

安装登录界面

pacman -S sddm

配置开机自启

systemctl enable sddm

安装 GRUB 引导

编辑 /etc/default/grub 文件添加内核参数

内核参数的作用感兴趣的可以看 IOMMU (二)- 从配置说起 (我太菜了,看不懂,加就完事了)

在 GRUB_CMDLINE_LINUX="" 追加这三个参数 intel_iommu=on iommu=pt pcie_ports=compat

安装引导

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --removable

生成 GRUB 配置文件

grub-mkconfig -o /boot/grub/grub.cfg
建立引导

安装 rEFInd

pacman -S refind
refind-install

修改 /boot/refind_linux.conf,把最后一行的 Boot with standard options 放到第一行,再把 root=/dev/xxx 改成 root=UUID=xxx,UUID 可以从 fstab 文件里面找

增加内核模块

/etc/mkinitcpio.conf 文件里面确保有下面的内容

MODULES="apple-bce"

使配置生效

mkinitcpio -P

配置开机自启

systemctl enable t2fanrd

修改 root 用户密码

passwd

创建普通用户

用户名大家自己定义,我这边定义是 chen2ha,-m 参数是创建用户家目录(默认不会创建)

useradd -m chen2ha

创建密码,密码是 Password@123,用户模式 chen2ha

echo 'Password@123' | passwd --stdin chen2ha
配置 sudo
visudo

找到 root ALL=(ALL) ALL 这一行,复制一行,把 root 改成自己的普通用户的名字

重启进入新系统

exit 退出 chroot,然后 reboot 重启

配置 wlan 自动连接 wifi

启动 iwd

sudo systemctl enable iwd --now

增加下面的配置

cat << EOF >> /etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true
EOF
sudo systemctl enable iwd.service

重启 iwd

sudo systemctl restart iwd

配置 dns

echo 'nameserver 119.29.29.29' | sudo tee -a /etc/resolv.conf

开启时钟自动同步

sudo timedatectl set-ntp true

安装服务

pacman -S vim wget curl git kitty sudo bash-completion

先到这里,后面慢慢找时间更新,慢慢磨合,至少,我现在的 arch linux 在 mac 上可以用触摸板和键盘了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/784668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

整理-2023年信息安全报告汇总

《2023年度网络安全威胁报告》&#xff1a;该报告详细分析了2023年全球范围内的网络安全威胁情况&#xff0c;包括恶意软件、钓鱼攻击、勒索软件等。报告还指出了不同行业和地区面临的特定威胁&#xff0c;以及相应的防御策略。《2023年云安全趋势报告》&#xff1a;随着云计算…

语义分割——Dark Zurich数据集

一、重要性及意义 首先&#xff0c;Dark Zurich为语义分割提供了大量真实且多样化的图像数据。该数据集包含了在夜间、黄昏和白天拍摄的大量图像&#xff0c;涵盖了不同光照条件和场景下的图像变化。这些图像数据不仅丰富了语义分割任务的数据集&#xff0c;也为模型提供了更全…

C++之STL整理(5)之string 用法(创建、赋值、增删查改)整理

C之STL整理&#xff08;5&#xff09;之string 用法&#xff08;创建、赋值、增删查改&#xff09;整理 注&#xff1a;整理一些突然学到的C知识&#xff0c;随时mark一下 例如&#xff1a;忘记的关键字用法&#xff0c;新关键字&#xff0c;新数据结构 C 的string用法整理 C之…

acwing1114

#include<bits/stdc.h> using namespace std; const int N10; int n,k; char g[N][N]; //记录每列放没放过 bool st[N]; int res0; //x表示当前枚举到了哪一行&#xff0c;cnt记录放了几颗棋 void dfs(int x,int cnt){ if(cntk){ res; return ; …

go语言切片的容量是怎样增长的

在Go语言中&#xff0c;切片&#xff08;slice&#xff09;的容量增长与其底层数组&#xff08;array&#xff09;的分配机制有关。当切片容量不足以容纳更多元素时&#xff0c;Go会创建一个新的底层数组&#xff0c;并自动将现有元素复制到这个新数组中。新数组的容量通常是原…

利用scala书写spark程序实现wordCount

实验环境&#xff1a;虚拟机&#xff08;centos&#xff09;上创建了三台集群&#xff0c;部署了Hadoop&#xff0c;words文档放在HDFS上的目录下 所用版本如下&#xff1a; <hadoop.version>2.7.7</hadoop.version> <spark.version>2.4.5</spark.version…

LLM:函数调用(Function Calling)

1 函数调用 虽然大模型能解决很多问题&#xff0c;但大模型并不能知晓一切。比如&#xff0c;大模型不知道最新消息(GPT-3.5 的知识截至 2021年9月&#xff0c;GPT-4 是 2023 年12月)。另外&#xff0c;大模型没有“真逻辑”。它表现出的逻辑、推理&#xff0c;是训练文本的统计…

IDEA一键备份MySQL数据库(mysqldump版)

问题 又到了搬MySQL数据库的时刻&#xff0c;这次我不想使用命令行备份&#xff0c;这次我想使用IDEA一键备份MySQL数据库。 解决 假设安装好mysqldump命令后&#xff0c;让IDEA使用mysqldump一键备份指定的数据库。具体IDEA配置如下&#xff1a; 这是IDEA上面的数据库到处…

掌握未来商机:如何利用会话式AI赢在起跑线

AI智能助手&#xff1a;提升工作效率的秘密武器 在这个信息爆炸的时代&#xff0c;内容策略成为了品牌与用户之间沟通的重要桥梁。一个有效的内容策略能够帮助品牌提升知名度&#xff0c;建立与目标受众的深度连接&#xff0c;并最终实现转化目标。内容策略不仅涉及内容的创作与…

【Pytorch学习笔记(二)】张量的创建(补充)

一、知识回顾 我们在博客《张量的创建与访问》中已经讨论了一些张量的创建方法如torch.CharTensor()、torch.FloatTensor()以及torch.zeros()等张量创建方法&#xff0c;但由于其仅仅介绍了cpu版本torch下张量的创建方法和只有具体数据类型张量&#xff0c;本节内容旨在补充gp…

深入理解MapReduce:从Map到Reduce的工作原理解析

当谈到分布式计算和大数据处理时&#xff0c;MapReduce是一个经典的范例。它是一种编程模型和处理框架&#xff0c;用于在大规模数据集上并行运行计算任务。MapReduce包含三个主要阶段&#xff1a;Map、Shuffle 和 Reduce。 ** Map 阶段 ** Map 阶段是 MapReduce 的第一步&am…

微信开发者工具创建一个小程序

创建项目 对于上面这个AppID可以自行选择是注册还是测试号&#xff0c;我是使用的测试号&#xff0c;之后再下面选择模板&#xff0c;我这里选择了JS-基础模板。 进入项目后在模拟器中可看到如下页面&#xff1a; 添加提交按钮进行页面跳转 添加需要跳转的文件夹&#xff0c;…

Node.js------模块化

◆ 能够说出模块化的好处◆ 能够知道 CommonJS 规定了哪些内容◆ 能够说出 Node.js 中模块的三大分类各自是什么◆ 能够使用 npm 管理包◆ 能够了解什么是规范的包结构◆ 能够了解模块的加载机制 一.模块化的基本概念 1.模块化 模块化是指解决一个复杂问题时&#xff0c…

Redission分布式锁介绍和配置引入

本人在实际项目用于确保Key一致性经常使用的一种加锁方式&#xff0c;帮助分布式环境中互斥访问。很多人问不用锁不是一样完成目标吗&#xff1f;但需要清楚的是这是在高并发的场景下&#xff0c;多节点同时访问缓存的场景&#xff0c;是一般单体项目所无法比拟的&#xff0c;使…

外键创建和管理

什么是外键&#xff1f; 1&#xff09;在Oracle数据库中&#xff0c;外键是用来实现参照完整性的方法之一。打个形象的比喻&#xff0c;外键是指定义外键的表的列的值必须在另一个表中出现。 2&#xff09;被参照的表称之为父表&#xff08;parent table)&#xff0c;创建外键的…

Express

可以方便、快速创建Web网站的服务器&#xff08;提供web网页资源&#xff09;或API接口服务器&#xff08;提供API接口&#xff09; app.get(请求URL&#xff0c;function(req,res)>{}) //req:请求对象&#xff08;包括请求属性和方法&#xff09; //res:响应对象&#xff…

Go 源码之 gin 框架

Go 源码之 gin 框架 go源码之gin - Jxy 博客 一、总结 gin.New()初始化一个实例&#xff1a;gin.engine&#xff0c;该实例实现了http.Handler接口。实现了ServeHTTP方法 注册路由、注册中间件&#xff0c;调用addRoute将路由和中间件注册到 methodTree 前缀树&#xff08;节…

HashSet解析

文章目录 集合简介对HashSet进行遍历迭代器增强forLambda表达式 Hash底层原理 集合简介 HashSet是Set集合下的子接口&#xff0c;set集合添加的元素是无索引&#xff0c;不重复&#xff0c;无序&#xff0c;与List系列集合正好相反。 无序&#xff1a;存储顺序不一致。 不重复…

全新的分布式锁,几行代码搞定,简单且强大

# 前言 分布式锁是分布式系统中一个极为重要的工具。目前有多种分布式锁的设计方案&#xff0c;比如借助 redis&#xff0c;mq&#xff0c;数据库&#xff0c;zookeeper 等第三方服务系统来设计分布式锁。tldb 提供的分布式锁&#xff0c;主要是要简化这个设计的过程&#xff0…

数据挖掘入门项目二手交易车价格预测之特征工程

文章目录 目标常见的特征工程具体步骤1. 导入数据2. 删除异常值3. 特征构造3.1 为树模型构造特征3.2 为LR NN 之类的模型构造特征 4. 特征筛选过滤式包裹式嵌入式 5. 总结 本文数据集来自阿里天池&#xff1a;https://tianchi.aliyun.com/competition/entrance/231784/informat…