logo kernelpkg

KERNELPKG Tool for Slackware (11.0 or upper) by submax

[compatible also with slack-based distro as like as zenwalk or ports slamd64, slackintosh...]
[screenshot 1] [screenshot 2]

Kernelpkg is a tool that compile and package with tgz-format the Linux kernel (2.4.x, 2.6.x or 3.x.y). The package generated, will called "kernel-image", and is compostite from kernel and modules (differently from the slackware's packages original, because those files are separated in two packages: "kernel" and "kernel-modules").
The package "kernel-image" also provides the upgrade automatic of the pc's bootloader on which will be installed.
The tool offers the oppurtunity to create, in addition, the package of headers (files *.h necessary for compile the programs) and also the package of source (for compile external modules).
In conclusion, this tool offers, the possibility to obtain the packages portable and maintains a system orderly and clean.
The portability allows to compile an optimized kernel in order to be used on obsolete pc's, using a more recent pc with greater computational power, saving a lot of time.
For power users that want to understand how this works, i can say that kernelpkg is like a slackbuild very improved (i am start from slackbuilds of mythical Patrick Volkerding and other).
Inside file /usr/doc/kernelpkg-0.9.6/thanks.txt there are major contribs of project.

DOWNLOAD KERNELPKG v0.9.6 (source included)
n° of download 312, size 204 KB

UNIVERSAL PACKAGES OF KERNEL LINUX FOR SLACKWARE 13.1 for example* generated from kernelpkg:

*notes: based on config-huge by Pat with detect bootloader type, with SMP, without initrd (all modules of chips and fs are built-in), Preemptible Kernel (Low-Latency Desktop), i686 optimized

kernel-image; kernel-headers; kernel-source; config

SMALL HOWTO: (work in progress...)

(the commands are example, those are only to understand how it works then you can customize the procedure, if you want)

0) install the kernelpkg tool and you do all steps by root, obviously ;)
tar -xvzf kernelpkg-0.9.6.tar.gz
cd kernelpkg-0.9.6
upgradepkg --install-new kernelpkg-0.9.6-noarch-1sm.tgz

1) download the last version's (or version you need) tarball of kernel 2.6 or 2.4 in /tmp (from slackware's release 12.0 the linux 2.4.x is not support but the kernelpkg tool maintain compatibility for compile the old 2.4 on slackware 11.0 or minor)
cd /tmp
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-

2) extract the source tarball with
tar -xvjf linux-

3) [IMP] create the link "linux" in /usr/src to directory of source
rm -rf /usr/src/linux
ln -sf /tmp/linux- /usr/src/linux
ATTENTION: this link is very important in quanto serve a kernelpkg per "l'aggancio" alla directory dei sorgenti da compilare

4) scaricare il config originale slackware del kernel linux da un mirror di slackware o dal cd/dvd di slackware
(link: ftp//ftp.slackware.com/pub/slackware/slackware-current/source/k/config-generic- oppure un'altro metodo alternativo è prendere la configurazione del kernel attualmente avviato.

5) copiarlo in /usr/src/linux
avendo il config per la versione del kernel che si và a compilare:
cp config-generic- /usr/src/linux/.config
oppure copiando il config del kernel attuale
zcat /proc/config.gz > /usr/src/linux/.config

6) adattare la config alla nuova e più recente versione del kernel linux con
cd /usr/src/linux
make oldconfig

7) rifinire la config per esempio con
make menuconfig
IMP: mettere il chip del controller ide/sata della scheda madre e il tipo di filesystem della partizione di root, BUILT-IN; oppure usare l'initrd, ma lo sconsiglio, io lo odio, ovviamente se nel vostro caso è necessario per qualsiasi motivo usatelo.

8) ora, è arrivato il momento di usare il mio tool, semplicemente digitando (da qualsiasi percorso):
oppure se volete tutti i pacchetti
kernelpkg --also-headers --also-source
oppure se usate bootloader differenti da lilo, per conservare l'aggiunta automatica della nuova voce, potete aggiungere
kernelpkg --also-headers --also-source --bootloader detect
se volete usare initrd (attenzione i moduli dipendono dalla configurazione del pc)
kernelpkg --also-headers --also-source --bootloader detect --initrd sis5513:pata_sis:ext3
(per ulteriori informazioni "man kernelpkg" o "kernelpkg --help" per un piccolo riepilogo delle opzioni)

9) dopo un pò di tempo necessario per la compilazione e la costruzione del pacchetto
vi ritroverete il tgz, kernel-image*.tgz, sotto /usr/src

10) Ora installiamo il kernel che è il pacchetto kernel-image, gli altri pacchetti sono opzionali.
installpkg /usr/src/kernel-image*.tgz
(aggiungerà  automaticamente la nuova voce al bootloader lilo)
IMP: meglio NON usare mai upgradepkg perchè richiamando al suo interno removepkg, rimuoverà  il pacchetto e quindi i file del vecchio kernel, mentre invece è sempre meglio mantenere e opzionalmente rimuovere in un secondo momento; inoltre potrebbe anche essere il kernel che state utilizzando.

11) avete finito!!! (probabilmente dovrete rifinire la configurazione di lilo per le vostre esigenze)

Links utili:
* topic inizio progetto e testing
* topic progetto
HOWTO utili per la ricompilazione "classica"
* compilazione classica kernel linux 2.4.x in italiano
* compilazione classica kernel linux 2.6.x in italiano
* la configurazione, menuconfig
* compilazione
* cenni sulla compilazione
* documentazione kernel 2.6 gentoo
* esempio configurazione kernel
* ricerca kernel drivers