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

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



On 06.Sep 2005 - 23:12:48, Dirk Salva wrote:
> On Tue, Sep 06, 2005 at 08:45:20PM +0200, Helmut Wollmersdorfer wrote:
> > >Kannst Du es in Kurzfassung dokumentieren? Gern auch per Mail,
> > Lieber hier, denn wenn Pakete bauen hier nicht onT ist - was sonst?
> > Ich hab mir die Sourcen von kernel-patch-vserver2 genommen, und den 
> > Source mal deleted. Den Source vom vt1211 Patch reingestellt. 
> > Directories passend umbenannt.
> 
> 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?
> Kannst Du das auch mit einem "griffigeren" Beispiel erklären? In einem
> Jahr werd ich drüber lachen (vllt. auch schon morgen), aber jetzt
> momentan klinkt sich da was aus...

Ich denke er hat den enthaltenen Sourcecode geloescht, weil er einfach
nur das debian-Verzeichnis als Grundlage fuer ein eigenes
kernel-patch-xxx Paket nutzen wollte...

> > auch nicht mit debhelper installiert, muss man extra. Um es komplett zu 
> > behirnen, empfiehlt sich ein tieferer Blick in den Source von 
> > dh_installkpatches.
> 
> ??

Damit bekommst du aus einem Patch fuer den Kernel+debian-Verzeichnis ein
Paket gebaut welches den Patch so ablegt, dass du spaeter nur noch
make-kpkg ... --added_patches <deinpatch> brauchst um ihn beim Kernelbau
automatisch einzubauen.

> > 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?

Er hat fuer keinen Kernel was gebaut, er hat aus dem Patch ein
kernel-patch-Paket erstellt welches diesen Patch unter
/usr/src/kernel-patches so installiert, dass make-kpkg ihn findet.

> 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?

Das erzeugt dann das Kernel-Image, wobei der ebend installierte Patch
(aus dem selbstgebauten Patch-Paket) angewendet wird.

Das Beispiel ist fuer dein Modul-Problem total irrelevant, zeigt aber
deutlich, dass die Doku fuers Pakete bauen sehr loechrig ist.

> Ich erzähl mal, was ich vorgehabt habe (und was so nicht funktioniert
> hat), vielleicht kannst Du es mir anhand dessen erklären, also
> abstrahiert von Deinem Beispiel (Du kannst auch ein vollkommen fremdes
> Kernelmodul nehmen, so gibt es z.B. für madwifi keine offiziellen
> Pakete in irgendeiner Debian-Version):
> 
> http://www.cr0.net:8040/code/network/aircrack/#q180
> etwas weiter unten, "installing the hostap driver"
> Problem (für mich):
> In Stable ist hostap-driver 0.3.7, in testing ist 0.4.1. Der Patch aus
> der URL ist für 0.3.9, und in meinem Anfängerdenken bin ich davon
> ausgegangen, daß ein patch nicht unbedingt für jede Version
> funktionsfähig ist, sondern nur für die Source, für die er geschrieben
> wurde. Praktischerweise wird dort auch gleich ein .tar.gz der
> Treibersourcen angeboten. Nun, wenn ich so vorgehe, wie dort
> beschrieben, so erhalte ich hinterher Treiber auf dem System, auf
> welchem ich kompiliere, noch dazu nicht als .deb installiert, kriege
> ich also nicht wieder sauber aus dem System.
> 
> Und da wollte ich ansetzen. Habe das .tar.gz entpackt,
> den Patch drauf angewendet und wollte dann "einfach" dpkg-buildpackage
> darauf anwenden (und vorher dh_make). Und _das_ hat nicht funktioniert,

Richtig, siehe andere Mail, dafuer musst du etwas Hand anlegen.

> wohingegen das für "normale" Software, also keine Kernelmodule, sehr
> wohl funktioniert hat.

Ja, die ist ja auch nicht auf Variablen aus dem Kernel-Source/Header
angewiesen.

> 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.

All das passiert mit make-kpkg, du musst nur ein passendes
hostap-source-Paket aus deinem tar.gz+Patch+debian-Verzeichnis bauen und
installieren. 

>  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.

Ich dachte du konntest das debian-Verzeichnis des 0.3.7er hostap nutzen? 

Andreas

-- 
You will be recognized and honored as a community leader.



Reply to: