Last updated 29 July 2021
Disclaimer: I have personally tested every step of this. However, I'm not responsible for anything you do.
There's a Reddit thread for this laptop.
- Setup Windows. I kid you not. This is required (for EC updates) unless you know what you are doing. (Spoiler: if you did you wouldn't be here.) It also gives you the opportunity to test that everything with the hardware is working and verify you got the correct chips and amount of storage/RAM before you destroy the factory state. It's very hard to get your retailer to accept a laptop you've already installed Arch on for a refund. Also the laptop comes with a pretty cool wallpaper and this utility to check everything MSI.
- Go to https://www.msi.com/Laptop/support/Bravo-15-A4DDR and get BIOS and EC. Install the EC using the bat file.
- Unzip the BIOS to a USB and press shutdown while holding shift. (To disable fast bootup and other nasty stuff).
- Plug in your USB and power on the laptop, holding the
DEL
key. Find the place to flash bios and do it. Make sure that you actually flash once it reboots into recovery mode (it's right there on the screen, took me a while to figure out). - Verify that your BIOS and EC are the latest version from the System Info section in BIOS.
- Enable advanced BIOS using this secret key combo:
R_Shift + R_Ctrl + L_Alt + F2
(Thanks to u/toazd for the tip!) - Disable secure boot in BIOS (or you won't even be able to boot the live image)
- Get the Arch ISO flashed onto your live USB. I recommend using Etcher
- Boot the laptop, holding down the
F11
key, and select your USB drive to boot from it
See:
- https://wiki.archlinux.org/index.php/installation_guide
- https://www.tecmint.com/arch-linux-installation-and-configuration-guide/
- https://itsfoss.com/install-arch-linux/
- Plug in ethernet (RJ45). This is easier than using Wi-Fi.
- Check your internet connectivity
ping 1.1.1.1
- Verify on UEFI
ls /sys/firmware/efi/efivars
- Update your system clock's time
timedatectl set-ntp true
- Check with
timedatectl status
- Partition disks
cfdisk /dev/nvme0n1
The following is what I did; it may not be what you want:- Delete existing partitions
- 16G
Linux swap
first - 512M
EFI System
second - 300G
Linux x86-64 root
third - Write and quit
- Format and mount partitions
mkfs.fat -F32 /dev/nvme0n1p2 mkfs.ext4 /dev/nvme0n1p3 #(will take a minute or two) mkswap /dev/nvme0n1p1 mount /dev/nvme0n1p3 /mnt swapon /dev/nvme0n1p1
- Get the fastest mirror to install your system and packages
- Sync repos
pacman -Syy
- Install reflector
pacman -S reflector
- Backup mirrorlist
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
- Run reflector directly on mirrorlist
reflector -c "CA" -f 12 -l 10 -n 12 --save /etc/pacman.d/mirrorlist #(replace CA with your country)
- Include multilib for 32-bit wine :)
nano /etc/pacman.conf
- Uncomment the following lines:
[multilib] Include = /etc/pacman.d/mirrorlist`
- Sync repos
- Install Arch
pacstrap /mnt base base-devel linux linux-firmware nano git #(add any other packages you want installed here)
- Mount your partitions on boot automatically
genfstab -U /mnt >> /mnt/etc/fstab
- Verify that
cat /mnt/etc/fstab
includes ext4 and swap - Chroot into your system
arch-chroot /mnt
- Setup timezone
timedatectl list-timezones timedatectl set-timezone America/Toronto # replace America/Toronto with your location
- Set hw clock to UTC
hwclock --systohc --utc
- Localization:
nano /etc/locale.gen
and uncomment desired locales (i.e.en_CA.UTF-8 UTF-8
,en_US.UTF-8 UTF-8
,fr_CA.UTF-8 UTF-8
,zh_CN.UTF-8 UTF-8
)locale-gen echo LANG=en_CA.UTF-8 > /etc/locale.conf export LANG=en_CA.UTF-8
- Set your hostname
echo myarch > /etc/hostname #(replace `myarch` with your preferred hostname)
nano /etc/hosts
and add:
Make sure to replace127.0.0.1 localhost ::1 localhost 127.0.1.1 myarch
myarch
with your hostname!- Update your freshly-installed system
pacman -Syu
- Set your preferred root password
passwd
- Install sudo
pacman -S sudo
- Create your user
export NEWUSR=raymo #(replace `raymo` with your username) useradd -mg users -G wheel,storage,power -s /bin/bash $NEWUSR
- Set your user's password
passwd $NEWUSR
- Give your user root permissions
sudo EDITOR=nano visudo
Add a line withraymo ALL=(ALL) ALL
orraymo ALL=(ALL) NOPASSWD:ALL #if you want sudo without password prompt
- Set your user's password
- Install Grub
pacman -S grub efibootmgr dosfstools os-prober mtools
- Setup EFI
mkdir /boot/efi
- Mount the EFI system partition
mount /dev/nvme0n1p2 /boot/efi
- Setup Grub
grub-install --target=x86_64-efi --bootloader-id=grub_uefi --efi-directory=/boot/efi --recheck
- Create the config file for Grub
grub-mkconfig -o /boot/grub/grub.cfg
- Install and enable DHCPCD
pacman -S dhcpcd && systemctl enable dhcpcd
- Install and enable NetworkManager
pacman -S networkmanager && systemctl enable NetworkManager
- Install KDE (or whatever other DE/WM you want, i.e. Gnome, i3, XFCE, LXDE, MATE, etc.)
pacman -S xorg xorg-xinit sddm plasma kde-applications
- I didn't want the following for plasma (
^5,^11,^20-21
, etc.):- drkonqi, kgamma5, kwayland*, oxygen, plasma-sdk, plasma-vault
- and only installed the kde-apps that I wanted (the AUR group page contains descriptions of every package)
- I went with 2, vlc, and cronie for the dependencies
- I didn't want the following for plasma (
- Install Mesa
pacman -S lib32-mesa mesa mesa-demos
- Install AMD video drivers
xf86-video-amdgpu
- Enable SDDM (or whatever greeter you want) so that you don't see a shell when you boot up
systemctl enable sddm
- Set make-flags for
makepkg
to use more cores:
Replace thevim /etc/makepkg.conf
MAKEFLAGS="-j 2"
line with:MAKEFLAGS="-j $(nproc --ignore=2)" # 2 less than num of total threads
- Install
yay
- this will help you a lot but isn't exactly required. It's an AUR helper.su $NEWUSR git clone https://aur.archlinux.org/yay.git cd yay makepkg -si exit # or Ctrl+D
- Exit chroot with
Ctrl+D
orexit
- Shutdown
shutdown now
Once it's shut down you can unplug the live USB - Set the boot order in BIOS (hold
DEL
on startup), and add an admin password if you want - Boot and login with your username and password
- Open the KDE menu and type
konsole
to get a terminal. Runyay -S neofetch
to test yay and get neofetch. Run neofetch, and flex Arch to all your friends. And also pat yourself on the back - you did it! Welcome to the best distro ever.
#btwiusearch
(obviously)
Did you not allocate enough swap?