Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Versteckte Kernelabhängigkeiten
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Tue Jan 18, 2011 2:45 pm    Post subject: Versteckte Kernelabhängigkeiten Reply with quote

Hallo Leute,

um Module bei Änderung eines Kernels zu aktualisieren, gibt es ja
Code:
module-rebuild

Bestimmte Pakete gehen jedoch auch auf den aktuell installierten Kernel:
Code:
>>> Emerging (1 of 1) sys-fs/cryptsetup-1.1.3-r3
 * cryptsetup-1.1.3.tar.bz2 RMD160 SHA1 SHA256 size ... [ ok ]
 * Package:    sys-fs/cryptsetup-1.1.3-r3
 * Repository: gentoo
 * Maintainer: base-system@gentoo.org
 * USE:  amd64 elibc_glibc kernel_linux multilib nls userland_GNU
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Found kernel object directory:
 *     /lib/modules/2.6.36-gentoo-r1/build
 * Found sources for kernel version:
 *     2.6.36-gentoo-r1
 * Checking for suitable kernel configuration options...                                                                                                            [

Wie bekommt man all diese Pakte "zu fassen"?
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4408

PostPosted: Tue Jan 18, 2011 2:57 pm    Post subject: Reply with quote

Warum willst du das zu fassen bekommen? cryptsetup prüft nur, ob bestimmte Features im Kernel aktiviert sind (schau ins ebuild unter "pkg_setup"). Wenn die geforderten Features aktiviert sind ist cryptsetup glücklich.
Solltest du die entsprechenden Features mal deaktivieren, merkst du das sofort beim ersten Boot. Dann startest du deinen Failsafe-Fallback-Kernel, begibst dich auf die Fehlersuche, aktivierst alles was nötig ist, baust und installierst den Kernel, rebootest und cryptsetup ist wieder glücklich.

modules-rebuild braucht man nur, um Pakete neu zu bauen, die in /lib/modules/ ein kernel-Modul installieren. Dort gibt es nämlich pro Kernel ein eigenes Directory, bei einem neuen kernel fehlen dort einfach die ganze Module, weshalb z.B. der nvidia-driver nimmer geht, usw.
Back to top
View user's profile Send private message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Tue Jan 18, 2011 3:01 pm    Post subject: Reply with quote

franzf wrote:
Warum willst du das zu fassen bekommen?

Weil ich vielleicht mal den Kernel anpasse oder aktualisiere, ohne das Paket selber anzufassen.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4408

PostPosted: Tue Jan 18, 2011 8:06 pm    Post subject: Reply with quote

LinuxTom wrote:
franzf wrote:
Warum willst du das zu fassen bekommen?

Weil ich vielleicht mal den Kernel anpasse oder aktualisiere, ohne das Paket selber anzufassen.

Aber dabei bist du dann vorsichtig und kennst deine Spezialeinstellungen.
Du wirst bei verschlüsselten Partitionen kein CRYPT-*** raushauen. Oder ein INOTIFY. usw. Wie gesagt - du hast hoffentlich einen alten, erprobten Kernel, der dich garantiert ins System bringt. Wenn du tatsächlich elementares aus dem Kernel raushaust, kannst du damit wieder reparieren.

Ein Script, welches dir automatisch alle ebuilds neubaut, welche linux-info.eclass verwenden, kenn ich nicht. Theoretisch durch /var/db/pkg/* greppen, die Kandidaten sammeln und dann ein "emerge" starten. Keine Ahnung, ob einem die portage-api (via python) da direkt Funktionen für liefert - möglich wärs.
Back to top
View user's profile Send private message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Tue Jan 18, 2011 8:25 pm    Post subject: Reply with quote

franzf wrote:
... ob einem die portage-api (via python) da direkt Funktionen für liefert ...

Also nichts Fertiges. Demzufolge weiter aufpassen und selbst vielleicht so etwas bauen. Es soll ja nicht kontrolliert werden, ob das Feature im Kernel drin ist, sondern nur die Pakte identifizieren, die in den Kernel schauen. Mal sehen.

Theoretisch sollte es gehen:
Code:
pkg_setup() {
        local CONFIG_CHECK="~DM_CRYPT ~CRYPTO ~CRYPTO_CBC"
        local WARNING_DM_CRYPT="CONFIG_DM_CRYPT:\tis not set (required for cryptsetup)\n"
        local WARNING_CRYPTO_CBC="CONFIG_CRYPTO_CBC:\tis not set (required for kernel 2.6.19)\n"
        local WARNING_CRYPTO="CONFIG_CRYPTO:\tis not set (required for cryptsetup)\n"
        check_extra_config

Habe aber selber noch keine *.eclass geschrieben.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4408

PostPosted: Tue Jan 18, 2011 8:37 pm    Post subject: Reply with quote

LinuxTom wrote:
Habe aber selber noch keine *.eclass geschrieben.

Du sollst auch keine eigene eclass schreiben :D
Die Pakete, welche die Linux-Config überprüfen, greifen hier auf die linux-info-eclass zu - /usr/portage/eclass/linux-info.eclass. Wenn diese eingebunden wird, wird sie wohl auch gebraucht.
In /var/db/pkg/ werden die installierten Pakete samt allen Informationen gespeichert. Dort sollte auch was zu den eingebundenen eclasses zu finden sein - Bingo :P
Code:
$ cat /var/db/pkg/sys-fs/cryptsetup-1.1.3-r1/INHERITED
 multilib toolchain-funcs portability eutils versionator linux-info libtool

Und so kommst du an alle Pakete:
Code:
$ grep linux-info /var/db/pkg/*/*/INHERITED

Das zerdröseln überlass ich dir :)
Back to top
View user's profile Send private message
LinuxTom
l33t
l33t


Joined: 26 Mar 2006
Posts: 798

PostPosted: Wed Jan 19, 2011 5:48 am    Post subject: Reply with quote

Danke. :)
Code:
grep linux-info /var/db/pkg/*/*/INHERITED | sed 's/^\/var\/db\/pkg\//=/g' | sed -e 's/\/INHERITED.*$//g'
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum