English is not my native language, so please be kind to my mistakes.
I love my razerblade 2016 (late) laptop, thanks to my aunt sylvia and here friend john i have this personal jewel in my equipment witch is not avaiable in my country. But I broke the windows installation and the build in recovery process did not work. After many emails over few months with razer and three usb recovery sticks later that are not able to recover my windows installation, razer decided that my laptop has to be broken and i have to send in and pay for repair.
So i decided to give linux a chance to shine. I tryed a few Linux Distribution and Arch Linux has a well documented section about razer blade laptops.
To test if Arch Linux works with my laptop and to play around with diffrent setups, in install Arch Linux on a external usbdrive, in my case a WD My Passport SSD and a Kingston HyperX Savage.
What works is:
- Full system - not a live CD
- X Windows (with xfce)
- nvidia GTX1060
- Wireless
- Audio
- Trackpad operates (with natural scrolling)
- Non-root user is configured with sudo rights
- A browser and vlc is installed
- lutris
- Steam
- Keyboard Chroma Support
- Webcam
- Touchscreen (my model dont have one)
- Razer Core (i dont have one)
What not works is:
- hypernation
prepare
The first problem was howto create an usbdrive without running arch installation? My life saver was Virtualbox.
Create a arch linux virtual maschine without harddisk, but with usb support.
download the arch iso image and add it to the virtual maschine.
add the usbdrive to the virtual maschine.
boot the iso image.
after a few seconds.
lets see if the usbdrive is present.
Set the keyboard layout
loadkeys en_US.UTF-8
Check internet connection ( should working out of the box, the virtualbox host is providing network )
ping google.com
install on usbdrive
The short manual here, asumes that you are running the commands inside virtualbox, if not you must change some commands specialy the partition part or you may destroy some storage device.
Erase the usbdrive.
dd if=/dev/zero of=/dev/sda bs=1k count=2048
sgdisk -z /dev/sda
We create 2 partitions, one for boot and one root, we left out swap to reduce write cycles on the usbdrive.
Create GPT partition scheme
sgdisk -o /dev/sda
We use all for Linux System Partition but left 500MB free for EFI.
sgdisk -n 1:0:-500M /dev/sda
sgdisk -t 1:8300 /dev/sda
And create 500MB EFI System Partition.
sgdisk -n 2:-500M:-0 /dev/sda
sgdisk -t 2:ef00 /dev/sda
Create filesystem for linux root.
mkfs.ext4 -O "^has_journal" /dev/sda1
Create filesystem for uefi boot.
mkfs.fat -F32 /dev/sda2
Mount filesystems.
mount /dev/sda1 /mnt
mkdir /mnt/boot
mount /dev/sda2 /mnt/boot
Bootstrap basic installation.
pacstrap /mnt base base-devel intel-ucode
Generate fstab.
genfstab -U -p /mnt > /mnt/etc/fstab
Chroot in to the new system.
arch-chroot /mnt
setup and configure the new linux system
Set timezone to UTC.
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
Set locale to en_US.UTF-8.
sed -i '/^#en_US.UTF-8 UTF-8/s/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
Ensure the LANG variable is set in /etc/locale.conf
echo LANG=en_US.UTF-8 > /etc/locale.conf
Set hostname.
echo razerblade > /etc/hostname
And add to /etc/hosts.
echo "127.0.1.1 razerblade.localdomain razerblade" >> /etc/hosts
Enable multilib in pacman configuration.
sed -i "/\[multilib\]/,/Include/"'s/^#//' /etc/pacman.conf
Install software.
pacman -Sy grub efibootmgr ifplugd iw xorg-server xorg-xinit xf86-video-amdgpu xf86-video-ati xf86-video-intel xf86-input-synaptics nvidia nvidia-utils nvidia-settings nvidia-libgl alsa-utils acpi acpid dbus avahi cups cronie ttf-dejavu firefox vlc arch-install-scripts exfat-utils dosfstools exfat-utils ttf-hack zip unzip git util-linux xfce4 xfce4-goodies sddm vulkan-icd-loader lib32-vulkan-icd-loader lib32-sqlite lib32-gnutls lib32-libldap lib32-libgpg-error lib32-libpulse lib32-alsa-plugins lib32-mpg123 lib32-nvidia-libgl lutris wine-staging steam
We install xf86-video-amdgpu and xf86-video-ati video drivers, so we can use the usbdrive on other computers with non nvidia gfx.
We install first wine and then we remove it again, we need only the dependencies and the system based wine installation will collide later with lutris.
pacman -R wine-staging
Create RAM disk image.
sed -i '/^HOOKS=/s/block //' /etc/mkinitcpio.conf
sed -i '/^HOOKS=/s/autodetect/block autodetect/' /etc/mkinitcpio.conf
mkinitcpio -p linux
Journal config (reducing writes to the usbdrive)
sed -i '/^#Storage=/s/#Storage=auto/Storage=volatile/' /etc/systemd/journald.conf
sed -i '/^#SystemMaxUse=/s/#SystemMaxUse=/SystemMaxUse=16M/' /etc/systemd/journald.conf
Install boot loader.
grub-install --target=x86_64-efi --efi-directory /boot --boot-directory /boot --removable
Set root password.
echo -e "razerblade\nrazerblade" | passwd root
Adding a user account with sudo privileges.
useradd -m -g users -s /bin/bash razerblade
Set password.
echo -e "razerblade\nrazerblade" | passwd razerblade
Enable weel group in sudo.
sed -i'/^# %wheel ALL=(ALL) ALL/s/^# %wheel/%wheel/' /etc/sudoers
Add user to groups.
gpasswd -a razerblade wheel
gpasswd -a razerblade audio
gpasswd -a razerblade video
gpasswd -a razerblade games
gpasswd -a razerblade power
Enable deamons.
systemctl enable acpid
systemctl enable avahi-daemon
systemctl enable org.cups.cupsd.service
systemctl enable cronie
Enable desktop login.
systemctl enable sddm
Fix webcam (razerblade 2016).
echo "options uvcvideo quirks=512" >> /etc/modprobe.d/uvcvideo.conf
Fix suspend loop (razerblade 2016).
sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT=/s/quiet/quiet button.lid_init_state=open/' /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
Enable esync.
sudo sed -i '/^#DefaultLimitNOFILE=/s/^#DefaultLimitNOFILE=/DefaultLimitNOFILE=1048576/' /etc/systemd/system.conf
sudo sed -i '/^#DefaultLimitNOFILE=/s/^#DefaultLimitNOFILE=/DefaultLimitNOFILE=1048576/' /etc/systemd/user.conf
I prefer the traditional network interface names.
ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
We exit the arch-chroot.
exit
Unmount the usbdrive.
umount /mnt/boot /mnt
and final shutdown the virtual maschine.
poweroff
So now you can boot arch linux from usbdrive on the razerblade 2016 and start installing games. Dont forget to get the network up with ‘sudo wifi-menu’.
after few days of testing
I have Arch linux installed on the internal ssd, i just add a partition for swap, installed ssd trim support and install plasma instead of xfce. The laptop works very very well with arch linux (no Razer the laptop is not broken), so i will spend some time to check out arch linux on razerblade 2016. Maybe Razer will send my a working recovery stick.
Update, adding Chroma Support
curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=cower
makepkg PKGBUILD --skippgpcheck --install --needed
curl -o PKGBUILD https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=pacaur
makepkg PKGBUILD --install --needed
pacaur -S openrazer-meta polychromatic
sudo gpasswd -a razerblade plugdev
used manuals
https://gist.github.com/elerch/678941eb670324ffc3f261eabba81310
http://valleycat.org/linux/arch-usb.html?i=2
https://wiki.archlinux.org/index.php/Razer_Blade
https://wiki.archlinux.org/index.php/Installing_Arch_Linux_on_a_USB_key