Fog: Difference between revisions
Line 265: | Line 265: | ||
{{ TODO | | {{ TODO | | ||
this deserves it's own page }} | this deserves it's own page }} | ||
{{ TODO | | |||
I'm not convinced this is working, I'm hitting CPU temps of 81 C with no real workload. | |||
Look deeper into configuration. }} | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> |
Revision as of 19:18, 6 March 2022
Archlinux on a macbook. Named after Dean Fog.
TODO:
these install instructions don't belong here.
I need a section for archlinux variant installs like archlinux-arm, and this alt-kernel
t2linux install docs | https://wiki.t2linux.org/distributions/arch/installation/ |
t2linux wifi docs | https://wiki.t2linux.org/guides/wifi/ |
t2linux pacman repo | https://github.com/Redecorating/archlinux-t2-packages |
arch install | https://wiki.archlinux.org/title/Installation_guide#Set_the_console_keyboard_layout |
systemd boot | https://wiki.archlinux.org/title/Systemd-boot |
Install Media
Download install media
raw (out of date) https://dl.t2linux.org/archlinux/iso/index.html w/ wifi drivers https://github.com/t2linux/archiso-t2/releases diskutil list diskutil unmountDisk /dev/disk2 dd if=path/to/archlinux-version-x86_64.iso of=/dev/rdisk2 bs=1m
Partition Setup
You can't change the partition scheme from outside of macos unfortunately.
- macbook, start bootcamp (preinstalled) - drag slider for size (deletes apfs snapshots?) - disk utility - create a partition (any format) for your linux install - restart, holding cmd+r - Utilities > Startup Security Utility: - [x] No Security - [x] Allow booting from external media - restart, holding opt - you don't need to connect to wifi in bootloader - boot from EFI
Base Install
NOTE:
Use the wifi-enabled ISO, spoke with devs and wired kernel is outdated
(archiso) wlan setup
iwctl device list station wlan0 scan station wlan0 get-networks station wlan0 connect ${SSID} ping archlinux.org(archiso) format && baseinstall
timedatectl set-ntp true pacman -Sy # pacman-key --refresh-keys fdisk -l # find disk/partition mkfs.ext4 /dev/nvme0n1p3 # format partition as ext4 mount /dev/nvme0n1p3 /mnt # your install mkdir -p /mnt/boot/efi mount /dev/nvme0n1p1 /mnt/boot/efi # reuse macbook's EFI paritition # if necesary, copy/modify /etc/pacman.conf to /mnt/pacman.conf # and use: `pacstrap -C /mnt/pacman.conf` pacstrap /mnt \ base base-devel `# base packages/build-tools` \ linux-t2 linux-t2-headers linux-t2-docs `# t2-kernel` \ efivar efibootmgr dosfstools `# tools to manage efi` \ linux-firmware dkms \ apple-bcm-wifi-firmware \ iwd networkmanager netstat-nat net-tools \ neovim git openssh man-db genfstab -U /mnt >> /mnt/etc/fstab arch-chroot /mnt(chroot) Add t2linux repo
cat << EOF >> /etc/pacman.conf [mbp] Server = https://dl.t2linux.org/archlinux/$repo/$arch EOF pacman -Syy(chroot) Base Settings
ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime hwclock --systohc echo "en_US.UTF-8 UTF-8" > /etc/locale.gen locale-gen echo "LANG=en_US.UTF-8" > /etc/locale.conf echo "fog" > /etc/hostname mkinitcpio -P # confirm kernel/initramfs in /boot/efi passwd(chroot) Kernel Modules
NOTE:
unclear if this is necessary, still issues mounting /boot/efi
# /etc/mkinitcpio.conf # MODULES=(apple_bce) # add apple_bce mkinitcpio -P(chroot) Bootloader
cat << EOF > /boot/efi/loader/loader.conf default archlinux timeout 1 EOF # find PARTUUID of 'archlinux' install partition # (not EFI partition, not UUID) blkid cat << EOF > /boot/efi/loader/entries/archlinux.conf title Arch Linux linux vmlinuz-linux-t2 initrd initramfs-linux-t2.img # no quotes around PARTUUID options intel_iommu=on iommu=pt pcie_ports=compat root=PARTUUID=${PARTUUID} rw EOF bootctl --path=/boot/efi --no-variables install systemctl mask systemd-boot-system-token # remount efivars as read-only (or kernel panic) # USE EITHER: (1 works for me) # echo efivarfs /sys/firmware/efi/efivars efivarfs ro,remount,nofail 0 0 >> /etc/fstab # OR # add 'efi=noruntime' to options in '/boot/efi/loader/entries/archlinux.conf'Reboot
- exit && reboot - hold 'option' while booting to choose boot - after selection, wait for timeout (choosing with enter seems to fail)Debugging Boot Issues
# from archiso, specify the journal of your chroot journalctl --directory=/var/log/journalunable to mount /boot/efi unknown filesystem vfat
do you have an old kernel in
/boot/efi
?
try copying initramfs/kernel from /boot to /boot/efi.this may only work with old kernel though ...
Post Install
Wifi Drivers
Boot into macos
curl -#O https://wiki.t2linux.org/tools/wifi.sh chmod +x wifi.sh ./wifi.shBoot into linux
sudo umount /dev/nvme0n1p1 sudo mkdir /tmp/apple-wifi-efi sudo mount /dev/nvme0n1p1 /tmp/apple-wifi-efi bash /tmp/apple-wifi-efi/wifi.sh sudo rebootNow verify output of wifi driver is error-free.
sudo journalctl -k --grep=brcmfmac # check for errors ip link # check for wlan0Now you can test a connection
systemctl start iwd iwctl > station wlan0 scan > station wlan0 get-networks > station wlan0 connect ${SSID}Finally, use NetworkManager (for wireguard, routing) with iwd as backend
cat << EOF > /etc/NetworkManager/NetworkManager.conf [device] wifi.backend=iwd EOF sudo systemctl enable --now iwd sudo systemctl restart NetworkManager route # confirm routing table present ping archlinux.org # testCPU fan
WARNING:
The AUR package for mbpfan refers to a fork that is out of date and does not work.
TODO:
this deserves it's own page
TODO:
I'm not convinced this is working, I'm hitting CPU temps of 81 C with no real workload. Look deeper into configuration.
git clone https://github.com/networkException/mbpfan cd mbpfan make sudo make install sudo make tests sudo cp mbpfan.service /etc/systemd/system sudo systemctl enable mbpfan.service sudo systemctl daemon-reload sudo systemctl start mbpfan.service # confirm it's working sudo systemctl status mbpfan.service sensors # see CPU tempstroubleshooting
# troubleshoot by running command /usr/sbin/mbpfan -f # looking in src, not working because missing applesmc's info at /sys/devices/platform/applesmc.768 # this indicates possible problem, and possible workaround https://bbs.archlinux.org/viewtopic.php?id=263623 # looking through dmesg, it looks like it uses a deprecated interface? # hwmon_device_register() is deprecated. Please convert the driver to use hwmon_device_register_with_info() # this issue indicates that applesmc is builtin to the kernel. # it points to a different file though, which I do have. Maybe my src is out of date? https://github.com/marcosfad/mbp-ubuntu-kernel/issues/11Trackpad
Default Boot
TODO:
systemd-boot bootloader not listed in efibootmgr, maybe I should add it?
Choosing default Disk
- boot macos - apple-menu > system preferences: - startup diskChoosing default EFI bootloader
# show installed bootloaders # # BootOrder: 0080,0000 # boot priority # Boot0080: Mac OS X # macos boot entry # Boot0000: Foo # foo boot entry efibootmgr efibootmgr -o 0000,0080 # change boot priorityAudio
TODO