This is an old revision of the document!
[mmazur@rudy(pldac) linux-libc-headers]$ export|grep -i llh declare -x LLHDIR="/home/users/mmazur/devel/pld/sandbox/linux-libc-headers/" [mmazur@rudy(pldac) linux-libc-headers]$ pwd /home/users/mmazur/devel/pld/sandbox/linux-libc-headers [mmazur@rudy(pldac) linux-libc-headers]$ ls 2.4 cvs linux-libc-headers skrypty tmp 2.6 diffy paczka sources zepsute
Pod 'linux-libc-headers' jest zawartość cvsu, 'scripts' to link symboliczny do 'linux-libc-headers/scripts', jest tam kilka przydatnych rzeczy. W 'sources' są trzymane źródła kerneli, natomiast pod '2.4' i '2.6' są wyciągnięte ze źródeł nagłówki. Pierwsza rzecz, to zassać najnowszy kernel, rozpakować i wyciągnąć z niego nagłówki. W tym celu pierw sprawdzimy które katalogi z nagłówkami nas interesują.
[mmazur@rudy(pldac) linux-libc-headers]$ ls 2.6/2.6.12.2/include/ asm-alpha asm-generic asm-m68k asm-ppc64 asm-sparc64 mtd asm-arm asm-h8300 asm-m68knommu asm-s390 asm-um scsi asm-arm26 asm-i386 asm-mips asm-sh asm-v850 sound asm-cris asm-ia64 asm-parisc asm-sh64 asm-x86_64 asm-frv asm-m32r asm-ppc asm-sparc linux
Oto którymi nagłówkami interesowaliśmy się ostatnio. No to teraz dodajemy z obecnego kernela.
[mmazur@rudy(pldac) linux-libc-headers]$ mkdir 2.6/2.6.13.2 [mmazur@rudy(pldac) linux-libc-headers]$ cd 2.6/2.6.13.2/include/ [mmazur@rudy(pldac) include]$ ls acpi asm-cris asm-i386 asm-m68knommu asm-ppc64 asm-sparc asm-x86_64 media rxrpc asm-alpha asm-frv asm-ia64 asm-mips asm-s390 asm-sparc64 asm-xtensa mtd scsi asm-arm asm-generic asm-m32r asm-parisc asm-sh asm-um linux net sound asm-arm26 asm-h8300 asm-m68k asm-ppc asm-sh64 asm-v850 math-emu pcmcia video [mmazur@rudy(pldac) include]$ rm -rf acpi/ math-emu/ media/ net pcmcia/ rxrpc/ video/
No to pozbyliśmy się nieistotnych katalogów. Robimy diffy.
[mmazur@rudy(pldac) linux-libc-headers]$ cd scripts [mmazur@rudy(pldac) scripts]$ ./mkdiffs.sh 2.6.12.2 2.6.13.2 [mmazur@rudy(pldac) scripts]$ cd ../diffy/ [mmazur@rudy(pldac) diffy]$ ls -lh total 3.9M -rw------- 1 mmazur users 16K Sep 28 19:56 add -rw------- 1 mmazur users 424 Sep 28 19:56 del -rw------- 1 mmazur users 3.1M Sep 28 19:55 full.diff -rw------- 1 mmazur users 794K Sep 28 19:56 specific.diff
W 'add' jest lista plików dodanych w nowej wersji kernela, w 'del' usuniętych, 'full.diff' to pełny diff (diff -urN), natomiast 'specific.diff' to diff tylko pomiędzy plikami, które istnieją w obu wersjach kernela. Lista w 'add' jest taka długa, bo doszła nowa architektura, ale dodawaniem i wywalaniem plików, to już się ja zajmę.
Główna zabawa jest z nałożeniem 'specific.diff' na ostatnie llh. Trzeba pamiętać o wywaleniu z diffa makr user, kernel i __iomem (i ewentualnie jakiś innych z linux/compiler.h). Poza tym nic nie powinno includować linux/config.h, a jak coś includuje asm-generic/*, to zostawić mi, bo to jest dziwnie rozwiązane.