Fog: Difference between revisions
(removes /boot/efi unecessary!) |
|||
Line 130: | Line 130: | ||
echo "LANG=en_US.UTF-8" > /etc/locale.conf | echo "LANG=en_US.UTF-8" > /etc/locale.conf | ||
echo "fog" > /etc/hostname | echo "fog" > /etc/hostname | ||
mkinitcpio -P | mkinitcpio -P | ||
passwd | passwd | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 138: | Line 138: | ||
<blockquote> | <blockquote> | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cat << EOF > /boot | cat << EOF > /boot/loader/loader.conf | ||
default archlinux | default archlinux | ||
timeout 1 | timeout 1 | ||
Line 147: | Line 147: | ||
blkid | blkid | ||
cat << EOF > /boot | cat << EOF > /boot/loader/entries/archlinux.conf | ||
title Arch Linux | title Arch Linux | ||
linux vmlinuz-linux-t2 | linux vmlinuz-linux-t2 | ||
Line 155: | Line 155: | ||
EOF | EOF | ||
# if you cannot write /boot | # if you cannot write /boot, use --no-variables | ||
bootctl | bootctl install | ||
systemctl mask systemd-boot-system-token | systemctl mask systemd-boot-system-token | ||
Line 164: | Line 164: | ||
# echo efivarfs /sys/firmware/efi/efivars efivarfs ro,remount,nofail 0 0 >> /etc/fstab | # echo efivarfs /sys/firmware/efi/efivars efivarfs ro,remount,nofail 0 0 >> /etc/fstab | ||
# OR | # OR | ||
# add 'efi=noruntime' to options in '/boot | # add 'efi=noruntime' to options in '/boot/loader/entries/archlinux.conf' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- (chroot) Bootloader --> | </blockquote><!-- (chroot) Bootloader --> | ||
Line 183: | Line 183: | ||
journalctl --directory=/var/log/journal | journalctl --directory=/var/log/journal | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Debugging Boot Issues --> | </blockquote><!-- Debugging Boot Issues --> | ||
</blockquote><!-- Base Install --> | </blockquote><!-- Base Install --> | ||
Line 271: | Line 265: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# /boot | # /boot/loader/entries/archlinux.conf | ||
# disable intel_pstate so userspace power management available. | # disable intel_pstate so userspace power management available. | ||
Line 349: | Line 343: | ||
}} | }} | ||
</blockquote><!-- Function Keys --> | </blockquote><!-- Function Keys --> | ||
== Disable Boot Sound == | == Disable Boot Sound == |
Revision as of 02:15, 10 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 mount /dev/nvme0n1p1 /mnt/boot # 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 passwd(chroot) Bootloader
cat << EOF > /boot/loader/loader.conf default archlinux timeout 1 EOF # find PARTUUID of 'archlinux' install partition # (not EFI partition, not UUID) blkid cat << EOF > /boot/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 # if you cannot write /boot, use --no-variables bootctl 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/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/journal
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
Install and configure mbpfan,
monitor effectiveness with lm_sensors.GPU
lscpi -nn | grep VGA # find gpu pacman -S xf86-video-ati # oss # or pacman -S xf86-video-amdgpu # proprietaryHeat/Power Optimization
Configuration
Install and Enable
# /boot/loader/entries/archlinux.conf # disable intel_pstate so userspace power management available. options intel_pstate=disable # ...# /etc/default/cpupower # enable conservative governor, the most resistant to ramp up cpu cycles # some others: ondemand, userspace governor='conservative'# find warnings with tlp (ex: warning: systemd-rfkill.service is not masked, to correct this...) sudo tlp-stat -s # correct warnings sudo systemctl mask systemd-rfkill.service sudo systemctl mask systemd-rfkill.socketMonitoring
monitoring some usage stats
sudo i7z # cpu freq per core sudo tlp-stats -p # power optimizations sudo tlp-stats -t # temp/fan-speeds watch eval 'sensors | head -n 10' # cpu temps watch eval 'cpupower frequency-info | grep "current CPU"'Trackpad
pacman -S xf86-input-synaptics reboot # for driver to be used # test it out if you like synclient AccelFactor=0.05 # smaller movements travel furthermake permanent
# /etc/X11/xorg.conf.d/70-synaptics.conf Section "InputClass" Identifier "touchpad" Driver "synaptics" MatchIsTouchpad "on" # moving mouse-pointer Option "AccelFactor" "0.01" Option "MinSpeed" "1.2" Option "MaxSpeed" "2.5" # scroll momentum speed Option "VertScrollDelta" "250" EndSectionFunction Keys
TODO:
- default to function keys
- multimedia keys don't work
- following suspend/resume, touchbar doesn't work at all
Disable Boot Sound
# MacOs System Preferences: Sound: - [ ] Play Sound on StartupDefault Boot
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