Personalisierung von selbstgebauten NI-Images

Benutzeravatar
vanhofen
Administrator
Beiträge: 2934
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 8 times
Been thanked: 16 times

Personalisierung von selbstgebauten NI-Images

Beitrag von vanhofen »

Janus hat geschrieben: Fr 1. Sep 2017, 09:12 Vielleicht kann man das vom BS unabhängiger machen indem man den Aufruf entsprechender Scripts [...] in rootfs.mk um den Kopierteil herum anlegt.
Da ich mich Luxusproblemen sehr gern widme und mich die Lösung hier selbst interessiert hat, hab ich mich auch mal an Janus' Ich-brauche-ein-anderes-zapit-Verzeichnis-Problem gemacht. :nerd:

:arrow_right: https://bitbucket.org/neutrino-images/n ... d16cfd1d9c

Das Personalisierungs-Target führt nun zum Beginn und am Ende ein Script aus, falls dieses vorhanden ist. Das Script muss in local/scripts liegen und "personalize" (also wie das Target selbst) heißen. Der Aufbau ist identisch mit einem typischen Start/Stop-Script und es benötigt natürlich ausführbare Rechte (0755).

local/scripts/personalize:

Code: Alles auswählen

#!/bin/bash

TARGETPREFIX=$2
BUILD_TMP=$3

start() {
	echo "exec local start goodies ..."
}

stop() {
	echo "exec local stop goodies ..."
}

case $1 in
	start)	start	;;
	stop)	stop	;;
esac
$(TARGETPREFIX) und $(BUILD_TMP) werden immer als Parameter 2 und 3 an das Script übergeben. Die beiden Variablen kann man sicher immer gut gebrauchen, wenn man personalisieren will. Die Idee dazu hab ich einfach von der DBOX2-cdk geklaut. Dort wurde das auch so gemacht.
Nun kann man also nach Lust und Laune in der start- bzw. in der stop-Sektion seine Personalisierungen vornehmen ... je nachdem, ob sie vor oder nach dem Kopieren der eigenen Dateien stattfinden soll.

Ich hoffe, so ist wenigstens einem geholfen. :slight_smile:

Nun können also in Makefile.local eigene Targets erstellt werden und über das mitgelieferte Personalisierungs-Target zum Beispiel die eigenen Senderlisten schon ins Image wandern. Mögliche tiefergehenden Änderungen sind nun über das Personalisierungs-Script möglich. Mehr Personalisierung fällt mir da jetzt vor Schreck gar nicht ein. :grimacing:

Der Befehl zum Bau eines solchen Images lautet

Code: Alles auswählen

make personalized-image
Ändert nicht irgendwelche essentiellen Dinge im Image und beschwert euch dann, dass nichts mehr geht. Der Fehler spiegelt sich nämlich ganz oft im Monitor wider. :sunglasses:
Benutzeravatar
Janus
NI - VIP
Beiträge: 1147
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von Janus »

Das sieht nach einer Lösung aus! :D

Danke erstmal.
Ich schau am WE, ob ich damit Erfolg habe.
Wenn ja, mache ich mal eine Anleitung mit Beispiel...
Benutzeravatar
Janus
NI - VIP
Beiträge: 1147
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von Janus »

Irgendwie klappt der Aufruf von .../local/scripts/personalize nicht ?!?
personalize hat folgende Rechte -rwxr-xr-x

Code: Alles auswählen

make personalize
make[2]: Entering directory '/home/janus/development/ni/build'
„/home/janus/development/ni/build/local/root/var/tuxbox/config/cables.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/cables.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/frontend.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/frontend.conf“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/keys.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/keys.conf“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/nhttpd.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/nhttpd.conf“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/prmapselect.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/prmapselect.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/providermap.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/providermap.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/radio-stations.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/radio-stations.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/satellites.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/satellites.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/satselect.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/satselect.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/scan.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/scan.conf“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/terrestrial.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/terrestrial.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/tuxcom.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/tuxcom.conf“
„/home/janus/development/ni/build/root/var/tuxbox/config/default/bouquets.xml“ wurde entfernt
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/bouquets.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/bouquets.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/abqtselect.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/abqtselect.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/audio.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/audio.conf“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/abouquets.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/abouquets.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/bqtselect.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/bqtselect.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/chnselect.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/chnselect.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/datum“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/datum“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/frontend.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/frontend.conf“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/myservices.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/myservices.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/mysselect.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/mysselect.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/pbouquets.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/pbouquets.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/services.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/services.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/ubouquets.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/ubouquets.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/ubqtselect.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/ubqtselect.xml“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/volume.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/volume.conf“
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/zapit.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/zapit.conf“
make[2]: Leaving directory '/home/janus/development/ni/build'
make rootfs
Wenn im Script selbst ein Fehler wäre, sollte doch zumindestens eine Meldung kommen.
Ich prüfe Morgen nochmal ob ich die Makros richtig eingesetzt habe. Aber sieht eher so aus, als wenn das Script garnicht erst gefunden wird. Für die Analyse der Calls fehlt mir leider das KnowHow...
Benutzeravatar
vanhofen
Administrator
Beiträge: 2934
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 8 times
Been thanked: 16 times

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von vanhofen »

Zeig mal bitte die Ausgabe von

ls -all local/scripts/*

//Nachtrag:
Ich hab da keine Sorgen damit:

Code: Alles auswählen

vanhofen@jessie:~/ni/buildsystem[master]$ ls -all local/scripts/*
-rwxr-xr-x 1 vanhofen vanhofen 187 Sep  1 15:10 local/scripts/personalize
vanhofen@jessie:~/ni/buildsystem[master]$ make personalize
exec local start goodies ...
exec local stop goodies ...
vanhofen@jessie:~/ni/buildsystem[master]$
Benutzeravatar
vanhofen
Administrator
Beiträge: 2934
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 8 times
Been thanked: 16 times

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von vanhofen »

So zum Testen kannst du 'make personalize' ja auch händisch starten. Du muss da ja nicht immer den ganzen Build durchlaufen.
Benutzeravatar
Janus
NI - VIP
Beiträge: 1147
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von Janus »

Code: Alles auswählen

janus@vmJessie:~/development/ni/build$ ls -all local/scripts/*
-rwxr-xr-x 1 janus janus 424 Sep  2 11:08 local/scripts/personalize
janus@vmJessie:~/development/ni/build$ 
"make personalize" verhält sich genau wie oben, also ohne Lebenzeichen des Scripts.

Habe dann mal meine eigenen Befehle wieder auskommentiert (meine Syntax hat vielleicht noch DOS-Akzent) und nur die beiden echo-Anweisungen dringelassen.
Keine Änderung.

Habe dann im Buildverzeichnis local/scripts/personalize start eingegegeben => auch keine Reaktion!

Dann habe ich im Script noch #!/bin/bash auf #!/bin/sh geändert :

Code: Alles auswählen

janus@vmJessie:~/development/ni/build$ local/scripts/personalize start
janus@vmJessie:~/development/ni/build$ sh
sh-4.3$ ls -al /bin/sh
lrwxrwxrwx 1 root root 9 Jan  2  2017 /bin/sh -> /bin/bash
sh-4.3$ 
Dann habe ich noch die beiden Makrozuweisungen auskommentiert => kein Erfolg.

Ich könnte noch versuchen, den Besitzer des Scripts auf root zu stellen (wer weiß, was der vmWare-Player mit seiner OS-Basis verhuddelt)
Ich habe noch einen Linux-Rechner mit Jessie (gedacht für build_generic_pc).
Könnte ich ja dort auch mal versuchen. Wird aber dauern.

Ansonsten bin ich mit meinem Latein erstmal am Ende...


...oooOPs, gerade gesehen, da hat sich ja schon was geändert...
Mach ich mal erst ein update-all...
Benutzeravatar
vanhofen
Administrator
Beiträge: 2934
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 8 times
Been thanked: 16 times

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von vanhofen »

Schreibe doch mal irgendeine echo-Ausgabe in dein Script, dass man was sieht ... oder hast du das schon gemacht?

Ansonsten fällt mir nur noch ein, dass das Script vielleicht nicht unix-kompatibel ist. Das passiert ja gern, wenn man Scripte von Windows in die VM kopiert. Da du beim manuellen Start des Scriptes nicht mal eine Reaktion siehst, tippe ich eher in diese Richtung.

Ein 'dos2unix local/scripts/personalize' könnte da helfen.

//Nachtrag:
root-Rechte sind jedenfalls ganz und gar nicht richtig. Mach das nicht!
Benutzeravatar
Janus
NI - VIP
Beiträge: 1147
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von Janus »

Nee, das ist mir jetzt aber peinlich, Bug sitzt mal wieder davor!
Da ich das Ganze unter Linux (mit scite, Einstellung "nur LF") erstelllt habe, fühlte ich mich auf der sicheren Seite. Die Kopie des Grundgerüsts aus dem Thread hat es leider versaut!
Mache ich sowas unter Windows, folgt bei mir automatisch => ersetze alle "0d 0a" mit "0a" da WinVI 'falsche' Zeilenenden wirklich darstellt!

Naja, wenigstens ist der Fehler beseitigt...

Code: Alles auswählen

janus@vmJessie:~/development/ni/build$ make personalize
exec local stop goodies ...
„/home/janus/development/ni/build/local/root/var/tuxbox/config/cables.xml“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/cables.xml“
...
„/home/janus/development/ni/build/local/root/var/tuxbox/config/default/zapit.conf“ -> „/home/janus/development/ni/build/root/var/tuxbox/config/default/zapit.conf“
exec local stop goodies ...
janus@vmJessie:~/development/ni/build$ 
Danke Dir. So kann's weitergehen!
Benutzeravatar
Janus
NI - VIP
Beiträge: 1147
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von Janus »

Kommando zurück!

Ich habe die Start/Stop - Tags (inkl. der Klammern) wieder aktiviert und dos2unix erneut ausgeführt => Wieder keinerlei Ausgabe der echo Anweisungen mehr.
Benutzeravatar
vanhofen
Administrator
Beiträge: 2934
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 8 times
Been thanked: 16 times

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von vanhofen »

Tschjoa, was soll ich da sagen?
Es funktioniert ... dann änderst du etwas ... dann funktioniert's nimmer.

Die Erstellung der Scripte liegt ganz in deiner/eurer Hand, da ja keiner wissen kann, was personalisiert werden soll.
Benutzeravatar
Janus
NI - VIP
Beiträge: 1147
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von Janus »

Kann ja auch nicht funktionieren, wenn man den case-Anweisungsblock (da nicht 'ausgeklappt') nicht mitkopiert !

Ich bewerbe mich für den Titel "Doofie des Wochenendes"...

Aber meine eigenen Anweisungen funktionieren wenigstens wie gewünscht! :sunglasses:
Benutzeravatar
vanhofen
Administrator
Beiträge: 2934
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 8 times
Been thanked: 16 times

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von vanhofen »

Janus hat geschrieben: Sa 2. Sep 2017, 14:39Ich bewerbe mich für den Titel "Doofie des Wochenendes"...
:trophy:

scnr :relaxed:
Janus hat geschrieben: Sa 2. Sep 2017, 14:39Aber meine eigenen Anweisungen funktionieren wenigstens wie gewünscht! :sunglasses:
Sehr schön, wenn's jetzt klappt.
Benutzeravatar
Janus
NI - VIP
Beiträge: 1147
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von Janus »

Wenn ich den Pokal dreimal gewinne, darf ich ihn dann behalten ? :grin:

Aber zum Ergebnis:
make update-all
make clean
make personalized-image (noch ohne Netzwerk-Anpassung)

Auf der (vorher mal manuell 'personalized') Neo1 S/C das NI-Backup nach /tmp und von dort per FTP auf PC geschaufelt.
Neues Image nach /tmp und geflasht => Box startet mit den personalize Änderungen während des Builds !! Cool!
IP angepasst, das Settingsbackup wieder nach /tmp geschoben und NI-Wiederherstellung - ohne Fehler - laufen lassen.

Nach dem Neustart Alles wie gewünscht. Mein angesprochenes Problem ist gelöst.

Vielen Dank und eine kleine Warnung: Mir fallen nach gelösten Problemen öfters weiterführende 'Probleme' ein... :wink: :sunglasses:
Benutzeravatar
Janus
NI - VIP
Beiträge: 1147
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von Janus »

Kann mal Jemand das Make-Target
make u-neutrino
prüfen ?

Am 30.08. kam da ein schlankes 2,5MB neutrino-Binary raus.
Gestern und Heute waren das 40,9 MB. Hat meine HD1 mit knapp 4MB-Restspeicher nicht verkraftet...
Benutzeravatar
vanhofen
Administrator
Beiträge: 2934
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 8 times
Been thanked: 16 times

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von vanhofen »

Du hast DEBUG=yes gesetzt. Für HD1 ist das keine gute Idee.
Benutzeravatar
Janus
NI - VIP
Beiträge: 1147
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von Janus »

# config.local

# Change it to your name.
MAINTAINER = Janus@NI_BS

# Choose one (1) of the following BOXMODELs. O n e !
BOXMODEL = nevis
#BOXMODEL = apollo
#BOXMODEL = shiner
#BOXMODEL = kronos
#BOXMODEL = kronos_v2

# Create debug-image. Not useful in real life.
#DEBUG = yes

NI_NEUTRINO_BRANCH = ni/mine
Eher nicht...
Benutzeravatar
vanhofen
Administrator
Beiträge: 2934
Registriert: Di 5. Apr 2016, 00:05
Has thanked: 8 times
Been thanked: 16 times

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von vanhofen »

Ein so großes Binary springt da nur raus, wenn DEBUG nicht "no" ist. Dann wird nämlich nicht gestrippt.
Du siehst doch die Änderungen am Buildsystem. Es gab dahingehend nichts, was das verursachen könnte.
Benutzeravatar
gandharva
Administrator
Beiträge: 387
Registriert: Mo 4. Apr 2016, 23:49
Box: Tank

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von gandharva »

Neutrino Update allein funktioniert sowieso nicht, da ich ffmpeg auf den 2.8 Branch umgestellt habe.
Nazi lives don't matter.
Benutzeravatar
bellum
NI - VIP
Beiträge: 38
Registriert: Mo 11. Apr 2016, 20:19
Has thanked: 1 time

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von bellum »

gandharva hat geschrieben: Di 26. Sep 2017, 16:30da ich ffmpeg auf den 2.8 Branch umgestellt habe.
Gabs Probleme mit ffmpeg aus dem master Branch?

Gruß
bellum
Benutzeravatar
gandharva
Administrator
Beiträge: 387
Registriert: Mo 4. Apr 2016, 23:49
Box: Tank

Re: Personalisierung von selbstgebauten NI-Images

Beitrag von gandharva »

Braucht viel weniger Platz und hat weniger bis keine bekannten Bugs. Cool wäre ein DASH Port auf 2.8. Dann hätte man ein "best of both worlds".
Nazi lives don't matter.
Antworten

Zurück zu „Entwicklung“