Apple’s MacBooks and Microsoft’s Surface devices impress with very good hardware and are both excellent work devices even years after a purchase. While Apple takes its devices out of support after about eight to ten years and no longer distributes the latest version of MacOS, it is currently always possible to install the latest Windows update on the Surface devices, but the devices might reach performance limits under Windows.
However, with a current Linux, even aging MacBooks and MS Surface devices can not only be operated very performantly, both device classes are also available (depending on their age) for relatively little money on Ebay as second-hand goods.
While e.g. an Ubuntu or OpenSuse can be installed very comfortably via the LiveCD or Live-Stick, Arch Linux makes somewhat higher demands on the installation, but the user is rewarded with a high-performance and lean system and also learns a lot about how Linux works.
The installation instructions presented here should work for both a MacBook and a Surface device and were reproduced on a MacBook Pro (Mid 2012) and a Surface Pro 2.
A backup of the device is recommended.
For the installation of Arch Linux a current image is needed (https://www.archlinux.org/download/ ).
The image can be transferred to a USB stick using etcher or dd. It is important to make sure that the USB stick is specified correctly, because the device will be transferred completely.
sudo dd if=imagefile.iso of=/dev/sdb1 -bs=1m
Then insert the USB stick into a free port and restart the Macbook by holding down the ALT key (Surface pro PowerButton and Volume up key). A selection appears that allows booting from the USB stick (on the Surface the settings for booting via USB are enabled).
For a simple network connection, it is recommended to connect the Macbook via Ethernet at the beginning and test if a connection exists.
ping google.com -c 3
Also, it makes sense to set the appropriate if necessary (e.g.German keyboard layout).
With the Surface, the internet connection can be configured directly via WLAN using iwctl.
To install Arch Linux, the hard disk must be partitioned. This example assumes that Arch Linux should be the only system and MacOS (Windows) is completely removed. A parallel operation is possible with older MacBooks for example via Bootcamp, a parallel installation of Linux and Windows is also possible. For partitioning, fdisk can be used.
First all existing partitions are deleted with d. Subsequently, three new partitions are created with n.
Finally the partition table can be written with w —> ATTENTION: all data is gone!
After the partitioning is done, the three partitions are formatted and the root and optionally the swap partition are mounted
mkfs.fat -F32 /dev/sda1 mkswap -L p_swap /dev/sda2 mkfs.ext4 -L p_arch /dev/sda3 swapon -L p_swap mount -L p_arch /mnt
The base system can be installed via the pacstrap script. Depending on the internet connection this may take a while.
pacstrap /mnt base base-devel linux linux-firmware vim intel-ucode
genfstab -L -p /mnt >> /mnt/etc/fstab
The -L creates a fstab with labels instead of UUIDs and the -p prevents the addition of pseudo file systems.
Important —> check if the fstab was really created
The system is configured in an arch-chroot environment.
timedatectl list-timezones timedatectl set-timezone Europe/Berlin
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime hwclock --systohc --utc
Search now in VIM with e.g. with /de_DE for the German for your locals and remove the hash at the beginning of the line with x. Then switch on the US locals (search en_US).
Save the changes and exit VIM with :wq.
Now generate the locals
Let the system and the installed programs know your locals
echo LANG=de_DE.UTF-8 > /etc/locale.conf
In order to set the keyboard settings system-wide and to make the terminal looks appealing, the keymap and the terminal font can be saved persistently.
echo KEYMAP=de-latin1 > /etc/vconsole.conf echo FONT=lat9w-16 >> /etc/vconsole.conf
echo archbook > /etc/hostname
In the /etc/hosts
127.0.0.1 localhost ::1 localhost 127.0.1.1 archbook
Create the files necessary for the system startup
mkinitcpio -p linux
pacman -S grub efibootmgr mkdir /boot/efi mount /dev/sda1 /boot/efi grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB grub-mkconfig -o /boot/grub/grub.cfg
set root password
On the Surface it is now best to install the network support packages directly, on the MacBook pro this can be done after reboot
pacman -S dhcpcd networkmanager systemctl enable dhcpcd systemctl enable NetworkManager
exit umount /mnt reboot
After restarting, log in with user root and the assigned password.
ping google.com -c 3
If there is no connection, check if dhcpcd is installed and activate the network device.
pacman -Qs dhcpcd
If required install dhcpcd with
pacman -S dhcpcd
and then activate it.
systemctl enable dhcpcd systemctl start dhcpcd
The Macbook has a Broadcom WLAN chip for which there is a driver in the community repository. The Surface Pro’s WLAN chip should be recognized directly and does not require any additional drivers.
pacman -S broadcom-wl modprobe wl systemctl disable dhcpcd systemctl enable dhcpcd
Since it is not recommended to work permanently as root, a new user should be created. (in this example archuser)
useradd --create-home --groups wheel --shell /bin/bash archuser passwd archuser
To enable the user to install programs with sudo, sudo should be installed and permission for sudo should be granted to the wheel group with visudo.
pacman -S sudo EDITOR=vim visudo
In the editor make sure that the line
%wheel ALL=(ALL) ALL
does not start with a hash.
pacman -S gnome-control-center gnome-shell gnome-terminal gnome-tweaks
pacman -S gdm
systemctl enable gdm
pacman -S networkmanager
systemctl enable NetworkManager
For the configuration in GNOME the default language is set in the system settings dialog. For the installation of further packages pacman can be used in the terminal or after installation from the AUR a graphical tool like pamac.