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

Re: [make-kpkg] Doppelte Binaries in Alsa-Modules



On Tue, Jul 22, 2003 at 01:00:39AM +0200, Andreas Pakulat wrote:
> On 22.Jul 2003 - 00:21:55, Nikolaus Schulz wrote:
> > On Mon, Jul 21, 2003 at 08:38:20PM +0200, Andreas Pakulat wrote:
> > > > > Hmm, ein make-kpkg --rootcmd fakeroot modules_image hätte vollkommen
> > > > > gereicht. Das target modules_image kompiliert alle Module unter
> > > > > /usr/src/modules. 
> > > > 
> > > > Ähm, das hatte ich erstmal übersehen. :-)
> > > > Aber ist das ein kritischer Fehler?
> > > 
> > > Jaein, das was du ausgeführt hast führt zu deinen Problemen. Es ist
> > > ziemlich egal was du bei added_modules angibst, allerdings werden nicht
> > > angegebene Module nicht gebaut - auch wenn sie unter /usr/src/modules
> > > liegen. Wenn die Option dagegen fehlt wird alles von dort gebaut.
> > 
> > Moment, ich verstehe nicht recht. Ist das nicht das Gegenteil der
> > Aussage oben?
> 
> Hmm, das versteh ich jetzt nicht ganz. Ich hatte doch nur geschrieben,
> dass du nichts weiter angeben musst, wenn die Module unter
> /usr/src/modules liegen. Wenn du dennoch added_modules angibst werden
> nur die angegebenen Module gebaut (dort gibt man dann die Verz.namen
> unter /usr/src/modules an).

Ah ja, OK, so hab ich die Manpage auch verstanden. 
*Mißverständnis zu den Akten leg*

> > > > > Das ist nicht dazu da make-kpkg zu sagen das die
> > > > > Module für den Kernel sind. Das merkt er daran aus welchem kernel-tree
> > > > > er aufgerufen wurde.
> > > > 
> > > > Aha! Steht das irgendwo in der Doku?? 
> > > > Wenn ja, dann Asche auf mein Haupt. Mein Verdacht geht aber dahin daß
> > > > nicht.
> > > 
> > > Zum ersten Satz, ja das steht in man make-kpkg. Dort steht, das die
> > > Angabe Teil der Kernel-Version ist und damit ist ja wohl klar, das es
> > > dazu dient ein selbstgewähltes Suffix anzuhängen.
> > 
> > Das hatte ich gelesen und auch verstanden, glaube ich.
> > Will ja nicht trotzig klingen, aber deine Aussage geht daraus doch nicht
> > hervor, oder?
> 
> Nunja, wenn man sich mal mit den ersten paar Zeilen des Makefiles unter
> /usr/src/$Kernelversion beschäftigt, bzw. mit dem Kernelbauen i.A.
> stellt man schnell fest, dass man ausser der normalen
> Kernel-Versionsnummer (wie z.B. 2.4.20 oder 2.2.0) eine ExtraVersion
> angeben kann, die sogar in die Kernel-Version eingbaut wird (die ersten
> 5 Zeilen)

Joh. Das hab ich schon kapiert :-)
Genau das beeinflußt --append-to-version.

> > > > Nun gut. 
> > > > Was heißt "er merkt es am kernel-tree"? Verwendet er version.h, den
> > > > Verzeichnisnamen...?
> > > 
> > > Wahrscheinlich an der Headerdatei.
> >  
> > > > Und in jedem Falle finde ich das beschriebene Verhalten vom make-kpkg
> > > > höchst eigenartig. Mir ist schleierhaft, 
> > > > - woher der falsche Kernel-Name/Pfad kommt
> > > 
> > > Von dem append-to-version, damit hängst du den String an die
> > > Kernel-Version ran. Das Verzeichnis der Module wiederum wird aus der
> > > Kernel-Version gebildet.
> > 
> > Das ist nicht die Fehlerursache. Auf diese Weise sind die *korrekt*
> > plazierten Binaries im Paket generiert worden. 
> 
> Wie jetzt? Du wolltest doch wissen warum du unter /lib/modules einmal 
> $KERNELVERSION und einmal $KERNELVERSION-xxx hast? Das entstand dadurch,
> dass du --append-to-version xxx angegeben hast beim Bauen.

$KERNELVERSION-xxx ist ja auch richtig, nur das einfache $KERNELVERSION
ist als Pfad falsch. Woher hat er das?

> > > > - wie der auf den Trichter kommt *zwei* Binaries in *einem* Paket zu erstellen.
> > > 
> > > Wahrscheinlich liegt das an einem nicht ganz gesäuberten Kernel-Tree, so
> > > dass die alsa-module selbst in die xxx Verz. gehen und einige
> > > Core-Kernel-Files werden in das richtige Kernel-Version geschoben. 
> > 
> > Nicht ganz gesäuberter Kernel-Tree... 'clean' hab ich jedenfalls nicht
> > vergessen, da bin ich mir sicher. Weiß auch daß man das u.U. mehrmals
> > machen muß.
> 
> Hmm, naja ich weiss auch, das manche Makefiles das nicht interessiert
> was in EXTRAVERSION steht, z.B. i2c und lm-sensors. Mag sein das du auch
> so eines irgendwo in den Alsa-Sourcen hast. Was installieren die denn
> für Files in den jeweiligen /lib/modules/ Verzeichnissen?

Die ganz normalen *.o Dateien. Exakte Duplikate der Treiber wie sie auch
im richtigen Verzeichnis liegen.

> > > Mehr dazu erfährst du asu den Makefiles des Kernels.
> > 
> > Ach du liebe Zeit. 
> > In denen hab ich schon mal aus anderen Gründen rumgelesen, daß muß doch
> > nicht sein? :-/
> 
> Ich hab ja nicht gesagt, dass du die von vorne bis hinten verstehen
> musst. Aus den ersten 25 Zeilen von /usr/src/kernel-source-2.4.21
> entnehme ich alle meine oben gemachten Aussagen, plus das HOSTCC die
> Variable ist mit der man den zu verwendenen gcc festlegen kann.
> 
> > Und: abgesehen von der Kernel-Version, wie haben denn die Makefiles des
> > Kernels Einfluß auf den Build des Alsa-Moduls?
> 
> Naja, ich weiss nicht genau wie, aber innerhalb der Makefiles vom
> Alsa-Source-Code wird die Version des Kernels für den die Alsa-Module
> gebaut werden bestimmt. Und daher haben sicherlich die Kernel-Makefiles
> bzw. die daraus entstehenden Dateien Einfluss darauf wie das
> Alsa-Makefile die Verzeichnisse in
> /usr/src/modules/alsa-driver/debian/alsa-modules-$KERNELVERSION/lib/modules 
> nennt.

Hier wird wohl version.h ausgewertet. Hatte da beim Bauen des
Alsa-Moduls die Warnung man solle die Korrektheit der Versionsnummer
dort überprüfen. War korrekt :-) - also $KERNELVERSION-xxx.

Werd mal die Makefiles des Alsa-Pakets überprüfen, debian/rules und das
Haupt-Makefile...
Auf bugs.debian.org findet sich nichts passendes zu alsa-source, auch
nicht zu kernel-package.

greetz
Nikolaus



Reply to: