The reference PKGBUILD can be found at the [https://aur.archlinux.org/packages.php?ID=50956 AUR linux-pf page] and at the [https://bitbucket.org/nous/linux-pf bitbucket.org mercurial repository]. Precompiled packages, generic and CPU-family optimized are uploaded at the [http://dl.dropbox.com/u/11734958/index.html pfkernel unofficial repository], usually within 6 hours of the AUR update for x86_64 and 12 hours for i686. Append the following to {{ic|/etc/pacman.conf}} to activate the pfkernel repo:

+

== Installation ==

+

+

The reference PKGBUILD can be found at the {{AUR|linux-pf}} and at the [https://bitbucket.org/nous/linux-pf bitbucket.org mercurial repository].

+

+

=== From the unofficial repository (recommended) ===

+

+

Precompiled packages, generic and CPU-family optimized are uploaded at the [http://dl.dropbox.com/u/11734958/index.html pfkernel unofficial repository], usually within 6 hours of the AUR update for x86_64 and 12 hours for i686. Append the following to {{ic|/etc/pacman.conf}} to activate the pfkernel repo:

:{{bc|<nowiki>

:{{bc|<nowiki>

[pfkernel]

[pfkernel]

Line 35:

Line 20:

Server = http://dl.dropbox.com/u/11734958/$arch

Server = http://dl.dropbox.com/u/11734958/$arch

</nowiki>}}

</nowiki>}}

−

Running '''''pacman -Syyl pfkernel''''' will update all repos and show the available packages from pfkernel. Afterwards, installing linux-pf is as trivial as running '''''pacman -S linux-pf linux-pf-headers''''', but additional configuration steps must be performed; see the [[Linux-pf#Installation|Installation section]] below.

+

Running {{ic|$ pacman -Syyl pfkernel}} will update all repos and show the available packages from pfkernel. Afterwards, just install {{Pkg|linux-pf}} {{Pkg|linux-pf-headers}}, but additional configuration steps must be performed; see the [[#Installation|Installation]] section.

+

+

=== Manual compilation ===

−

== Compilation ==

There's a number of options a user is asked to choose from, should he/she select to compile from the PKGBUILD:

There's a number of options a user is asked to choose from, should he/she select to compile from the PKGBUILD:

−

::{{bc|<nowiki>

+

{{bc|<nowiki>

==> Hit <Y> to use your running kernel's config

==> Hit <Y> to use your running kernel's config

(needs IKCONFIG and IKCONFIG_PROC)

(needs IKCONFIG and IKCONFIG_PROC)

Line 49:

Line 35:

The <L> option tries some kind of autodetection of the user's hardware: it first tries to use the [[modprobed_db]] module database, then falls back to the linux kernel's '''''make localmodconfig''''' functionality. The last option is self-explanatory.

The <L> option tries some kind of autodetection of the user's hardware: it first tries to use the [[modprobed_db]] module database, then falls back to the linux kernel's '''''make localmodconfig''''' functionality. The last option is self-explanatory.

−

::{{bc|<nowiki>

+

{{bc|<nowiki>

==> Kernel configuration options before build:

==> Kernel configuration options before build:

<M> make menuconfig (console menu)

<M> make menuconfig (console menu)

Line 60:

Line 46:

Choose one of these to use your favourite user interface for configuring the kernel. Note that the last option might still prompt with unresolved/new configuration options, if you have selected <Y> or <L> in the previous step.

Choose one of these to use your favourite user interface for configuring the kernel. Note that the last option might still prompt with unresolved/new configuration options, if you have selected <Y> or <L> in the previous step.

−

::{{bc|<nowiki>

+

{{bc|<nowiki>

==> An non-generic CPU was selected for this kernel.

==> An non-generic CPU was selected for this kernel.

==> Hit <G> : to create a generic package named linux-pf

==> Hit <G> : to create a generic package named linux-pf

Line 70:

Line 56:

If you have selected a specific CPU optimization for your kernel in the previous step, the default action is to append the CPU to the package name. This way, a subsequent package update from the repository will pull the optimized package and not the generic one. This also will help better compatibility with 3rd party precompiled modules (e.g. nvidia-pf), which might break things if loaded on optimized linux-pf kernels.

If you have selected a specific CPU optimization for your kernel in the previous step, the default action is to append the CPU to the package name. This way, a subsequent package update from the repository will pull the optimized package and not the generic one. This also will help better compatibility with 3rd party precompiled modules (e.g. nvidia-pf), which might break things if loaded on optimized linux-pf kernels.

−

== Installation ==

+

==== Install compiled package ====

+

After the compilation finishes, an additional ''linux-pf-headers[-cpu]'' package will be created. Don't forget to install it too, if you plan on using additional modules like [[nvidia]] or [[virtualbox]].

After the compilation finishes, an additional ''linux-pf-headers[-cpu]'' package will be created. Don't forget to install it too, if you plan on using additional modules like [[nvidia]] or [[virtualbox]].

During the kernel installation, [[mkinitcpio]] will be called by the install script to recreate the initramfs.

During the kernel installation, [[mkinitcpio]] will be called by the install script to recreate the initramfs.

{{Note|If you make any changes to {{ic|/etc/mkinitcpio.conf}} after the installation, you must run '''''mkinitcpio -p linux-pf''''' to have the initial ramdisk recreated.}}

{{Note|If you make any changes to {{ic|/etc/mkinitcpio.conf}} after the installation, you must run '''''mkinitcpio -p linux-pf''''' to have the initial ramdisk recreated.}}

−

Then, you need to add a boot entry in {{ic|/boot/grub/menu.lst}} (or {{ic|/boot/grub/grub.cfg}}) which points to linux-pf (the following example is from one of the maintainer's boxes):

+

== Configuration ==

+

+

Then, you need to add a boot entry in [[Boot Loader#Configuration files|boot loader configuration file]] which points to linux-pf (the following example is from one of the maintainer's boxes):

{{bc|<nowiki>

{{bc|<nowiki>

title Linux-pf 3.2

title Linux-pf 3.2

Line 89:

Line 78:

{{bc|<nowiki>

{{bc|<nowiki>

MODULES="... lzo tuxonice_compress tuxonice_swap tuxonice_userui ..."

MODULES="... lzo tuxonice_compress tuxonice_swap tuxonice_userui ..."

−

HOOKS="... sata userui resume filesystems ..."

+

HOOKS="... block userui resume filesystems ..."

</nowiki>}}

</nowiki>}}

In the example above, TuxOnIce is setup to use a swap partition as the suspended image allocator. The ''resume'' hook must be placed before ''filesystems''. Also, a progress indicator is requested with ''userui''. Please read the [[TuxOnIce]] wiki page for more detailed information.

In the example above, TuxOnIce is setup to use a swap partition as the suspended image allocator. The ''resume'' hook must be placed before ''filesystems''. Also, a progress indicator is requested with ''userui''. Please read the [[TuxOnIce]] wiki page for more detailed information.

Line 95:

Line 84:

Last, you must choose whether you want to suspend using [[pm-utils]] or the [[Suspending_to_Disk_with_hibernate-script#Tuxonice_method|hibernate-script]]. Please, refer to the respective wiki pages for more details. [[TuxOnIce]] offers the option for a text mode or an even nicer [[fbsplash|framebuffer splash]] progress indicator.

Last, you must choose whether you want to suspend using [[pm-utils]] or the [[Suspending_to_Disk_with_hibernate-script#Tuxonice_method|hibernate-script]]. Please, refer to the respective wiki pages for more details. [[TuxOnIce]] offers the option for a text mode or an even nicer [[fbsplash|framebuffer splash]] progress indicator.

−

== Tweaks / Tips ==

+

== Tips and tricks ==

−

* If you notice disk-related performance problems or occational hickups, it might be an I/O scheduler issue. Try a different one than the linux-pf default (BFQ) by echoing to {{ic|/sys/block/sda/queue/scheduler}} ''cfq'', ''noop'' or ''deadline'': '''''echo noop >| /sys/block/sda/queue/scheduler'''''. Note, the aforementioned command only sets the I/O scheduler for the 1st hard drive and additional ''echos'' will be needed if you have more. If the situation improves, then append "''elevator''='''''cfq'''''" (or '''''noop''''' or '''''deadline''''') to the linux-pf command line in {{ic|/boot/grub/menu.lst}}, to make the change permanent.

+

+

* If you notice disk-related performance problems or occational hickups, it might be an I/O scheduler issue. Try a different one than the linux-pf default (BFQ) by echoing to {{ic|/sys/block/sda/queue/scheduler}} ''cfq'', ''noop'' or ''deadline'': {{ic|# echo noop >| /sys/block/sda/queue/scheduler}}. Note, the aforementioned command only sets the I/O scheduler for the 1st hard drive and additional ''echoes'' will be needed if you have more. If the situation improves, then append "''elevator''='''''cfq'''''" (or '''''noop''''' or '''''deadline''''') to the linux-pf command line in {{ic|/boot/grub/menu.lst}}, to make the change permanent.

* For people who build their own tailored kernels and compilation aborts with with an error about "missing include/config/dvb/*.h files", setting <M> at ''DVB for Linux'' at ''Device Drivers/Multimedia support'' and leaving everything else out, creates just the necessary dvb.h, which allows the compilation to continue.

* For people who build their own tailored kernels and compilation aborts with with an error about "missing include/config/dvb/*.h files", setting <M> at ''DVB for Linux'' at ''Device Drivers/Multimedia support'' and leaving everything else out, creates just the necessary dvb.h, which allows the compilation to continue.

== Forum thread for linux-pf ==

== Forum thread for linux-pf ==

+

There's a [https://bbs.archlinux.org/viewtopic.php?id=103462 discussion thread] at the BBS for reporting errors, impressions, ideas and requests.

There's a [https://bbs.archlinux.org/viewtopic.php?id=103462 discussion thread] at the BBS for reporting errors, impressions, ideas and requests.

Installation

From the unofficial repository (recommended)

Precompiled packages, generic and CPU-family optimized are uploaded at the pfkernel unofficial repository, usually within 6 hours of the AUR update for x86_64 and 12 hours for i686. Append the following to /etc/pacman.conf to activate the pfkernel repo:

Running $ pacman -Syyl pfkernel will update all repos and show the available packages from pfkernel. Afterwards, just install linux-pflinux-pf-headers, but additional configuration steps must be performed; see the Installation section.

Manual compilation

There's a number of options a user is asked to choose from, should he/she select to compile from the PKGBUILD:

==> Hit <Y> to use your running kernel's config
(needs IKCONFIG and IKCONFIG_PROC)
==> Hit <L> to run 'make localmodconfig'
==> Hit <N> (or just <ENTER>) to build an all-inclusive kernel like stock -ARCH
(warning: it can take a looong time)

The <Y> option is for users who have already compiled and are running a custom kernel. The PKGBUILD reads the running kernel's configuration and uses it for the subsequent compilation.
The <L> option tries some kind of autodetection of the user's hardware: it first tries to use the modprobed_db module database, then falls back to the linux kernel's make localmodconfig functionality. The last option is self-explanatory.

Choose one of these to use your favourite user interface for configuring the kernel. Note that the last option might still prompt with unresolved/new configuration options, if you have selected <Y> or <L> in the previous step.

==> An non-generic CPU was selected for this kernel.
==> Hit <G> : to create a generic package named linux-pf
==> Hit <ENTER> : to create a package named after the selected CPU
(e.g. linux-pf-core2 - recommended)
==> This option affects ONLY the package name. Whether or not the
==> kernel is optimized was determined at the previous config step.

If you have selected a specific CPU optimization for your kernel in the previous step, the default action is to append the CPU to the package name. This way, a subsequent package update from the repository will pull the optimized package and not the generic one. This also will help better compatibility with 3rd party precompiled modules (e.g. nvidia-pf), which might break things if loaded on optimized linux-pf kernels.

Install compiled package

After the compilation finishes, an additional linux-pf-headers[-cpu] package will be created. Don't forget to install it too, if you plan on using additional modules like nvidia or virtualbox.

In the example above, TuxOnIce is setup to use a swap partition as the suspended image allocator. The resume hook must be placed before filesystems. Also, a progress indicator is requested with userui. Please read the TuxOnIce wiki page for more detailed information.

Tips and tricks

If you notice disk-related performance problems or occational hickups, it might be an I/O scheduler issue. Try a different one than the linux-pf default (BFQ) by echoing to /sys/block/sda/queue/schedulercfq, noop or deadline: # echo noop >. Note, the aforementioned command only sets the I/O scheduler for the 1st hard drive and additional echoes will be needed if you have more. If the situation improves, then append "elevator=cfq" (or noop or deadline) to the linux-pf command line in /boot/grub/menu.lst, to make the change permanent.

For people who build their own tailored kernels and compilation aborts with with an error about "missing include/config/dvb/*.h files", setting <M> at DVB for Linux at Device Drivers/Multimedia support and leaving everything else out, creates just the necessary dvb.h, which allows the compilation to continue.

Forum thread for linux-pf

There's a discussion thread at the BBS for reporting errors, impressions, ideas and requests.