User Tools

Site Tools


people:mmazur

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.

people/mmazur.1131094595.txt.gz · Last modified: 2005-11-04 09:56 by mmazur