Danke vielen Dank du hast mir und vielen anderen Usern wirklich sehr geholfen. Schade das es keinen Danke Button gibt .
OE 2 IPv6
-
-
Also ich hätte da noch eine einzige Frage nähmlich ob die Zusammenfassung von mir zur Konfiguration richtig ist :
IPV4 auf DHCP und IPV6 auf auto in der /etc/network/interfaces stellen geht nicht da die Dreambox sich sonst mit keinem Netzwerk verbindet.
IPV4 statisch Konfigurieren und gar nichts (nichtmal den auto befehl zu IPV6) zur IPV6 Konfiguration in der /etc/network/interfaces/ bewirkt das die Box IPV4 statisch und IPV6 automatisch nutzt
IPV4 statisch Konfigurieren und IPV6 auf auto in der /etc/network/interfaces stellen geht nicht da die Dreambox sich sonst gar nicht mit dem Netzwerk verbindet.
Ist dies wirklich so im Linux Kernel vorgesehen und hat so seine Richtigkeit und man muss eine statische IPV4 nutzen oder mache Ich noch einen Fehler ?
-
Ok ich habe nun rausgefunden das IPV6 Tokenized Interface Identifiers erst im Linux Kernel 3.10 möglich sind. Deshalb will ich nun das Dreambox Image mit diesem Kernel kompilieren. Ich muss dafür doch nur in der linux-dreambox_3.2.bb den Link zu dem neuen Linux Kernel ändern und alle Patches werden automatisch angewendet oder ?
-
Du kannst nicht einfach den Kernel wechseln. Unsere Treiber werden ggf. nicht mehr zum Kernel passen.
-
Was heisst gegebenenfalls ? Gar nicht oder sind nur einige Bugs zu erwarten ?
Wenn es gar nicht geht werde ich eben noch etwas warten bis auf einen neueren Kernel gewechselt wird (auch wenn dies erst bei einer neueren Box passiert ). -
Hi,
es wird definitiv NICHT funktionieren.
Und momentan ist es fragwürdig, ob wir auf einen neueren Kernel wechseln werden.
In der Vergangenheit hat sich gezeigt, dass es meistens nur noch mehr Probleme durch einen wechsel gegeben hat. Und immer performance einbußen.
Die Kernel werden leider immer größer und langsamer.
cu
-
Der aktuelle 3.13 Kernel ist sogar 1Mb kleiner als der der 3.2er. Ich kann aber auch verstehen wenn ihr nicht wechseln wollt da es wirklich ein ziehmlicher Aufwand sein kann. Aber an der Größe sollte es jedenfalls nicht liegen. Ich würde mir aber wünschen das wenigstens bei den zukünftigen Boxen ein aktuellerer Kernel benutzt wird.
-
Hi ich bins nochmal .
Mir ist aufgefallen das Python auf der Dream ohne IPv6 gebaut wurde. Könnte dies vll beim nächsten Experimental mitgebaut werden ? Es ist immerhin nur ein Patch von einigen wenigen Zeilen was ja wirklich nicht zuviel verlangt ist da es ja wohl kaum ein Aufwand ist. Hier ist der Link zum Patch : KlickIch war auch nicht untätig und habe ein kleines Script geschrieben welches die Ausgabe von Iproute2 in eine Textdatei umleitet und dann Schritt für Schritt den Inhalt der Textdatei mit sed auf das Präfix reduziert. Dann hab ich den Inhalt der Textdatei als Variable gesetzt mit der die feste Interface ID anhalt des Präfixes der Textdatei gebildet wird. Ich werde das Script jetzt erstmal etwas testen und dann hier veröffentlichen. Es wäre schön wenn ihr in der Zwischenzeit den winzigen Patch in Python bei den nächsten Images einarbeiten könntet was eine Arbeit von 5 min sein sollte.
Dann sollte die Box endlich voll IPV6 fähig sein
LG
xxlsm
-
Ich bin es auch nochmal...
Du solltest dich vorher mal genauer informieren bevor du hier irgenwelche Forderungen stellst.
Der verwendete twisted ist nicht IPv6 fähig, das geht erst in höheren Versionen. Also wäre es völlig sinnfrei das Python mit IPv6 zu bauen, wobei ich nicht mal sicher bin ob die aktuell verwendete Pythonversion das überhaupt kann. -
Ich hab mich vorher informiert und das alles sogar ausprobiert :). Die Dream bentutzt Twisted 12.0 was die erste Version war die IPV6 unterstützt hat. Die Pyhon Version der Dreambox ist aktuell genug IPV6 muss nur mitgebaut werden z.b mit dem Patch. Das OpenPli z.b und diverse andere Images benutzen exakt die gleiche Python Version nur mit IPV6 Support. Welche Twisted Version dort benutzt wird kann ich leider nicht sagen aber die 12er kam mit IPv6 Support. Und selbst wenn es erst ab 12.1 oder irgendeiner höheren Version gehen sollte, sollte dies kein Problem darstellen da es ja auch nicht so schwer ist ein minimal aktuelleres Twisted zu compilieren. Das dies alles geht beweisen diverse andere Images bei denen dies alles funktioniert.
Wenn man sich also die Python Libs von einem anderen Image "krallt" und die in dem Dream Image ersetzt funktionert alles ohne Probleme. Es sollte auch keine Probleme mit den bisherigen geschriebenen Plugins geben da es ja immer noch bei der selben Python version (2.7) bleibt.
Und bis jetzt lag ich mit meinen "Forderungen" ja noch richtig. Denn das der Linux Kernel erst ab version 3.10 das Token Feature unterstützt wirst du nicht verneinen können. Und dies war in dem Sinne auch keine Forderung da ich ja eig. auch Verständnis gezeigt habe bezüglich der damit verbundenen Probleme beim Kernel Umstieg dies war eher ein Verbesserungsvorschlag für die Zukunft. Das mit der Python Version war eher eine Forderung da gebe ich dir uneingeschränkt Recht, dies ist aber eher eine richtig kleine da es ja andere Image bauer auch hingekriegt haben ein minimal aktuelleres Twisted zu benutzen oder eine Python Version mit einem Patch zu bauen. Es muss ja nicht mal gebaut werden es könnte ja einfach vom OpenPli beispielsweise übernommen werden so wie es bei mir aktuell der Fall ist.Ich will nur sagen diese Vorschläge waren bis jetzt alle nur gut gemeint und falls ich iwann einen anderen Eindruk erweckt haben sollte so tut es mir leid.
-
Wenn ich das so zusätzlich in die "/etc/network/interface" eintrage bootet meine Box garnicht mehr!
Wie muss die fertig "/etc/network/interface" denn für ipv4 static und ipv6 dhcp aussehenGruss slonnet
-
Hi konfigurier dir mal übers GUI (also über die Fernbedienung) eine feste IPV4 Adresse und installier dir das Kernel Modul IPV6. Du musst nichts editieren. Dann einfach Box neustarten und die IPV6 Adressen werden automatisch gebildet.
-
Hi ich bins nochmal .
Mir ist aufgefallen das Python auf der Dream ohne IPv6 gebaut wurde. Könnte dies vll beim nächsten Experimental mitgebaut werden ? Es ist immerhin nur ein Patch von einigen wenigen Zeilen was ja wirklich nicht zuviel verlangt ist da es ja wohl kaum ein Aufwand ist. Hier ist der Link zum Patch : KlickDas ist eigentlich nicht der ganze Patch ...
./configure hat immer die Macke, daß es beim Cross-Compilen viele Checks nicht durchführen kann, u.a. auch den, ob die Zielplattform "buggy_getaddrinfo" hat.Der eigentliche Patch ist dieser hier: http://lists.busybox.net/piper…ot/2012-April/052896.html
Ohne diesen Patch führt --enable-ipv6 zu einem Fehler beim Cross-Kompilieren, er war aber im max-tdt sogar schon drin, so daß dort wirklich nur noch --enable-ipv6 nötig war.Nichtsdestotrotz ist es ein Klacks, Python mit IPv6-Support zu kompilieren und es kann auch zu keinen Wechselwirkungen kommen, weil man für IPv6 auch immer mit AF_INET6, [::], etc. pp. programmieren muß, d.h. ein Plugin, welches nicht für IPv6 umgeschrieben wird, nutzt es somit auch nicht und kann deshalb auch nicht daran kaputtgehen.
Das hier ist übrigens der Patch für das old Webif, um es IPv6-tauglich zu machen, ursprünglich extra für HDMU vom OpenWebif backported :
Pythondiff -Nur Extensions.old/WebInterface/plugin.py Extensions/WebInterface/plugin.py--- Extensions.old/WebInterface/plugin.py 2013-10-13 13:42:43.000000000 +0200+++ Extensions/WebInterface/plugin.py 2014-04-16 19:13:21.995689400 +0200@@ -10,14 +10,14 @@ from WebChilds.Toplevel import getToplevel from Tools.HardwareInfo import HardwareInfo -from Tools.Directories import copyfile, resolveFilename, SCOPE_PLUGINS, SCOPE_CONFIG+from Tools.Directories import copyfile, resolveFilename, SCOPE_PLUGINS, SCOPE_CONFIG, fileExists from twisted.internet import reactor, ssl from twisted.internet.error import CannotListenError-from twisted.web import server, http, util, static, resource+from twisted.web import server, http, util, static, resource, version from zope.interface import Interface, implements-from socket import gethostname as socket_gethostname+from socket import gethostname as socket_gethostname, has_ipv6 from OpenSSL import SSL, crypto from time import gmtime from os.path import isfile as os_isfile, exists as os_exists@@ -239,6 +239,12 @@ root = HTTPRootResource(toplevel) site = server.Site(root) + if has_ipv6 and fileExists('/proc/net/if_inet6') and version.major >= 12:+ if ipaddress == '0.0.0.0':+ ipaddress='::'+ elif ipaddress == '127.0.0.1':+ ipaddress='::1'+ if usessl: ctx = ChainedOpenSSLContextFactory(KEY_FILE, CERT_FILE) try:@@ -386,7 +392,7 @@ host = request.getHost().host #If streamauth is disabled allow all acces from localhost if not config.plugins.Webinterface.streamauth.value:- if( host == "127.0.0.1" or host == "localhost" ):+ if( host == "::ffff:127.0.0.1" or host == "127.0.0.1" or host == "localhost" ): print "[WebInterface.plugin.isAuthenticated] Streaming auth is disabled bypassing authcheck because host is '%s'" %host return True diff -Nur Extensions.old/WebInterface/WebComponents/Sources/RequestData.py Extensions/WebInterface/WebComponents/Sources/RequestData.py--- Extensions.old/WebInterface/WebComponents/Sources/RequestData.py 2013-10-13 13:42:43.000000000 +0200+++ Extensions/WebInterface/WebComponents/Sources/RequestData.py 2014-04-16 19:12:01.453082600 +0200@@ -24,7 +24,12 @@ def getHTML(self, id): if self.what is self.HOST:- return self.request.getRequestHostname()+ host = self.request.getHeader(b'host')+ if host:+ if host[0]=='[':+ return host.split(']',1)[0] + "]"+ return host.split(':', 1)[0].encode('ascii')+ return self.request.getHost().host.encode('ascii') elif self.what is self.PORT: return str(self.request.host.port) elif self.what is self.METHOD:
-
if has_ipv6 and fileExists('/proc/net/if_inet6') and version.major >= 12:
...
Die if_inet6 existiert auf jedenfall auf der Dreambox. Der einzige Grund warum die DB den Check nicht besteht scheint wohl die Funktion version.major zu sein. Weiß zufaällig jemand was diese Funktion bewirkt ?Das sind drei Checks:
1. /proc/net/if_inet6 testet den Kernel auf IPv6-Support
2. has_ipv6 (aus socket) testet, ob Python mit IPv6-Support gebaut wurde.
3. version.major (Aus twisted) testet auf eine Version größer/gleich 12.0.0Alle drei Bedingungen müssen erfüllt sein, damit das Web-Interface IPv6 unterstützen kann.
-
Und 12.0.0 ist falsch weil twisted erst ab 12.1.0 IPv6 Support hat.
-
Und 12.0.0 ist falsch weil twisted erst ab 12.1.0 IPv6 Support hat.
Das stimmt nicht:
-
Doch das stimmt und auf der VU kann nichtmal das Python standardmässig IPv6
Twisted 12.0.0 kann das nur partiell, ab 12.1.0 etwas besser aber immer noch nicht vollständig. Selbst in 12.2.0 noch nicht.root@vuduo2:~# python
Python 2.7.2 (default, Nov 1 2013, 18:31:36)
[GCC 4.6.4 20120303 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from socket import has_ipv6
>>> has_ipv6
False -
Doch das stimmt und auf der VU kann nichtmal das Python standardmässig IPv6
Nun, das ist eine reine Compile-Switch-Einstellungssache und keine Frage der Version, an sich kann Python schon ewig IPv6.
Wenn man natürlich --disable-ipv6 drin läßt, dann wird Python nicht einmal in Version 3.4.0 IPv6 können.Twisted 12.0.0 kann das nur partiell, ab 12.1.0 etwas besser aber immer noch nicht vollständig. Selbst in 12.2.0 noch nicht.
Twisted ist alles andere als fehlerfrei und bestimmte Aspekte fluppen selbst in 13.2.0 noch nicht.
Tatsache ist aber, daß für unseren banalen Listener der IPv6-Support der 12.0.0 ausreicht.root@vuduo2:~# python
Python 2.7.2 (default, Nov 1 2013, 18:31:36)
[GCC 4.6.4 20120303 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from socket import has_ipv6
>>> has_ipv6
False
Tjor.
Schlechtes Image ...Bei guten Images kommt
ZitatTopf:~# python -c 'import twisted,socket; print socket.has_ipv6; print twisted.version'
True
[twisted, version 13.0.0]
oder zumindestZitatroot@ultimo:~# python -c 'import twisted,socket; print socket.has_ipv6; print twisted.version'
True
[twisted, version 12.0.0]
bzw.Zitatroot@vuduo2:~# python -c 'import twisted,socket; print socket.has_ipv6; print twisted.version'
True
[twisted, version 12.0.0]Und so sieht netstat bei einem Premium-Image (HDMU auf dem Topfield) aus:
ZitatTopf:~# netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 :::8001 :::* LISTEN
tcp 0 0 :::16200 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::21 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::23 :::* LISTEN
tcp 0 0 :::443 :::* LISTENNur der Samba murkst da noch mit IPv4 rum, aber nirgendwo ist IPv6 unwichtiger als bei Samba.
-
Ah ja:
Zitatroot@ultimo:~# openvpn --version
OpenVPN 2.3.2 mipsel-oe-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Apr 13 2014ZitatTopf:~# openvpn --version
OpenVPN 2.3.3 sh4-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Apr 9 2014Weitgehend vollständiger IPv6-Support unter Enigma2 ist längst keine Frage der Möglichkeit der beteiligten Programme und Dienste mehr, sondern nur noch eine des Wollens bzw. Nichtwollens//Leistungsverweigerung.
-
Hi,
aber sonst geht es Dir noch gut?
Wer gibt Dir denn das Recht irgendwelche Vorderungen zu stellen, oder gar uns Vorschriften darüber zu machen was wir zu tun und zu lassen haben?
Aber wenn DU IPV6 Support unbedingt benötigst, darfst Du es gerne selber einbauen.
In diesem Fall ist auch alles was notwendig ist offen. Sprich alle Sourcen sind verfügbar.
Also dann mal los.
cu!