# kernelinstall

## astaecker

Ich habe ein kleines Tool geschrieben, um die installierten Kernel zu verwalten. Mit kernelinstall kann man einen Kernel konfigurieren, bauen, neubauen oder entfernen. Oder einfach zwischen einzelnen Kernel wechseln.

Homepage

----------

## smg

Okay, schön hast du das gemacht. Weiss jetzt nich ob das so nützlich ist für alle, für mich persönlich nicht, habe das für mich in paar Zeilen Shellscript lösen können. Na ja toll, dass du dir die Mühe gemacht hast, werde es mir mal anschauen und testen.

----------

## astaecker

 *smg wrote:*   

> Weiss jetzt nich ob das so nützlich ist für alle, für mich persönlich nicht, habe das für mich in paar Zeilen Shellscript lösen können.

 

Wie gut, dass du weißt, was man braucht oder - noch besser - was man nicht braucht. Und dennoch nutzt du selber ein Tool für diesen Zweck.

 *smg wrote:*   

> Okay, schön hast du das gemacht. ... Na ja toll, dass du dir die Mühe gemacht hast, werde es mir mal anschauen und testen.

 

Freut mich, dass du mich lobst, bevor du das Programm auch nur angetestet hast. Dein Feedback ist aber dennoch gerne gesehen.

----------

## smg

Lies mal genau.  :Smile:  Ich weiß nicht pauschal was _man_ braucht sondern was _ich_ (persönlich) brauche. 

Es ist ein nettes Tool, aber für mich zur Zeit noch redundant, verstehst du? Hätte ich sowas nicht schon, dann würde ich natürlich dein Werkzeug verwenden, weils nützlich ist.

----------

## Child_of_Sun_24

Hi,

Ich finde die Idee interessant, selbst Programmieren kann ich (noch) nicht (Ok ein bisschen Basic von früher  :Smile:  ).

Habe dein Programm mal testweise auf meinem Rechner Installiert, habe allerdings nen amd64 und musste deshalb das ~amd64 Keyword in die ebuilds eintippen  :Smile:  Naja es lässt sich wunderbar installieren allerdings bekomme ich beim aufrufen von kernelinstall diese Fehlermeldung:

Babylon64 / # kernelinstall

Traceback (most recent call last):

  File "/usr/bin/kernelinstall", line 8, in ?

    import kernelinstall

  File "/usr/lib64/python2.4/site-packages/kernelinstall.py", line 6, in ?

    os.command("mount /boot")

AttributeError: 'module' object has no attribute 'command'

Es kommt daher weil ich die /boot Partition standardmäßig mounte um sie nicht jedesmal manuell einzuhängen wenn ich einen neuen Kernel installiere oder an der boot Konfiguration herumwerkele. Wenn ich die Partition vor dem Aufruf des Programms unmounte läuft es ganz normal, jedenfalls kommt die Fehlermeldung nicht.

Werde mir das Programm jetzt mal genauer anschauen.

Hoffe ich konnte behilflich sein.

CoS24

----------

## Child_of_Sun_24

Noch etwas was ich komisch finde, wenn ich "kernelinstall list" aufrufe zeigt er mir folgendes an:

TODO

0: gentoo-sources-2.6.20

1: x64-sources-2.6.20

Ich habe die gentoo-sources-2.6.20 installiert, das ist richtig so aber warum zeigt er mir unter 1 dann nochmal x64-sources-2.6.20 an, außer der gentoo kernel source ist keine andere installiert.

CoS24

*EDIT* Habe herausgefunden woran es liegt, ich gebe meinen Kernel Sourcen standardmäßig noch ein -Rechnername-x64 hinzu, wenn ich kernelinstall detail 0 mache kommt folgendes:

TODO

fullname: gentoo-sources-2.6.20

running: False

ebuild: /var/db/pkg/sys-kernel/gentoo-sources-2.6.20

sources: /usr/src/linux-2.6.20-gentoo

sources symlink: True

modules: 

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: 

boot config: 

boot config symlink: 

grub entry: False

Bei kernelinstall details 1 :

TODO

fullname: [no gentoo sources] x64-sources-2.6.20

running: True

sources: 

sources symlink: 

modules: /lib/modules/2.6.20-gentoo-Babylon-x64

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: 

boot config: 

boot config symlink: 

grub entry: False

Er scheint das /lib/modules/2.6.20-gentoo-x64 nicht der Kernel Source zuzuordnen wegen dem Namenszusatz.Last edited by Child_of_Sun_24 on Wed Feb 28, 2007 8:45 am; edited 1 time in total

----------

## smg

mach ma os.system() anstatt os.command() bitte

----------

## Child_of_Sun_24

Damit scheint es zu laufen aber der nächste Fehler kommt dann:

mount: /dev/sda1 already mounted or /boot busy

mount: according to mtab, /dev/sda1 is already mounted on /boot

Traceback (most recent call last):

  File "/usr/bin/kernelinstall", line 8, in ?

    import kernelinstall

  File "/usr/lib64/python2.4/site-packages/kernelinstall.py", line 463, in ?

    boot_systemmap_symlink_find()

  File "/usr/lib64/python2.4/site-packages/kernelinstall.py", line 139, in boot_systemmap_symlink_find

    name = os.readlink("/boot/System.map")

OSError: [Errno 22] Invalid argument: '/boot/System.map

----------

## smg

Ich bin zwar nicht der Author von dem Ding, aber System.map scheint bei dir _kein_ Symlink zu sein? Dann geht's auch nicht, müsste man nen Check einbauen!

```
try:

   name = os.readlink("/boot/System.map")

   OSError: [Errno 22] Invalid argument: '/boot/System.map

catch OSError:

   name = "/boot/System.map"
```

oder so..

----------

## Child_of_Sun_24

Was allerdings ebenfalls nicht erscheint wenn man /boot vor dem Aufruf unmountet

----------

## smg

 *Child_of_Sun_24 wrote:*   

> Was allerdings ebenfalls nicht erscheint wenn man /boot vor dem Aufruf unmountet

 

Klar, weil dein Boot ja schon gemountet ist, hier müsste man ebenfalls checken! 

```

mount: /dev/sda1 already mounted or /boot busy

mount: according to mtab, /dev/sda1 is already mounted on /boot 
```

P.S.: Sorry, keine Lust/Zeit jetzt das zu Debuggen, aber zerschieß dir dein System nicht!

----------

## Child_of_Sun_24

System.map ist kein Symlink, das stimmt, aber wieso tritt der Fehler dann nur auf wenn /boot beim Programmaufruf gemountet ist ?

CoS24

----------

## Child_of_Sun_24

Keine Sorge ich bin schnell im wiederherstellen :->

Aber so ganz nett, netter wäre es mit ner tui  :Smile: 

CoS24

----------

## smg

Sorry ich kann grad echt nicht, vielleicht jemand anders, nimms nich persönlich.  :Smile: 

----------

## astaecker

Ich hätte mir wohl mehr Gedanken, um die Umstellung machen sollen. Werde mich gleich mal ranmachen, die Fehler zu beheben.

----------

## astaecker

 *smg wrote:*   

> Lies mal genau.  Ich weiß nicht pauschal was _man_ braucht sondern was _ich_ (persönlich) brauche. 
> 
> Es ist ein nettes Tool, aber für mich zur Zeit noch redundant, verstehst du? Hätte ich sowas nicht schon, dann würde ich natürlich dein Werkzeug verwenden, weils nützlich ist.

 

Hatte ich anders verstanden. Sorry.

@alle:

Ich habe libkernelinstall-0.1.2 hochgeladen und das Overlay aktualisiert. Ein Umbennen des Ebuilds reicht aber auch.

Desweiteren habe ich auf der Webseite einen Troubleshoot-Bereich eingeführt, der auf Probleme mit dem Namen-Schema eingeht.

 *Child_of_Sun_24 wrote:*   

> Aber so ganz nett, netter wäre es mit ner tui 

 

Was ist 'tui' ?

----------

## Finswimmer

TUI

    Text-based User Interface

----------

## Child_of_Sun_24

Ok, habe es installiert, aber jetzt kommt dieser Fehler bei gemounteter Boot Partition:

Traceback (most recent call last):

  File "/usr/bin/kernelinstall", line 8, in ?

    import kernelinstall

  File "/usr/lib64/python2.4/site-packages/kernelinstall.py", line 6, in ?

    mount = true

NameError: name 'true' is not defined

Du hast vergessen bei mount = true und mount = false die komischen dinger hinzumachen, sollte heißen :

mount = 'true'

....

mount = 'false'

in der datei /usr/lib64/python2.4/site-packages/kernelinstall.py.

jedenfalls läuft es dann bei mir auch mit gemounteter /boot Partition.

CoS

----------

## Child_of_Sun_24

Habe jetzt mal alle Kernel-Files von /boot entfernt, auch die System.map, aber er zeigt mir plötzlich drei Kernel-Sourcen an:

mount: /dev/sda1 already mounted or /boot busy

mount: according to mtab, /dev/sda1 is already mounted on /boot

0: gentoo-sources-2.6.20

1: ./linux-gentoo-sources-2.6.20

2: gentoo-Babylon-x64-sources-2.6.20

Wie vorher auch schon sind die x64-Sources dabei diesmal aber als gentoo-Babylon-x64-sources, die ./linux-gentoo-sources kann ich nicht nachvollziehen, da er mir keinen Pfad oder so angibt:

Babylon64 / # kernelinstall details 1

mount: /dev/sda1 already mounted or /boot busy

mount: according to mtab, /dev/sda1 is already mounted on /boot

fullname: [no gentoo sources] ./linux-gentoo-sources-2.6.20

running: False

sources: 

sources symlink: True

modules: 

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: 

boot config: 

boot config symlink: 

grub entry: False

Aber wie gesagt so läuft es schon wunderbar.

CoS24

----------

## Child_of_Sun_24

Habe jetzt mit kernelinstall rebuild 0 mal den Kernel neu gebaut, das einzige was mir auffällt ist das er die nicht vorhandenen anderen Sourcen ebenfalls in die grub.conf schreibt und er die root Partition nicht erkennt, er schreibt root=/dev/sda1 aber bei mir ist root=/dev/sda3.

CoS

----------

## astaecker

 *Child_of_Sun_24 wrote:*   

> ...
> 
> NameError: name 'true' is not defined

 

Versuche mich gerade an einer KDE/QT-Variante von kernelinstall und das war die C++ Syntax. In Python werden die boolschen Werte groß geschrieben.

 *Child_of_Sun_24 wrote:*   

> Wie vorher auch schon sind die x64-Sources dabei diesmal aber als gentoo-Babylon-x64-sources, die ./linux-gentoo-sources kann ich nicht nachvollziehen, da er mir keinen Pfad oder so angibt:

 

Ich habe die Symlinks nitcht auf relative oder absolute Pfade untersucht. Habe ich in libkernelinstall-0.1.3 behoben.

Aber kannst du mir die Details von den beiden anderen Kerneln posten. Das sollte nur einen Eintrag ergeben.

 *Child_of_Sun_24 wrote:*   

> Habe jetzt mit kernelinstall rebuild 0 mal den Kernel neu gebaut, das einzige was mir auffällt ist das er die nicht vorhandenen anderen Sourcen ebenfalls in die grub.conf schreibt

 

Kannst du mir das auch mal posten.

 *Child_of_Sun_24 wrote:*   

> ... und er die root Partition nicht erkennt, er schreibt root=/dev/sda1 aber bei mir ist root=/dev/sda3.

 

Es gibt eine /etc/kernelinstall.conf, aus der die Informationen gezogen werden. Die musst du anpassen. Habe jetzt auch einen Hinweis darauf in das Ebuild geschrieben.

P.S.: Vielen Dank fürs Testen und das Feedback.

----------

## Child_of_Sun_24

Ok jetzt sind es noch ein paar mehr, habe die System.map und die config in System-legacy.map und config-legacy umbenannt und per Symlink auf System.map und config gelegt, jetzt zeigt er mir :

0: gentoo-sources-2.6.20

1: ./linux-gentoo-sources-2.6.20

2: gentoo-Babylon-x64-sources-2.6.20

3: ./System-legacy.map-sources-

4: legacy-sources-

5: ./config-legacy-sources-

6: title  ServerOS-sources-

Babylon64 boot # kernelinstall details 0

mount: /dev/sda1 ist bereits eingehngt oder /boot wird gerade benutzt

mount: Laut mtab ist /dev/sda1 schon auf /boot eingehngt

fullname: gentoo-sources-2.6.20

running: False

ebuild: /var/db/pkg/sys-kernel/gentoo-sources-2.6.20

sources: /usr/src/linux-2.6.20-gentoo

sources symlink: 

modules: 

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: 

boot config: 

boot config symlink: 

grub entry: False

Babylon64 boot # kernelinstall details 1

mount: /dev/sda1 ist bereits eingehngt oder /boot wird gerade benutzt

mount: Laut mtab ist /dev/sda1 schon auf /boot eingehngt

fullname: [no gentoo sources] ./linux-gentoo-sources-2.6.20

running: False

sources: 

sources symlink: True

modules: 

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: 

boot config: 

boot config symlink: 

grub entry: False

Babylon64 boot # kernelinstall details 2

mount: /dev/sda1 ist bereits eingehngt oder /boot wird gerade benutzt

mount: Laut mtab ist /dev/sda1 schon auf /boot eingehngt

fullname: [no gentoo sources] gentoo-Babylon-x64-sources-2.6.20

running: True

sources: 

sources symlink: 

modules: /lib/modules/2.6.20-gentoo-Babylon-x64

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: 

boot config: 

boot config symlink: 

grub entry: False

Babylon64 boot # kernelinstall details 3

mount: /dev/sda1 ist bereits eingehngt oder /boot wird gerade benutzt

mount: Laut mtab ist /dev/sda1 schon auf /boot eingehngt

fullname: [no gentoo sources] ./System-legacy.map-sources-

running: False

sources: 

sources symlink: 

modules: 

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: True

boot config: 

boot config symlink: 

grub entry: False

Babylon64 boot # kernelinstall details 4

mount: /dev/sda1 ist bereits eingehngt oder /boot wird gerade benutzt

mount: Laut mtab ist /dev/sda1 schon auf /boot eingehngt

fullname: [no gentoo sources] legacy-sources-

running: False

sources: 

sources symlink: 

modules: 

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: 

boot config: /boot/config-legacy

boot config symlink: 

grub entry: False

Babylon64 boot # kernelinstall details 5

mount: /dev/sda1 ist bereits eingehngt oder /boot wird gerade benutzt

mount: Laut mtab ist /dev/sda1 schon auf /boot eingehngt

fullname: [no gentoo sources] ./config-legacy-sources-

running: False

sources: 

sources symlink: 

modules: 

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: 

boot config: 

boot config symlink: True

grub entry: False

Babylon64 boot # kernelinstall details 6

mount: /dev/sda1 ist bereits eingehngt oder /boot wird gerade benutzt

mount: Laut mtab ist /dev/sda1 schon auf /boot eingehngt

fullname: [no gentoo sources] title  ServerOS-sources-

running: False

sources: 

sources symlink: 

modules: 

boot_kernel: 

boot kernel symlink: 

boot systemmap: 

boot systemmap symlink: 

boot config: 

boot config symlink: 

grub entry: True

Er scheint für alles was Augenscheinlich in den verschiedenen Kategorien namentlich nicht zusammenpasst als eigenen Kernel zu sehen. Wobei 0 die eigentlichen Sourcen sind die ich per kernelinstall rebuild 0 auch backen kann.

Bin im moment noch bei Version 0.1.2 werde aber spätestens Morgen mal aktualisieren, habe heute nicht mehr viel Zeit.

Die grub.conf habe ich wieder nach dem Standard angepasst damit mein System läuft, aber die Zeilen waren halt:

title ./linux-gentoo-sources-2.6.20

root (hd0,0)

kernel /vmlinuz root=/dev/sda1

title gentoo-Babylon-x64-sources-2.6.20

root (hd0,0)

kernel /vmlinuz root=/dev/sda1

title gentoo-sources-2.6.20

root (hd0,0)

kernel /vmlinuz root=/dev/sda1

jedenfalls soweit ich mich errinnere, mache gerade noch mal ein rebuild, wenn ich nachher Zeit habe poste ich sie nochmal.

Und kein Problem, mir macht Beta-Testen  :Smile:  Spaß.

CoS24

----------

## astaecker

Ich habe Version 0.1.4 von libkernelinstall und kernelinstall hochgeladen. Damit wurde bei mir ein Kernel mit der local-Erweiterung nun endlich richtig erkannt.

----------

## Child_of_Sun_24

Hi, werde es gleich mal ausprobieren, hier nochmal die grub.conf einträge, die ersten waren falsch:

title Gentoo Linux: ./linux-gentoo-sources-2.6.20

root (hd0,0)

kernel  root=/dev/sda3

title Gentoo Linux: ./linux-gentoo-sources-2.6.20

root (hd0,0)

kernel  root=/dev/sda3

title Gentoo Linux: gentoo-sources-2.6.20

root (hd0,0)

kernel /boot/vmlinuz-2.6.20-gentoo root=/dev/sda3

----------

## Child_of_Sun_24

Ok, soweit alles klar, allerdings gibt er mir immer noch zwei Versionen an, die zweite ist wegen dem Symlink /usr/src/linux da er diesen der anderen Source nicht zuordnet.

Babylon64 ~ # kernelinstall list

0: gentoo-Babylon-x64-sources-2.6.20

1: gentoo-sources-2.6.20

Babylon64 ~ # kernelinstall details 0

fullname: gentoo-Babylon-x64-sources-2.6.20

running: True

ebuild: /var/db/pkg/sys-kernel/gentoo-2.6.20

sources: /usr/src/linux-2.6.20-gentoo

sources symlink: False

modules: /lib/modules/2.6.20-gentoo-Babylon-x64

boot kernel: /boot/vmlinuz-2.6.20-gentoo-Babylon-x64

boot kernel symlink: False

boot systemmap: /boot/System.map-2.6.20-gentoo-Babylon-x64

boot systemmap symlink: False

boot config: /boot/config-2.6.20-gentoo-Babylon-x64

boot config symlink: False

grub entry: True

Babylon64 ~ # kernelinstall details 1

fullname: gentoo-sources-2.6.20

running: False

sources: 

sources symlink: True

modules: 

boot_kernel: 

boot kernel symlink: False

boot systemmap: 

boot systemmap symlink: False

boot config: 

boot config symlink: False

grub entry: True

CoS24

----------

## Child_of_Sun_24

Achso, benutze jetzt Version 0.1.4 und habe meinen Selbstinstallierten Kernel komplett entfernt, ich mag das Programm  :Smile: 

CoS24

----------

## astaecker

 *Child_of_Sun_24 wrote:*   

> Ok, soweit alles klar, allerdings gibt er mir immer noch zwei Versionen an, die zweite ist wegen dem Symlink /usr/src/linux da er diesen der anderen Source nicht zuordnet.

 

Dieser Fehler habe ich mit libkernelinstall-0.1.5 behoben. Auch habe ich in den Ebuilds auch das ~amd64 Keyword gesetzt, da es zumindestens bei dir zu funktionieren scheint.

----------

## Child_of_Sun_24

Ich werde bei nächster gelegenheit mal 0.1.5 ausprobieren, werde mich dann nochmal melden wenn es Probleme gibt.

CoS24

----------

## Child_of_Sun_24

Bekomme immer noch zwei Kernel angezeigt, wegen dem sources symlink also /usr/src/linux irgendwas läuft da noch nicht rund.

CoS24

----------

## astaecker

Da versuche es doch einfach nochmal mit der Version 0.1.7 . Damit konnte ich den Fehler ausbügeln.

----------

## Child_of_Sun_24

Perfekt, der Fehler ist wirklich weg  :Smile:  Installiere mal ne zweite Kernel Source zum testen vom wechseln.

CoS24

----------

