Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
How to install Arch Linux on an MSI Bravo A4DDR

How to Install Arch Linux on an MSI Bravo A4DDR

By Raymo111

Last updated 26 November 2020

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.


  1. 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.
  2. Go to and get BIOS and EC. Install the EC using the bat file.
  3. Unzip the BIOS to a USB and press shutdown while holding shift. (To disable fast bootup and other nasty stuff).
  4. 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).
  5. Verify that your BIOS and EC are the latest version from the System Info section in BIOS.
  6. Enable advanced BIOS using this secret key combo: R_Shift + R_Ctrl + L_Alt + F2 (Thanks to u/toazd for the tip!)
  7. Disable secure boot in BIOS (or you won't even be able to boot the live image)
  8. Get the Arch ISO flashed onto your live USB. I recommend using Etcher
  9. Boot the laptop, holding down the F11 key, and select your USB drive to boot from it

Install Arch!


  1. Plug in ethernet (RJ45). This is easier than using Wi-Fi.
  2. Check your internet connectivity ping
  3. Verify on UEFI ls /sys/firmware/efi/efivars
  4. Update your system clock's time timedatectl set-ntp true
  5. Check with timedatectl status
  6. 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
  7. 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
  8. 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:
       Include = /etc/pacman.d/mirrorlist`
  9. Install Arch pacstrap /mnt base base-devel linux linux-firmware nano git #(add any other packages you want installed here)
  10. Mount your partitions on boot automatically genfstab -U /mnt >> /mnt/etc/fstab
  11. Verify that cat /mnt/etc/fstab includes ext4 and swap
  12. Chroot into your system arch-chroot /mnt
  13. Setup timezone
    timedatectl list-timezones
    timedatectl set-timezone America/Toronto # replace America/Toronto with your location
  14. Set hw clock to UTC hwclock --systohc --utc
  15. Localization: nano 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`)
    echo LANG=en_CA.UTF-8 > /etc/locale.conf
    export LANG=en_CA.UTF-8
  16. Set your hostname echo hostname > /etc/hostname #(replace `hostname` with your preferred hostname)
  17. nano /etc/hosts and add: localhost
    ::1	      localhost myarch
  18. Update your freshly-installed system pacman -Syu
  19. Set your preferred root password passwd
  20. Install sudo pacman -S sudo
  21. Create your user useradd -mg users -G wheel,storage,power -s /bin/bash raymo #(replace `raymo` with your username)
    • Set your user's password passwd raymo
    • Give your user root permissions sudo EDITOR=nano visudo Add a line with raymo ALL=(ALL) ALL or raymo ALL=(ALL) NOPASSWD:ALL #if you want sudo without password prompt
  22. Install Grub pacman -S grub efibootmgr dosfstools os-prober mtools
  23. Setup EFI mkdir /boot/efi
  24. Mount the EFI system partition mount /dev/nvme0n1p2 /boot/efi
  25. Setup Grub grub-install --target=x86_64-efi --bootloader-id=grub_uefi --efi-directory=/boot/efi --recheck
  26. Create the config file for Grub grub-mkconfig -o /boot/grub/grub.cfg
  27. Install and enable DHCPCD pacman -S dhcpcd && systemctl enable dhcpcd
  28. Install and enable NetworkManager pacman -S networkmanager && systemctl enable NetworkManager
  29. 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,^21-22,^28,^35,^37,^39
    • and only installed these for kde-apps: 1,5,13,14,36,43,44,45,46,50,59,62,68,82,98,101,105,108,110,112,114,121,123,128,131,137,147,150
    • I went with 2,vlc , and cronie for the dependencies
  30. Install Mesa drivers pacman -S lib32-libva-mesa-driver lib32-mesa lib32-mesa-vdpau lib32-opencl-mesa libva-mesa-driver mesa mesa-demos mesa-vdpau opencl-mesa vulkan-mesa-layers
  31. Install AMD video drivers xf86-video-ati xf86-video-amdgpu
  32. Enable SDDM (or whatever greeter you want) so that you don't see a shell when you boot up ```systemctl enable sddm`
  33. Install yay - this will help you a lot but isn't exactly required. It's an AUR helper.
    git clone
    cd yay
    makepkg -si


  1. Exit chroot with Ctrl+D or exit
  2. Shutdown shutdown now Once it's shut down you can unplug the live USB
  3. Set the boot order in BIOS (hold DEL on startup), and add an admin password if you want
  4. Boot and login with your username and password
  5. Open the KDE menu and type konsole to get a terminal. Run yay -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.



Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment