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

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



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

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

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

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

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

Andreas

-- 
Leitfaden durch die Phraseologie wissenschaftlicher Veröffentlichungen:
Englisch:
  appears to be an excellent choice to
Deutsch:
  vielleicht brauchbar für



Reply to: