Kernel und seine Module auf anderem Rechner installieren

rMarkus

Chuck The Plant
Hallo,

auf einem Rechner habe ich einen Kernel und neue .ko-Module erzeugt.

Diese möchte ich nun auf zwei weiteren Systemen installieren, was ist zu tun?

Danke
 
Verpacke den neuen Kernel inklusive der Module in ein Archiv.

Bei 4.x:
Code:
tar -czPpf Kernel.tgz /kernel /modules
Bei 5.x:
Code:
tar -czPpf Kernel.tgz /boot/kernel
Dann hast du ein Archiv, das du auf jedem beliebigen Rechner wieder auspacken kannst:
Code:
tar -xzPpf Kernel.tgz
Wenn du auf dem Zielsystem schon mal einen Kernel kompiliert hattest, dann ist der schreibgeschützt. Um den zu überschreiben, muß du zuerst den Schreibschutz aufheben:
Code:
chflags noschg /kernel               # Auf 4.x
chflags noschg /boot/kernel/kernel   # Auf 5.x
 
Danke für die Antworten.

Der Bootloader muss nicht angefasst werden oder eine Art "Lilo" geschrieben werden?
 
Nun erweitert sich mein Problem:

Ich muss auf der gleichen Maschine nun einen SMP-Kernel bauen und ihn dann mit der dargestellten Methode auf den Zielrechner transportieren.

Das Problem ist nun, dass ich den erzeugten SMP-Kernel nicht auf der Compilierungsmaschine installieren kann.
Kann man den Kernel auch ohne Installation in ein Tar-Archiv packen?


PS: Die hier gezeigten Lösungen halte ich für nützlich, kann ich die dann ins Wiki setzen?
 
Nach dem make depend && make führst du im Build-Verzeichnis aus:
Code:
tar -czpf Kernel.tgz kernel *.ko
Auf dem Zielrechner packst du dann wie folgt aus:
Code:
tar -xzpf Kernel.tgz -C /boot/kernel
(es geht doch um 5.x, oder?)
 
ja, FreeBSD 5.3.
Vielen Dank für die Antwort.

In der Kernel-Konfiguration habe ich APIC aktiviert:
Code:
device          apic            # I/O APIC

FreeBSD läuft aber immernoch auf einer CPU:
Code:
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 5.3-RELEASE #0: Tue Dec 14 18:00:09 CET 2004
    root@rechner4.local:/usr/src/sys/i386/compile/GENERIC686APM
MPTable: <IBM GNK  Mohican SMP >
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel Pentium III (598.40-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x683  Stepping = 3
  Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
real memory  = 268419072 (255 MB)
avail memory = 253001728 (241 MB)
ioapic0: Assuming intbase of 0
ioapic0 <Version 1.1> irqs 0-23 on motherboard
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <MPTable Host-PCI bridge> pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
Anscheinend wird sowohl APIC als auch die MP-Tabelle erkannt, er aktiviert es nur nicht.

Was kann ich tun?
 
APIC ist nur eine Voraussetzung für SMP-Kernel, die auch in UP-Kerneln verwendet werden kann. Hast du daneben auch
Code:
options SMP
in deiner Kernelconfig?
 
Vielen Dank nochmal.

Kernel ist gebaut, aber ich bekomme ihn nicht mit dem folgenden Befehl gepackt:
Code:
tar -czpf Kernel.tgz kernel *.ko
Weil die Shell das *.ko "matchen" muss, diese Dateien jedoch in Unterverzeichnissen liegen.
Werde mir irgendein find|grep|tar Konstrukt zusammenbauen - morgen.

Oder kann ich auch ein Info-Zip (also das normale zip) nehmen oder enthaelt das irgendwelche Attribute vor? ;-)
 
Zurück
Oben