Po změnách na jednom serveru (moon
) jsem se rozhodl upgradovat taky jádro. O tom jak jsem postupoval, je tato sekce. Všechny verze jsou aktuální ke dni 2004-02-18.
Jádro 2.4.24 jsem získal, spolu s potřebnými nástroji z Backports. Pro úplnost uvádím související informace.
V souboru /etc/apt/sources.list
mám řádek:
deb http://www.backports.org/debian woody kernel-source-2.4.24 kernel-package
a s pomocí apt-get nainstaluji zdroje jádra a pomocné nástroje
# apt-get update # apt-get install kernel-source-2.4.24 kernel-package
Stáhl jsem si patch na jádro 2.4.24 do adresáře /root/tmp
# wget http://www.13thfloor.at/vserver/s_release/v1.26/patch-2.4.24-vs1.26.diff.gz
Zdroje jádra je třeba rozbalit a vytvořit symbolický odkaz
# cd /usr/src # tar xjf kernel-source-2.4.24.tar.bz2 # ln -s kernel-source-2.4.24 linux
Do zdrojů jádra si ještě nakopíruji konfiguraci běžícího jádra 2.4.20
# cp /boot/config-2.4.20-moon linux/moon.0
Připravené zdroje jádra je třeba zazáplatovat
# cd linux # zcat /root/tmp/patch-2.4.24-vs1.26.diff.gz| patch -p1
v průběhu záplatování se vyskytl problém:
patching file include/net/ip.h Hunk #1 FAILED at 29. 1 out of 1 hunk FAILED -- saving rejects to file include/net/ip.h.rej patching file include/net/route.h Hunk #1 succeeded at 33 (offset 1 line). Hunk #2 FAILED at 168. 1 out of 2 hunks FAILED -- saving rejects to file include/net/route.h.rej ... Hpatching file net/ipv4/udp.c Hunk #1 succeeded at 116 (offset 6 lines). Hunk #2 succeeded at 176 (offset 6 lines). Hunk #3 succeeded at 219 (offset 6 lines). Hunk #4 succeeded at 251 (offset 6 lines). Hunk #5 succeeded at 309 (offset 6 lines). Hunk #6 FAILED at 557. Hunk #7 succeeded at 1312 (offset 262 lines). 1 out of 7 hunks FAILED -- saving rejects to file net/ipv4/udp.c.rej
tento je třeba řešit ručne. Vypadá to že oprava je netriviální. Tím jsme skončili a samotný překlad jenž bychom provedi následujícím způsobem nemá smysl.
Ovšem řešení se našlo v použití jiného patche
# cd /root/tmp # wget http://vserver.13thfloor.at/Experimental/patch-2.4.24-1-vs1.24.1.diff # cd /usr/src/linux # cat /root/tmp/patch-2.4.24-1-vs1.24.1.diff| patch -p1
Tato záplata proběhla bez jakýchkoliv problémů. Pro pořádek jsem si přejmenoval adresář se zdroji jádra
# mv kernel-source-2.4.24 kernel-source-2.4.24-vs1.24.1
Poté jsem již mohl přistoupit k překladu
# cd /usr/src # ln -sf kernel/source-2.4.24-vs1.24.1 linux # cd /usr/src/linux # make-kpkg clean # make-kpkg --append-to-version -moon --revision 1 \ --config menu \ kernel_image modules_image
nahrávám konfiguraci z aktuálního jádra uloženou v moon.0
, ukládám konfiguraci do moon.1
beze změn a spouštím překlad opuštěním konfiguračního menu s uložením konfigurace.
K takto připravenému jádru si připravíme nastroje.
deb-src http://debian:9999/main sarge main contrib non-free
# apt-get source --build vserver
Je potřeba nechat v /etc/apt/sources.list
odkazy jen na stabilní větev a naše lokální balíčky.
# apt-get install --reinstall vserver