Modernisierung der Neutrino onlineupdatefunktionalität

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

Vorschlag angenommen :lol: Leider kann ichs erst morgen abend einbauen.
Für das XML - update.list - halt mal einen Tag frei für Beschreibungen a'la "dieses update behebt Fehler in...." :lol: wenn schon denn schon
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

ich hab die onlineupdates bei mir erst mal bis auf weiteres testweise aktiviert..
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

beim erstellen der update.list wird ein evtl. mit "bad_magic" behaftetes jffs2 image ja nicht in die update.list aufgenommen.

da diese images aber grundsätzlich funktionieren, wäre es gut wenn sie trotzdem in der update.list erscheinen würden.
(oder evtl. gar nicht erst als bad markiert werden würden, dann wären sie ja immer drin)
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

dietmarw hat geschrieben:beim erstellen der update.list wird ein evtl. mit "bad_magic" behaftetes jffs2 image ja nicht in die update.list aufgenommen.
--checkImage=none oder --checkImage=warn macht dies. Unterscheidet aber nicht von cramfs/squashfs-Images.
da diese images aber grundsätzlich funktionieren, wäre es gut wenn sie trotzdem in der update.list erscheinen würden.
Inzwischen bin ich der Meinung, (entgegen frühere Aussagen von mir), dass "bad-Magic"-jffs2-Images in der Regel NICHT funktioniert.

Willst du wirklich cramfs- und squashfs-, aber nicht jffs2-Images checkImage-testen kannst du sicherlich mit dies mit Customizaions hinbekommen.

Meine Meinung ist, dass die endgültige Lösung wäre entweder eine Tuxbox-Version von mk[jffs2,cramfs,squashs], oder ein Postprozessor, die gültige [jffs2,cramfs,squashfs]-Images ohne Bad-Magics erzeugt. Fordert aber Experten-Knowhow über die Interna dieser Filesysteme.
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

Hi,
ich habe da mal ein paar Punkte die mir noch nicht so klar sind.

Ich baue zur zeit meine Images mit Newmake und benutze auch das Archivieren so ähnlich wie auf Barf`s Seite vorgeschlagen.
Ich möchte jetzt auch die Online Update funktionalität ausprobieren.
Die URL gebe ich ja beim configure schon mit und das wird auch so in cramfs.urls übernommen.

Jetzt zu meinen fragen:
Wie erstelle ich die list Files? Meine Images/Updates ligen nach der Archivierung in /imagearchiv und der Dateiname wurde mit Datum versehen.
Mit make img.list bekomme ich ein list File hin aber das hat natürlich nicht den Namen drin den das Image jetzt hat.

Wie kann ich das lösen? Muss ich immer alle make img.list, make squash.list usw angeben?

Mfg

ED_2
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

make update.list

(siehe hier) soll gerade dies machen. Dazu muss du $(customizationsdir)/ls-distributionfiles schreiben.
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

@Barf

das habe ich auch gelesen kannst du mir das etwas erläutern?

Also ich lege eine Datei ls-distributionfiles an mit flashprefix
buildprefix.

Was kommt dann in myfiles= muss da der Dateiname mit Pfad rein? (den kenne ich dann noch nicht).

was macht die for Schleife?

Ich blicke da nicht durch. Eine kleine erläuterung währe gut.

Mfg

ed_2
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

@ed_2: Tja, alles steht eigentlich drin, nur dass "unnötige" Ausführlichkeit niemals mein Geschmach war... :wink:

ls-distributionsfiles kann in einfachste Fall einfach von einem echo-Befehl bestehen:

Code: Alles auswählen

#!/bin/sh

echo /net/tante-emmas-server/dboximages/neutrino-jffs2.img2x  /net/tante-emmas-server/dboximages/root-neutrino.jffs2
(ist eine Zeile falls die Boardsoftware die zeile bricht). Zu dem Skript wird $flashprefix und $buildprefix mitgegeben, die du als $1 und $2 benutzen kannst (bei Bedarf).

Die for-Schleife in den Makeactions zum update list macht folgendes: Für jeden Filename das ls-distributionfile rausgespuckt hat, erzeuge eine Zeile in update.list. Die wird gebildet etwa wie bei den anderen *.list-Regeln. Bemerkungswert ist dass das URL gebildet als $updatehttpprefix gefolgt von basename des Filenames, z.B. http://www.ed_2.com/dbox/neutrino-jffs2.img2x. Dabei wird in alle Fällen die Versionsnummer aus $(flashprefix)/root/.version extrahiert.
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

hi

Irgendwie stehe ich auf dem Schlauch

Ich habe jetzt eine Datei mit Namen ls-distributionsfiles in tuxbox/cdk angelegt sie ist ausführbar
Der inhalt ist der gleiche wie bei dir weiter oben.

führe mein SKript aus und nach dem flash-neutrino-squashfs-all steht ein
make update.list
leider schreibt er dann immer:
make: *** Keine Regel, um »update.list« zu erstellen. Schluss.

Was mache ich ncoh falsch?

Mfg

ed_2
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

doppelpost
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

bist du an der stelle "make update.list" noch in /cdk/ ?
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

ed_2 hat geschrieben:Ich habe jetzt eine Datei mit Namen ls-distributionsfiles in tuxbox/cdk angelegt sie ist ausführbar
Der inhalt ist der gleiche wie bei dir weiter oben.

führe mein SKript aus und nach dem flash-neutrino-squashfs-all steht ein
make update.list
leider schreibt er dann immer:
make: *** Keine Regel, um »update.list« zu erstellen. Schluss.
Absolut nachvollziehbar. Das Output von ls-distributionfiles ist Präreqiusiten für die Regel update.list; d.h. sie müssen entweder existieren, oder muss es make-Regeln geben, die dem make sagt, wie sie zu erstellen ist. (In der letzte Fall erzeugt make sie erst.) Hier also /net/tante-emmas-server/... :gruebel:

PS. make -d kann manchmal nützlich sein.
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

hi

vielleicht bin ich ein wenig blöd aber irgendwie weiss ich jetzt gar nicht was ich machen muss.

make -d habe ich auch gemacht bringt mich aber auch nicht weiter.

das ist mein Startskript:

#!/bin/sh

rm /home/ed/tuxbox/cdkflash/*.*
rm /home/ed/imagedbox2/cdkflash/*.*

cd /home/ed/tuxbox/cdk

make flash-semiclean
#make mostlyclean
#make distclean

cd /home/ed/tuxbox
#cvs up -f -r newmake -dP > cvs.log 2>&1
cvs -d anoncvs@cvs.tuxbox-cvs.sourceforge.net:/cvs/tuxbox -z3 co -f -r newmake -P .

cd /home/ed/tuxbox/cdk

./autogen.sh

cd /home/ed/tuxbox/cdk

./configure --prefix=/home/ed/imagedbox2 --with-cvsdir=/home/ed/tuxbox --with-ucodesdir=/home/ed/yadi/yadi-cvs/privat/daten/ucodes --with-logosdir=/home/ed/yadi/yadi-cvs/privat/daten/logo --with-checkImage=rename --with-updatehttpprefix=http://www.test.de/update/imagearchiv/ --enable-maintainer-mode



make flash-neutrino-squashfs-all

#make everything

sh /home/ed/tuxbox/cdk/neutrino-squashfs.img1x-local.sh
sh /home/ed/tuxbox/cdk/neutrino-squashfs.img2x-local.sh
sh /home/ed/tuxbox/cdk/root-neutrino.squashfs-local.sh

make update.list



Das ist mein ls-distributionfiles

#!/bin/sh

flashprefix=$1
buildprefix=$2

myfiles="home/ed/imagearchiv/*"


for f in $myfiles ; do
echo $flashprefix/$f
done

und in den Archivierungsfiles ist zb

!/bin/sh
# neutrino-squashfs.img1x.sh

echo "-----------------------------------------------------------------------------"
echo "---------------START archiv-CUSTOMIZION ------------------------------------"
echo "-----------------------------------------------------------------------------"

{
flashprefix=/home/ed/imagedbox2/cdkflash
imagefile=`basename $0|sed -e s/-local.sh//`
imagefilebase=`echo $imagefile|sed -e s/\.img.x//`
extension=`echo $imagefile|sed -e s/[-a-z0-9]*\.//`
newfilename="ed-"$imagefilebase-`date --iso-8601`.$extension

echo Copying $flashprefix/$imagefile to /home/ed/imagearchiv/$newfilename...
cp $flashprefix/$imagefile /home/ed/imagearchiv/$newfilename

echo "test archiv-neutrino-squashfs 1x log"
} > $HOME/log/neutrino-squashfs.img1x.log 2>&1
echo "-----------------------------------------------------------------------------"
echo "---------------ENDE archiv-CUSTOMIZION ------------------------------------"
echo "-----------------------------------------------------------------------------"

wo ist mein Denkfehler was muss ich ändern??????????

Mfg
ed_2

PS
evtl ist es einfach auch zu warm
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

ed_2 hat geschrieben:....
Das ist mein ls-distributionfiles

#!/bin/sh

flashprefix=$1
buildprefix=$2

myfiles="home/ed/imagearchiv/*"


for f in $myfiles ; do
echo $flashprefix/$f
done
Bitte probiere diese Datei vom Shell auszuführen. (Ich meine es!) Dann wirst du sehen, dass sie überhaubt nicht das machst, was du erwartest.

Was du vom diesem Skript erwartest, bekommst du mit

Code: Alles auswählen

...
myfiles="/home/ed/imagearchiv/*"

for f in $myfiles ; do
   echo $flashprefix/`basename $f`
done
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

hi

also vor der änderung von dir hat er mir die Images hintereinander aufgezählt

jetzt schreibt er sie untereinander

wenn ich aber ein make update.list mache sagt er mir noch immer:

make: *** Keine Regel, um »update.list« zu erstellen. Schluss.


Mfg

ed_2
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

mach doch mal in deinem ablaufscript noch ein cd /home/ed/tuxbox/cdk vor make update.list - schaden kanns nicht.
make: *** Keine Regel, um »update.list« zu erstellen. Schluss.
hört sich nicht so an als ob es an der ls-distributionfiles liegt. Ich würde (wenn o.g. nichts bringt) mal ein make distclean machen
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Es scheint an
Barf hat geschrieben:Das Output von ls-distributionfiles ist Präreqiusiten für die Regel update.list; d.h. sie müssen entweder existieren, oder muss es make-Regeln geben, die dem make sagt, wie sie zu erstellen ist.
zu liegen.
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

Hi,
ich habe jetzt das ls-distributionsfiles so geändert wie Barf geschrieben hat. Ein cd /home/ed/tuxbox/cdk habe ich auch vor make update.list gesetzt. Ein make distclean habe ich auch gemacht und dann neu gebaut.
Es geht trotzdem nicht.
Es scheint an

Barf hat Folgendes geschrieben:
Das Output von ls-distributionfiles ist Präreqiusiten für die Regel update.list; d.h. sie müssen entweder existieren, oder muss es make-Regeln geben, die dem make sagt, wie sie zu erstellen ist.


zu liegen.
Das es daran liegen kann ist ja gut nur was bedeutet das für mich ich kann leider mit dieser aussage nichts anfangen.
Ganz so tief stecke ich leider nicht in der Programmierung drin.

Mfg

ed_2
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

Präreqiusiten sind unabdingbare Voraussetzungen für die Ausführung weiterer Schritte - zumindest interpretiere ich das so

EDIT:
mein file sieht so aus und funkt:

Code: Alles auswählen

#!/bin/sh

flashprefix=$1
buildprefix=$2
updatefolder=/mnt/updates

#myfiles="*neutrino-squashfs*.img1x *neutrino-squashfs*.img2x *root-neutrino*.squashfs"
myfiles="*root-neutrino*.squashfs"

for f in $myfiles ; do
   echo $updatefolder/$f
done 
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

Hi,
ich habe mein File jetzt so abgeändert das es wie dein File ist.
Habe aauch ein Distclean gemacht und neu gebaut.

Ergebniss: es geht nicht solangsam weiss ich nicht mehr weiter.
Sonst geht doch auch alles alle locals Files usw.

Was kann ich noch machen?

ed_2
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

Ich poste noch mal meine Files vielleicht fällt euch ja was auf

mein Startskript

Dateiname: ED-Image.sh
Dateiort: /home/ed


#!/bin/sh

]rm /home/ed/tuxbox/cdkflash/*.*
rm /home/ed/imagedbox2/cdkflash/*.*

cd /home/ed/tuxbox/cdk

#make flash-semiclean
#make mostlyclean
make distclean

cd /home/ed/tuxbox
#cvs up -f -r newmake -dP > cvs.log 2>&1
cvs -d anoncvs@cvs.tuxbox-cvs.sourceforge.net:/cvs/tuxbox -z3 co -f -r newmake -P .

cd /home/ed/tuxbox/cdk

./autogen.sh

cd /home/ed/tuxbox/cdk

./configure --prefix=/home/ed/imagedbox2 --with-cvsdir=/home/ed/tuxbox --with-ucodesdir=/home/ed/yadi/yadi-cvs/privat/daten/ucodes --with-logosdir=/home/ed/yadi/yadi-cvs/privat/daten/logo --with-checkImage=rename --with-updatehttpprefix=http://www.1234.de/update/imagearchiv/ --enable-maintainer-mode



make flash-neutrino-squashfs-all



#make everything

sh /home/ed/tuxbox/cdk/neutrino-squashfs.img1x-local.sh
sh /home/ed/tuxbox/cdk/neutrino-squashfs.img2x-local.sh
sh /home/ed/tuxbox/cdk/root-neutrino.squashfs-local.sh

cd /home/ed/tuxbox/cdk
make update.list


mein ls-distributionsfiles :
Dateiname: ls-distributionsfiles
Dateiort:/home/ed/tuxbox/cdk


#!/bin/sh

flashprefix=$1
buildprefix=$2
updatefolder=/home/ed/imagearchiv

myfiles="ed-neutrino-squashfs*"

for f in $myfiles ; do
echo $updatefolder/$f
done

mein Archivierungsskript:


#!/bin/sh
# neutrino-squashfs.img1x.sh

echo "-----------------------------------------------------------------------------"
echo "---------------START archiv-CUSTOMIZION ------------------------------------"
echo "-----------------------------------------------------------------------------"

{
flashprefix=/home/ed/imagedbox2/cdkflash
imagefile=`basename $0|sed -e s/-local.sh//`
imagefilebase=`echo $imagefile|sed -e s/\.img.x//`
extension=`echo $imagefile|sed -e s/[-a-z0-9]*\.//`
newfilename="ed-"$imagefilebase-`date --iso-8601`.$extension

echo Copying $flashprefix/$imagefile to /home/ed/imagearchiv/$newfilename...
cp $flashprefix/$imagefile /home/ed/imagearchiv/$newfilename

echo "test archiv-neutrino-squashfs 1x log"
} > $HOME/log/neutrino-squashfs.img1x.log 2>&1
echo "-----------------------------------------------------------------------------"
echo "---------------ENDE archiv-CUSTOMIZION ------------------------------------"
echo "-----------------------------------------------------------------------------"

die local.sh skripts haben damit ja glaube ich nichts zu ton oder??

Kann jemand einen Fehler erkennen??

Mfg

ed_2
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

lösch doch testweise einfach mal alles unter
/home/ed/tuxbox
und
/home/ed/imagedbox2
(nicht die archive)
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Tommy hat geschrieben: mein file sieht so aus und funkt:

Code: Alles auswählen

#!/bin/sh

flashprefix=$1
buildprefix=$2
updatefolder=/mnt/updates

#myfiles="*neutrino-squashfs*.img1x *neutrino-squashfs*.img2x *root-neutrino*.squashfs"
myfiles="*root-neutrino*.squashfs"

for f in $myfiles ; do
   echo $updatefolder/$f
done 
Funktioniert, ja vielleicht, aber nicht wie du denkst. myfiles bekommt den wert "*root-neutrino*.squashfs", also 24 Zeichen, zwei davon Sternchen. Das "for" ist ein "for" über ein Element. Die von dir erwartete Effekt bekommst du mit myfiles=`echo *root-neutrino*.squashfs` oder myfiles=`ls *root-neutrino*.squashfs`.

@ed_2:

Warum nicht einfach ls-distributionfiles als

Code: Alles auswählen

#!/bin/sh
updatefolder=/home/ed/imagearchiv 
echo $updatefolder/ed-neutrino-squashfs*
Und, (ich sage es nicht zu ersten mal), teste es von der Kommandozeile!
haderle
Neugieriger
Neugieriger
Beiträge: 15
Registriert: Mittwoch 10. Dezember 2003, 10:32

RELEASE_CYCLE

Beitrag von haderle »

hallo ich hab mal ne frage...

wie kann ich es machen das die onlineupdates zum bsp wenn ich ein baseimage mit version 2.0 gemacht habe bis zu version 3.0 gehen und dann erst die meldung kommt das der RELEASE_CYCLE abweicht?

also ich möchte gerne da ich viel probiere alle "Subversionen" online updaten (2.01 - 2.99).

ich hoffe ihr versteht was ich meine, denn derzeit ist es so das immer sobald sich die version um eine zahl ändert er erst ein komplettimage haben will (welches leider dann auch nicht online upzudaten geht)

danke für die hilfe
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

@haderle:

Dazu muss du den Programmcode ändern. Siehe update.cpp.