Forum: Mikrocontroller und Digitale Elektronik Cubieboard - was hat es mit diesem NANDx auf sich.


von mike (Gast)


Lesenswert?

Hallo,

habe mir so ein Cubieboard A20 besorgt.
Nachdem ich ein Linux erfolgreich von SD gebootet und ein bisschen im 
System 'gestöbert' habe, ist mir folgendes aufgefallen:
1
[root@alarm ~]# cat /proc/partitions
2
major minor  #blocks  name
3
  93        0    3989504 nand
4
  93        8       1024 nanda
5
  93       16    3988472 nandb

Ok, wie üblich: Das device und 2 Partitionen...Denkste!
1
[root@alarm ~]# cfdisk /dev/nand
2
Unknown partition table type
3
Do you wish to start with a zero table [y/N] ?

Drücke ich an dieser Stelle y, erhalte ich ein leeres Device mit 4085MB.

cfdisk auf nanda bzw nandb ergibt je ein device mit 1 und 4084MB - beide 
ohne Partitionen. Allerdings lassen sich nanda und nandb mounten und 
beide enthalten auch Daten.

Wie und vor allem wo kann ich denn nun installieren? Und wo sollte ich 
den bootloader installieren?

I'm confused...

von asdfasd (Gast)


Lesenswert?

Auf dem NAND befindet sich keine MS-DOS Partitiontable sondern ein 
eigenes Format.  Partitionieren geht mit nand-part (nicht cfdisk - das 
erstellt ne MS-DOS Partitiontable).

Der Bootloader liegt im ersten MB des NANDs (vor der ersten Partition), 
das Kernel in einer der Partitionen.  Da der ROM-Bootloader trivial ist, 
unterstützt er kein Wear-Leveling/Bad-Block-Remapping etc, deswegen hast 
du unterschiedliche Datenformate auf dem NAND, die nicht mit dem 
gleichen Treiber angesprochen werden können.  Ein ziemliches 
Durcheinander.

Der OpenSource NAND-Support für Allwinner ist grottig.  Der binary-Blob 
von Allwinner (im Android Image) geht wohl, ist aber nicht kompatibel 
mit dem Mainline- und dem Sunxi-Kernel (simples booten reicht aus um den 
NAND-Inhalt zu killen) und die Performance ist mies - wenn's hoch kommt 
10MB/s.

Bei mir liegt das NAND nun brach - dem Teil trau ich kein Byte mehr an. 
Ich Boote von SD-Karte - die ist wesentlich schneller und problemlos 
handzuhaben.  Ne MSDOS-Partitiontable drauf (das erste MB frei lassen), 
nen boot/root-Filesystem anlegen (bei mir ein einzelnes großes ext2 für 
beides), uboot-with-spl per dd in das erste MB, Kernel, uEnv und fex 
nach /boot.  Fertig.

Weitere "Literatur":
http://linux-sunxi.org/NAND
http://linux-sunxi.org/Installing_to_NAND
http://linux-sunxi.org/Bootable_SD_card

von asdfasd (Gast)


Lesenswert?

PS: Wenn ich irgendwann mal ne Festplatte einbaue (hab nen Cubietruck) 
werd ich dem NAND noch mal ne Chance geben - nur uBoot mit SATA support 
aufs NAND (quasi als BIOS-ROM misbrauchen) und den Rest (boot/root) auf 
die HDD.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.