View previous topic :: View next topic |
Author |
Message |
bi-andrea Apprentice
Joined: 09 Mar 2010 Posts: 171 Location: cesenatico
|
Posted: Sat Jun 08, 2013 8:03 pm Post subject: come posso pacchettizzare il kernel complato? |
|
|
può sembrare banale, ma io uso abitualmente
Code: | emerge -b <nome pachetto> |
e lui me lo intalla e mi crea un binario in
Code: | /usr/portage/packages |
faccio così perchè ho un buon computer veloce, ma installo i binari in uno più vecchio e la cosa riesce bene senza intoppi, però col kernel è molto lento e chiedevo se si riesce ad avere un tarball o un binario simile come *.tbz2 che con un semplice comando tutti i moduli e binari vanno al loro posto.
come posso farlo? _________________ Quando arrivi a Linux è un trauma, abituati a Windows, quando arrivi a Gentoo è uno spavento col brivido , però quando lo capisci sei uscito dall'università "GNU/Linux" |
|
Back to top |
|
|
sabayonino Veteran
Joined: 03 Jan 2012 Posts: 1038
|
Posted: Sun Jun 09, 2013 11:46 am Post subject: |
|
|
Creare semplicemente un tarball (compresso o meno) della cartella /lib/modules/<kernel> , eventualmente i sorgenti in /usr/src/<kernel> e/o l'immagine e l'initramfs (se presente) in /boot in modo da poterlo trasferire comodamente (una sorta di mini-stage-3 dedicato solo al kernel) negli altri pc
Code: | # tar -cfv kernel-gentoo.tar /lib/modules/<kernel> /usr/src/<kernel> /boot/kernel-genkernel-XX /boot/initramfs-genkernel-XX |
e ripristinarlo
Code: | # tar -C / -xfv kernel-gentoo.tar |
[edit] Ovviamente assicurati che i drivers delle periferiche dell'altro pc (inclusi o meno nel kernel) siano stati compilati |
|
Back to top |
|
|
pierino_89 Guru
Joined: 03 Oct 2009 Posts: 524
|
Posted: Sun Jun 09, 2013 2:36 pm Post subject: |
|
|
Volendo puoi cambiare INSTALL_PATH (default: /boot) e INSTALL_MOD_PATH (default: / a cui viene aggiunto /lib/modules/$(KERNELRELEASE) ) durante il make, così puoi installare il tutto in una cartella e poi fare un tar di quella senza andare a cercare i vari elementi in giro.
I sorgenti non starei a portarli dietro, per quelli basta emergere i gentoo-sources relativi (o i sources del caso).
Quando ripristini il kernel ricordati di lanciare "module-rebuild rebuild". Portarsi dietro questo tipo di moduli in genere è inutile perché i componenti in userspace non saranno più della stessa versione (vedi drivers nvidia). _________________ Linux registered user 461710 |
|
Back to top |
|
|
bi-andrea Apprentice
Joined: 09 Mar 2010 Posts: 171 Location: cesenatico
|
Posted: Wed Jun 12, 2013 12:15 pm Post subject: |
|
|
Code: | Quando ripristini il kernel ricordati di lanciare [b]"module-rebuild rebuild"[/b]. Portarsi dietro questo tipo di moduli in genere è inutile perché i componenti in userspace non saranno più della stessa versione (vedi drivers nvidia). |
non lo vede come comando e mi ristituisce
Code: | -bash: module-rebuild: command not found |
_________________ Quando arrivi a Linux è un trauma, abituati a Windows, quando arrivi a Gentoo è uno spavento col brivido , però quando lo capisci sei uscito dall'università "GNU/Linux" |
|
Back to top |
|
|
pierino_89 Guru
Joined: 03 Oct 2009 Posts: 524
|
Posted: Wed Jun 12, 2013 12:19 pm Post subject: |
|
|
Devi installare il pacchetto omonimo: sys-kernel/module-rebuild _________________ Linux registered user 461710 |
|
Back to top |
|
|
sabayonino Veteran
Joined: 03 Jan 2012 Posts: 1038
|
Posted: Wed Jun 12, 2013 12:31 pm Post subject: |
|
|
pierino_89 wrote: | Devi installare il pacchetto omonimo: sys-kernel/module-rebuild |
...ed eseguire
Code: | # module-rebuild rebuild |
Altre opzioni
Code: | module-rebuild
module-rebuild [options] action [category/package]
Version: 0.5
Where options are:
-X - Emerge based on package names,
not exact versions.
-C - Disable all coloured output.
Where action is one of:
add - Add package to moduledb.
del - Delete a package from moduledb.
toggle - Toggle auto-rebuild of Package.
list - List packages to auto-rebuild.
rebuild - Rebuild packages.
populate - Populate the database with any
packages which currently install
drivers into the running kernel.
|
[edit] Questo comunque dipende su quale hardware viene passatto il kernel "imballato" |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Wed Jun 12, 2013 2:35 pm Post subject: |
|
|
Teoricamente (molto teoricamente, genkernel fa schifo, devi gestire BOOTDIR INSTALL_MOD_PATH e le tmp) dovrebbe bastare aggiungere (ovviamente controllata da apposita use flag se vuoi fare le cose per bene) una invocazione a genkernel (per module-rebuild ci vorrebbe un semaforo e non so se emerge ammette una invocazione ricorsiva) nell'ebuild.
In questo modo dovresti trovarti nel pacchetto moduli e kernel già compilato e completo.
Il problema del tirarsi dietro i sorgenti è legato prevalentemente alle verifiche sulle variabili quindi dovrebbe bastare l'esistenza di /usr/src/linux/.config
Altrimenti potresti provare con Quote: | ebuild kernel compile | , compilare il kernel (anche con genkernel basta che imposti la destinazione nella sandbox)e poi continuare l'esecuzione con Quote: | FEATURES="keeptemp keepwork" emerge -b kernel | o Quote: | ebuild kernel merge | . Che è la via più banale per avere il tutto senza troppe seccature.
Sicuramente se apri un bug per proporre la patch ti risponderanno a suon di fumose illazioni di stampo sacerdotale che non va bene, quindi non lo ho mai proposto.
Come per la faccenda di aggiungere direttamente al kernel i moduli esterni (che sarebbe utile per non ammattire con slot e controslot) ma tant'è... vedi quanto è stato scritto a proposito di unionfs e non ce li vedo i devel ad andare contro le policy imposte upstream...
Ma nulla ti vieta di farlo da te.
In genkernel, in alternativa, puoi agire con KERNCACHE INSTALL_MOD_PATH MINKERNPACKAGE e MODULESPACKAGE. Chissà perchè non c'è un modo per creare direttamente un tar.bz2 utile mah, credo che per questo si potrebbe aprire un bug. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
ago Developer
Joined: 01 Mar 2008 Posts: 1527 Location: Milan, Italy
|
Posted: Wed Jun 12, 2013 3:33 pm Post subject: |
|
|
Personalmente conservo il .config e la BzImage(non ho supporto ai moduli) |
|
Back to top |
|
|
bi-andrea Apprentice
Joined: 09 Mar 2010 Posts: 171 Location: cesenatico
|
Posted: Sat Jun 15, 2013 7:42 pm Post subject: |
|
|
Il tuo discorso è molto molto interessante, analizziamo....
djinnZ wrote: | Teoricamente (molto teoricamente, genkernel fa schifo, devi gestire BOOTDIR INSTALL_MOD_PATH e le tmp) dovrebbe bastare aggiungere (ovviamente controllata da apposita use flag se vuoi fare le cose per bene) una invocazione a genkernel (per module-rebuild ci vorrebbe un semaforo e non so se emerge ammette una invocazione ricorsiva) nell'ebuild.
In questo modo dovresti trovarti nel pacchetto moduli e kernel già compilato e completo. |
creare un ebuild è un discroso interessante e usa script di bash quindi bisogna conoscere quel linguaggio di programmazione e nel moi caso mi servirebbe binario.
quindi penso che prima devo capire come usare anche genkernel per creare i vari moduli, lernel e intramfs in una cartella come si presenterebbe se io avessi usato tar andandoli a prendere dove li installerebbe genkernel, da lì nasce lo script.
Quote: | Il problema del tirarsi dietro i sorgenti è legato prevalentemente alle verifiche sulle variabili quindi dovrebbe bastare l'esistenza di /usr/src/linux/.config |
/usr/src/linux/.config
serve perchè sono i pacchetti che stiamo installando che lo cercano e infatti mi va bene solo lui anche a me
Code: | Altrimenti potresti provare con [quote]ebuild [i]kernel[/i] compile[/quote], compilare il kernel (anche con genkernel basta che imposti la destinazione nella sandbox)e poi continuare l'esecuzione con [quote]FEATURES="keeptemp keepwork" emerge -b [i]kernel[/i][/quote] o [quote]ebuild [i]kernel[/i] merge[/quote]. Che è la via più banale per avere il tutto senza troppe seccature. |
come potrei scriverlo questo nell'ebuild?
Quote: | Sicuramente se apri un bug per proporre la patch ti risponderanno a suon di fumose illazioni di stampo sacerdotale che non va bene, quindi non lo ho mai proposto. | [/quote]
lasciamo stare mi darebbero picche
Quote: | Come per la faccenda di aggiungere direttamente al kernel i moduli esterni (che sarebbe utile per non ammattire con slot e controslot) ma tant'è... vedi quanto è stato scritto a proposito di unionfs e non ce li vedo i devel ad andare contro le policy imposte upstream...
Ma nulla ti vieta di farlo da te. |
infatti
Quote: | In genkernel, in alternativa, puoi agire con KERNCACHE INSTALL_MOD_PATH MINKERNPACKAGE e MODULESPACKAGE. Chissà perchè non c'è un modo per creare direttamente un tar.bz2 utile mah, credo che per questo si potrebbe aprire un bug. |
questa procedura non la conosco _________________ Quando arrivi a Linux è un trauma, abituati a Windows, quando arrivi a Gentoo è uno spavento col brivido , però quando lo capisci sei uscito dall'università "GNU/Linux" |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Mon Jun 17, 2013 9:17 am Post subject: |
|
|
Non la conosco neppure io, so che ci sono e mi sono sempre chiesto perché non prevedere direttamente la creazione di un tar appropriato invece che due. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
|