localhost im YADD

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

localhost im YADD

Beitrag von bellum »

Woran liegt es eigentlich, dass ein Ping auf localhost bzw. 127.0.0.1 in einem YADD nicht funktioniert, in einem Flashimage dagegen schon?

Code: Alles auswählen

# ping 127.0.0.1
No response from 127.0.0.1

# ping localhost
No response from localhost
Kann man das ändern?

Gruß bellum
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: localhost im YADD

Beitrag von seife »

vermutlich musst du "ifconfig lo up" machen oder sowas, ich vermute, dass im YADD das Netzwerk nicht aufgesetzt wird, da es ja schon vom Kernel erledigt wurde. Der Kernel setzt aber wohl kein loopback-Interface auf.
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: localhost im YADD

Beitrag von bellum »

seife hat geschrieben:vermutlich musst du "ifconfig lo up" machen oder sowas, ich vermute, dass im YADD das Netzwerk nicht aufgesetzt wird, da es ja schon vom Kernel erledigt wurde. Der Kernel setzt aber wohl kein loopback-Interface auf.
Der Tipp mit "ifconfig lo up" wars fast. Nur ifconfig gibt es nicht - dafür aber ifup/ifdown :D
Folgendes hat dann geholfen:

Code: Alles auswählen

# ping 127.0.0.1
No response from 127.0.0.1
# ifup lo
ifup: interface lo already configured
# ping 127.0.0.1
No response from 127.0.0.1
# ifdown lo
# ping 127.0.0.1
No response from 127.0.0.1
# ifup lo
# ping 127.0.0.1
127.0.0.1 is alive!
# ping localhost
localhost is alive!
Irgendwie scheint wohl das ifup -a in der rcS das Loopback Interface nicht richtig hochzubringen.
Ich habe jetzt die ifdown/ifup Kombination in die init.end für mein YADD rein gemacht und dann klappts auch.
Nicht schön aber wirkungsvoll...

Gruß bellum
doc
Contributor
Beiträge: 1623
Registriert: Donnerstag 10. Januar 2002, 20:03

Re: localhost im YADD

Beitrag von doc »

ifconfig mit der Busybox bekomme ich nur mit der kompletten Zeile zum aktivieren eines Interfaces. Müsste bei dir dann (aus der kalten) so aussehen.

Code: Alles auswählen

ifconfig lo 127.0.0.1 netmask 255.0.0.0 up
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: localhost im YADD

Beitrag von bellum »

... um das ganze zum Abschluß zu bringen. Ich habe jetzt in der yadd-neutrino-local.sh ein sed Konstrukt eingebaut das in der /etc/init.d/rcS aus

Code: Alles auswählen

# Setup hostname
hostname -F /etc/hostname
ifup -a
folgendes macht:

Code: Alles auswählen

# Setup hostname
hostname -F /etc/hostname
ifdown lo
ifup -a
Das ist dann doch eleganter als es über die init.end zu machen und funktioniert genau so gut...

Gruß bellum
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: localhost im YADD

Beitrag von rhabarber1848 »

Mein Patch dafür ist:

Code: Alles auswählen

diff -uNr ../cvs/cdk/root/etc/init.d/rcS.m4 ./cdk/root/etc/init.d/rcS.m4
--- cdk/root/etc/init.d/rcS.m4	2008-01-13 12:03:42.000000000 +0100
+++ cdk/root/etc/init.d/rcS.m4	2008-08-27 12:55:15.000000000 +0200
@@ -165,7 +165,10 @@
   
 # Setup hostname
 hostname -F /etc/hostname
-ifup -a
+ifdown lo
+ifup lo
+ifdown eth0
+ifup eth0
 
 ifdef({insmod},{loadmodule(event)},{type -p depmod > /dev/null && touch /etc/modules.conf && depmod -ae}) dnl
 
Aber egal, welche Version genommen wird, irgendwas davon sollte bitte ins CVS eingecheckt werden.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: localhost im YADD

Beitrag von rhabarber1848 »

Obiger Patch ist hier nicht mehr erforderlich, hat in der
letzten Zeit sogar geschadet. Ich kann nicht sagen, woran
es liegt, dass er nun überflüssig ist. Vielleicht hierdurch:
http://cvs.tuxbox-cvs.sourceforge.net/c ... 1.4&r2=1.5

Das erste Booten eines Yadds funktionierte, beim zweiten
Mal blieb das Netzwerkinterface inaktiv. Nachdem ich den
Patch weggelassen habe, ist wieder alles in Ordnung.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: localhost im YADD

Beitrag von dbt »

rhabarber1848 hat geschrieben: Vielleicht hierdurch:
http://cvs.tuxbox-cvs.sourceforge.net/c ... 1.4&r2=1.5
Die Änderung war lediglich ein revert auf den ursprünglichen Zustand, wie er bereits zu newmake-Zeiten war, dann müsste das schon immer so gewesen sein. :gruebel:
tine1084
Einsteiger
Einsteiger
Beiträge: 160
Registriert: Freitag 8. September 2006, 14:58

Re: localhost im YADD

Beitrag von tine1084 »

Also bei mir funktioniert es noch nicht mit dem localhost in einem aktuellen yadd.

Mit dieser änderung in der rcS geht es dann:

Code: Alles auswählen

# Setup hostname
hostname -F /etc/hostname
ifdown lo
ifup -a
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Re: localhost im YADD

Beitrag von Barf »

Hier is definiv etwas Faules drin. Nicht nur kommt das lo-interface nicht (immer) hoch, sondern (früher in thread nicht genannt) der Defaultroute wird nicht gesetzt. Noch spassiger wird es mit Neutrinos "Netzwerkinstellungen jetz zuweisen": da wird eth0 unbrauchbar gemacht, was natürlich für ein yadd "intressante" Folgen hat... :lol:

ifconfig, route, und noch ein Paar nützliche Kommandos fehlen in yadd-busybox (vgl http://tuxbox-forum.dreambox-fan.de/for ... =7&t=48732). Ist aber nicht die Ursachen (schon probiert).

Es ist mir leider nicht klar, was das Problem verursacht. Als rcS fängt an ist eth0 voll konfiguriert, mit Ausnahme von einem Defaultrouter. Das lo-interface ist, nach Ansicht von ifup konfiguriert (vgl bellums Beobachrungen, und sein ifdown), in sinn von ifconfig nicht:

Code: Alles auswählen

/ # ifup lo
ifup: interface lo already configured
/ # ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:50:9C:xx:xx:xx  
          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9671 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5219 errors:0 dropped:0 overruns:0 carrier:0
          collisions:11 txqueuelen:1000 
          RX bytes:9957172 (9.4 MiB)  TX bytes:814854 (795.7 KiB)
          Base address:0x3d00 


Wirklicher Grund des Problem kenne ich leider nicht, und habe auch nicht Zeit es nachzugehen. Vielleicht Änderungen in Driver oder Kernel?

Workaround: Z.B. in rcS.local folgendes anlegen:

Code: Alles auswählen

ifdown lo
ifup lo
route add default gw 192.168.1.254
(wobei 192.168.1.254 defaultrouter darstellt).
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: localhost im YADD

Beitrag von seife »

ifup schaut in /var/run/ifstate nach. Das wird bestimmt beim booten nicht aufgeräumt, weil es ja bei flashimages im tmpfs liegt. Deswegen meint ifup, dass lo schon up ist.
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Re: localhost im YADD

Beitrag von Barf »

Das war es!! :D Gerade verifiziert, dass ohne die Datei der Fehler nicht mehr da ist. Dies erklärt auch die Zufälligkeit. (Die Datei wird auch nicht bei sauberes Runterfahren gelöscht.)

Die beste Lösung ist wahrscheinlich /var/run in flüchtigen Speicher zu verlegen, sprich, ln -s /var/run -> /tmp[/run], wie in den Images.

Nochmals danke seife.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: localhost im YADD

Beitrag von rhabarber1848 »

Barf hat geschrieben:Die beste Lösung ist wahrscheinlich /var/run in flüchtigen Speicher zu verlegen, sprich, ln -s /var/run -> /tmp[/run], wie in den Images.
Bitte testen: EDIT: Patch ist im CVS
Zuletzt geändert von rhabarber1848 am Montag 15. Juni 2009, 15:00, insgesamt 1-mal geändert.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: localhost im YADD

Beitrag von seife »

im YaDD ist /tmp kein tmpfs, wenn ich mich nicht irre.

Aber man könnte beim booten einfach vor dem ersten ifup /var/run/ifstate wegräumen.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: localhost im YADD

Beitrag von rhabarber1848 »

seife hat geschrieben:im YaDD ist /tmp kein tmpfs, wenn ich mich nicht irre.
Doch, es gibt dort tmpfs, habe es selber getestet.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: localhost im YADD

Beitrag von seife »

rhabarber1848 hat geschrieben:
seife hat geschrieben:im YaDD ist /tmp kein tmpfs, wenn ich mich nicht irre.
Doch, es gibt dort tmpfs, habe es selber getestet.
Ok, dann ist ja alles gut ;)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: localhost im YADD

Beitrag von rhabarber1848 »

seife hat geschrieben:im YaDD ist /tmp kein tmpfs, wenn ich mich nicht irre.
Der Vollständigkeit halber:
# mount
rootfs on / type rootfs (rw)
/dev/root on / type nfs (rw,v2,rsize=4096,wsize=4096,hard,udp,nolock,addr=192.168.1.1)
none on /dev type devfs (rw)
proc on /proc type proc (rw)
tmpfs on /tmp type tmpfs (rw)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: localhost im YADD

Beitrag von rhabarber1848 »

Barf hat geschrieben:Die beste Lösung ist wahrscheinlich /var/run in flüchtigen Speicher zu verlegen, sprich, ln -s /var/run -> /tmp[/run], wie in den Images.
Aus meinem aktuellen Yadd:
# ls -la /var/run
lrwxrwxrwx 1 root root 4 Jun 15 12:43 /var/run -> /tmp
Patch ist im CVS: http://article.gmane.org/gmane.comp.vid ... ox.scm/676