Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Step by step of setting up Arch Linux on a Macbook Air 2013
pandeiro/arch-on-air
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.org
Instructions for installing Arch Linux side-by-side with OS X on a Macbook Air 2013.
Most of this information was taken from these two sources:
1. Make bootable USB media with Arch ISO image (wiki)
2. Hold the key and boot into USB
The following example assumes Arch will sit on a single partition; adjust according to preference.
It may also be possible to create a data partition that can be accessed from both OS X and GNU/Linux systems: how to do that properly is left as an exercise to the reader.
/dev/sda4 — [128MB] Apple HFS+ “Boot Loader”
/dev/sda5 — [256MB] Linux filesystem “Boot”
/dev/sda6 — [Rest of space] Linux filesystem “Root”
4. Format and mount partitions
mkfs.ext4 /dev/sda5 mkfs.ext4 /dev/sda6 mount /dev/sda6 /mnt mkdir /mnt/boot && mount /dev/sda5 /mnt/boot
If you plan to use any memory-heavy applications (which includes most web browsers), it’s a good idea to create either a swap partition or a swapfile for system stability. Swapfiles are easier to resize or remove if you change your mind, so we’ll create a 512M one:
dd if=/dev/zero of=/mnt/swapfile bs=1M count=512 chmod 600 /mnt/swapfile mkswap /mnt/swapfile
This requires an internet connection. Options:
- Tethered phone via USB (instructions for Android, instructions for iPhone)
- Wired (with some Apple proprietary ethernet thing ($$$?))
- Wireless (requires b43 wireless firmware (AUR))
pacstrap /mnt base base-devel genfstab -U -p /mnt >> /mnt/etc/fstab
6. Optimize fstab for SSD, add swap
/dev/sda6 / ext4 defaults,noatime,discard,data=writeback 0 1 /dev/sda5 /boot ext4 defaults,relatime,stripe=4 0 2 /swapfile none swap defaults 0 0
arch-chroot /mnt /bin/bash passwd echo myhostname > /etc/hostname ln -s /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime hwclock --systohc --utc useradd -m -g users -G wheel -s /bin/bash myusername passwd myusername pacman -S sudo
echo "%wheel ALL=(ALL) ALL" > /etc/sudoers.d/10-grant-wheel-group
locale-gen echo LANG=en_US.UTF-8 > /etc/locale.conf export LANG=en_US.UTF-8
10. Set up mkinitcpio hooks and run
Insert “keyboard” after “autodetect” if it’s not already there.
To boot up the computer we will continue to use Apple’s EFI bootloader, so we need GRUB-EFI:
Aside from setting the quiet and rootflags kernel parameters, a special parameter must be set to avoid system (CPU/IO) hangs related to ATA, as per this thread:
GRUB_CMDLINE_LINUX_DEFAULT="quiet rootflags=data=writeback libata.force=1:noncq"
Additionally, the grub template is broken and requires this adjustment:
# fix broken grub.cfg gen GRUB_DISABLE_SUBMENU=y
grub-mkconfig -o boot/grub/grub.cfg grub-mkstandalone -o boot.efi -d usr/lib/grub/x86_64-efi -O x86_64-efi --compress=xz boot/grub/grub.cfg
Copy boot.efi (generated in the command above) to a USB stick for use later in OS X.
Exit everything and reboot into OS X (by holding alt/option) and then choosing it.
13. Launch Disk Utility in OS X
Format (“Erase”) /dev/sda4 using Mac journaled filesystem
14. Create boot file structure
This procedure allows the Apple bootloader to see our Arch Linux system and present it as the default boot option.
cd /Volumes/disk0s4 mkdir System mach_kernel cd System mkdir Library cd Library mkdir CoreServices cd CoreServices touch SystemVersion.plist
ProductBuildVersion ProductName Linux ProductVersion Arch Linux
Copy boot.efi from your USB stick to this CoreServices directory. The tree should look like this:
|___mach_kernel |___System | |___Library | |___CoreServices | |___SystemVersion.plist |___boot.efi
15. Make Boot Loader partition bootable
sudo bless --device /dev/disk0s4 --setBoot
You may need to disable the System Integrity Projection of OS X:
- Restart the computer, while booting hold down Command-R to boot into recovery mode.
- Once booted, navigate to the “Utilities > Terminal” in the top menu bar.
- Enter “csrutil disable” in the terminal window and hit the return key.
- Restart the machine and System Integrity Protection will now be disabled.
Voila, Arch Linux is installed.
Reboot the computer and hold the alt/option key to select which operating system to boot.
16. Get wireless working in Arch
(Make sure that b43 and ssb modules are not present in the output from `lsmod`)
Alternatively, install broadcom-wl-dkms instead
…so that kernel updates don’t leave you without wifi. DKMS is a service that recompiles external modules after every kernel upgrade.
sudo pacman -S dkms sudo systemctl enable dkms.service
sudo pacman -S dialog sudo wifi-menu -o
The tilde key does not work on the keyboard out of the box. There are several solutions listed here but this one worked for me:
sudo nano /etc/modprobe.d/hid_apple.conf
options hid_apple iso_layout=0
The key can be reproduced with fn+. So to paste in an xterm window for instance, use S-fn-.
18. Improve battery performance
Out-of-the-box battery performance on Arch Linux should be good and at least comparable to OS X.
If you want to try to improve battery life, there are two recommended packages documented in the ArchWiki:
- PowerTOP: a tool provided by Intel to enable various powersaving modes in userspace, kernel and hardware, available in the official repositories. (ArchWiki)
- TLP: a collection of power-saving scripts available in the official repositories. (ArchWiki)
There are other folks who have blogged about this process since I started this:
About
Step by step of setting up Arch Linux on a Macbook Air 2013