Protože si pro vlastní potřebu vždycky překládám jádro sám, nemohu využívat řady přeložených balíčků jenž mají úzkou vazbu právě na jádro. Z tohoto důvodu jsem si taky překládal CIPE. Po nainstalování zdrojů a rozabalení jsem je zkompiloval spolu s ostatními moduly příkazem
#
export PATCH_THE_KERNEL=NO#
make-kpkg clean#
make-kpkg --append-to-version -yoda --revision 1 modules_image
Nainstalovaný modul pěkně funguje.
Po nějaké době jsem potřeboval použít jádro 2.4.22
. CIPE ovšem nešel s tímto jádrem přeložit. Brzy jsem zjistil, že jádro 2.4.22
v Debianu není čisté vanilla jádro od Linuse, ale je vývojáři Debianu upraveno. Zcela jistě jsou do něj portovány nějaké věci z jader 2.6.0-pre
. Vyvstal problém jak CIPE s tímto jádrem přeložit. Možnost použití vanilla jádra jsem si ponechal až jako poslední možnost a jal se hledat řešení.
Upravil jsem soubor /usr/src/modules/cipe/cipe/output.c
následujícím způsobem:
$ diff -u output.c.orig output.c
patch:cipe-1.5.4free-6_for_kernel-2.4.22_part2;
Zbývalo dořešit jakým způsobem a kde definuji identifikátor LINUX_26
který oznamuje že se jedná o jádro do kterého byly přepsány některé věci z jádra 2.6.0-pre
. První pokus byl zavést tento identifikátor v souboru /usr/src/linux/include/linux/version.h
.
#define LINUX_26 1
Tento soubor se ovšem generuje a tak opravdu není nejvhodnějším místem. Poté jsem se rozhodl pro „špinavý“ hack. Definici jsem přidal do souboru /usr/src/modules/cipe/cipe/cipe.h
patch:cipe-1.5.4free-6_for_kernel-2.4.22_part2;
Jak je vidět definici symbolu LINUX_26
jsem podmínil verzí jádra 2.4.22
, neboť nevím jak zjistit že se jedná o upravené jádro pro Debian a počítám s tím že budu překládat jen toto upravené jádro.