Difference between revisions of "Repo-ck"

From ArchWiki
Jump to: navigation, search
(Installation Examples)
m (Error: signature from "graysky (used to sign repo-ck packages) " is unknown trust: -the)
 
(146 intermediate revisions by 29 users not shown)
Line 1: Line 1:
 
[[Category:Kernel]]
 
[[Category:Kernel]]
{{Article summary start}}
+
[[ja:Repo-ck]]
{{Article summary text|
+
{{Related articles start}}
Article details setup and usage of the an unofficial Arch Linux repo containing generic and CPU-optimized kernel and support packages containing the ck1 patchset featuring the Brain Fuck Scheduler by Con Kolivas.}}
+
{{Related|Linux-ck}}
{{Article summary heading|Related}}
+
{{Related|Linux-ck/Changelog}}
{{Article summary wiki|Linux-ck}} - Main article.
+
{{Related articles end}}
{{Article summary wiki|Linux-ck/Changelog}} - Linux-ck Changelog.
+
''Repo-ck'' is an unofficial Arch Linux repository with generic and CPU-optimized kernels and support packages, featuring [http://ck-hack.blogspot.com BFS] ([[Wikipedia:Brain Fuck Scheduler|Brain Fuck Scheduler]]) and rest of the {{ic|-ck}} patchset by [[Wikipedia:Con Kolivas|Con Kolivas]].
{{Article summary wiki|http://repo-ck.com/stats.pdf Repo Statistics}} -  Popularity of packages, # of downloads, etc.
+
{{Article summary end}}
+
  
== TL; DR Summary ==
+
== Installation ==
'''Packages Provided:'''
+
*{{AUR|linux-ck}} - Kernel and headers.
+
*{{AUR|nvidia-ck}} - Matched nVidia modules.
+
*{{AUR|nvidia-304xx-ck}} - Matched nVidia legacy modules.
+
*{{AUR|broadcom-wl-ck}} - Matched broadcom-wl modules.
+
*{{AUR|virtualbox-ck-modules}} - Matched virtualbox-host and virtualbox-guest modules.
+
  
'''CPU-Optimized Flavors:'''
+
Add the [[Unofficial user repositories#repo-ck|repo-ck]] repository to {{ic|pacman.conf}} and [[Pacman-key#Adding_unofficial_keys|sign]] [http://repo-ck.com/ Graysky]'s key.
*Generic - Any x86_64 or i686 CPU.
+
*Corex - Optimized pacakges for Intel C2D/C2Q/Core i3/i5/i7 CPUs.
+
*Kx - Optimized packages for AMD K7/K8/K10 CPUs.
+
*P4 - Optimized packages for Intel Pentium 4 CPUs.
+
*Pentm - Optimized packages for Intel Pentium-M CPUs.
+
  
'''Setup:'''
+
{{Note|Recent changes have made the virtualbox modules within the AUR and repo redundant since a hard dependency in virtualbox itself will result in pacman building the modules via a hook.  Therefore, the precompiled virtualbox modules have been temporarily removed from the repo until Arch upstream fixes this.}}
See the [[Repo-ck#Setup]] section below to enable and use the repo.
+
  
== Details ==
+
== Kernels and related 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.
+
  
Users have a choice between the corresponding generic linux-ck packages or CPU-specific and optimized linux-ck packages:
+
{{Note|LTS packages are not included.}}
  
''GENERIC''
+
The official 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.  Users have a choice between the corresponding generic linux-ck package, or packages optimized for a specific CPU.
*'''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 processors.
+
  
''CPU SPECIFIC AND OPTIMIZED''
+
CPU-specific optimizations are invoked by selecting ''Processor type and features > Processor family'' in {{ic|make menuconfig}}, or by adjusting {{ic|.config}} accordingly. These changes setup make specific GCC options, including {{ic|CFLAGS}}.
*'''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:
+
Packages marked with {{ic|*}} are available only for the 64-bit systems, see [https://bbs.archlinux.org/viewtopic.php?pid=1423574#p1423574 this forum post].
  
*$srcdir/linux-$pkgver/arch/x86/[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=arch/x86/Makefile;h=b02e509072a790b1fbea3387f8749b5326beb822;hb=HEAD Makefile]
+
{| class="wikitable" align="center"
*$srcdir/linux-$pkgver/arch/x86/[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=arch/x86/Makefile_32.cpu;h=86cee7b749e1bc387522752ba2a5f200ccc172c0;hb=HEAD Makefile_32]
+
|-
 
+
! CPU Type !! Group Alias !! Details
{{Note|Repo packages include the BFQ I/O Scheduler compiled as a module. Read the [[#How_to_Enable_the_BFQ_I.2FO_Scheduler|section]] below for instructions to load it and enable it should you wish to do so.}}
+
|-
 
+
| {{C|'''Generic'''}}
[[http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6D605D846176ED4B 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.
+
| ''ck-generic'' || Generic kernel similar to the official Arch Linux kernel.
 
+
|-
== Setup ==
+
| rowspan="11" {{G|'''Intel'''}}
1) Add the following to {{ic|/etc/pacman.conf}} (I placed my entry at the bottom of the file):
+
| ''ck-atom'' || Intel Atom specific optimizations.
 +
|-
 +
| ''ck-silvermont *'' || Intel Silvermont specific optimizations.
 +
|-
 +
| ''ck-core2'' || Intel Core 2-family including Dual and Quads.
 +
|-
 +
| ''ck-nehalem *'' || Intel 1st Generation Core i3/i5/i7-family
 +
|-
 +
| ''ck-sandybridge *'' || Intel 2nd Generation Core i3/i5/i7-family
 +
|-
 +
| ''ck-ivybridge *'' ||  Intel 3rd Generation Core i3/i5/i7-family
 +
|-
 +
| ''ck-haswell *'' ||  Intel 4th Generation Core i3/i5/i7-family
 +
|-
 +
| ''ck-broadwell *'' ||  Intel 5th Generation Core i3/i5/i7-family
 +
|-
 +
| ''ck-skylake *'' ||  Intel 6th Generation Core i3/i5/i7-family
 +
|-
 +
| ''ck-p4'' ||  Intel Pentium-4 (P4/P4-based Celeron/Pentium-4 M/Older Xeon).
 +
|-
 +
| ''ck-pentm'' || Intel Pentium-M (Pentium-M notebook chips/not Pentium-4 M).
 +
|-
 +
| rowspan="5" {{R|'''AMD'''}}
 +
| ''ck-kx'' ||  AMD K7/K8-family
 +
|-
 +
| ''ck-k10 *'' ||  AMD K10-family including 61xx Eight-Core Magny-Cours, Athlon X2 7x50, Phenom X3/X4/II, Athlon II X2/X3/X4, or Turion II-family processor.
 +
|-
 +
|''ck-bobcat *''|| CPUs based on AMD Family 14h cores with x86-64 instruction set support.
 +
|-
 +
|''ck-bulldozer *''|| CPUs based on AMD Family 15h cores with x86-64 instruction set support.
 +
|-
 +
| ''ck-piledriver *'' || CPUs based on AMD Family 15h cores with x86-64 instruction set support.
 +
|-
 +
|}
  
[repo-ck]
+
== Selecting the correct CPU optimized package ==
SigLevel = PackageRequired
+
Server = http://repo-ck.com/$arch
+
  
To sign graysky's key, do the following:
+
When unsure, install the '''ck-generic''' group, which works with any compatible CPU. Those wanting CPU-specific optimized packages can run the following command (assuming that {{Grp|base-devel}} is installed):
# pacman-key -r 6176ED4B
+
# pacman-key --lsign-key 6176ED4B
+
  
2) Refresh via ''pacman -Syy''
+
$ gcc -c -Q -march=native --help=target | grep march
  
That's itTo see the contents of the repo, just search as such:
+
The resulting {{ic|-march}} is what GCC would use nativelyRefer to the table below for a mapping of this value to the correct group.
 +
{{Warning|Intel CPU optimized packages support only full Core2 series and i3/i5/i7 series chips.  Many Pentium/Celeron chips lack the full requisite instruction sets to make use of the optimized packages.  Users of these chips should install the generic packages, even if GCC returns a value corresponding to full core i3/i5/i7 match such as haswell.}}
  
$ pacman -Sl repo-ck
+
{{Note|This table has been updated to show the new simplified march options that ship with GCC v4.9+. For more information see the [https://gcc.gnu.org/gcc-4.9/changes.html release notes].}}
  
== Installation Examples ==
+
{| class="wikitable" align="center"
Use the '''ck-X''' group and select the desired packages for installation.  There are 6 groups corresponding to the 7 package sets: '''ck-generic, ck-atom, ck-corex, ck-kx, ck-p4,''' and '''ck-pentm'''.
+
|-
 
+
! Brand !! Group !! March
{{bc|1=# pacman -S ck-generic
+
:: There are 7 members in group ck-generic:
+
:: Repository repo-ck
+
  1) broadcom-wl-ck  2) linux-ck  3) linux-ck-headers  4) nvidia-304xx-ck  5) nvidia-ck
+
  6) virtualbox-ck-guest-modules  7) virtualbox-ck-host-modules
+
 
+
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 ==
+
{| border="1"
+
| '''linux-ck and headers''' || '''Group''' || '''x86_64''' || '''i686'''|| '''Processor Family Specific Optimizations/Description'''
+
 
|-
 
|-
| [https://aur.archlinux.org/packages/linux-ck linux-ck] || ck-generic || Yes || Yes ||  Compiled with generic optimizations suitable for ''any'' compatible CPU just like the official ARCH linux package.
+
| rowspan="11" {{G|'''Intel'''}}
 +
| ''ck-atom'' || bonnell
 
|-  
 
|-  
| linux-ck-atom || ck-atom || Yes || Yes || Intel Atom platform specific optimizations.
+
| ''ck-silvermont'' || silvermont
 
|-  
 
|-  
| linux-ck-corex || ck-corex || Yes || Yes || Intel Core X-family specific optimizations including Dual and Quads (Core 2/Newer Xeon/Mobile Celeron based on Core2) as well as Intel Core i3/i5/i7.
+
| ''ck-core2'' || core2
 
|-  
 
|-  
| 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.
+
| ''ck-nehalem'' || nehalem
|-
+
| linux-ck-p4 || ck-p4 || Yes || 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 Module''' || '''Group''' || '''x86_64''' || '''i686'''|| '''Description'''
+
|-
+
| [https://aur.archlinux.org/packages/nvidia-ck nvidia-ck] || ck-generic || Yes || Yes || The matching nVidia kernel module based on 310.xx series of Official nVidia drivers for linux-ck.
+
|-
+
| nvidia-ck-atom || ck-atom || Yes || Yes ||
+
|-
+
| nvidia-ck-corex || ck-corex || Yes || Yes ||
+
|-
+
| nvidia-ck-kx || ck-kx || Yes || Yes ||
+
|-
+
| nvidia-ck-p4 || ck-p4  || Yes || Yes ||
+
|-
+
| nvidia-ck-pentm || ck-pentm || N/A || Yes ||
+
 
|-  
 
|-  
| || || || ||
+
| ''ck-sandybridge'' || sandybridge
|-
+
| '''Nvidia-304xx-ck Module''' || '''Group''' || '''x86_64''' || '''i686'''|| '''Description'''
+
|-
+
| [https://aur.archlinux.org/packages/nvidia-304xx-ck  nvidia-304xx-ck] || ck-generic || Yes || Yes || The matching nVidia legacy kernel module based on 304.xx series of Official nVidia drivers for linux-ck.
+
|-
+
| nvidia-304xx-ck-atom || ck-atom || Yes || Yes ||
+
|-
+
| nvidia-304xx-ck-corex || ck-corex || Yes || Yes ||
+
|-
+
| nvidia-304xx-ck-kx || ck-kx || Yes || Yes ||
+
|-
+
| nvidia-304xx-ck-p4 || ck-p4  || Yes || Yes ||
+
|-
+
| nvidia-304xx-ck-pentm || ck-pentm || N/A || Yes ||
+
 
|-  
 
|-  
| || || || ||
+
| ''ck-ivybridge'' || ivybridge
|-
+
| '''Broadcom-wl-ck Module''' || '''Group''' ||  '''x86_64''' || '''i686'''|| '''Description'''
+
|-
+
| [https://aur.archlinux.org/packages/broadcom-wl-ck broadcom-wl-ck] || ck-generic ||  Yes || Yes || The matching Broadcom-wl-ck kernel module for linux-ck.
+
|-
+
| broadcom-wl-ck-atom || ck-atom ||  Yes || Yes ||
+
|-
+
| broadcom-wl-ck-corex || ck-corex || Yes || Yes ||
+
|-
+
| broadcom-wl-ck-kx || ck-kx || Yes || Yes ||
+
|-
+
| broadcom-wl-ck-p4 || ck-p4 || Yes || Yes ||
+
|-
+
| broadcom-wl-ck-pentm || ck-pentm || N/A || Yes ||
+
 
|-  
 
|-  
| || || || ||
+
| ''ck-haswell'' || haswell
 
|-  
 
|-  
| '''Virtualbox-ck-modules (guest and host)''' || '''Group''' || '''x86_64''' || '''i686'''|| '''Description'''
+
| ''ck-broadwell'' || broadwell
|-
+
|-
| [https://aur.archlinux.org/packages/virtualbox-ck-modules virtualbox-ck-guest-modules and virtualbox-ck-host-modules] || ck-generic ||  Yes || Yes || The matching virtualbox guest and hosts kernel modules for linux-ck.
+
| ''ck-skylake'' || skylake
|-
+
|-
| virtualbox-ck-guest-modules-atom and virtualbox-ck-host-modules-atom || ck-atom || Yes || Yes ||
+
| ''ck-p4'' || pentium4, prescott, nocona
 +
|-  
 +
| ''ck-pentm'' || pentm, pentium-m
 +
|-  
 +
| rowspan="5" {{R|'''AMD'''}}
 +
| ''ck-kx'' || athlon, athlon-4, athlon-tbird, athlon-mp, athlon-xp, k8-sse3
 +
|-  
 +
| ''ck-k10'' || amdfam10
 
|-
 
|-
| virtualbox-ck-guest-modules-corex and virtualbox-ck-host-modules-corex || ck-corex || Yes || Yes ||
+
|''ck-bobcat''|| btver1
 
|-
 
|-
| virtualbox-ck-guest-modules-kx and virtualbox-ck-host-modules-kx || ck-kx || Yes || Yes ||
+
|''ck-bulldozer''|| bdver1
|-
+
| virtualbox-ck-guest-modules-p4 and virtualbox-ck-host-modules-p4 || ck-p4 || Yes || Yes ||
+
|-
+
| virtualbox-ck-guest-modules-pentm and virtualbox-ck-host-modules-pentm || ck-pentm || N/A || Yes ||
+
 
|-
 
|-
 +
| ''ck-piledriver'' || bdver2
 +
|-
 
|}
 
|}
  
''N/A = Not Available due to hardware limitations.''
+
{{Note|Add additional entries to this table based on experience.}}
  
== How to Enable the BFQ I/O Scheduler ==
+
For further help, see:
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) ===
+
* http://wiki.gentoo.org/wiki/Safe_CFLAGS#Intel
 +
* http://wiki.gentoo.org/wiki/Safe_CFLAGS#AMD
 +
* http://www.linuxforge.net/docs/linux/linux-gcc.php
  
Add {{ic|1=elevator=bfq}} to boot loader [[Kernel parameters]].
+
=== Speed benefits of CPU optimized packages ===
  
=== Selectively (for only specified devices) ===
+
Extensive testing comparing the effect of GCC compile options show varying results, from no change to rather significant speed ups. [http://www.phoronix.com/scan.php?page=home] [https://bbs.archlinux.org/viewtopic.php?id=154333]
{{Note|Users building the PKG from the AUR have an option in the PKGBUILD itself to globally use the BFQ as the default I/O scheduler.}}
+
  
Direct the kernel to use it on a device-by-device basis.  For example, to enable it for {{ic|/dev/sda}} simply:
+
{{Expansion|Add results to this section where appropriate.}}
# echo bfq > /sys/block/sda/queue/scheduler
+
  
To confirm, simply ''cat'' the same file:
+
== Installation examples ==
# cat /sys/block/sda/queue/scheduler
+
noop deadline cfq [bfq]
+
  
Setting this way will not survive a reboot.  To make the change automatically at the next system boot, create the following tmpfile where "X" is the letter for the SSD device.
+
{{Note|As with ''any'' additional kernel, manually edit the boot loader configuration to make it aware of new kernel images. For example, see [[GRUB#Generate the main configuration file]] for GRUB.}}
  
{{hc| /etc/tmpfiles.d/set_IO_scheduler.conf |<nowiki>
+
Use the '''ck-X''' group and select the desired packages for installation.  There are 11 groups corresponding to the [[#Kernels and related packages|package sets]]. For example:
w /sys/block/sdX/queue/scheduler - - - - noop
+
 
</nowiki>}}
+
{{hc|# pacman -S ck-generic|2=
 +
:: There are 8 members in group ck-generic:
 +
:: Repository repo-ck
 +
  1) broadcom-wl-ck  2) linux-ck  3) linux-ck-headers  4) nvidia-304xx-ck  5) nvidia-340xx-ck  6) nvidia-ck
 +
 
 +
Enter a selection (default=all):
 +
}}
 +
 
 +
Alternatively, direct pacman to install ''linux-ck'' and ''linux-ck-headers''.
 +
 
 +
== BFQ I/O scheduler ==
 +
 
 +
See [[Linux-ck#How to enable the BFQ I/O Scheduler]].
 +
 
 +
== Repository statistics ==
  
== Package Trivia/Repo Statistics ==
 
*Various package sets are compiled via a Bash wrapper script for makepkg.  The script is publicly accessible at graysky's [https://github.com/graysky2/repo-ck github] repo.
 
*Repo [http://repo-ck.com/stats.pdf statistics] are available (popularity of packages, which CPU is most popular, # of downloads, etc.).
 
 
{{Note|The statistics are not updated daily but do give a snapshot of the data.}}
 
{{Note|The statistics are not updated daily but do give a snapshot of the data.}}
 +
 +
Repo [http://repo-ck.com/stats.pdf statistics] are available (package and CPU popularity, number of downloads, and so forth).
  
 
== Troubleshooting ==
 
== Troubleshooting ==
=== Forum Support ===
+
 
Please use [https://bbs.archlinux.org/viewtopic.php?id=111715 this discussion thread] to voice comments, questions, suggestions, requests, etcNote from graysky, "I can add other CPU-specific builds upon requestI just wanna be sure people will actually use them if I take the time to compile them."
+
=== Support ===
 +
 
 +
Please use [https://bbs.archlinux.org/viewtopic.php?id=111715 the BBS thread].
 +
 
 +
=== Downloads interrupt regularly ===
 +
 
 +
[https://aur.archlinux.org/account/graysky Graysky] is using [[Wikipedia:Go Daddy|Go Daddy]] as his web hostSome of the transfers from their poorly implemented server end in an incomplete transferTo combat this, list the repository address multiple times and pacman will automatically try the next available server. As repo-ck has only one address (no mirrors), use the same server line:
 +
{{bc|<nowiki>[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
 +
</nowiki>}}
 +
 
 +
Alternatively, change the [[pacman]] downloader to [[Improve_pacman_performance#Using_wget|wget]], which automatically resumes downloads.
 +
 
 +
See [https://bbs.archlinux.org/viewtopic.php?pid=1422475#p1422475 this forum post] for an explanation of these issues.
 +
 
 +
=== Error: signature from "graysky (used to sign repo-ck packages) <graysky@archlinux.us>" is unknown trust ===
 +
 
 +
You must import and sign graysky's gpg keys. Instructions along with his key ID are located at [http://repo-ck.com/ repo-ck.com]. See also [[Pacman/Package signing#Adding unofficial keys]].

Latest revision as of 16:43, 2 May 2016

Related articles

Repo-ck is an unofficial Arch Linux repository with generic and CPU-optimized kernels and support packages, featuring BFS (Brain Fuck Scheduler) and rest of the -ck patchset by Con Kolivas.

Installation

Add the repo-ck repository to pacman.conf and sign Graysky's key.

Note: Recent changes have made the virtualbox modules within the AUR and repo redundant since a hard dependency in virtualbox itself will result in pacman building the modules via a hook. Therefore, the precompiled virtualbox modules have been temporarily removed from the repo until Arch upstream fixes this.

Kernels and related packages

Note: LTS packages are not included.

The official 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. Users have a choice between the corresponding generic linux-ck package, or packages optimized for a specific CPU.

CPU-specific optimizations are invoked by selecting Processor type and features > Processor family in make menuconfig, or by adjusting .config accordingly. These changes setup make specific GCC options, including CFLAGS.

Packages marked with * are available only for the 64-bit systems, see this forum post.

CPU Type Group Alias Details
Generic ck-generic Generic kernel similar to the official Arch Linux kernel.
Intel ck-atom Intel Atom specific optimizations.
ck-silvermont * Intel Silvermont specific optimizations.
ck-core2 Intel Core 2-family including Dual and Quads.
ck-nehalem * Intel 1st Generation Core i3/i5/i7-family
ck-sandybridge * Intel 2nd Generation Core i3/i5/i7-family
ck-ivybridge * Intel 3rd Generation Core i3/i5/i7-family
ck-haswell * Intel 4th Generation Core i3/i5/i7-family
ck-broadwell * Intel 5th Generation Core i3/i5/i7-family
ck-skylake * Intel 6th Generation Core i3/i5/i7-family
ck-p4 Intel Pentium-4 (P4/P4-based Celeron/Pentium-4 M/Older Xeon).
ck-pentm Intel Pentium-M (Pentium-M notebook chips/not Pentium-4 M).
AMD ck-kx AMD K7/K8-family
ck-k10 * AMD K10-family including 61xx Eight-Core Magny-Cours, Athlon X2 7x50, Phenom X3/X4/II, Athlon II X2/X3/X4, or Turion II-family processor.
ck-bobcat * CPUs based on AMD Family 14h cores with x86-64 instruction set support.
ck-bulldozer * CPUs based on AMD Family 15h cores with x86-64 instruction set support.
ck-piledriver * CPUs based on AMD Family 15h cores with x86-64 instruction set support.

Selecting the correct CPU optimized package

When unsure, install the ck-generic group, which works with any compatible CPU. Those wanting CPU-specific optimized packages can run the following command (assuming that base-devel is installed):

$ gcc -c -Q -march=native --help=target | grep march

The resulting -march is what GCC would use natively. Refer to the table below for a mapping of this value to the correct group.

Warning: Intel CPU optimized packages support only full Core2 series and i3/i5/i7 series chips. Many Pentium/Celeron chips lack the full requisite instruction sets to make use of the optimized packages. Users of these chips should install the generic packages, even if GCC returns a value corresponding to full core i3/i5/i7 match such as haswell.
Note: This table has been updated to show the new simplified march options that ship with GCC v4.9+. For more information see the release notes.
Brand Group March
Intel ck-atom bonnell
ck-silvermont silvermont
ck-core2 core2
ck-nehalem nehalem
ck-sandybridge sandybridge
ck-ivybridge ivybridge
ck-haswell haswell
ck-broadwell broadwell
ck-skylake skylake
ck-p4 pentium4, prescott, nocona
ck-pentm pentm, pentium-m
AMD ck-kx athlon, athlon-4, athlon-tbird, athlon-mp, athlon-xp, k8-sse3
ck-k10 amdfam10
ck-bobcat btver1
ck-bulldozer bdver1
ck-piledriver bdver2
Note: Add additional entries to this table based on experience.

For further help, see:

Speed benefits of CPU optimized packages

Extensive testing comparing the effect of GCC compile options show varying results, from no change to rather significant speed ups. [1] [2]

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Add results to this section where appropriate. (Discuss in Talk:Repo-ck#)

Installation examples

Note: As with any additional kernel, manually edit the boot loader configuration to make it aware of new kernel images. For example, see GRUB#Generate the main configuration file for GRUB.

Use the ck-X group and select the desired packages for installation. There are 11 groups corresponding to the package sets. For example:

# pacman -S ck-generic
:: There are 8 members in group ck-generic:
:: Repository repo-ck
   1) broadcom-wl-ck  2) linux-ck  3) linux-ck-headers  4) nvidia-304xx-ck  5) nvidia-340xx-ck  6) nvidia-ck

Enter a selection (default=all):

Alternatively, direct pacman to install linux-ck and linux-ck-headers.

BFQ I/O scheduler

See Linux-ck#How to enable the BFQ I/O Scheduler.

Repository statistics

Note: The statistics are not updated daily but do give a snapshot of the data.

Repo statistics are available (package and CPU popularity, number of downloads, and so forth).

Troubleshooting

Support

Please use the BBS thread.

Downloads interrupt regularly

Graysky is using Go Daddy as his web host. Some of the transfers from their poorly implemented server end in an incomplete transfer. To combat this, list the repository address multiple times and pacman will automatically try the next available server. As repo-ck has only one address (no mirrors), use the same server line:

[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

Alternatively, change the pacman downloader to wget, which automatically resumes downloads.

See this forum post for an explanation of these issues.

Error: signature from "graysky (used to sign repo-ck packages) <graysky@archlinux.us>" is unknown trust

You must import and sign graysky's gpg keys. Instructions along with his key ID are located at repo-ck.com. See also Pacman/Package signing#Adding unofficial keys.