Project

General

Profile

Support #620

Updated by Daniel Curtis over 9 years ago

{{>toc}} 

 This is a guide for installing the Linux-ck kernel on Arch linux. 

 h2. Prepare the Environment 

 * Make sure the system is up to date: 
 <pre> 
 sudo pacman -Syu 
 </pre> 

 h2. Install Linux-ck from Repo-ck 

 * Edit the pacman.conf: 
 <pre> 
 vi /etc/pacman.conf 
 </pre> 
 #* And add the following to the end of the file: 
 <pre> 
 [repo-ck] 
 Server = http://repo-ck.com/$arch 
 Server = http://repo-ck.com/$arch 
 Server = http://repo-ck.com/$arch 
 Server = http://repo-ck.com/$arch 
 Server = http://repo-ck.com/$arch 
 </pre> 

 * Now repo key needs to be received and locally signed: 
 <pre> 
 pacman-key -r 5EE46C4C 
 pacman-key --lsign-key 5EE46C4C 
 </pre> 

 * Refresh the repo metadata: 
 <pre> 
 pacman -Sy 
 </pre> 

 * (Optional) Identify the CPU: 
 <pre> 
 gcc -c -Q -march=native --help=target | grep march 
 </pre> 

 * Install the generic Linux-ck kernel: 
 <pre> 
 pacman -S linux-ck-generic 
 </pre> 
 #* (Optional) Or install the CPU specific kernel: 
 <pre> 
 pacman -S linux-ck-kx 
 </pre> 

 * Install the generic Linux-ck kernel headers: 
 <pre> 
 pacman -S linux-ck-generic-headers 
 </pre> 
 #* (Optional) Or install the CPU specific kernel: 
 <pre> 
 pacman -S linux-ck-kx 
 </pre> 

 h3. Install nVidia driver 

 * Install the generic Linux-ck nVidia driver: 
 <pre> 
 pacman -S nvidia-304xx-ck-generic 
 </pre> 
 #* (Optional) Or install the CPU specific nVidia driver: 
 <pre> 
 pacman -S nvidia-304xx-ck-kx 
 </pre> 

 h3. Install VirtualBox host driver: 

 * Install the generic Linux-ck VirtualBox host driver: 
 <pre> 
 pacman -S virtualbox-ck-host-modules-generic 
 </pre> 
 #* (Optional) Or install the CPU specific VirtualBox host driver: 
 <pre> 
 pacman -S virtualbox-ck-host-modules-kx 
 </pre> 

 * Update the grub config: 
 <pre> 
 grub-mkconfig -o /boot/grub/grub.cfg 
 </pre> 

 h2. Install Linux-ck from the AUR 


 h3. Install yaourt 

 * Download the packages for yaourt: 
 <pre> 
 cd /tmp 
 wget https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz && wget https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz 
 tar xzf package-query.tar.gz 
 tar xzf yaourt.tar.gz 
 </pre> 
 #* Install package-query: 
 <pre> 
 cd package-query 
 makepkg -csi 
 </pre> 
 #* Install yaourt 
 <pre> 
 cd ../yaourt 
 makepkg -csi 
 </pre> 

 h3. Receive PGP keys 

 * Receive Linus Torvalds' PGP key: 
 <pre> 
 gpg --recv-keys 79BE3E4300411886 
 </pre> 
 #* Then utimately trust the key: 
 <pre> 
 trust 
 5 
 y 
 quit 
 </pre> 

 * Receive Greg Kroah-Hartman's PGP key: 
 <pre> 
 gpg --recv-keys 38DBBDC86092693E 
 </pre> 
 #* Then ultimately trust the key: 
 <pre> 
 trust 
 5 
 y 
 quit 
 </pre> 

 h3. Install Linux-ck kernel 

 * Install the linux-ck package from the AUR: 
 <pre> 
 yaourt linux-ck 
 </pre> 
 #* (Optional) Install the linux-ck-headers package: 
 <pre> 
 yaourt linux-ck-headers 
 </pre> 

 * Edit the @PKGBUILD@ file and add the following: 
 <pre> 
 _BFQ_enable_="y" 
 </pre> 

 * Update the grub config: 
 <pre> 
 grub-mkconfig -o /boot/grub/grub.cfg 
 </pre> 

 h3. Install Linux-ck nVidia driver 

 * (Optional) Install the linux-ck nvidia package: 
 <pre> 
 yaourt nvidia-304xx-ck 
 </pre> 

 h3. Install Linux-ck VirtualBox host driver 

 * (Optional) Install the linux-ck virtualbox host modules: 
 <pre> 
 yaourt virtualbox-ck-host-modules 
 </pre> 

 h2. Enable Budget Fair Queueing (BFQ) I/O Scheduling 

 * Check which I/O scheduler is in use: 
 <pre> 
 cat /sys/block/sda/queue/scheduler 
 </pre> 
 #* _Example output:_ 
 <pre> 
 noop deadline [cfq] bfq 
 </pre>  

 * Enable BFQ on @/dev/sda@ without rebooting: 
 <pre> 
 echo bfq > /sys/block/sda/queue/scheduler 
 </pre> 

 * Check which I/O scheduler is in use: 
 <pre> 
 cat /sys/block/sda/queue/scheduler 
 </pre> 
 #* _Example output:_ 
 <pre> 
 noop deadline cfq [bfq] 
 </pre> 

 * Use BFQ on /dev/sda at boot persistently, create the set_IO_scheduler.conf file: persistently: 
 <pre> 
 sudo vi /etc/tmpfiles.d/set_IO_scheduler.conf 
 </pre> 
 #* And add the following: 
 <pre> 
 w /sys/block/sda/queue/scheduler echo "w /sys/block/sdX/queue/scheduler - - - - bfq bfq" > /etc/tmpfiles.d/set_IO_scheduler.conf 
 </pre> 

 h2. Resources 

 * https://wiki.archlinux.org/index.php/Kernels 
 * https://wiki.archlinux.org/index.php/Linux-ck 
 * https://wiki.archlinux.org/index.php/Repo-ck 
 * https://wiki.archlinux.org/index.php/Linux-ck#How_to_enable_the_BFQ_I.2FO_Scheduler

Back