Neutrino auf der Dreambox
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Neutrino auf der Dreambox
Hallo.
Ich würde gerne, nach dem ich schon 2 dboxen mit Neutrino betreibe, auch meine neue Dreambox 500s mit Neutrino betreiben. Ich habe auch das "russenimage" gefunden und geflashed, welches auch schön bunt ist, allerdings meinen Anforderungen nicht ganz entspricht.
(Nein, ich werde nicht diskutieren, warum ich kein Enigma will)
Ich habe schon halbwegs erfolgreich das Neutrino gebaut bekommen, allerdings läuft es nicht richtig. Da ich mich bisher nicht wirklich mit den Innereien des codes auseinandergesetzt habe, fällt es mir schwer, manche sachen zu "deuten" :-)
Ich schreibe mal meine Beobachtungen und daraus geschlußfolgerten Vermutungen auf:
- neutrino für die dream läßt sich etwa so kompilieren (mit Handarbeit):
- auschecken dreambox-branch
- update auf HEAD von apps/ und driver/
- im Makefile.am ein dreamboximage_neutrinoroot Target hinzufügen, ähnlich dem dreamboximage Target für enigma
Zapit funktioniert dann aber nicht. Alle ioctls geben 515 zurück, was "ENOIOCTLCMD", also wohl "nicht implementiert".
Dummerweise ist der DVB-Treiber wohl im illegalen (closed source) head.ko-modul implementiert, also nicht fixbar.
Schlußfolgerung: die dreambox verwendet die alte DVB-API.
Wie machts das "russenimage"? Das verwendet wohl eine zapit-Version, die auf dem rel_alexW-Branch basiert und so hingepatched ist, daß sie läuft.
Ich vermute, daß das "hinpopeln" von zapit die schwierigste Aufgabe des ganzen ist, aber wenn jemand andere sachdienliche Hinweise hat, wäre ich dafür dankbar :-)
Ich würde gerne, nach dem ich schon 2 dboxen mit Neutrino betreibe, auch meine neue Dreambox 500s mit Neutrino betreiben. Ich habe auch das "russenimage" gefunden und geflashed, welches auch schön bunt ist, allerdings meinen Anforderungen nicht ganz entspricht.
(Nein, ich werde nicht diskutieren, warum ich kein Enigma will)
Ich habe schon halbwegs erfolgreich das Neutrino gebaut bekommen, allerdings läuft es nicht richtig. Da ich mich bisher nicht wirklich mit den Innereien des codes auseinandergesetzt habe, fällt es mir schwer, manche sachen zu "deuten" :-)
Ich schreibe mal meine Beobachtungen und daraus geschlußfolgerten Vermutungen auf:
- neutrino für die dream läßt sich etwa so kompilieren (mit Handarbeit):
- auschecken dreambox-branch
- update auf HEAD von apps/ und driver/
- im Makefile.am ein dreamboximage_neutrinoroot Target hinzufügen, ähnlich dem dreamboximage Target für enigma
Zapit funktioniert dann aber nicht. Alle ioctls geben 515 zurück, was "ENOIOCTLCMD", also wohl "nicht implementiert".
Dummerweise ist der DVB-Treiber wohl im illegalen (closed source) head.ko-modul implementiert, also nicht fixbar.
Schlußfolgerung: die dreambox verwendet die alte DVB-API.
Wie machts das "russenimage"? Das verwendet wohl eine zapit-Version, die auf dem rel_alexW-Branch basiert und so hingepatched ist, daß sie läuft.
Ich vermute, daß das "hinpopeln" von zapit die schwierigste Aufgabe des ganzen ist, aber wenn jemand andere sachdienliche Hinweise hat, wäre ich dafür dankbar :-)
-
- Developer
- Beiträge: 821
- Registriert: Freitag 20. Juli 2001, 00:00
Ja, die DM500 verwendet die alte DVB-API. Ja, die head.ko ist closed-source. Nein, die head.ko ist nicht illegal. Sie steht schlichtweg nicht unter der GPL und enthält keine Softwareteile, die wir nicht unter einer geeigneten Lizenz besitzen.
(Woher die ENOIOCTLCMD kommen ist mir allerdings schleierhaft, immerhin sind die entsprechenden Devices ja nichtmal vorhanden, bzw. nicht an der gleichen stelle wie bei v3)
Kompilier Zapit halt für die DVB-API v1. Ich kenn mich in Zapit nicht aus, aber von V3 auf V1 umzuportieren ist nun auch nicht so der riesige aufwand. Enigma z.b. kann ja beides, da kannste das ja hernehmen.
Oder aus dem russenimage - denn da ist der source doch bestimmt verfügbar, schließlich steht Zapit ja sehr wohl unter der GPL.
(Woher die ENOIOCTLCMD kommen ist mir allerdings schleierhaft, immerhin sind die entsprechenden Devices ja nichtmal vorhanden, bzw. nicht an der gleichen stelle wie bei v3)
Kompilier Zapit halt für die DVB-API v1. Ich kenn mich in Zapit nicht aus, aber von V3 auf V1 umzuportieren ist nun auch nicht so der riesige aufwand. Enigma z.b. kann ja beides, da kannste das ja hernehmen.
Oder aus dem russenimage - denn da ist der source doch bestimmt verfügbar, schließlich steht Zapit ja sehr wohl unter der GPL.
-
- Moderator english
- Beiträge: 2458
- Registriert: Donnerstag 20. Dezember 2001, 00:00
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Ok, danke für die Bestätigung.tmbinc hat geschrieben:Ja, die DM500 verwendet die alte DVB-API.
Unterhalte dich mal mit dem Herrn Kroah-Hartman darüber ;-) Aber darum geht es mir hier gar nicht.tmbinc hat geschrieben:Ja, die head.ko ist closed-source. Nein, die head.ko ist nicht illegal. Sie steht schlichtweg nicht unter der GPL
Nun ja, das liegt wohl an meinem sportlichen "ln -s card0 /dev/dvb/adapter0" :-) Wie gesagt, ich hatte mich bisher nicht wirklich mit dvb-internals auseinandergesetzt :-)tmbinc hat geschrieben:und enthält keine Softwareteile, die wir nicht unter einer geeigneten Lizenz besitzen.
(Woher die ENOIOCTLCMD kommen ist mir allerdings schleierhaft, immerhin sind die entsprechenden Devices ja nichtmal vorhanden, bzw. nicht an der gleichen stelle wie bei v3)
Ja, das habe ich gestern auch gemacht, der Port ist schmutzig, aber er baut :-). Dummerweise ist die box 400km von mir entfernt, drum kann ich es erst nächste woche testen.tmbinc hat geschrieben:Kompilier Zapit halt für die DVB-API v1. Ich kenn mich in Zapit nicht aus, aber von V3 auf V1 umzuportieren ist nun auch nicht so der riesige aufwand. Enigma z.b. kann ja beides, da kannste das ja hernehmen.
Das Problem ist, daß dort eine 4 Jahre alte Codebasis benutzt wird, was ich nicht will. Und daß das ein solcher Pfusch ist, daß es einem beim Anschauen schon schlecht wird ;-)tmbinc hat geschrieben:Oder aus dem russenimage - denn da ist der source doch bestimmt verfügbar, schließlich steht Zapit ja sehr wohl unter der GPL.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
OK. Erster Versuch, baut durch, ist noch nicht getestet, da die box 400km weit weg ist :-)
Hier die "step by step instructions":
1.) auschecken. z.B. mit folgendem Skript:
2.) patchen, mit dem angehängten patch:
3.) das Übliche:
"make rebuild-flash" und "make flash-compress" würde ich erstmal noch nicht machen, sondern mal versuchen, das Zeugs von NFS zu starten.
So. Den Patch gibts unter http://wiki.spieleck.de/attach/Neutrino ... ed.diff.gz
Viel Spaß damit, falls es jemand ausprobieren will :-)
Hier die "step by step instructions":
1.) auschecken. z.B. mit folgendem Skript:
Code: Alles auswählen
#!/bin/bash
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -f -r dreambox -P .
cvs -qz3 up -dPA apps/
cvs -qz3 up -dPA driver/
cvs -qz3 up -dP -r dreambox driver/include
Code: Alles auswählen
zcat neutrino-dreambox-20070426-untested.diff.gz | patch -p1
Code: Alles auswählen
cd cdk
./prepare dm500
make dreamboximage_neutrinoroot
So. Den Patch gibts unter http://wiki.spieleck.de/attach/Neutrino ... ed.diff.gz
Viel Spaß damit, falls es jemand ausprobieren will :-)
-
- Contributor
- Beiträge: 1833
- Registriert: Mittwoch 10. April 2002, 15:39
ich hab zwar keine dream, aber ich finde es trotzdem gut das sich mal jemand der sache annimmt..
ich lasse grade mal compilen..
ergebnisse wenns durchläuft ab nachher auf http://tuxbox.trale.de
edit: mom. ist trale.de leider offline
edit2: file ist online..
ich lasse grade mal compilen..
ergebnisse wenns durchläuft ab nachher auf http://tuxbox.trale.de
edit: mom. ist trale.de leider offline
edit2: file ist online..
Zuletzt geändert von dietmarw am Donnerstag 26. April 2007, 10:42, insgesamt 1-mal geändert.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
So, ich bin etwas weiter.
Natürlich hat das alles nicht so funktioniert, wie es sollte. Und daß der dreambox-Treiber die Kiste hart hinstellt, wenn man bei ioctls ein falsches Argument übergibt läßt mich über die Gründe, warum er Closed Source ist ganz neu spekulieren ;-)
Jetzt gehts aber.
Das checkout-Skript hat sich etwas geändert:
Dann patchen wie bisher, mit
dann bauen mit
Ich habe das Image noch nicht in die Box geflashed, sondern ich habe es wie folgt getestest.
Booten des "Russenimages" mit "console=ttyS0,115200" (sollte aber auch mit original-enigma gehen). Dann ist folgendes skript als /var/bin/mount_all.sh auf der box:
Zuerst logge ich mich an der seriellen Konsole ein, drücke strg-c (das killt das schon laufende neutrino), dann logge ich mich noch 2x per telnet ein.
Nun rufe ich mount_all.sh auf, danach kille ich wdog, zapit, controld, sectionsd, nhttpd und timerd.
Nun starte ich das alles manuell:
Auf dem Server müssen die permissions in cdkroot/var stimmen, damit die config geschrieben werden kann. Evtl. fehlen noch Verzeichnisse, die noch angelegt werden müssen (einfach die Fehlermeldungen beachten).
Damit kann ich dann eine Kanalsuche machen, Fernsehen schauen und Radio hören, mehr habe ich noch nicht versucht ;-)
Achso: MiniDiSEqC findet nur sehr wenige Sender (DVB-S), aber DiSEqC 1.0/1.1/1.2 scheint besser zu funktionieren (Ein Astra-LNB an einem 8x8-billig-Switch, an dem nur einer der beiden LNB-Eingänge belegt ist).
Soweit mein Zwischenbericht mit meiner DM500S, wenn ich wieder Zeit habe, dann räume ich das noch ein wenig auf, schaue, daß die init-skripten funktionieren (die habe ich noch gar nicht angeschaut) und daß es sich auch ins Flash installieren läßt.
Patch ist hier: http://wiki.spieleck.de/attach/Neutrino ... 03.diff.gz
Natürlich hat das alles nicht so funktioniert, wie es sollte. Und daß der dreambox-Treiber die Kiste hart hinstellt, wenn man bei ioctls ein falsches Argument übergibt läßt mich über die Gründe, warum er Closed Source ist ganz neu spekulieren ;-)
Jetzt gehts aber.
Das checkout-Skript hat sich etwas geändert:
Code: Alles auswählen
#!/bin/bash
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -f -r dreambox -P .
cvs -qz3 up -dPA apps/ driver/ cdk/root/
cvs -qz3 up -dP -r dreambox driver/include
Code: Alles auswählen
zcat neutrino-dreambox-20070503.diff.gz | patch -p1
Code: Alles auswählen
cd cdk
./prepare dm500
make dreamboximage_neutrinoroot
Booten des "Russenimages" mit "console=ttyS0,115200" (sollte aber auch mit original-enigma gehen). Dann ist folgendes skript als /var/bin/mount_all.sh auf der box:
Code: Alles auswählen
#!/bin/sh
server=192.168.200.1:/export/tuxbox-dream/root/cdkroot
for i in var share sbin lib bin
do
mount -t nfs -o tcp,nolock $server/$i /$i
done
Nun rufe ich mount_all.sh auf, danach kille ich wdog, zapit, controld, sectionsd, nhttpd und timerd.
Nun starte ich das alles manuell:
Code: Alles auswählen
zapit
controld
sectionsd
timerd
neutrino
Damit kann ich dann eine Kanalsuche machen, Fernsehen schauen und Radio hören, mehr habe ich noch nicht versucht ;-)
Achso: MiniDiSEqC findet nur sehr wenige Sender (DVB-S), aber DiSEqC 1.0/1.1/1.2 scheint besser zu funktionieren (Ein Astra-LNB an einem 8x8-billig-Switch, an dem nur einer der beiden LNB-Eingänge belegt ist).
Soweit mein Zwischenbericht mit meiner DM500S, wenn ich wieder Zeit habe, dann räume ich das noch ein wenig auf, schaue, daß die init-skripten funktionieren (die habe ich noch gar nicht angeschaut) und daß es sich auch ins Flash installieren läßt.
Patch ist hier: http://wiki.spieleck.de/attach/Neutrino ... 03.diff.gz
-
- Contributor
- Beiträge: 319
- Registriert: Samstag 29. Mai 2004, 18:49
@seife
Erstmal ein fettes Danke für deine Arbeit
Ich habe es geschafft, ein lauffähiges Image für die Dreambox7000 zu erstellen (was aber auf der DM500 genauso funktionieren müsste...).
Dafür sind noch einige Änderungen an deinen Sachen nötig:
1. Man darf nicht den cdk/root - Zweig aus dem HEAD nehmen.
2. Man muss den Code aus etc/init.d/start_neutrino in die rcS übernehmen und den Teil, der Enigma startet, ersetzen:
3. Da cdk/root aus dem Dreambox-Zweig verwendet wird, sind einige Anpassungen an deinen Patches für cdk/Makefile.am und cdk/configure.ac nötig:
Ein so erzeugtes Image lässt sich bei mir problemlos auf den USB-Stick installieren (im Flash hab ichs nicht getestet, müsste aber auch gehen).
VORSICHT: Bisher lassen sich mit dem Image noch nicht die Netzwerkeinstellungen setzen!
Neutrino benutzt ifup/ifdown, was in der BusyBox-Version für die Dreambox nicht aktiviert ist (Die Dreambox verwendet ifconfig).
Also kommt man nach dem Flashen nicht mehr per telnet auf die Box!
Deshalb am besten in die rcS vor dem Flashen die Netzwerkkonfiguration mit ifconfig eintragen.
Allgemein funktioniert Neutrino damit schon sehr gut
dbluelle
Erstmal ein fettes Danke für deine Arbeit
Ich habe es geschafft, ein lauffähiges Image für die Dreambox7000 zu erstellen (was aber auf der DM500 genauso funktionieren müsste...).
Dafür sind noch einige Änderungen an deinen Sachen nötig:
1. Man darf nicht den cdk/root - Zweig aus dem HEAD nehmen.
Code: Alles auswählen
#!/bin/bash
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -f -r dreambox -P .
cvs -qz3 up -dPA apps/ driver/
cvs -qz3 up -dP -r dreambox driver/include
Code: Alles auswählen
RCS file: /cvs/tuxbox/cdk/root/etc/init.d/rcS,v
retrieving revision 1.31.2.21
diff -U3 -r1.31.2.21 rcS
--- cdk/root/etc/init.d/rcS 4 Apr 2007 16:47:47 -0000 1.31.2.21
+++ cdk/root/etc/init.d/rcS 5 May 2007 18:37:22 -0000
@@ -155,44 +155,57 @@
if [ -e /var/etc/init ] ; then
. /var/etc/init
fi
+sectionsd
+timerd
+camd2
+zapit
+controld
+nhttpd
+until neutrino -f -u ; do
+ echo "Neutrino exited with nonzero exit status, restarting..."
+ pidof sectionsd >/dev/null || sectionsd
+ pidof timerd >/dev/null || timerd
+ pidof camd2 >/dev/null || camd2
+ pidof zapit >/dev/null || zapit
+ pidof controld >/dev/null || controld
+ pidof nhttpd >/dev/null || nhttpd
+done
+
+[ -e /tmp/tuxmaild.pid ] && kill $( cat /tmp/tuxmaild.pid )
+[ -e /tmp/tuxcald.pid ] && kill $( cat /tmp/tuxcald.pid )
+[ -e /var/run/automount.pid ] && kill -TERM $( cat /var/run/automount.pid )
+pzapit -kill
-rm /var/etc/.dont_restart_enigma
-touch /tmp/.enigma
-while [ -e /tmp/.enigma ]
+i=9
+while expr $i != 0 > /dev/null
do
- if [ ! -e /var/etc/.dont_restart_enigma ] ; then
- if [ ! -e /var/etc/.dont_start_dccamd ] ; then
- dccamd
- fi
- /bin/enigma
- ret=$?
- echo "enigma returned with "$ret
- case $ret in
- 0)
- echo "Shutdown"
- rm /tmp/.enigma
- /sbin/halt
- ;;
- 3)
- echo "Reboot Flash"
- killall -9 dccamd
- rm /tmp/.enigma
- umount /var
- umount /hdd
- /bin/flashtool
- ;;
- 4)
- echo "Reboot"
- rm /tmp/.enigma
- /sbin/reboot
- ;;
- *) echo "Restart"
- ;;
- esac
- killall -9 dccamd
- else
- sleep 1
- fi
+if pidof controld > /dev/null; then echo "Waiting for controld (max. $i seconds)"
+elif pidof timerd > /dev/null; then echo "Waiting for timerd (max. $i seconds)"
+elif pidof zapit > /dev/null; then echo "Waiting for zapit (max. $i seconds)"
+elif pidof tuxmaild > /dev/null; then echo "Waiting for tuxmaild (max. $i seconds)"
+elif pidof tuxcald > /dev/null; then echo "Waiting for tuxcald (max. $i seconds)"
+else break;
+fi
+i=`expr $i - 1`
+sleep 1
done
+if [ -e /tmp/.nohalt ] ; then
+ killall -q sectionsd
+ killall -q timerd
+ killall -q camd2
+ killall -q zapit
+ killall -q controld
+ killall -q nhttpd
+ saa --fbas
+ switch -fnc 0 -fblk 0
+ echo "Neutrino and its daemons terminated (hopefully)"
+ exit
+fi
+
+if [ -e /tmp/.reboot ] ; then
+ reboot
+else
+ halt
+fi
exit 0
Code: Alles auswählen
RCS file: /cvs/tuxbox/cdk/Makefile.am,v
retrieving revision 1.197.2.51.2.75
diff -U3 -r1.197.2.51.2.75 Makefile.am
--- cdk/Makefile.am 11 Mar 2007 15:47:58 -0000 1.197.2.51.2.75
+++ cdk/Makefile.am 5 May 2007 18:37:20 -0000
@@ -827,7 +827,7 @@
@CLEANUP_libsigc@
touch $@
-.libvorbisidec: .bootstrap @DEPENDS_libvorbisidec@
+.libvorbisidec: .bootstrap @DEPENDS_libvorbisidec@ Patches/tremor.diff
@PREPARE_libvorbisidec@
cd @DIR_libvorbisidec@ && \
$(BUILDENV) \
@@ -836,7 +836,8 @@
--host=$(target) \
--prefix= && \
$(MAKE) && \
- @INSTALL_libvorbisidec@
+ @INSTALL_libvorbisidec@ && \
+ cp vorbisidec.pc $(targetprefix)/lib/pkgconfig
@CLEANUP_libvorbisidec@
touch $@
@@ -1696,7 +1697,7 @@
touch $@
$(appsdir)/dvb/zapit/Makefile: .bootstrap .misc_libs
- cd $(appsdir)/dvb/zapit && $(CONFIGURE) --with-neutrino-source=$(appsdir)/tuxbox/neutrino
+ cd $(appsdir)/dvb/zapit && $(CONFIGURE) CPPFLAGS="$(CPPFLAGS) -DHAVE_DVB_API=1" --with-neutrino-source=$(appsdir)/tuxbox/neutrino
.zapit: $(appsdir)/dvb/zapit/Makefile
$(MAKE) -C $(appsdir)/dvb/zapit all install
@@ -1777,7 +1778,14 @@
# tuxbox/neutrino
-$(appsdir)/tuxbox/neutrino/Makefile: .bootstrap .libboost .libcurl .libfreetype .libtuxbox .misc_libs .plugins .tuxbox_libs .zapit
+$(appsdir)/dvb/config/config.status:
+ cd $(appsdir)/dvb/config && $(CONFIGURE)
+
+.config: $(appsdir)/dvb/config/config.status
+ $(MAKE) -C $(appsdir)/dvb/config all install
+ touch $@
+
+$(appsdir)/tuxbox/neutrino/Makefile: .bootstrap .libboost .libcurl .libfreetype .libtuxbox .misc_libs .libsigc .plugins .tuxbox_libs .zapit .tuxbox_tools .libid3tag .libmad .libvorbisidec .config
cd $(appsdir)/tuxbox/neutrino && $(CONFIGURE)
.neutrino: $(appsdir)/tuxbox/neutrino/Makefile
@@ -1853,6 +1861,12 @@
flash-sambaclient
endif
+dreamboximage_neutrinoroot: core .neutrino .etherwake .linuxkernel .dreamfiles .dvbsnoop \
+ flash-neutrino \
+ flash-plugin_tuxtxt \
+ flash-ftpd flash-dvb-tools flash-etherwake flash-dreamfiles flash-dvbsnoop \
+ flash-sambaclient
+
rebuild-flash:
-rm -rf $(flashprefix)/root
-rm -f $(flashprefix)/.flash
@@ -1899,7 +1913,7 @@
$(flashprefix)/.part_dvb_tools: $(flashprefix)/.flash .stream
@for i in streampes streamsec streamts udpstreampes; do \
$(INSTALL) $(targetprefix)/sbin/$$i $(flashprefix)/root/sbin; done;
- $(INSTALL) $(targetprefix)/bin/dvbnet $(flashprefix)/root/bin;
+# $(INSTALL) $(targetprefix)/bin/dvbnet $(flashprefix)/root/bin;
@touch $@
flash-scummvm: $(flashprefix)/.part_scummvm .scummvm
@@ -1969,12 +1983,12 @@
fi
# var_init
@cp -R $(targetprefix)/var_init $(flashprefix)/root
- @for i in log mnt mnt/cf mnt/nfs mnt/usb run tuxbox/plugins tuxbox/config ; do \
+ @for i in log mnt mnt/cf mnt/nfs mnt/usb run tuxbox/plugins tuxbox/config tuxbox/config/zapit ; do \
$(INSTALL) -d $(flashprefix)/root/var_init/$$i; \
done;
- @for i in tuxtxt enigma/cable enigma/fonts enigma/pictures enigma/resources enigma/skins enigma/terrestrial; do \
- $(INSTALL) -d $(flashprefix)/root/var_init/tuxbox/config/$$i; \
- done;
+# @for i in tuxtxt enigma/cable enigma/fonts enigma/pictures enigma/resources enigma/skins enigma/terrestrial; do \
+# $(INSTALL) -d $(flashprefix)/root/var_init/tuxbox/config/$$i; \
+# done;
@ln -sf /tmp $(flashprefix)/root/var_init/tmp
@ln -sf /proc/mounts $(flashprefix)/root/var_init/etc/mtab
# etc
@@ -2004,9 +2018,9 @@
@if [ ! -d $(flashprefix)/root/hdd ]; then mkdir $(flashprefix)/root/hdd; fi
if !BOXTYPE_DM7000
- @echo "i:/ezap/osd/alpha=00000000" >> $(flashprefix)/root/var_init/tuxbox/config/enigma/config
- @echo "i:/ezap/osd/brightness=00000073" >> $(flashprefix)/root/var_init/tuxbox/config/enigma/config
- @echo "i:/ezap/osd/gamma=00000066" >> $(flashprefix)/root/var_init/tuxbox/config/enigma/config
+# @echo "i:/ezap/osd/alpha=00000000" >> $(flashprefix)/root/var_init/tuxbox/config/enigma/config
+# @echo "i:/ezap/osd/brightness=00000073" >> $(flashprefix)/root/var_init/tuxbox/config/enigma/config
+# @echo "i:/ezap/osd/gamma=00000066" >> $(flashprefix)/root/var_init/tuxbox/config/enigma/config
endif
if !BOXTYPE_DM56x0
@for i in skins/small_red*.esml skins/small_red*.info pictures/small-red pictures/triaxlogo-fs8.png ; do \
@@ -2428,20 +2442,32 @@
############################# UNTESTED!!! ##################################
flash-neutrino: $(flashprefix)/.part_neutrino
$(flashprefix)/.part_neutrino: $(flashprefix)/.flash .neutrino
- $(INSTALL) $(targetprefix)/bin/controld $(targetprefix)/bin/lcdd $(targetprefix)/bin/neutrino \
+ $(INSTALL) -d $(flashprefix)/root/share/fonts
+ $(INSTALL) -d $(flashprefix)/root/share/iso-codes
+ $(INSTALL) -d $(flashprefix)/root/share/tuxbox
+ $(INSTALL) -d $(flashprefix)/root/etc/init.d
+ $(INSTALL) -d $(flashprefix)/root/var/etc/init.d
+ $(INSTALL) -d $(flashprefix)/root/var/tuxbox/config/lirc
+ $(INSTALL) $(targetprefix)/bin/controld $(targetprefix)/bin/neutrino \
$(targetprefix)/bin/nhttpd $(targetprefix)/bin/timerd \
$(flashprefix)/root/bin
- cp -a $(targetprefix)/share/tuxbox/neutrino $(targetprefix)/share/tuxbox/lcdd \
+ cp -pa $(targetprefix)/share/tuxbox/neutrino $(targetprefix)/share/tuxbox/lcdd \
$(flashprefix)/root/share/tuxbox
-
+# $(INSTALL) $(targetprefix)/bin/camd2 $(flashprefix)/root/bin
$(INSTALL) $(targetprefix)/bin/sectionsd $(flashprefix)/root/bin
-
+ $(INSTALL) $(targetprefix)/bin/pzapit $(flashprefix)/root/bin
+# $(INSTALL) $(targetprefix)/bin/satfind $(flashprefix)/root/bin
$(INSTALL) $(targetprefix)/bin/zapit $(flashprefix)/root/bin
- cp -a $(targetprefix)/var/tuxbox/config/zapit $(flashprefix)/root/var/tuxbox/config
-
- $(INSTALL) -d $(flashprefix)/root/share/fonts
- cp -a $(targetprefix)/share/fonts/micron*.ttf $(flashprefix)/root/share/fonts
-
+ cp -pa $(appsdir)/tuxbox/enigma/data/fonts/bluebold.ttf $(flashprefix)/root/share/fonts
+ cp -pa $(appsdir)/tuxbox/enigma/data/fonts/bluehigh.ttf $(flashprefix)/root/share/fonts
+ cp -pa $(appsdir)/tuxbox/enigma/data/fonts/md_khmurabi_10.ttf $(flashprefix)/root/share/fonts
+ cp -pa $(appsdir)/tuxbox/enigma/data/fonts/pakenham.ttf $(flashprefix)/root/share/fonts
+ cp -pa $(appsdir)/tuxbox/enigma/data/fonts/unmrs.pfa $(flashprefix)/root/share/fonts
+ cp -pa $(targetprefix)/share/fonts/micron*.ttf $(flashprefix)/root/share/fonts
+ cp -pa $(targetprefix)/share/fonts/12.pcf.gz $(flashprefix)/root/share/fonts
+ cp -pa $(targetprefix)/share/fonts/14B.pcf.gz $(flashprefix)/root/share/fonts
+ cp -pa $(targetprefix)/share/fonts/15B.pcf.gz $(flashprefix)/root/share/fonts
+ cp -pa $(targetprefix)/share/iso-codes/iso-639.tab $(flashprefix)/root/share/iso-codes
@touch $@
flash-lcars: $(flashprefix)/.part_lcars
Index: cdk/configure.ac
===================================================================
RCS file: /cvs/tuxbox/cdk/configure.ac,v
retrieving revision 1.81.2.15.2.23
diff -U3 -r1.81.2.15.2.23 configure.ac
--- cdk/configure.ac 24 Dec 2006 16:30:37 -0000 1.81.2.15.2.23
+++ cdk/configure.ac 5 May 2007 18:37:21 -0000
@@ -486,11 +486,6 @@
root/etc/Makefile
root/etc/init.d/Makefile
root/share/Makefile
-root/share/tuxbox/Makefile
root/share/udhcpc/Makefile
-root/var_init/Makefile
root/var_init/etc/Makefile
-root/var_init/tuxbox/Makefile
-root/var_init/tuxbox/config/Makefile
-root/var_init/tuxbox/config/enigma/Makefile
])
VORSICHT: Bisher lassen sich mit dem Image noch nicht die Netzwerkeinstellungen setzen!
Neutrino benutzt ifup/ifdown, was in der BusyBox-Version für die Dreambox nicht aktiviert ist (Die Dreambox verwendet ifconfig).
Also kommt man nach dem Flashen nicht mehr per telnet auf die Box!
Deshalb am besten in die rcS vor dem Flashen die Netzwerkkonfiguration mit ifconfig eintragen.
Allgemein funktioniert Neutrino damit schon sehr gut
dbluelle
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Gern geschehen, ich mache das ja nicht ganz uneigennützigdbluelle hat geschrieben:@seife
Erstmal ein fettes Danke für deine Arbeit
Sehr gut. Ich bin inzwischen so weit, daß es auch per Flash gehen müßte (ich teste mit readonly exportiertem root/cdkflash/root/ als nfsroot), aber ich habe es noch nicht probiert. Ich vermute, daß ich noch ein wenig Infrastruktur für das Initialisieren der /var/-Partition einbauen müßte (oder herausfinden, wie man ein Komplettimage inklusive /var für die dreambox baut).Ich habe es geschafft, ein lauffähiges Image für die Dreambox7000 zu erstellen (was aber auf der DM500 genauso funktionieren müsste...).
Ok, bei mir funktioniert es auch mit HEAD cdk/root, aber ich habe es halt noch nicht im Flash getestet.Dafür sind noch einige Änderungen an deinen Sachen nötig:
1. Man darf nicht den cdk/root - Zweig aus dem HEAD nehmen.2. Man muss den Code aus etc/init.d/start_neutrino in die rcS übernehmen und den Teil, der Enigma startet, ersetzen:Code: Alles auswählen
#!/bin/bash cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -f -r dreambox -P . cvs -qz3 up -dPA apps/ driver/ cvs -qz3 up -dP -r dreambox driver/include
Ich schaue mir das mal an, wenn ich soweit bin, daß ich es ins Flash schreiben will (also sonst keine Probleme mehr auftreten).
Das habe ich gestern gefixt: Update auf busybox-1.2 (wie in HEAD) und ich habe sowohl ifupdown als auch ifconfig reinkonfiguriert.Ein so erzeugtes Image lässt sich bei mir problemlos auf den USB-Stick installieren (im Flash hab ichs nicht getestet, müsste aber auch gehen).
VORSICHT: Bisher lassen sich mit dem Image noch nicht die Netzwerkeinstellungen setzen!
Neutrino benutzt ifup/ifdown, was in der BusyBox-Version für die Dreambox nicht aktiviert ist (Die Dreambox verwendet ifconfig).
Also kommt man nach dem Flashen nicht mehr per telnet auf die Box!
Deshalb am besten in die rcS vor dem Flashen die Netzwerkkonfiguration mit ifconfig eintragen.
Bei mir inzwischen sogar besser als das russenimage: Wenn sich die Aspectratio von 4:3 auf 16:9 ändert, bekommt das russenimage das nicht mit (CEventWatchDog::getVideoMode ist scheinbar nicht implementiert, und in der alten API scheint es keinen VideoModeChanged-Event zu geben), aber "meine" Version schonAllgemein funktioniert Neutrino damit schon sehr gut
Danke für's testen. Ich komme immer nur sporadisch dazu, daran zu entwickeln, da die Box während der Woche 400km weit weg ist (und mitnehmen hilft auch nix, da die SAT-Anlage dann fehlt , und die Probleme, die noch auftreten, nicht mehr ohne Blick auf den Fernseher remote debugt werden können
Letzte Version:
http://wiki.spieleck.de/attach/Neutrino ... 05.diff.gz
Changelog:
- Aspectratio-Änderungen werden erkannt
- busybox 1.2, netzwerk sollte wieder gehen
- customize-flash skript, das (hoffentlich) das ganze halbwegs flash-tauglich macht
- Movieplayer kann abspielen
- nach einem kalten boot (ohne das russenimage vorher zu starten) ist trotdem Bild da. (teletextDemux->start() schlägt fehl, ist aber scheinbar harmlos -> nicht abbrechen)
- viele Kleinigkeiten, die ich vergessen habe
Ich boote das als yadd, indem ich nache "make rebuild-flash" die box mit folgender Kommandozeile boote:
Code: Alles auswählen
console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.200.1:/space1/seife/src/tuxbox-dream/root/cdkflash/root,nolock,tcp ip=192.168.200.14:192.168.200.1
-
- Interessierter
- Beiträge: 75
- Registriert: Sonntag 3. Dezember 2006, 18:01
Kann man das nun auch ins Flash packen?
Zur Zeit nutze ich auf meiner DM500 das Russen-Image, aber eine alternative wäre spitze.
Ich liebäugle zur Zeit noch mit der ABCOM IP BOX 250 als Zweitbox und zum Aufnehmen. Könnte man da auch Neutrino draufpacken? Enigma läuft ja schon drauf, aber wer will das schon
Zur Zeit nutze ich auf meiner DM500 das Russen-Image, aber eine alternative wäre spitze.
Ich liebäugle zur Zeit noch mit der ABCOM IP BOX 250 als Zweitbox und zum Aufnehmen. Könnte man da auch Neutrino draufpacken? Enigma läuft ja schon drauf, aber wer will das schon
-
- Moderator english
- Beiträge: 2458
- Registriert: Donnerstag 20. Dezember 2001, 00:00
-
- Interessierter
- Beiträge: 61
- Registriert: Mittwoch 1. Mai 2002, 19:09
Hallo,
bin auch mal gerade dabei, ein Neutrino-Image für die 7000er zu basteln.
Danke erst einmal an seife für die Anleitung und diffs.
Jetzt habe ich da aber ein Problemchen:
geht, wenn ich jedoch
diffen will, sieht das bei mir so aus:
bin auch mal gerade dabei, ein Neutrino-Image für die 7000er zu basteln.
Danke erst einmal an seife für die Anleitung und diffs.
Jetzt habe ich da aber ein Problemchen:
Code: Alles auswählen
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -f -r dreambox -P .
cvs -qz3 up -dPA apps/ driver/
cvs -qz3 up -dP -r dreambox driver/include
diffen will, sieht das bei mir so aus:
Kann man die Fehlermeldungen ignorieren, oder mache ich da einen Fehler?dreamer@ubuntu:~/images/dm7000_neutrino$ zcat neutrino-dreambox-20070505.diff.gz | patch -p1
patching file apps/dvb/zapit/include/zapit/audio.h
patching file apps/dvb/zapit/include/zapit/debug.h
patching file apps/dvb/zapit/include/zapit/frontend.h
patching file apps/dvb/zapit/include/zapit/getservices.h
patching file apps/dvb/zapit/include/zapit/scan.h
patching file apps/dvb/zapit/include/zapit/settings.h
patching file apps/dvb/zapit/include/zapit/video.h
patching file apps/dvb/zapit/include/zapit/zapit.h
patching file apps/dvb/zapit/include/zapit/client/zapittypes.h
patching file apps/dvb/zapit/src/getservices.cpp
patching file apps/dvb/zapit/src/scan.cpp
patching file apps/dvb/zapit/src/udpstreampes.cpp
patching file apps/dvb/zapit/src/zapit.cpp
patching file apps/dvb/zapit/src/zapost/Makefile.am
patching file apps/dvb/zapit/src/zapost/audio.cpp
patching file apps/dvb/zapit/src/zapost/frontend.cpp
patching file apps/dvb/zapit/src/zapost/video.cpp
patching file apps/dvb/zapit/src/zapsi/descriptors.cpp
patching file apps/dvb/zapit/src/zapsi/pmt.cpp
Hunk #1 succeeded at 439 (offset 8 lines).
patching file apps/tuxbox/libs/liblcddisplay/lcddisplay.cpp
patching file apps/tuxbox/neutrino/daemons/controld/controld.cpp
patching file apps/tuxbox/neutrino/daemons/controld/eventwatchdog.cpp
patching file apps/tuxbox/neutrino/daemons/controld/driver/audio.cpp
patching file apps/tuxbox/neutrino/daemons/sectionsd/dmxapi.h
patching file apps/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
patching file apps/tuxbox/neutrino/data/locale/Makefile.am
patching file apps/tuxbox/neutrino/src/neutrino.cpp
patching file apps/tuxbox/neutrino/src/driver/BitrateCalculator.cpp
patching file apps/tuxbox/neutrino/src/driver/BitrateCalculator.h
patching file apps/tuxbox/neutrino/src/driver/lcdd.cpp
patching file apps/tuxbox/neutrino/src/driver/rcinput.h
patching file apps/tuxbox/neutrino/src/gui/alphasetup.cpp
patching file apps/tuxbox/neutrino/src/gui/movieplayer.cpp
patching file apps/tuxbox/neutrino/src/gui/movieplayer.h
patching file apps/tuxbox/neutrino/src/gui/streaminfo2.cpp
patching file apps/tuxbox/neutrino/src/gui/widget/menue.cpp
patching file apps/tuxbox/neutrino/src/system/settings.cpp
patching file apps/tuxbox/plugins/Makefile.am
patching file apps/tuxbox/tools/misc/Makefile.am
patching file cdk/Makefile.am
patching file cdk/configure.ac
patching file cdk/customize-flash
patching file cdk/rules-archive
patching file cdk/rules-make
patching file cdk/rules.pl
patching file cdk/Patches/busybox.config
patching file cdk/Patches/busybox.diff
patching file cdk/Patches/linux-enable-serial-console.diff
can't find file to patch at input line 4265
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: cdk/root/etc/hostname
|===================================================================
|RCS file: /cvs/tuxbox/cdk/root/etc/hostname,v
|retrieving revision 1.1
|diff -u -p -r1.1 hostname
|--- a/cdk/root/etc/hostname 11 Dec 2001 12:59:23 -0000 1.1
|+++ b/cdk/root/etc/hostname 5 May 2007 18:26:50 -0000
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
1 out of 1 hunk ignored
patching file cdk/root/etc/init.d/rcS
Hunk #1 FAILED at 14.
Hunk #2 succeeded at 111 with fuzz 2 (offset 2 lines).
Hunk #3 FAILED at 128.
Hunk #4 FAILED at 250.
Hunk #5 FAILED at 273.
4 out of 5 hunks FAILED -- saving rejects to file cdk/root/etc/init.d/rcS.rej
patching file cdk/root/etc/init.d/start
Hunk #1 FAILED at 2.
1 out of 1 hunk FAILED -- saving rejects to file cdk/root/etc/init.d/start.rej
patching file driver/include/dbox/fb.h
patching file driver/include/ost/frontend.h
BoxMan
-
- Contributor
- Beiträge: 319
- Registriert: Samstag 29. Mai 2004, 18:49
@boxman
Die Fehler beim Patchen kommen daher, dass du nicht die aktuelle Version von cdk/root mit ausgecheckt hast
Also stattnimm
Damit müsste es für seifes diffs passen.
Du kannst aber auch "meinen" Weg gehen (s. letztes Posting von mir).
Dann musst du allerdings auch die dort angegebenen Patches anwenden.
@seife
Hat es irgendwelche besonderen Gründe, warum du unbedingt den cdk/root/ -Zweig aus dem HEAD verwenden willst?
Soweit ich das sehe, werden dadurch nur eine Menge Skripte eingebaut, die man für die Dreambox eh nicht braucht bzw. die dann noch gepatcht werden müssen .
m.E. reicht es doch aus, in der rcS die Enigma Startbefehle durch die Neutrino-Startbefehle zu ersetzen (s. Patch weiter oben), oder übersehe ich da was?
dbluelle
Die Fehler beim Patchen kommen daher, dass du nicht die aktuelle Version von cdk/root mit ausgecheckt hast
Also statt
Code: Alles auswählen
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -f -r dreambox -P .
cvs -qz3 up -dPA apps/ driver/
cvs -qz3 up -dP -r dreambox driver/include
Code: Alles auswählen
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -f -r dreambox -P .
cvs -qz3 up -dPA apps/ driver/ cdk/root/
cvs -qz3 up -dP -r dreambox driver/include
Du kannst aber auch "meinen" Weg gehen (s. letztes Posting von mir).
Dann musst du allerdings auch die dort angegebenen Patches anwenden.
@seife
Hat es irgendwelche besonderen Gründe, warum du unbedingt den cdk/root/ -Zweig aus dem HEAD verwenden willst?
Soweit ich das sehe, werden dadurch nur eine Menge Skripte eingebaut, die man für die Dreambox eh nicht braucht bzw. die dann noch gepatcht werden müssen .
m.E. reicht es doch aus, in der rcS die Enigma Startbefehle durch die Neutrino-Startbefehle zu ersetzen (s. Patch weiter oben), oder übersehe ich da was?
dbluelle
-
- Interessierter
- Beiträge: 61
- Registriert: Mittwoch 1. Mai 2002, 19:09
ahh oki, gleich mal Deine Version testen.
Gebe dann Bescheid.
Wie ist es denn bei Updates, was muss man da eingeben?
Bei der Dreambox gehe ich immer so vor:
Gebe dann Bescheid.
Wie ist es denn bei Updates, was muss man da eingeben?
Bei der Dreambox gehe ich immer so vor:
Code: Alles auswählen
cd $HOME/images/dm7000/apps/tuxbox/enigma
make distclean
cd $HOME/images/dm7000/apps/tuxbox/plugins
make distclean
cd $HOME/images/dm7000/apps
cvs -z3 up -dP
cd $HOME/images/dm7000/cdk
## für neue Treiber "rm -rf .dreamfiles"
rm -rf .plugins .dvbsnoop .enigma
cvs -z3 up -dP
## für neue Treiber "make .dreamfiles" ausführen
make .plugins
make .dvbsnoop
make .enigma
make rebuild-flash
make flash-compress
BoxMan
-
- Interessierter
- Beiträge: 61
- Registriert: Mittwoch 1. Mai 2002, 19:09
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Nein, das hat keinen speziellen Grund, ich kann es einfach nicht besserdbluelle hat geschrieben: @seife
Hat es irgendwelche besonderen Gründe, warum du unbedingt den cdk/root/ -Zweig aus dem HEAD verwenden willst?
Soweit ich das sehe, werden dadurch nur eine Menge Skripte eingebaut, die man für die Dreambox eh nicht braucht bzw. die dann noch gepatcht werden müssen .
m.E. reicht es doch aus, in der rcS die Enigma Startbefehle durch die Neutrino-Startbefehle zu ersetzen (s. Patch weiter oben), oder übersehe ich da was?
Ich kenne mich mit der dreambox und der Art, wie die Startskripte funktionieren, gar nicht aus. Mit der dbox auch nicht wirklich, aber das habe ich mir immerhin schon genauer angeschaut. Also wollte ich es möglichst gleich wie bei der dbox haben. Daß das nicht unbedingt optimal sein muß, ist mir klar.
Ich denke aber, daß das schon unter "feintuning" fällt, sprich: wenn das unser ganzes Problem ist, dann bin ich glücklich.
Ich werde mir deine Version des startskriptes mal anschauen und ausprobieren, das hat aber leider gerade alles relativ niedrige priorität bei mir.
Ich hoffe ja auch immer noch, daß sich ein paar Mitentwickler finden, hoffentlich Leute, die sich besser als ich mit den neutrino-Internas auskennen. Ich könnte wetten, daß es so manchem Spezialisten durchaus leicht übel werden könnte, wenn er sieht, wie ich das ganze "hingepfuscht" habe
Das sind die nächsten Punkt auf meiner ToDo-Liste:
- die neutrino-Patches durchgehen und schauen, welche Teile davon gar nicht notwendig sind, oder was man sauberer machen könnte.
- die Sachen, die jetzt einfach disabled sind (plugins,...) portieren, bauen, testen, fixen.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Was mir gerade auffällt (manchmal ganz neu auschecken hilft doch...):
nach dem Patchen muß mittels dafür gesorgt werden, daß customize-flash ausführbar ist. Ansonsten sind die Konfigurationsdateien nicht in /var/etc, sondern in /etc, und dort sind sie nicht schreibbar.
nach dem Patchen muß mittels
Code: Alles auswählen
chmod +x cdk/customize-flash
-
- Contributor
- Beiträge: 1833
- Registriert: Mittwoch 10. April 2002, 15:39
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Nun ist es auch flash-getestet.
http://wiki.spieleck.de/attach/Neutrino ... eckout1.sh
http://wiki.spieleck.de/attach/Neutrino ... 14.diff.gz
Auschecken:
Dann bauen mit:
Das Ergebnis liegt dann in root/cdkflash/complete.img
Das auf der box per fcp nach /dev/mtd/1 flashen und alles wird gut
ACHTUNG! Auf allem anderen als einer dm500s sollte auf jeden Fall geprüft werden, ob dieser Teil von cdk/root/etc/init.d/rcS korrekt ist:
Die /dev/mtd/1 und /dev/mtdblock/1 müssen auf die /var-Partition zeigen, ansonsten könnte es ein Problem geben ;-)
http://wiki.spieleck.de/attach/Neutrino ... eckout1.sh
http://wiki.spieleck.de/attach/Neutrino ... 14.diff.gz
Auschecken:
Code: Alles auswählen
./checkout1.sh neutrino-dreambox-20070514.diff.gz
Code: Alles auswählen
cd cdk
./prepare dm500
make dreamboximage_neutrinoroot
make rebuild-flash
make flash-compress
Das auf der box per fcp nach /dev/mtd/1 flashen und alles wird gut
ACHTUNG! Auf allem anderen als einer dm500s sollte auf jeden Fall geprüft werden, ob dieser Teil von cdk/root/etc/init.d/rcS korrekt ist:
Code: Alles auswählen
# special hack, so that cdkflash/root/ dir can be used as yadd
if [ -e /.flash ]; then
/bin/mount -t jffs2 /dev/mtdblock/1 /var
if [ ! -e /var/.neutrino-init ] && [ -e /init-var.tar.gz ]; then
echo "initializing /var..."
/bin/umount /var
/bin/eraseall /dev/mtd/1
/bin/mount -t jffs2 /dev/mtdblock/1 /var
cd /var
tar xvzf /init-var.tar.gz
touch .neutrino-init
cd ..
fi
else
/bin/mount -t nfs 192.168.200.1:/space1/seife/src/tuxbox-dream/root/cdkflash/root/var /var -o rw,tcp,nolock
echo "NOT A FLASHIMAGE - NOT MOUNTING /var!"
fi
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36