Hallo.
Ich brauche für meine diskless workstation, die ich neuerdings mit einer intel e1000 gigabit-karte ausgerüstet habe treiber für grub (bootloader). Ich habe gelesen, daß grub die etherboot-treiber verwendet und wenn man die sourcen vergleicht, sieht man, daß da nicht viel geändert wurde. Leider strebt meine programmiererfahrung mit c gegen null. Weiß jemand wie ich den treiber da reinprügeln kann, was dazu nötig ist, oder hat das schonmal jemand gemacht?
grub v0.92 http://alpha.gnu.org/gnu/grub/ etherboot v5.1.6 http://etherboot.sourceforge.net/distribution.html Karte ist jene: http://etherboot.sourceforge.net/db/nic.php?show=tech_data&id=196
Ethernet controller: Intel Corp. 82540EM Gigabit Ethernet Controller (rev 02) Subsystem: Intel Corp. PRO/1000 MT Desktop Adapter Flags: bus master, 66Mhz, medium devsel, latency 32, IRQ 11 Memory at d5000000 (32-bit, non-prefetchable) [size=128K] Memory at d4800000 (32-bit, non-prefetchable) [size=128K] I/O ports at d800 [size=64] Expansion ROM at <unassigned> [disabled] [size=128K] Capabilities: [dc] Power Management version 2 Capabilities: [e4] PCI-X non-bridge device. Capabilities: [f0] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
Wäre nett, wenn mir jemand helfen könnte. (Tip "c lernen" hilft nix, bin ja dabei...)
MfG Frank Benkstein.
On Tue, 18 Feb 2003 15:48:30 +0100, Frank Benkstein wrote:
Ich brauche für meine diskless workstation, die ich neuerdings mit einer intel e1000 gigabit-karte ausgerüstet habe treiber für grub (bootloader). Ich habe gelesen, daß grub die etherboot-treiber verwendet und wenn man die sourcen vergleicht, sieht man, daß da nicht viel geändert wurde.
Die Intel-Karte kann vermutlich PXE. Damit lädst du pxegrub (siehe grub-Doku) und brauchst keine Etherboot-Treiber mehr.
Reinhard
Reinhard Foerster wrote:
Die Intel-Karte kann vermutlich PXE. Damit lädst du pxegrub (siehe grub-Doku) und brauchst keine Etherboot-Treiber mehr.
Reinhard
Grub bekomme ich schon geladen, das ist nicht das Problem. Aber damit grub seine Konfigurationsdatei und dann den Kernel (vom tftp-server) laden kann, muß er ja die Netzwerkkarte initialisieren. Und eben da hakt es. Oder verstehe ich jetzt was falsch?
On Wed, 19 Feb 2003 02:02:33 +0100, Frank Benkstein wrote:
Grub bekomme ich schon geladen, das ist nicht das Problem. Aber damit grub seine Konfigurationsdatei und dann den Kernel (vom tftp-server) laden kann, muß er ja die Netzwerkkarte initialisieren. Und eben da hakt es. Oder verstehe ich jetzt was falsch?
Nein. Ich hatte nicht kapiert, was PXE kann. Ich habe gerade noch mal etwas rumgestöbert, weil micht das Thema auch interessiert.
Du hast wohl 3 Möglichkeiten: * den e1000-Teiber aus dem aktuelen Etherboot-Paket in grub einbinden. Dazu musst du etwas "programmieren" (Makefiles anpassen), was du nicht wolltest. * per http://www.rom-o-matic.org/5.0.8/ ein PXE-Image von Etherboot backen und darüber linux laden * per http://www.rom-o-matic.org/5.0.8/ ein ROM-Image von Etherboot backen, dieses auf deine Netzkarte flashen und darüber linux laden
Versuche doch mal die 2. Variante. Doku zur Erstellung des per Etherboot ladbaren Kernels gibts auf http://etherboot.sourceforge.net/doc/html/userman-4.html
Reinhard
Reinhard Foerster wrote:
Du hast wohl 3 Möglichkeiten:
- den e1000-Teiber aus dem aktuelen Etherboot-Paket in grub einbinden. Dazu musst du etwas "programmieren" (Makefiles anpassen), was du nicht wolltest.
- per http://www.rom-o-matic.org/5.0.8/ ein PXE-Image von Etherboot backen und darüber linux laden
- per http://www.rom-o-matic.org/5.0.8/ ein ROM-Image von Etherboot backen, dieses auf deine Netzkarte flashen und darüber linux laden
Version zwei hab ich mir auch überlegt. Kann das PXE-Image rüberschieben und das könnte das Kernel-Image booten. Das Problem dabei ist nur, daß das PXE Image die gleiche (DHCP)-Frage stellt, wie das schon vorhandene Boot-ROM. Der DHCP, bzw. tftp-Server weiß dann ja nicht, daß er bei der zweiten Frage das Kernel-Image schicken soll.
Das ROM zu brennen mag ich eigentlich nicht. Außerdem ist mir für die Workstation ein Bootloader lieber um auch andere Konfigurationen zu fahren. Bleibt mir nur zu hoffen, daß irgendeiner den e1000 Treiber in absehbarer Zeit in grub reinimplantiert oder ich das irgendwann selber schaffe.
On Wed, 19 Feb 2003 15:23:33 +0100, Frank Benkstein wrote:
Version zwei hab ich mir auch überlegt. Kann das PXE-Image rüberschieben und das könnte das Kernel-Image booten. Das Problem dabei ist nur, daß das PXE Image die gleiche (DHCP)-Frage stellt, wie das schon vorhandene Boot-ROM.
Der PXE-Request (also der erste) ist vom DHCP-Server aus zu erkennen. Er liefert als vendor-class-identifier "PXEClient".
Darüber kannst du beide Requests unterschiedlich beantworten. Etwa so:
if substring (option vendor-class-identifier, 0, 9) = "PXEClient" { filename "/image.pxe"; } else { filename "/linux.nbi"; } }
Das per PXE gesaugte Etherboot-Image meldet sich dann als "Etherboot-x.y", also mit Versionummer beim DHCP-Server.
Reinhard
Das e1000-etherboot image für meine Karte ließ sich nicht so recht zum booten bewegen. Keine Ahnung, warum. Meine Lösung, um endlich von der Diskette loszukommen, sieht so aus: Einfach ne Realtek dazugesteckt. Wenig Aufwand, aber es läuft.
Wenns noch jemanden interssiert:
Auszug aus dhcpd.conf
--snip-- option space netboot; option netboot.grub-menu code 150 = text;
subnet 192.168.0.0 netmask 255.255.255.0 { host real-a { hardware ethernet xx:xx:xx:xx:xx:xx; option netboot.grub-menu "(nd)/tftpboot/a-movie/grub.conf"; next-server 192.168.0.1; fixed-address 192.168.0.2; option host-name "a-movie"; option root-path ""; option subnet-mask 255.255.255.0; } }
subnet 10.0.0.0 netmask 255.0.0.0 { host intel-a { hardware ethernet yy:yy:yy:yy:yy:yy; filename "/tftpboot/a-movie/pxegrub"; fixed-address 10.100.1.10; option host-name "a-movie"; option root-path ""; option subnet-mask 255.0.0.0; } } --snip--
Die Intelkarte lädt grub, welcher dann die Realtek initialisiert und den Kernel zieht. Danach bootet der Kernel über die Intelkarte per nfsroot.
Ich warte einfach mal, bis der etherboot-treiber ins stable-release oder -noch besser- in grub findet.
PS.: Gebootet wird übrigens Gentoo auf Athlon 2100+ (getaktet auf 2GHz) mit 1024MB DDR-Ram.
Das e1000-etherboot image für meine Karte ließ sich nicht so recht zum booten bewegen. Keine Ahnung, warum. Meine Lösung, um endlich von der Diskette loszukommen, sieht so aus: Einfach ne Realtek dazugesteckt. Wenig Aufwand, aber es läuft.
Wenns noch jemanden interssiert:
Auszug aus dhcpd.conf
--snip-- option space netboot; option netboot.grub-menu code 150 = text;
subnet 192.168.0.0 netmask 255.255.255.0 { host real-a { hardware ethernet xx:xx:xx:xx:xx:xx; option netboot.grub-menu "(nd)/tftpboot/a-movie/grub.conf"; next-server 192.168.0.1; fixed-address 192.168.0.2; option host-name "a-movie"; option root-path ""; option subnet-mask 255.255.255.0; } }
subnet 10.0.0.0 netmask 255.0.0.0 { host intel-a { hardware ethernet yy:yy:yy:yy:yy:yy; filename "/tftpboot/a-movie/pxegrub"; fixed-address 10.100.1.10; option host-name "a-movie"; option root-path ""; option subnet-mask 255.0.0.0; } } --snip--
Die Intelkarte lädt grub, welcher dann die Realtek initialisiert und den Kernel zieht. Danach bootet der Kernel über die Intelkarte per nfsroot.
Ich warte einfach mal, bis der etherboot-treiber ins stable-release oder -noch besser- in grub findet.
PS.: Gebootet wird übrigens Gentoo auf Athlon 2100+ (getaktet auf 2GHz) mit 1024MB DDR-Ram.
Das e1000-etherboot image für meine Karte ließ sich nicht so recht zum booten bewegen. Keine Ahnung, warum. Meine Lösung, um endlich von der Diskette loszukommen, sieht so aus: Einfach ne Realtek dazugesteckt. Wenig Aufwand, aber es läuft.
Wenns noch jemanden interssiert:
Auszug aus dhcpd.conf
--snip-- option space netboot; option netboot.grub-menu code 150 = text;
subnet 192.168.0.0 netmask 255.255.255.0 { host real-a { hardware ethernet xx:xx:xx:xx:xx:xx; next-server 192.168.0.1; fixed-address 192.168.0.2; option host-name "a-movie"; option root-path ""; option subnet-mask 255.255.255.0; } }
subnet 10.0.0.0 netmask 255.0.0.0 { host intel-a { hardware ethernet yy:yy:yy:yy:yy:yy; option netboot.grub-menu "(nd)/tftpboot/a-movie/grub.conf"; filename "/tftpboot/a-movie/pxegrub"; fixed-address 10.100.1.10; option host-name "a-movie"; option root-path ""; option subnet-mask 255.0.0.0; } } --snip--
Die Intelkarte lädt grub, welcher dann die Realtek initialisiert und den Kernel zieht. Danach bootet der Kernel über die Intelkarte per nfsroot.
Ich warte einfach mal, bis der etherboot-treiber ins stable-release oder -noch besser- in grub findet.
PS.: Gebootet wird übrigens Gentoo auf Athlon 2100+ (getaktet auf 2GHz) mit 1024MB DDR-Ram.
lug-dd@mailman.schlittermann.de