Unofficial user repositories/Repo-ck
[Graysky's public key] used for package signing. Pacman v4 will automatically query the public key server, but if users would rather download and manually add the key, do so from the link.
- 1 Generic and Optimized Kernel Packages
- 2 Add the Repo to /etc/pacman.conf
- 3 Installation Examples
- 4 Current CK Package Offerings
- 5 How to Enable the BFQ I/O Scheduler
- 6 Package Trivia/Repo Statistics
- 7 Troubleshooting
Generic and Optimized Kernel Packages
The repo contains generic packages as well as CPU-specific packages. Many ARCH users are familiar with the concept of a generic kernel package. The official ARCH kernel is available in two flavors (either i686 or x86_64) which are generic packages in that i686 will work with any compatible x86 CPU and x86_64 will work with any compatible x86_64 CPU.
The repo offers users a choice between the corresponding generic linux-ck packages or CPU-specific and optimized linux-ck packages:
- ck-generic ==> Compiled with generic optimizations suitable for any compatible CPU just like the official ARCH linux package. This is true for both Intel and AMD chips.
CPU SPECIFIC AND OPTIMIZED
- ck-atom ==> Intel Atom platform specific optimizations. Intel Atom CPUs have an in-order pipelining architecture and thus can benefit from accordingly optimized code.
- ck-corex ==> Intel Core 2-family including Dual and Quads (Core 2/Newer Xeon/Mobile Celeron based on Core2) and Core i3/i5/i7-family specific optimizations (Gulftown, Bloomfield, Lynnfield, Clarksfield, Arrendale, and Sandy/Ivybridge CPUs).
- ck-kx ==> AMD K7 (Athlon/Athlon XP)/K8 (Athlon 64, Athlon 64 X2, 23xx Quad-Core Barcelona, Sempron, Sempron 64)/K10-family (Athlon X2 7x50, Phenom X3/X4, Phenom II, Athlon II X2/X3/X4, Sempron 64 (Socket AM3 only), 61xx Eight-Core Magny-Cours) specific optimizations. Enables use of some extended instructions, and passes appropriate optimization flags to GCC.
- ck-p4 ==> Intel Pentium-4 specific optimizations (P4/P4-based Celeron/Pentium-4 M/Older Xeon).
- ck-pentm ==> Intel Pentium-M specific optimizations (Pentium-M notebook chips/not Pentium-4 M).
CPU-specific optimization are invoked at compilation by selecting the corresponding option under Processor type and features>Processor family or by setting-up the .config file accordingly. These changes setup make specific gcc options including the $CFLAGS. For more, see the following files:
Add the Repo to
1) Add the following to
/etc/pacman.conf (I placed my entry at the bottom of the file):
[repo-ck] Server = http://repo-ck.com/$arch
2) Refresh via pacman -Syy
That's it. To see the contents of the repo, just search as such:
$ pacman -Sl repo-ck
Use the ck-X group and select the desired packages for installation. There are 6 groups corresponding to the 6 package sets: ck-generic, ck-atom, ck-corex, ck-kx, ck-p4, and ck-pentm.
# pacman -S ck-generic :: There are 4 members in group ck-generic: :: Repository repo-ck 1) broadcom-wl-ck 2) linux-ck 3) linux-ck-headers 4) nvidia-ck Enter a selection (default=all):
Alternatively, simply direct Pacman to install the packages directly:
# pacman -S linux-ck linux-ck-headers
Current CK Package Offerings
|linux-ck and headers||Group||x86_64||i686||Processor Family Specific Optimizations/Description|
|linux-ck||ck-generic||Yes||Yes||Compiled with generic optimizations suitable for any compatible CPU just like the official ARCH linux package.|
|linux-ck-atom||ck-atom||Yes||Yes||Intel Atom platform specific optimizations.|
|linux-ck-corex||ck-corex||Yes||Yes||Intel Core 2-family specific optimizations including Dual and Quads (Core 2/Newer Xeon/Mobile Celeron based on Core2) as well as Intel Core i3/i5/i7.|
|linux-ck-kx||ck-kx||Yes||Yes||AMD K7 (Athlon/Athlon XP), K8 (Athlon 64, Athlon 64 X2, 23xx Quad-Core Barcelona, Sempron, Sempron 64), and K10-family (Athlon X2 7x50, Phenom X3/X4, Phenom II, Athlon II X2/X3/X4, Sempron 64 (Socket AM3 only), 61xx Eight-Core Magny-Cours) specific optimizations.|
|linux-ck-p4||ck-p4||No||Yes||Intel Pentium-4 specific optimizations (P4/P4-based Celeron/Pentium-4 M/Older Xeon).|
|linux-ck-pentm||ck-pentm||N/A||Yes||Intel Pentium-M specific optimizations (Pentium-M notebook chips/not Pentium-4 M).|
|nvidia-ck||ck-generic||Yes||Yes||The matching nVidia kernel module based on 290.xx series of Official nVidia drivers for linux-ck.|
|broadcom-wl-ck||ck-generic||Yes||Yes||The matching Broadcom-wl-ck kernel module for linux-ck.|
N/A = Not Available due to hardware limitations.
How to Enable the BFQ I/O Scheduler
Since release 3.0.4-2, the BFQ patchset is applied to the package by default. Users must enable the BFQ scheduler to use it; it is dormant by default.
Globally (for all devices)
Append "elevator=bfq" to the kernel boot line in
/boot/grub/menu.lst if using grub or in
/etc/default/grub under the GRUB_CMDLINE_LINUX_DEFAULT="quiet" line followed by rebuilding
/boot/grub/grub.cfg via the standard "grub-mkconfig -o /boot/grub/grub.cfg" command.
Selectively (for only specified devices)
Direct the kernel to use it on a device-by-device basis. For example, to enable it for
# echo bfq > /sys/block/sda/queue/scheduler
To confirm, simply cat the same file:
# cat /sys/block/sda/queue/scheduler noop deadline cfq [bfq]
Note that doing it this way will not survive a reboot. To make the change automatically at the next system boot, place the echo line(s) in
Package Trivia/Repo Statistics
- Various package sets are compiled via a Bash wrapper script for makepkg. The script is publicly accessible at graysky's github repo.
- Repo statistics are available (popularity of packages, which CPU is most popular, # of downloads, etc.).
Please use this discussion thread to voice comments, questions, suggestions, requests, etc. Note from graysky, "I can add other CPU-specific builds upon request. I just wanna be sure people will actually use them if I take the time to compile them."