Yadd mit NFS v3 booten
-
- Interessierter
- Beiträge: 64
- Registriert: Mittwoch 26. April 2006, 08:44
Yadd mit NFS v3 booten
Gibt's ne Möglichkeit beim Booten über Yadd das Root-Verzeichnis via NFS v3 zu booten (wegen rsize, wsiz-Erhöhung)? Derzeit liefert mir der Mount nur v2. In welcher Datei müßte ich vor dem Kompilieren was abändern (ich mach das über newmake)? Hab schon in uboot-config/dbox2-yadd.conf (oder so ähnlich) reingeschaut, aber da nichts gefunden?
Sorry, wenn ich beim Suchen einen passenden, alten Thread übersehen habe.
franz
Sorry, wenn ich beim Suchen einen passenden, alten Thread übersehen habe.
franz
-
- Interessierter
- Beiträge: 64
- Registriert: Mittwoch 26. April 2006, 08:44
-
- Einsteiger
- Beiträge: 369
- Registriert: Samstag 29. Mai 2004, 00:50
-
- Interessierter
- Beiträge: 64
- Registriert: Mittwoch 26. April 2006, 08:44
-
- Einsteiger
- Beiträge: 193
- Registriert: Donnerstag 11. Mai 2006, 08:26
Muss mal den Thread hier hochholen, ich krieg das nicht gebacken.
Irgendwas stimmt da nicht mit der u-boot.
Ich hab mir ne frische Yadd geholt mit der u-boot 1.20.
Aber egal was ich am dhcp-Server als rootpath einstelle,
die u-boot liefert beim printenv IMMER
Ausser ich benenne die u-boot um nach z.B. u-boot-yadd,
sage dem dhcp-Server, dass das tftp-bootfile jetzt u-boot-yadd heisst,
und siehe da, der printenv liefert:
Anscheinend wird die $rootpath irgendwie mit der falschen dhcp-option befüllt ???
Greez !
Irgendwas stimmt da nicht mit der u-boot.
Ich hab mir ne frische Yadd geholt mit der u-boot 1.20.
Aber egal was ich am dhcp-Server als rootpath einstelle,
die u-boot liefert beim printenv IMMER
Code: Alles auswählen
rootpath=u-boot
sage dem dhcp-Server, dass das tftp-bootfile jetzt u-boot-yadd heisst,
und siehe da, der printenv liefert:
Code: Alles auswählen
rootpath=u-boot-yadd
Greez !
-
- Erleuchteter
- Beiträge: 797
- Registriert: Sonntag 19. Februar 2006, 01:17
Re: Yadd mit NFS v3 booten
mit SUF geht es http://forum.tuxbox-cvs.sourceforge.net ... hp?t=40708fran hat geschrieben:Gibt's ne Möglichkeit beim Booten über Yadd das Root-Verzeichnis via NFS v3 zu booten..
-
- Einsteiger
- Beiträge: 193
- Registriert: Donnerstag 11. Mai 2006, 08:26
Klar, das hatte ich längst gelesen...
Aber das ist nicht wirklich mein Problem ...
Ich hab hier keinen Bootmanager und ich kann natürlich,
wenn ich meine Verzeichnisstrukturen umbenenne und die
NFS-Freigaben entsprechend anpasse, eine Yadd booten.
Das ändert aber nix an der Sache, dass es hier eindeutig nen Bug in der u-boot gibt,
weil die Variable $rootpath mit dem falschen Wert befüllt wird.
Greez !
Aber das ist nicht wirklich mein Problem ...
Ich hab hier keinen Bootmanager und ich kann natürlich,
wenn ich meine Verzeichnisstrukturen umbenenne und die
NFS-Freigaben entsprechend anpasse, eine Yadd booten.
Das ändert aber nix an der Sache, dass es hier eindeutig nen Bug in der u-boot gibt,
weil die Variable $rootpath mit dem falschen Wert befüllt wird.
Greez !
-
- Erleuchteter
- Beiträge: 797
- Registriert: Sonntag 19. Februar 2006, 01:17
-
- Einsteiger
- Beiträge: 193
- Registriert: Donnerstag 11. Mai 2006, 08:26
-
- Einsteiger
- Beiträge: 193
- Registriert: Donnerstag 11. Mai 2006, 08:26
-
- Einsteiger
- Beiträge: 193
- Registriert: Donnerstag 11. Mai 2006, 08:26
Scheint so ähnlich wie das hier zu sein:
http://forum.tuxbox-cvs.sourceforge.net ... hp?t=24939
Greez !
http://forum.tuxbox-cvs.sourceforge.net ... hp?t=24939
Greez !
-
- bbs-Maintainer
- Beiträge: 282
- Registriert: Montag 23. Oktober 2006, 21:13
Hallo sagemol,sagemol hat geschrieben:... oder auch widerlegen ???
Greez !
ja ich kann das widerlegen. Ich habe mir vor kurzem ein newmake YADD System konfiguriert, in dem der u-boot 1.2.0 drin ist und ich kann erfolgreich übers Netz booten.
Ich vermute stark, dass Dein DHCP-Server das Problem ist. Ich hatte auch große Probleme bis ich den "richtigen" verwendet habe.
Ich gehe jetzt einfach mal davon aus, dass Du Linux verwendest. Dort habe ich mit dem dhcp3 gut Erfahrungen gemacht (mit der Version 2.x des DHCP-Servers ging es auch nicht).
Anbei mal meine dhcp3.conf.
Code: Alles auswählen
option domain-name "mynet.net";
option domain-name-servers 192.168.0.1;
option subnet-mask 255.255.255.0;
ddns-updates off;
ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.21 192.168.0.30;
option routers 192.168.0.1;
deny unknown-clients;
}
host dbox_env {
hardware ethernet 00:50:9C:1C:5D:B3;
fixed-address 192.168.0.22;
allow bootp;
server-name "192.168.0.3";
next-server 192.168.0.3;
if exists vendor-class-identifier {
filename "/kernel-cdk";
option root-path "/home/bellum/tuxbox/dbox2/cdkroot";
} else {
filename "/u-boot";
}
}
Gruß bellum
-
- Einsteiger
- Beiträge: 193
- Registriert: Donnerstag 11. Mai 2006, 08:26
Ok, ja das hat ein wenig weiter geholfen, danke !
Nach nächtelangen Traces weiss ich nun, warum das bei mir nicht funktioniert.
Mein DHCP-Server ist ein W2K3 Server und antwortet RFC-konform auf Vendor Klassen nur dann,
wenn das Bootp/DHCP Option Feld 60 (0x3c) mit irgendwas befüllt ist.
Dies ist bei der u-boot 1.20 aus der atuellen Yadd NICHT der Fall.
Houdini hat hier mal eine 1.1.4 u-boot bereitgestellt, die diese Option 60 mit "0C 44 42 4F 58 32 2C 20 45 4D 50 54 59" befüllt,
nur leider fragt diese u-boot beim DHCPDISCOVER in den Options überhaupt nicht nach dem rootpath (Option 17),
so dass der Server die Option auch nicht liefert.
Könnte mal jemand ne aktuelle u-boot bauen, die zusätzlich zu dem was jetzt drin ist, auch die Option 60 mitliefert ?
Und dann noch so freundlich sein und sagen, was als Vendor Class eingetragen ist, damit ich nicht wieder tracen muss ...
Edit:
Achja, und warum mounted die Yadd das nfsroot nur mit rsize/wsize 4096 ?
Wenigstens 8192 sollte doch mit jedem NFS-Server gehen.
Edit 2: Damit's ein wenig einfacher wird aus RFC 1533:
Greez !
Nach nächtelangen Traces weiss ich nun, warum das bei mir nicht funktioniert.
Mein DHCP-Server ist ein W2K3 Server und antwortet RFC-konform auf Vendor Klassen nur dann,
wenn das Bootp/DHCP Option Feld 60 (0x3c) mit irgendwas befüllt ist.
Dies ist bei der u-boot 1.20 aus der atuellen Yadd NICHT der Fall.
Houdini hat hier mal eine 1.1.4 u-boot bereitgestellt, die diese Option 60 mit "0C 44 42 4F 58 32 2C 20 45 4D 50 54 59" befüllt,
nur leider fragt diese u-boot beim DHCPDISCOVER in den Options überhaupt nicht nach dem rootpath (Option 17),
so dass der Server die Option auch nicht liefert.
Könnte mal jemand ne aktuelle u-boot bauen, die zusätzlich zu dem was jetzt drin ist, auch die Option 60 mitliefert ?
Und dann noch so freundlich sein und sagen, was als Vendor Class eingetragen ist, damit ich nicht wieder tracen muss ...
Edit:
Achja, und warum mounted die Yadd das nfsroot nur mit rsize/wsize 4096 ?
Wenigstens 8192 sollte doch mit jedem NFS-Server gehen.
Edit 2: Damit's ein wenig einfacher wird aus RFC 1533:
Code: Alles auswählen
9.11. Class-identifier
This option is used by DHCP clients to optionally identify the type
and configuration of a DHCP client. The information is a string of n
octets, interpreted by servers. Vendors and sites may choose to
define specific class identifiers to convey particular configuration
or other identification information about a client. For example, the
identifier may encode the client's hardware configuration. Servers
not equipped to interpret the class-specific information sent by a
client MUST ignore it (although it may be reported).
The code for this option is 60, and its minimum length is 1.
Code Len Class-Identifier
+-----+-----+-----+-----+---
| 60 | n | i1 | i2 | ...
+-----+-----+-----+-----+---
Greez !
-
- Einsteiger
- Beiträge: 193
- Registriert: Donnerstag 11. Mai 2006, 08:26
-
- Einsteiger
- Beiträge: 193
- Registriert: Donnerstag 11. Mai 2006, 08:26
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
hmm, uboot sendet nix anderes mehr wenn vendorex an ist,
ist zwar nicht sauber mach mal so (dbox2.c):
ist zwar nicht sauber mach mal so (dbox2.c):
Code: Alles auswählen
u8 *dhcp_vendorex_prep (u8 *e)
{
const char *part1 = "DBOX2, ";
const char *part2 = id2name[mid];
*e++ = 17; /* Boot path */
*e++ = 1;
*e++ = 0;
/* DHCP vendor-class-identifier = 60 */
*e++ = 60;
*e++ = strlen (part1) + strlen (part2);
while (*part1)
*e++ = *part1++;
while (*part2)
*e++ = *part2++;
return e;
}
-
- Einsteiger
- Beiträge: 193
- Registriert: Donnerstag 11. Mai 2006, 08:26