Close

My Parabola gnu/linux laptop

wagnerwagner wrote 05/10/2016 at 16:52 • 4 min read • Like

For many months I was looking upgrade my old laptop. I was using Debian but the free nvidia video driver died frequently, so I install Parabola trying to fix that problem.

When I use Parabola I loved it. It is a better and easier alternative for develop.

Parabola and their newer versions of the packages didn't fix my video problem, and also I can't install the private driver of my wifi card or change that card.

So I buy a Razer Blade Stealth with intel video, and change the wifi card. I buy a wifi card from: https://www.thinkpenguin.com/catalog/wireless-networking-gnulinux

I read the Parabola beginners guide, but next are what I exactly did.

I first make a bootable usb with the dd utility and disable bios usb secure boot on the Razer laptop.

Partition:

parted /dev/nvme0n1p
    mklabel gpt
    mkpart ESP fat32 1MiB 513MiB
    set 1 boot on
    mkpart primary ext4 513MiB 15.5GiB
    mkpart primary linux-swap 15.5GiB 19GiB
    mkpart primary ext4 19GiB 100%
mkfs.vfat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mkswap /dev/nvme0n1p3
mkfs.ext4 /dev/nvme0n1p4
Install base:
lsblk
swapon /dev/nvme0n1p3
mount /dev/nvme0n1p2 /mnt
mkdir /mnt/home
mount /dev/nvme0n1p4 /mnt/home
pacstrap -i /mnt base
genfstab -U -p /mnt >> /mnt/etc/fstab
grub:
arch-chroot /mnt /bin/bash
pacman -S grub efibootmgr
nano /etc/default/grub
    GRUB_TIMEOUT=1
mkdir /boot/efi
mount -t vfat /dev/nvme0n1p1 /boot/efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=parabola --recheck
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
grub-mkconfig -o /boot/grub/grub.cfg
efibootmgr -c -d /dev/nvme0n1p1 -l /EFI/parabola/grubx64.efi -L "parabola"
Configuration:
passwd
useradd -m -s /bin/bash wagner
passwd wagner
ln -sf /usr/share/zoneinfo/America/Costa_Rica /etc/localtime
ls -l /etc/localtime
nano /etc/locale.gen
    en_US.UTF-8 UTF-8
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8
Programs I used:
pacman -S screen emacs-nox htop unp unzip openssh sshfs wget sudo
          net-tools usb_modeswitch iw wpa_supplicant lm_sensors alsa-utils

pacman -S xorg-server xorg-xinit xorg-xrandr xorg-xev
          xf86-input-libinput xf86-video-intel ttf-dejavu 
          i3 dmenu lxterminal networkmanager network-manager-applet
          feh gpicview mpv gimp inkscape gnuchess
Video configuration:
xrandr --output eDP1 --mode 1600x900

nano /etc/X11/xorg.conf
  Section "Monitor"
    Identifier      "eDP1"
    Option          "Primary"       "true"
    Option          "PreferredMode" "1600x900"
  EndSection

nano .bash_profile
  ...
  [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx

nano .xinitrc
  #!/bin/bash
  exec i3
Touchpad configuration:
nano /usr/share/X11/xorg.conf.d/60-libinput.conf
  Section "InputClass"
    Identifier "libinput touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "Tapping" "on"
  EndSection
Backlight configuration:
nano /usr/local/bin/bl
  #!/bin/bash
  curr=$(cat /sys/class/backlight/intel_backlight/brightness)
  if [ $1 = "down" ] ; then
    if [ $curr -gt "0" ] ; then
      down=$(( $curr-100 ))
      tee /sys/class/backlight/intel_backlight/brightness <<< $down
    else
      echo "already min"
    fi
  fi

  if [ $1 = "up" ] ; then
    if [ $curr -lt "900" ] ; then
      up=$(( $curr+100 ))
      tee /sys/class/backlight/intel_backlight/brightness <<< $up
    else
      echo "already max"
    fi
  fi

chmod a+x /usr/local/bin/bl
export EDITOR="emacs"
visudo
  wagner ALL=(ALL) NOPASSWD: /usr/local/bin/bl
i3 configuration:
nano .config/i3/config
  ...
  bindsym XF86MonBrightnessUp exec sudo bl up
  bindsym XF86MonBrightnessDown exec sudo bl down

  bindsym XF86AudioMute exec amixer set Master toggle
  bindsym XF86AudioLowerVolume exec amixer set Master 1%-
  bindsym XF86AudioRaiseVolume exec amixer set Master 1%+

  #bindsym XF86AudioPlay exec playerctl play-pause
  #bindsym XF86AudioNext exec playerctl next
  #bindsym XF86AudioPrev exec playerctl previous
  #bindsym XF86AudioStop exec playerctl stop

  bindsym $mod+Shift+Return exec opera  # icecat chromium

  focus_follows_mouse no
  new_window none
  exec feh --bg-fill '/home/wagner/gnus.jpg'
  exec nm-applet
  # for_window [class="Lingot"] floating enable
  bar {
    position top
    status_command i3status
  }
i3 bar configuration:
nano /etc/i3status.conf
  interval=1
Check battery configuration:
nano /usr/local/bin/check_battery
  #! /bin/bash

  status=$(cat /sys/class/power_supply/BAT0/status)
  full=$(cat /sys/class/power_supply/BAT0/charge_full)
  now=$(cat /sys/class/power_supply/BAT0/charge_now)
  percent=$(($now * 100 / $full))

  if [ $status = "Discharging" -a $percent -lt 5 ]; then
    systemctl suspend
  fi

chmod a+x /usr/local/bin/check_battery

nano /usr/lib/systemd/system/check_battery.service
  [Unit]
  Description=Check Battery

  [Service]
  Type=simple
  ExecStart=/usr/local/bin/check_battery

nano /usr/lib/systemd/system/check_battery.timer
  [Unit]
  Description=Runs check battery every minute

  [Timer]
  OnBootSec=5m
  OnUnitActiveSec=1m
  Unit=check_battery.service

  [Install]
  WantedBy=multi-user.target

systemctl start check_battery.timer
systemctl enable check_battery.timer

Install AUR packages:

pacman -S patch make automake autoconf pkg-config git fakeroot
mkdir build
AUR arduino-noide:

cd /home/build/
git clone https://aur.archlinux.org/arduino-noide.git
cd arduino-noide
makepkg -s
su
    pacman -U arduino-noide-avr-xxx.pkg.tar.xz 
    pacman -U arduino-noide-libs-xxx.pkg.tar.xz 

For arduino make-file I used: http://ed.am/dev/make/arduino-mk

su
  cp arduino.mk /usr/share/arduino/
Arduino make file example:

nano Makefile
  BOARD := nano.atmega328
  #LIBRARIES := SPI RF24 RF24Network
  SERIALDEV := /dev/ttyUSB0

  include /usr/share/arduino/arduino.mk
nano blink.ino
  void setup() {
    pinMode(13, OUTPUT);
  }

  void loop() {
    digitalWrite(13, HIGH);
    delay(1000);
    digitalWrite(13, LOW);
    delay(1000);
  }
make
make upload

For the web-browser:

cd /home/build/
git clone https://aur.archlinux.org/inox-bin.git
cd inox-bin
makepkg -s
su
    pacman -U inox-bin.......pkg.tar.xz

AUR wps-office:

cd /home/build/
git clone https://aur.archlinux.org/libpng12.git
cd libpng12
makepkg -s
su
    pacman -U libpng12.pkg.tar.xz
cd ..
git clone https://aur.archlinux.org/wps-office.git
cd wps-office
makepkg -s
su
pacman -U wps-office.pkg.tar

I hope this guide help you!!!

Like

Discussions

benoit wrote 11/08/2016 at 22:14 point

many thanks for your reply :)

7-8h is pretty good; just a confirmation you got the QHD model I guess and not the UHD? Is Skylake or Kaby Lake? (I guess Skylake from the time of your article) then a Kaby Lake could get 1h more

Even with this https://github.com/terrycain/razer-drivers your are not able to build custom keyboard color by action/pattern?

  Are you sure? yes | no

wagner wrote 11/05/2016 at 18:08 point

Hi! no issue with HDMI.  The battery last about 7-8 hours and the laptop is always cold.  The keyboard colors work perfect out of box, when you press function key + any number, it have 9 different patterns.  Only I can't make a custom keyboard pattern...

  Are you sure? yes | no

benoit wrote 11/05/2016 at 14:48 point

hi wagner and thanks for this article ! I am also under Parabola for 2 years now and I got a Dell XPS 13 but lot of issue with USB Type C and external monitor, I see that the latest version of Razer Blade Stealth has an HDMI included no issue for you with Parabola? recognized with different TV/monitors? what about the battery life and heating?last thing have you been able to make the keyboard color work under Parabola? many thanks!

  Are you sure? yes | no