Jump to content

Yadd Installation


Empfohlene Beiträge

  • Antworten 66
  • Created
  • Letzte Antwort

Top Posters In This Topic

Vorsicht!

Das bei den YADDs mitgelieferte u-boot funktioniert nicht, dem fehlt die Netzwerk-Bootfähigkeit. Wird standardmäßig mit dem falschen Header compiliert, da muß man manuell nachhelfen und das u-boot selber compilieren.

 

Header muß aus den CVS-Sourcen /tuxbox-cvs/boot/u-boot-config/u-boot.yadd.dbox2.h verwendet werden. Dazu vor Konfigurieren und Compilieren des CDK entweder die

/tuxbox-cvs/cdk/makefile.am entsprechend anpassen:

UBOOT_CONFIG_FILE:="./u-boot.cdk.dbox2.h"

ersetzen mit

UBOOT_CONFIG_FILE:="./u-boot.yadd.dbox2.h"

 

oder falls configure schon durch ist, nachträglich die Datei

/tuxbox-cvs/cdk/Makefile entsprechend anpassen, die rote Zeile:

#######################

#

#  contrib libs

#

OPTIONAL_LIBCRYPTO = libcrypto

UBOOT_CONFIG_FILE := "./u-boot.cdk.dbox2.h"

#UBOOT_CONFIG_FILE := "./u-boot.cdk.2_6.dbox2.h"

CONFIGURE_OPTS = \

--build=$(build) \

--host=$(target) \

--prefix=$(targetprefix) \

--with-driver=$(driverdir) \

--with-dvbincludes=$(driverdir)/dvb/include \

--with-target=cdk

 

Ich hatte vor paar Tagen auch die Problematik und bin bald verzweifelt, bis ich mir mal die Sourcen genauer angesehen habe.

 

Bei Bedarf hab ich YADD-fähiges u-boot in Version 1.1.2 und 1.1.4 fertig hierliegen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@petze

 

Gleich kommt hier ein Anhang mit u-boot v1.1.2 und 1.1.4, muß nach /tftpboot und dem Bootmanager als Startfile beigebracht werden.

 

Ich hab beide Dateien getestet, damit lassen sich YADDs problemlos über Netzwerk auf die Box laden.

u_boot_yadd_dbox2.zip

bearbeitet von Worschter
Link zu diesem Kommentar
Auf anderen Seiten teilen

Irgendwie bekomm ich das nich hin mit dem Yadd!!! :blink:

Hab mir ein aktuelles Yadd heruntergeladen von dietmarw und hab es auch richtig entpackt!!! Im log des Bootmanagers steht folgendes:

 

debug: DDF: Calibrating delay loop... debug: DDF: 67.79 BogoMIPS

debug: WATCHDOG RESET

debug: BMon V1.2 mID 01

debug: feID dd gtxID 0b

debug: fpID 5a dsID xx-xx.xx.xx.xx.xx.xx-xx

debug: HWrev 09 FPrev 0.81

debug: B/Ex/Fl(MB) 32/00/08

WATCHDOG reset enabled

dbox2:root> debug:

BOOTP/TFTP bootstrap loader (v0.3)

debug:

debug: Transmitting BOOTP request via broadcast

debug: Got BOOTP reply from Server IP 192.168.0.101, My IP 192.168.0.100

debug: Sending TFTP-request for file D/xxx/tftpboot/u-boot

will verify ELF image, start= 0x800000, size= 135620

verify sig: 262

boot net: boot file has no valid signature

Branching to 0x40000

 

 

U-Boot 1.1.4 (Tuxbox) (Jan 24 2006 - 09:45:01)

 

CPU: PPC823ZTnnB2 at 67.100 MHz: 2 kB I-Cache 1 kB D-Cache

Board: DBOX2, Nokia, BMon V1.2

Watchdog enabled

I2C: ready

DRAM: 32 MB

FLASH: 8 MB

FB: ready

LCD: ready

In: serial

Out: serial

Err: serial

Net: SCC ETHERNET

BOOTP broadcast 1

Using SCC ETHERNET device

TFTP from server 192.168.0.101; our IP address is 192.168.0.100

Filename 'D/xxx/tftpboot/u-boot'.

Load address: 0x100000

Loading: Using SCC ETHERNET device

TFTP from server 192.168.0.101; our IP address is 192.168.0.100

Filename 'logo-lcd'.

Load address: 0x100000

Loading: ##

done

Bytes transferred = 7680 (1e00 hex)

BOOTP broadcast 1

Using SCC ETHERNET device

TFTP from server 192.168.0.101; our IP address is 192.168.0.100

Filename 'D/xxx/tftpboot/u-boot'.

Load address: 0x100000

Loading: Using SCC ETHERNET device

TFTP from server 192.168.0.101; our IP address is 192.168.0.100

Filename 'logo-fb'.

Load address: 0x100000

Loading: #####

done

Bytes transferred = 25588 (63f4 hex)

 

Options:

1: Console on null

2: Console on ttyS0

3: Console on framebuffer

Select option (1-3), other keys to stop autoboot: 0

Using SCC ETHERNET device

TFTP from server 192.168.0.101; our IP address is 192.168.0.100

Filename 'kernel-yadd'.

Load address: 0x100000

Loading: #################################################################

#################################################################

##########################

done

Bytes transferred = 798114 (c2da2 hex)

...............................................................

Un-Protected 63 sectors

## Booting image at 00100000 ...

Image Name: dbox2

Image Type: PowerPC Linux Kernel Image (gzip compressed)

Data Size: 798050 Bytes = 779.3 kB

Load Address: 00000000

Entry Point: 00000000

Verifying Checksum ... OK

Uncompressing Kernel Image ... OK

Linux version 2.4.32-dbox2 (dietmarw@linux) (gcc version 3.4.4) #1 Do Feb 2 01:4

2:06 CET 2006

On node 0 totalpages: 8192

zone(0): 8192 pages.

zone(1): 0 pages.

zone(2): 0 pages.

Kernel command line: console=ttyS0 root=/dev/nfs rw nfsroot=192.168.0.101:D/xxx

/yaddroot/ ip=192.168.0.100:192.168.0.101:::::off

Decrementer Frequency = 251625000/60

m8xx_wdt: active wdt found (SWTC: 0xFFFF, SWP: 0x1)

m8xx_wdt: keep-alive trigger installed (PITC: 0x2580)

Console: colour dummy device 80x25

Calibrating delay loop... 66.76 BogoMIPS

Memory: 30508k available (1352k kernel code, 440k data, 68k init, 0k highmem)

Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)

Inode cache hash table entries: 2048 (order: 2, 16384 bytes)

Mount cache hash table entries: 512 (order: 0, 4096 bytes)

Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)

Page-cache hash table entries: 8192 (order: 3, 32768 bytes)

POSIX conformance testing by UNIFIX

Linux NET4.0 for Linux 2.4

Based upon Swansea University Computer Society NET3.039

Initializing RT netlink socket

Starting kswapd

devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)

devfs: boot_options: 0x1

JFFS2 version 2.2. (NAND) © 2001-2003 Red Hat, Inc.

Squashfs 2.2-r2 (released 2005/09/08) © 2002-2005 Phillip Lougher

i2c-core.o: i2c core module version 2.6.1 (20010830)

i2c-dev.o: i2c /dev entries driver module version 2.6.1 (20010830)

CPM UART driver version 0.04

ttyS0 at 0x0280 is on SMC1 using BRGttyS1 at 0x0380 is on SMC2 using BRG2

pty: 256 Unix98 ptys configured

eth0: CPM ENET Version 0.2.dbox2 on SCC2, 00:50:9c:40:2f:67

loop: loaded (max 8 devices)

D-Box 2 flash driver (size->0x800000 mem->0x10000000)

D-Box 2 flash memory: Found 2 x16 devices at 0x0 in 32-bit bank

Intel/Sharp Extended Query Table at 0x0035

cfi_cmdset_0001: Erase suspend on write enabled

Creating 6 MTD partitions on "D-Box 2 flash memory":

0x00000000-0x00020000 : "BR bootloader"

0x00020000-0x00040000 : "FLFS (U-Boot)"

0x00040000-0x006a0000 : "root (cramfs)"

0x006a0000-0x00800000 : "var (jffs2)"

0x00020000-0x00800000 : "Flash without bootloader"

0x00000000-0x00800000 : "Complete Flash"

Linux video capture interface: v1.00

mice: PS/2 mouse device common for all mice

NET4: Linux TCP/IP 1.0 for NET4.0

IP Protocols: ICMP, UDP, TCP

IP: routing cache hash table of 512 buckets, 4Kbytes

TCP: Hash tables configured (established 2048 bind 4096)

IP-Config: Guessing netmask 255.255.255.0

IP-Config: Complete:

device=eth0, addr=192.168.0.100, mask=255.255.255.0, gw=255.255.255.255,

host=192.168.0.100, domain=, nis-domain=(none),

bootserver=192.168.0.101, rootserver=192.168.0.101, rootpath=

NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.

Looking up port of RPC 100003/2 on 192.168.0.101

Looking up port of RPC 100005/1 on 192.168.0.101

VFS: Mounted root (nfs filesystem).

Mounted devfs on /dev

Freeing unused kernel memory: 68k init

Kernel panic: No init found. Try passing init= option to kernel.

<0>Rebooting in 180 seconds..

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Geschichte ist etwas kniffliger, als man meint. :)

Und irgendwo vernünftig (deppensicher) beschrieben ist schon gar nichts...

 

Entpackst Du das Yadd-Archiv (tar.bz2) unter Windows mit den Tools zum Entpacken, die dietmarw auch mit anbietet? Dann wird's Scheiße, weil die Symlinks alle kaputt sind. Zum Entpacken wird eine emulierte Linux-Umgebung unter Cygwin verwendet, das schreibt die Symlinks so, daß sie für Cygwin funktionieren würden. Damit kommt aber kein richtiges Linux mehr klar. Wie auch, die Suppe, die Cygwin da kocht, schmeckt hinten und vorne nicht. Cygwin ist allgemein Scheiße für's Arbeiten an dbox-Images.

 

Du mußt das Archiv, speziell den Tarball da drin, unter einem echten Linux-System entpacken, damit die Symlinks richtig geschrieben werden. Das geht auch über die dBox über einen NFS-Mount (CIFS müßte auch gehen, hab ich aber nicht probiert, weil ich generell nur noch mit NFS arbeite (Microsoft SFU).

Ich gehe im Folgenden von SFU unter Windows 2000 Professional aus, Vorgehen unter XP Pro analog, mit XP Home kann's Abweichungen geben, da kenne ich mich aber nicht aus...

 

Entpacke zuerst das bz2, das geht mit den Tools von dietmarw:

bunzip2 Neutrino_Enigma_LCars_yadd_Day4.tar.bz2 -f

Den Tarball steckst Du dann in ein NFS-freigegebenes Verzeichnis, das mit der dBox gemounted ist, und auf daß Du Schreib-/Lesezugriff hast. Ich nehme mal als Beispiel den Mount /mnt/custom.

Auf die dBox gehts Du per telnet:

cd /mnt/custom

tar -xvf Neutrino_Enigma_LCars_yadd_Day4.tar

Die Aktion dauert etwas (durchaus 4-5 Minuten), die Box ist ja nicht die Schnellste. :blink:

Du bekommst dann auf dem PC im freigegebenen Verzeichnis die beiden Unterordner "tftpboot" und "yaddroot". Da ist alles drin mit korrekt funktionierenden Symlinks.

 

Wichtig! An der Stelle mußt Du den Besitz der erzeugten Verzeichnisse samt Inhalt unter Windows ändern, sonst kannst Du die u.U. nicht korrekt kopieren, Löschen geht auch nicht! (Fällt eventuell bei CIFS-Mount weg, hab ich nicht probiert.)

Beiden Verzeichnisse markieren -> Rechtsklick -> Eigenschaften -> Sicherheitseinstellungen. Du bekommst als erstes eine Warnmeldung, daß Du die Berechtigungen nur anzeigen kannst. Bestätigen, die Felder für die Berechtigungen sind alle ausgegraut.

Gehe auf Erweitert -> Besitzer. Den neuen Besitzer auswählen und Haken rein bei "Besitzer für Untercontainer und Objekte ersetzen". Übernehmen und OK, Eigenschaften-Fenster schließen.

Nochmal Eigenschaften der Verzeichnisse aufrufen, sonst hast Du auch als Administrator nur Ausführungs-/Leserechte, keine Schreibrechte. Entsprechenden Benutzer markieren (ich nehme der Einfachheit halber "jeder", Haken bei "Vollzugriff" rein, übernehmen, fertig. Jetzt kannst Du mit dem Zeug anstellen, was Du lustig bist.

 

Nur noch das u-boot austauschen, und das Yadd wird korrekt booten.

Kannst das entpackte Zeugs dann auch mit Zip oder Rar platzsparend archivieren, wenn Du willst, die Symlinks bleiben dabei erhalten, sind eigentlich nix anderes, als Textfiles in einem kombinierten ANSI-/Unicode-Format mit dem Attribut "System". Aber versuche nicht, die Symlinks mit einem Editor zu ändern, das geht nach hinten los. Mit einem Hex-Editor geht's aber...

 

 

Und gleich noch ein Hinweis, falls Du mal ein normales Flash-Image zum Yadd umwandeln willst. Sowas kann man auch machen, ich hab z.B. das Keywelt-Januar-V4 als komplett vom Netzwerk aus bootfähige Version:

In der /etc/fstab darf nichts weiter drinstehen, als maximal das:

proc /proc  proc defaults 0 0

tmpfs /tmp  ramfs defaults 0 0

sysfs /sys  sysfs noauto  0 0

devpts  /dev/pts devpts noauto  0 0

Keinesfalls Einträge wie

/dev/mtdblock/2    /var    jffs2    defaults    0 0

sonst geht beim Booten des Yadds das Image auf der Box zum Teufel.

 

Es dürfen beim Booten über Netzwerk auch keine Module für CIFS- oder NFS-Unterstützung geladen werden (normal in der rcS.local), bringt das Yadd in Verlegenheit, da die Sachen im kernel-yadd fest eincompiliert sind.

Wenn da irgendwie das

insmod sunrpc

insmod lockd

insmod nfs

insmod cifs

drinsteht, auskommentieren!

 

Der Kernel aus dem eigentlichen Flash-Image läßt sich nicht verwenden, geht nur mit einem fertigen kernel-yadd aus einem Yadd, das zur Kernelversion des Images paßt.

 

Und versuche niemals, bei einem gebooteten Yadd auf der Box unter Neutrino die Netzwerkeinstellungen zu ändern und per "jetzt zuweisen" sofort zu aktivieren. Dabei stürzt das Zeugs ab, Du kannst dann gleich die Box neu booten.

Die geänderten Netzwerkeinstellungen werden beim Runterfahren der Box in Deep-Standby automatisch abgespeichert (auf'm PC im yaddroot).

 

Viel Spaß beim Experimentieren!

Link zu diesem Kommentar
Auf anderen Seiten teilen

So ich hab das Yadd jetzt mit der Box entpackt. Ich weis nur nicht wie ich den Besitz der erzeugten Verzeichnisse ändern kann. Ich gehe davon aus du hast Windows 2000 bei dir drauf. Ich hab aber XP Home drauf! Da geht das nicht mit -> Rechtsklick -> Eigenschaften -> Sicherheitseinstellungen? Hat jemand ne idee? Kann ja nich mal mehr die Verzeichnisse löschen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jaja, die scheiß Rechteverwaltung in XP Home... mich tät mal interessieren, was diese Idioten bei MS veranlaßt hat, die Sache derart zu kastrieren. :blink:

 

Schau mal hier nach:

 

http://www.fajo.de/portal/index.php

 

FaJo XP File Security Extension (XP FSE) ist das, was Du brauchst. Damit kriegst Du die Rechteverwaltung, wie sie auch unter Win2k/XP Pro vorhanden ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke @merkwuerden!!! Ich habs heut endlich hinbekommen! Bei dem aktuellen Yadd von heute geht es auch wieder mit dem u-boot was im Ordner "tftpboot" liegt. Wenn man bei dem Yadd das Image ausliest, kann man das dann auch als normales Image flashen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke @merkwuerden!!! Ich habs heut endlich hinbekommen! Bei dem aktuellen Yadd von heute geht es auch wieder mit dem u-boot was im Ordner "tftpboot" liegt. Wenn man bei dem Yadd das Image ausliest, kann man das dann auch als normales Image flashen?

nein, weil u-boot und kernel für ein flashimage falsche Parameter eingestellt haben (sihe auch hier weiter oben). Zusätzlich ist eine CVS-YADD deutlich zu groß zum flashen.

 

cu

Puhvogel

Link zu diesem Kommentar
Auf anderen Seiten teilen

@merkwuerden, kannst mir mal genau sagen, wie man z.B. ein Keywelt-Image zu einem Yadd macht?

Geht ganz einfach (und normalerweise auch mit jedem anderen Image):

 

Voraussetzung ist ein gemountetes Verzeichnis zum PC mit Lese- und Schreibzugriff. Sonst wird unter Umständen für die Prozedur der Speicher knapp. Und zum Entpacken unter Windows braucht man das sowieso, siehe weiter oben im Thread. Ich mache das per NFS-Mount.

 

Allgemein:

Als erstes schaun wir auf der Box nach, wie die Partitionsaufteilung ist, speziell root und var sind interessant, alles andere ist unwichtig.

Per telnet:

 

cat /proc/mtd

Oder auch über das Sysinfo-Plugin. Man erhält Auskunft in der Form:

 

mdt0: 00020000 00004000 "BR bootloader"

mtd1: 00520000 00020000 "root (squashfs)"

mtd2: 002a0000 00020000 "var (jffs2)"

mtd3 blablabla...

 

root ist hier (Beispiel Keywelt-Januar V4) mtd1, var ist mtd2, brauchen wir gleich wieder.

 

Weiter geht's per telnet auf der Box. Die Partitionen für root und var müssen auf der Box nochmal gemountet werden, im Verzeichnis /tmp/root bzw. /tmp/var. Anschließend wird der Inhalt dieser Verzeichnisse getart, und zwar auf einen freigegebenen und gemounteten Ordner am PC, siehe oben, ich gehe mal am Beispiel vom KW-Image nach /mnt/custom:

 

mkdir /tmp/root

mkdir /tmp/var

cd /tmp (nicht nach /tmp/root !)

 

mount -t squashfs -o ro /dev/mtdblock/1 /tmp/root (Die 1 ist die Partition, die oben angezeigt wurde (mdt1))

tar -cf /mnt/custom/root.tar root (Verzeichnis /tmp/root wird in die Freigabe gepackt)

umount /tmp/root Wieder unmounten, spart Resourcen

 

mount -t jffs2 -o rw /dev/mtdblock/2 /tmp/var

tar -cf /mnt/custom/var.tar var

umount /tmp/var

Die Verzeichnisse /tmp/root und /tmp/var kann man dann wieder löschen, muß aber nicht. Sind halt jetzt wieder leer und eigentlich unnötig. Nach dem nächsten Booten sind se eh weg, also is wurscht.

 

Das Packen geht übrigens recht fix, wieder entpacken dauert dagegegen "etwas" länger. :D

 

Dann müssen die tarballs auf dem PC wieder entpackt werden, wegen der Symlinks auch über die Box/Freigabe (telnet):

 

cd /mnt/custom

tar -xvf root.tar

tar -xvf var.tar

 

Das Zeug liegt jetzt soweit fertig am PC.

 

Weiter geht's auf dem PC:

Als erstes wieder die Prozedur mit der Besitzer- und Rechteübernahme, damit sich die Dateien bearbeiten/kopieren/verschieben lassen.

 

Nun in den auf dem PC entpackten Dateien in /root/etc die Datei fstab editieren (mit unix-fähigem Editor, ich nehme Proton32 dazu).

Es darf keinesfalls ein Eintrag wie

/dev/mtdblock/blablabla

drinstehen, sonst geht beim Versuch, das Zeug über Netzwerk zu booten, das Image auf der Box zum Teufel. Die Box würde aus ihrem eigenen Flash mounten wollen, der kerner-yadd findet dann das Zeugs nicht, fängt gutmütig Reparaturversuche an und repariert dabei das Image im Flash kaputt. Folge: die Box startet nicht mehr -> neu flashen.

 

In die fstab gehört nur das rein, mehr braucht's nicht:

proc /proc  proc defaults 0 0

tmpfs /tmp  ramfs defaults 0 0

sysfs /sys  sysfs noauto  0 0

devpts  /dev/pts devpts noauto  0 0

 

Dann noch nachsehen, ob eine rcS.local existiert, beim Keywelt in

/var/etc/init.d/rcS.local

Bei anderen Images (reinen jffs2 z.B.) eventuell auch in

/root/etc/init.d/rcS.local

 

Da drin unbedingt mindestens das auskommentieren oder löschen, falls es vorhanden ist, sonst meckert der kernel-yadd:

insmod nfs

insmod cifs

 

Normal kann

insmod sunrpc

insmod lockd

insmod lufs

auch raus, ist im kernel-yadd fest eincompiliert. In den normalen YADDs gibt's eine rcS.local überhaupt nicht.

 

Zum Abschluß noch den Inhalt von /var nach /root/var verschieben, in /root den Kernel löschen (vmlinuz, wird nicht gebraucht) und das Ganze dann ins Verzeichnis /yaddroot rein.

Für /tftpboot einen kernel-yadd aus einem originalen YADD nehmen (muß zur Kernel-Version des Images passen!) und das passende u-boot dazu aus dem YADD (bzw. meines von oben, falls die aus dem YADD nicht gehen wollen).

 

Das Image ist damit fertig zum Booten über Netzwerk.

Auch hier gilt (zumindest für Neutrino, Enigma hab ich da noch nicht geschaut): keinesfalls auf der Box die Netzwerkeinstellungen ändern und dann über "jetzt zuweisen" laden, damit hängt sich das Image weg.

Aber da das Image ja eh auf der Box war und damit vermutlich auch fertig eingerichtet ist, braucht man da normal sowieso nicht ranzulangen.

 

Das so zum YADD gewordene Flash-Image sollte genau so funktionieren, als wenn es über den Flash der Box gebootet wurde.

 

Hab die Prozedur grade nochmal anhand des Keywelt-Januar-V4 im Hintergrund mitgemacht, funktioniert einwandfrei.

 

 

Bei dem aktuellen Yadd von heute geht es auch wieder mit dem u-boot was im Ordner "tftpboot" liegt.

Liest da der "Feind" etwa hier mit? :D

Ging jedenfalls 'ne ganze Zeit lang nicht, ich hab's mit diversen YADDs aus dem Zeitraum Oktober 2005 bis Mitte Januar 2006 versucht, no chance.

 

Wenn man bei dem Yadd das Image ausliest, kann man das dann auch als normales Image flashen?

Nö, geht nicht, weil das Image dann keine Partitionseinteilung wüßte. Die Box würde damit nicht booten.

Außerdem ist in einem Standard-YADD Neutrino, Enigma und Lcars gleichzeitig drin, das würde nie und nimmer in die 8 MB Flash passen.

 

Was geht: ein nach der oben genannten mount/tar-Methode ausgelesenes Flash-Image am PC zu modifizieren und anschließend die Partitionen wieder neu zu verpacken und partitionsweise zu flashen. Dazu braucht's aber Linux auf dem PC (mit Cygwin unter Windows wirds Scheiße). Und die Prozedur ist nicht ganz einfach, weil die Partitionsgrößen festgelegt sind und keinesfalls überschritten werden dürfen.

Ich hab das bisher nur einmal mit einer squashfs-Partition gemacht. Hat aber funktioniert. JFFS2 müßte auch gehen, hab ich mich aber noch nicht damit befaßt.

Fragt aber bitte jetzt keiner, wie das genau geht, ist schon 'ne Weile her. Und die Anleitung dazu müßte ich erst mal wieder suchen. ;)

bearbeitet von merkwuerden
Link zu diesem Kommentar
Auf anderen Seiten teilen

Was geht: ein nach der oben genannten mount/tar-Methode ausgelesenes Flash-Image am PC zu modifizieren und anschließend die Partitionen wieder neu zu verpacken und partitionsweise zu flashen.

 

Kann man das neu verpacken auch über die D-Box machen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Petze

 

Kann man das neu verpacken auch über die D-Box machen?

 

ja und nein

 

kommt drauf an ob die entsprechend nötigen Dateien vorhanden sind im aktuellen Image bzw. ob

die in dem Image auch laufen, d.h. daß dafür alle nötigen Sachen in den Librarys drin sin.

 

Im Keywelt Image geht das, da mksquashfs und mkfs.jffs2 bestandteil des Images sind.

Bei andren Image wirds bei mkfs.jffs2 unter Umständen Schwierigkeiten geben.

 

Nächster Knackpunkt ist der geringe RAM der Box, hast Du ein JFFS2 only Image, dann geht´s wenn

dann nur mit ner Box mit 64MB RAM.

auf ner 32MB Box wirst Du alles killen müssen was im Normalbetrieb läuft um ne SQuashfs ROOT Partition zu packen.

Denn die hat in der Regel entpackt um die 12MB + Image ist schon etwa 17-18MB das hat keine Box frei.

 

Alternativ wäre da ein NFS gemountetes Laufwerk aufm Rechner, da geht es dann problemlos.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

Für Faule habe ich mal die Anleitung von merkwuerden in ein Script verpackt.

Das Archiv in ein Verzeichnis auf dem PC packen und dieses Verzeichnis für

die DBox freigeben und auf ihr mounten. Im Script noch den Mountpfad und

die Kernel-Version anpassen. Für den Kernel 1.1.2. habe ich allerdings noch

keinen Kernel gefunden. Den muß man sich also noch selber besorgen.

Auf der Box im Telnet eingeben (angenommen das gemountete Laufwerk ist

/mnt/custom:

cd /mnt/custom

sh ./makeyadd.sh

Das Erstellen der Yadd funktioniert bei mir damit problemlos, nur das Starten

klappt noch nicht. Aber dazu später.

 

Edit: aktuelle Version hängt weiter unten dran

Link zu diesem Kommentar
Auf anderen Seiten teilen

@SnowHead

Kernel 1.1.2... was is'n das für Ding? ;)

 

Solltest vielleicht das Script dahingehend abändern, daß da bei der kernel-Variablen korrekt 2.4.31 reinkommt und den Rest dahingehend passend machen.

 

Kriegst gleich 'ne PM mit Link zu einem Kernel 2.4.31 fürs KW-Image. Kannste dann in das Script mit reinpacken.

 

Und: mit dem Kernel 2.4.32 wird das KW-YADD nicht bootfähig sein. Die Kernel-Versionen vom Flash-Image und kernel-yadd müssen übereinstimmen. Das u-boot sollte dagegen unkritisch sein, das KW-YADD wird auch mit dem 1.1.4 booten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@merkwuerden

 

Das kann man machen. Wo die Partitionen "root" und "var" liegen, kann man

ja auf die gleiche Weise ermitteln wie beim rescue-Plugin. Da ein Großteil der

Zeilen in dem Script eh aus Deinem Posting stammt, solltest Du das überneh-

men. Da ich im Moment unter Windows und mit dem Bootmanager eh keine

YADD zum laufen kriege, klinke ich mich da mal aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hm... da muß ich mir die Konstruktion im rescue-Plugin mal genau ansehen. Problem könnte werden, daß sed und grep in manch älterem Image nicht vorhanden sind. Schaun mer mal, ob mir da was einfällt. Die Scripterei ist eigentlich nicht so meine Spezialität. ;)

 

Da ich im Moment unter Windows und mit dem Bootmanager eh keine

YADD zum laufen kriege, klinke ich mich da mal aus.

 

Sooo kompliziert ist das nicht. Für den Fall, daß Du MS-SFU am Laufen hast:

 

Vom Bootmanager brauchst Du nur den BootP/TFTP Server und die COM-Schnittstelle für's Log. Dem BootP drehst Du das u-boot aus dem yaddroot auf. Kommt eventuell die Mecker, daß das kein gültiges ppcboot ist, aber kann man ignorieren. Und irgendwo hab ich dieser Tage einen Patch für den BM gefunden, der das Gemaule ein für allemal abstellt. :D

 

Für yaddroot machst Du eine NFS-Freigabe am PC, Freigabename des Verzeichnisses ist ebenfalls "yaddroot".

Encoding ANSI

Allow anonymous access, Anonymous UID und GID -2

Permissions: read-write, allow root access

Sollte dann funktionieren.

 

Achtung! Zwei NFS-Server am PC vertragen sich nicht! MS-SFU z.B. blockiert den NFS-Server des BM, also bei SFU nicht das Ding vom BM mit starten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke @merkwuerden, es hat Dank deiner Anleitung gleich beim ersten Versuch geklappt!!! Habe das Keywelt V4 als Yadd auf meinem Rechner und es läuft wunderbar!!!

 

Was geht: ein nach der oben genannten mount/tar-Methode ausgelesenes Flash-Image am PC zu modifizieren und anschließend die Partitionen wieder neu zu verpacken und partitionsweise zu flashen.

 

Hast du dafür manchmal noch ne Anleitung für mich?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, das zusammenbasteln ist ansich net soo schwer.

 

Du brauchst mkfs.jffs2 und mksquashfs, alledings geht das erstmal nur in nem Linux System.

Für Windows brauchst Du zumindest Cygwin, aber das entzieht sich meiner Kenntnis.

 

den Var Bereich zusammenkleben machst Du dann so:

Du hast alles in nem verzeichnis /var liegen, so lautet der Befehl dazu:

 

mkfs.jffs2 -b -e 131072 -p -o var.img -r var

 

für den im Verzeichnis /root liegenden Root Bereich lautet er:

mksquashfs root root.img -be

 

dann hast Du die jeweiligen einzelimages die Du flashen kannst. Wenn Du auf Deinem Linux Rechner nicht als

root sondern als User angemeldet bist muss Du zusätzlich fakeroot installieren, dann lauten die Befehle:

 

fakeroot mksquashfs root root.img -be

fakeroot mkfs.jffs2 -b -e 131072 -p -o var.img -r var

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.

×
×
  • Neu erstellen...