[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Wie Modul-deb aus vollkommen fremden Sourcen bauen?



Dirk Salva wrote:

Vielleicht liegt an der späten Stunde, vielleicht auch an meiner
Allgemeinverfassung, aber das da oben ist schon verwirrend genug. Du
hast den Source erst genommen und dann mal deleted? Heh?

Den Source des Debian Paketes und daraus den (alten) Upstream-Source deleted;-)

Gebaut hab ich dann mit
$ dpkg-buildpackage -b -rfakeroot -tc -uc -D

Das gebaute Paket installiert sich dann mit
# dpkg -i kernel-patch-vt1211.deb
in /usr/src/patches
und lässt sich mit
# make-kpkg [...] --added-patches [...],vt1211 [...]

So, da sind noch mehrere Fragen offen:
für welchen Kernel hast Du mit dpkg-buildpackage gebaut?

Für garkeinen. Mein Paket ist ein kernel-patch, baut nur ein .deb (und das andere Zeugs). Das .deb lässt sich dann mit 'apt-get install' oder 'dpkg -i' installieren, wobei nur der Patch nach /usr/src/patches kopiert wird (und doku irgendwohin). Da wird nix kompiliert.

Reinpatchen und kompilieren kannst den Patch dann automatisch in _jeden_ Kernel, wobei der passende Patch automatisch ausgesucht wird. Das Kompilieren des Kernels und Patchen geschiet dann in einem Schritt:

# make-kpkg [...] --added-patches [...],vt1211 [...]

Ich muss für
einen Kernel bauen, den ich mit --append-to-version gebaut habe, und
nicht für einen generischen. Und das mit dem make-kpkg hab ich auch
nicht kapiert, was soll denn dieser Schritt?

Da wird der Kernel kompiliert.

So sieht die gesamte Sequenz aus:

# dpkg -i kernel-patch-vt1211_1.0_all.deb
# cd /usr/src/linux-source-2.6.12
# make-kpkg --rootcmd fakeroot --revision custom01 --added-patches vserver,vt1211 --append-to-version +vsvt1211 --initrd binary-arch

Danach habe ich dann gemacht, wo Du vermutlich hinwillst:

# apt-get install drbd0.7-module-source -t unstable
# cd /usr/src/
# tar xzf drbd0.7.tar.gz
# cd /usr/src/linux-source-2.6.12
# make-kpkg --rootcmd fakeroot --append-to-version +vsvt1211 modules_image

Und da wollte ich ansetzen. Habe das .tar.gz entpackt,

Soweit ich auf http://ftp.debian.org/debian/pool/main/h/hostap-driver/hostap-driver_0.4.1-1.diff.gz
sehe, versteht das Paket module-assistant.

den Patch drauf angewendet und wollte dann "einfach" dpkg-buildpackage
darauf anwenden (und vorher dh_make). Und _das_ hat nicht funktioniert,
wohingegen das für "normale" Software, also keine Kernelmodule, sehr
wohl funktioniert hat.
Meine zwei Probleme: ich brauche ein .deb der Kernelmodule
a) für einen anderen Rechner als den, auf dem ich baue, und
b) auch noch für eine andere Kernelversion, als die, mit der ich baue.
   Ich baue auf einem AMD64 im chroot, auf dem Zielrechner wird aber
   ein selbstkompilierter (aus testing) 2.6.11-k7 benutzt, dem ich zu
   allem Überfluss mit --append-to-version auch noch einen eigenen
   Versionsnamen gegeben habe. Dies muss ich dem .deb also auch noch
   übergeben.

Sollte funktionieren. Entweder über m-a mitgeben, oder so wie ich oben den drbd-modul compilieren.
Dann entstehen jede Menge an Varianten:

xp2400:/usr/src# ls drbd*.deb
drbd0.7-module-2.6.12+vserver_0.7.10-3+custom01_i386.deb
drbd0.7-module-2.6.12+vserver_0.7.11-1+custom01_i386.deb
drbd0.7-module-2.6.12+vsvt1211_0.7.11-1+custom01_i386.deb
drbd0.7-module-2.6.8-1-386_0.7.10-2+2.6.8-10_i386.deb
drbd-modules-2.4.26_0.7.5-1+10.00.Custom_i386.deb

 Obwohl, nein: Das .deb muss ja die source enthalten, und
 dann muss mit make-kpkg modules_image wiederum das .deb für den
 Zielrechner erstellt werden, eigentlich muss ich also zwei .deb bauen.
 Ich muss also nur wissen, wie ich aus Debian-fremden Modulsourcen ein
 Debian-Modulsource-.deb baue.

Genau.
Wenn Du es herausgefunden hast, dann poste den magischen Befehl;-)
Würde ich auch gern wissen.

Helmut Wollmersdorfer



Reply to: