I tried booting Garuda KDE from a USB, but it did not detect my [MacBook Air Intel T2] trackpad or keyboard. Might this issue be resolved if I installed it on the hard drive? I would prefer trying out Garuda a little more before deciding.
What if you tried a USB keyboard and Mouse? Maybe it will detect that setup first and you can work on your system from that point on
I borrowed a bluetooth mouse & keyboard, but the keyboard doesn’t work, so exploration is limited. Is there a virtual keyboard that might work within the live/USB environment? (VMs don’t work on this Mac, so that option is out.)
There are additional packages you need to install for those machines, including firmware packages and a custom kernel. See this note in the ArchWiki:
All Intel MacBooks since 2018
Internal keyboard, trackpad, Touch Bar (if your model has one), Wi-fi, and Bluetooth will not work unless you have necessary kernel modules and firmwares. You should follow the guide on Installation - t2linux wiki for hardware support.
The guide they linked is for an Arch Installation of course, but if you add that repo and install those packages it should work on Garuda Linux as well.
I’m not sure how to get through the installer without a keyboard though, that’s a pickle! No wired keyboard you can borrow from somewhere? Or if your mouse is working, maybe there is an on-screen keyboard you can toggle on in the accessibility settings.
Very helpful suggestions. Thanks.
Would it make any sense to install the conventional Arch Linux first, and hope that some of the vital fundamental components insist on surviving, so I can install Garuda on top or afterwards?
Or to install Fedora (not the conventional Arch Linux), since my keyboard and touchpad work in the Fedora live environment, and then somehow install Garuda on top of the Fedora base?
The t2 linux components have been updated and relocated since the guide was written and the trail is a bit hard to follow.
I’m not sure what you mean by this. To clarify, you need to add the repo in the document to /etc/pacman.conf
in order to get those packages.
[arch-mact2]
Server = https://mirror.funami.tech/arch-mact2/os/x86_64
SigLevel = Never
I just added the repo to my machine to take a look, and as far as I can tell all the packages mentioned in the document are there.
❯ pacman -Ss linux-t2
arch-mact2/linux-lts-t2 6.6.63-1
The Linux kernel for T2 Macs kernel and modules
arch-mact2/linux-lts-t2-headers 6.6.63-1
Headers and scripts for building modules for the Linux kernel for T2 Macs kernel
arch-mact2/linux-t2 6.12.1-1
The Linux kernel for T2 Macs kernel and modules
arch-mact2/linux-t2-headers 6.12.1-1
Headers and scripts for building modules for the Linux kernel for T2 Macs kernel
arch-mact2/linux-t2-test 6.0.6-1
The Linux kernel for T2 Macs kernel and modules
arch-mact2/linux-t2-test-docs 6.0.6-1
Documentation for the Linux kernel for T2 Macs kernel
arch-mact2/linux-t2-test-headers 6.0.6-1
Headers and scripts for building modules for the Linux kernel for T2 Macs kernel
arch-mact2/linux-xanmod-edge-t2 6.2.1-1
The Linux kernel and modules with Xanmod patches
arch-mact2/linux-xanmod-edge-t2-headers 6.2.1-1
Headers and scripts for building modules for the Linux Xanmod - Latest Mainline (EDGE) for T2 Macs kernel
arch-mact2/linux-xanmod-lts-t2 6.6.63-1
The Linux kernel and modules with Xanmod patches for Macs with T2 security chip
arch-mact2/linux-xanmod-lts-t2-headers 6.6.63-1
Headers and scripts for building modules for the Linux Xanmod - Current LTS for Macs with T2 security chip kernel
arch-mact2/linux-xanmod-t2 6.12.1-1
The Linux kernel and modules with Xanmod patches for Macs with T2 security chip
arch-mact2/linux-xanmod-t2-headers 6.12.1-1
Headers and scripts for building modules for the Linux Xanmod - Current Stable (CURRENT) for Macs with T2 security chip
kernel
❯ pacman -Ss apple-t2
arch-mact2/apple-t2-audio-config 0.3-2
System configuration files for the apple-bce audio driver
❯ pacman -Ss apple-bcm
arch-mact2/apple-bcm-firmware 14.0-1
Wi-Fi and Bluetooth Firmware from macOS Big Sur for T2 and M1 Macs
arch-mact2/apple-bcm-wifi-firmware 12.0-1
WiFi Firmware from macOS Big Sur for T2 and M1 Macs
If you are able to get through the installer somehow without the custom kernel and packages, I think that is your easiest path forward.
After the installation completes, you can boot to the live environment again and mount your new installation in a chroot (try using the garuda-chroot
tool, it makes it very easy to get the subvolumes properly mounted in the chroot).
Once you have the chroot set up, edit /etc/pacman.conf
to add the repo. From there you can sync the repos, update your packages, and install the new needed packages all in one whack like this:
pacman -Syu --needed linux-t2 linux-t2-headers apple-t2-audio-config apple-bcm-firmware linux-firmware iwd grub efibootmgr tiny-dfr t2fanrd
That’s just a copy/paste from the list in the document; some of those might already be installed (the --needed
flag will skip them).
From there, you would just exit the chroot and see if it works!
If you cannot get through the installer, this method should work but it is going to be more manual setup required if you want feature parity with a stock Garuda installation. You would need to first go through the conventional Arch Linux installation process using the T2 ISO (Pre-Install - t2linux wiki).
Before setting up the arch-chroot
you will have to make the root partition Btrfs and set up the default subvolumes (these ones). Once in the arch-chroot
you will need to add the Chaotic-AUR (like this: Chaotic-AUR), then also add the Garuda repo ([garuda]
) to the top of your repo list (with the same Include =
as the Chaotic AUR). From there you should be able to install the base package lists for Garuda (here), and for whatever spin you want to install. Then copy the settings out of /etc/skel
for your user and the root user.
You should more or less have a bootable system at that point, although there would still be a bit of manual configuration required for setting up Snapper, enabling some services, and other tasks that are normally handled during the installation process.
If you are not already familiar with how Garuda is typically configured, it might be difficult to get it “right”. If there is any way to limp your way through the normal installer and then chroot
in to add the T2 stuff afterward, that will be way easier.
That will not work unfortunately. If you install Fedora you will be pretty much stuck using Fedora, or trying to convert to a Fedora derivative.
In summary, the process would be:
- Create manual partition on hard drive.
- Install Arch Linux on created partition, using T2 Arch ISO.
- Create BTRFS Root partition (or format root partition as BTRFS).
- Set up default subvolumes.
- Add Chaotic-AUR from/within arch-chroot.
- Add Garuda repo to the top of repo list, the Garuda * (Include = *) being identical to the Chaotic AUR *.
- Install Garuda [& concomitant spin] base package lists.
- Copy the /etc/skel settings for the user & root user.
- Boot up Garuda.
- Set up & configure services & other components.
Is this correct?
Step 2 is kind of oddly phrased because “install Arch Linux” is sort of what most of the other steps are doing. Other than that, I think your summary is more or less correct.
You will need both an EFI partition and a Btrfs partition. If you already have an EFI partition, it’s fine to leave it as-is and just mount it when you are setting up the chroot. The Btrfs partition you will have to create.
From the live ISO, I usually use parted
to create the partitions and mkfs
to format them. For example:
Create the EFI partiton:
parted -s /dev/sda mkpart primary fat32 0% 100MiB name 1 EFI
parted -s /dev/sda set 1 boot on
parted -s /dev/sda set 1 esp on
Create the Btrfs partition:
parted -s /dev/sda mkpart primary btrfs 100MiB 100% name 2 Btrfs
Format the partitions:
mkfs.fat -F32 -n EFI /dev/sda1
mkfs.btrfs -f /dev/sda2
In this example the disk is /dev/sda
(change that for whatever your disk is), the EFI partition is 100 MiB and has been named “EFI”, and the Btrfs partition is the rest of the disk and has been named “Btrfs”. Any of those details can be changed according to your preference. Obviously this example is a non-encrypted setup.
There is also guidance for partitioning the disks and formatting the partitions in the ArchWiki installation guide here.
First you will need to mount the root partition. Sticking with our example from above:
mount /dev/sda2 /mnt
Then create the top-level subvolumes.
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@root
btrfs subvolume create /mnt/@srv
btrfs subvolume create /mnt/@cache
btrfs subvolume create /mnt/@log
btrfs subvolume create /mnt/@tmp
Unmount the root partition, then mount the subvolumes you just made.
umount /mnt
mount -o noatime,compress=zstd,subvol=@ /dev/sda2 /mnt
mount -o noatime,compress=zstd,subvol=@home /dev/sda2 /mnt/home
mount -o noatime,compress=zstd,subvol=@root /dev/sda2 /mnt/root
mount -o noatime,compress=zstd,subvol=@srv /dev/sda2 /mnt/srv
mount -o noatime,compress=zstd,subvol=@cache /dev/sda2 /mnt/var/cache
mount -o noatime,compress=zstd,subvol=@log /dev/sda2 /mnt/var/log
mount -o noatime,compress=zstd,subvol=@tmp /dev/sda2 /mnt/var/tmp
Mount the EFI partition.
mount /dev/sda1 /mnt/boot/efi
From there you should be ready to pacstrap
. If you are using the special T2 Arch ISO, you can use their t2strap
instead:
- Using t2strap (easier)
- Run
t2strap /mnt base linux-firmware iwd grub efibootmgr
(omit thegrub efibootmgr
packages from this if you intend to use systemd-boot as your bootloader). You can choose to use Xanmod kernel instead. In this case, append-k xanmod
(or-k xanmod-lts
for Xanmod LTS) tot2strap
command.
Note that unless you pacstrap with dracut, you will get mkinitcpio by default. Nothing wrong with that, just something to be aware of. It’s very easy to switch later if you want to: Dracut | Garuda Linux wiki
Before you chroot, you can decide if you want to generate /etc/fstab
using genfstab
.
genfstab -U /mnt >> /mnt/etc/fstab
It can save some time, but genfstab
will add subvolid
values to all your subvolume entries, which can cause issues when restoring Btrfs snapshots. Be sure to get rid of those at some point, by opening /etc/fstab
with an editor and deleting them. You only want the subvol=
values, not subvolid=
.
Chroot into the new system.
arch-chroot /mnt
Then follow the guidance in the installation guide for setting the time zone, localization, network configuration, root password, etc. https://wiki.archlinux.org/title/Installation_guide#Configure_the_system
Yes, once you get those repos added and the respective package lists installed you will be getting close. Don’t forget, there is both a common package list, and a separate package list for each spin.
A nice touch will be to create a user and enable the display manager before you reboot, so you can sign in normally instead of hitting a TTY. https://wiki.archlinux.org/title/Users_and_groups#User_management
Something like this:
useradd -m -G wheel Resrcher
systemctl enable display-manager
Probably you will need to figure out what services need to be enabled, etc. but you should have a bootable, Garuda-ish system.
Again, I think it would be way easier if there is some way to run the Garuda installer with a wired keyboard or something if that is an option, and then add the T2 stuff afterward. It would be faster, and the resultant system would be more “complete” out of the box. But if it cannot be done, c’est la vie–if you stick with it, you should be able to get it going one way or another.
OK. Thank you so much for your help.
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.