ARM v7 (AML-8726) - debian

Oui, j’ai déjà réussi de booter sur uImage dans la SD, la partition était de type b. Je n’ai pas essayé en ext2.
J’ai essayé aussi de formater la SD en ext3 et d’y mettre le rootfs. J’ai le même message d’erreur.

Je voudrais essayer avec la clé usb. Mais je ne sais pas quel dev c’est pour mettre à jour la variable bootargs dans U-boot.

8726M_DVBC # usb reset
(Re)start USB…
USB: dwc_usb driver version: 2011-OCT-11
usb clk_sel: XTAL input divided by 2
dwc_otg: usb_lowlevel_init: base addr: 0xc90c0000
set usb port power on (board gpio 20)!
dwc_otg: Highspeed device found !

scanning bus for devices… 3 USB Device(s) found
scanning bus for storage devices… 1 Storage Device(s) found

8726M_DVBC # usb info
1: Hub, USB Revision 2.0

  • USB2.0 Hub
  • Class: Hub
  • PacketSize: 64 Configurations: 1
  • Vendor: 0x05e3 Product 0x0608 Version 119.100
    Configuration: 1
    • Interfaces: 1 Self Powered Remote Wakeup 100mA
      Interface: 0
      • Alternate Setting 0, Endpoints: 1
      • Class Hub
      • Endpoint 1 In Interrupt MaxPacket 1 Interval 12ms

2: Mass Storage, USB Revision 2.0

  • JetFlash Mass Storage Device 81SRYN89
  • Class: (from Interface) Mass Storage
  • PacketSize: 64 Configurations: 1
  • Vendor: 0x058f Product 0x6387 Version 1.0
    Configuration: 1
    • Interfaces: 1 Bus Powered 100mA
      Interface: 0
      • Alternate Setting 0, Endpoints: 2
      • Class Mass Storage, Transp. SCSI, Bulk only
      • Endpoint 1 Out Bulk MaxPacket 512
      • Endpoint 2 In Bulk MaxPacket 512

3: Vendor specific, USB Revision 2.0

  • Realtek 802.11n WLAN Adapter 00e04c000001
  • Class: (from Interface) Vendor specific
  • PacketSize: 64 Configurations: 1
  • Vendor: 0x0bda Product 0x8176 Version 2.0
    Configuration: 1
    • Interfaces: 1 Bus Powered 500mA
      Interface: 0
      • Alternate Setting 0, Endpoints: 4
      • Class Vendor specific
      • Endpoint 1 In Bulk MaxPacket 512
      • Endpoint 2 Out Bulk MaxPacket 512
      • Endpoint 3 Out Bulk MaxPacket 512
      • Endpoint 4 In Interrupt MaxPacket 64 Interval 1ms

Même erreur sur la clé usb
Text_File9.1.txt (19.7 KB)

même erreur, et pas plus d’info sur la cause.
Si ni l’USB, ni la SD ne fonctionne, il te reste la NAND et NFS …
Sur tout mes hackable devices, je n’ai jamais rencontré un problème pareil.

Il me reste au moins ces essais à faire :
-"…Essayer avec une racine directement sur /dev/cardblksd ou /dev/sda, sans table de partition…"
-"…Inclure un rootfs minimal sous forme d’initramfs directement dans le noyau…"
Puis, charger le rootfs via NFS.
Je ne sais pas comment recopier le rootfs compilé sur la NAND. Une fois, j’ai fait un mkyaffs2 du repétoire contenant le rootfs compilé dans un fichier rootfs.img et j’ai rentré les commandes set burnrootfs, set bootargs, saveenv et run burnrootfs, suivant le site amlogic.
C’est clair, j’ai perdu le rootfs android d’origine que je voulais virer. Finalement j’ai atteint l’objectif :023 .

J’ai préparé un kernel avec initramfs suivant le tuto en.gentoo-wiki.com/wiki/Initramfs.
Je n’ai pas réussi à la faire fonctionner.
3.215000] init_post.
[ 3.217000] Freeing init memory: 2420K
[ 3.220000] run_init_process /init.
[ 3.226000] hub 2-1:1.0: USB hub found
[ 3.228000] hub 2-1:1.0: 4 ports detected
[ 3.232000] Failed to execute /init
[ 3.235000] run_init_process /init.
[ 3.239000] Failed to execute /init. Attempting defaults…
[ 3.244000] run_init_procss /sbin/init.
[ 3.248000] run_init_process /etc/init.
[ 3.252000] run_init_process /bin/init.
[ 3.256000] run_init_process /bin/sh.
[ 3.259000] Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[ 3.272000] Backtrace:
[ 3.274000] [] (panic+0x50/0xd4) from [<00000000>] (0x0)
[ 3.280000] Backtrace aborted due to bad frame pointer

J’ai fait chmod +x /usr/src/initramfs/init
et dans la config du kernel :
(/usr/src/initramfs) Initramfs source file(s)
(0) User ID to map to 0 (user root)
(0) Group ID to map to 0 (group root)
Built-in initramfs compression mode (None) —>
Text File11.txt (18.3 KB)

Je vais peut être m’arreter bien que j’aimerai connaitre la cause de cette impossibilité douvrir “le root device” que ce soit la SD ou la clé USB. U-Boot n’a pas de problèmes pour y accéder alors que le kernel si. Il manque quelque chose dans la config du kernel ?? Je ferai éventuelement encore quelques tests…
Je vous remercie piratebab et pascal de m’avoir aidé. J’ai beaucoup apprécié vos interventions et vos analyses.
Même si je ne suis pas arrivé à installer linux sur la carte ARM, j’ai appris beaucoup de choses.
Merci encore.

Franck

le programme init est bien un format exécutable pour la cible, toutes les bibliothèques nécessaires sont bien présentes dans l’arborescence de l’initramfs ?

A vrai dire, je ne sais pas. J’ai suivi une procédure que j’ai trouvée sur le net.
Dans le repertoire initramfs, j’ai :
/bin, /dev, /etc, /lib, /mnt, /proc, /root, /sbin, /sys, init

Dans lib:
(j’ai du faire quelques ldd dans ce qui a dans /bin)
ld-linux.so.2, libc.so.6, libncursesw.so.5,
Dans bin:
bash, busybox, nano, sh,
Dans dev:
console, null, sda1, tty
dans mnt:
/root
Rien dans les autres répertoires. Afin de joindre à ce message le fichier init, je l’ai renommé en init.txt. Sinon ce site refuse d’attacher un fichier sans extension. (bug ??)

J’ai un doute mais je ne connais pas suffisamment le système pour évaluer les choses.
Je me dis pourquoi U-Boot arrive à lire et charger un fichier depuis la SD alors que le kernel ne peut même pas accéder au device ? Comme tu l’a nuancé dans le message du 13/01, le kernel ne dit pas “no filesystem could mount root” mais "cannot open root device.
init.txt (855 Bytes)

Je ne pense pas que le kernel n’arrive pas à accéder à ta partition (tu aurais un 0 en 1er chiffre), je pense qu’il n’arrive pas à ouvrir le système de fichier (ext2 ou 3 il me semble dans ton cas).
Les puristes me corrigerons si je dis une connerie, mais c’est bien un systéme de fichier qu’on “monte”, pas une partition.
Les gentoiste, habitués à compiler leur kernel, ont de l’expérience avec ce type d’erreur:
swift.siphos.be/linux_sea/kernel … idp1657856
vérifie que tu as bien mis les drivers ext2 (ou 3) en dur lors de ta compil du kernel.

Aprés lecture du lien que tu as fourni et en cherchant sur le net, j’ai trouvé quelques explications complémentaires suivantes:

"The panic informs you that the Linux kernel is unable to either

  1. detect the controller for your hard disk (a likely candidate if the message says unknown-block(0,0))
    .

mount your partition because it doesn’t know how to access the file system (a likely candidate if the message gives a non-zero figure in the first number set, such as unknown-block(2,0))

.
"
wiki.gentoo.org/wiki/Knowledge_B … nt_root_fs

Il se peut que les puristes aient raison sur le fond. C’est vrai que le message d’erreur parle bien de file system et non pas de partition “Unable to mount root fs on unknown-block(254,1)”.

Ci-joint mon fichier .config pour info. Les file system ext2 et ext3 sont activés dans le noyau “*”.
_.config.txt (61.1 KB)

Les options de compil, je ne me suis jamais vraiment penché dessus (j’ai toujours trouvé des noyaux précompilé pour toutes mes machines :blush: ). Si tu n’as pas de réponse ici, il faudrait poser la question sur un forum plus spécialisé kernel

Initialement, je voulais “juste” installer une debian sur une config ARM.
J’ai récupéré un roots fs wheezy et je croyais qu’il suffisait de trouver un noyau compatible à ma carte et le tour est joué. Je boot le noyau et il charge le rootfs debian…
Alors pourquoi le kernel n’arrive pas à ouvrir le roofs ?
Il y aurait trop de drivers de mémoires de masse comme par exemple ATA, SATA, SCSI, Flash NOR et NAND + autres dans le noyau ? Du coup il n’utilise pas le bon pour acceder au système de fichier de la SD ?

non, il utilise celui qu’il faut puisqu’il détecte bien les partitions. C’est ensuite avec le système de fichier qu’il a des problèmes me semble t il .

Bonsoir à tous,
Je travaille depuis quelques semaines sur le processeur ARM AMLogic 8726-M3, il faut savoir que les U-boot de chez AmLogic ont des points de montage qui se trouve ici : /dev/block/
Dans ton cas ajoute ceci sur les paramètres d’environnement de ton U-Boot : /dev/block/cardblksd2
Sur mon M3 j’ai mis ceci pour le bootargs :

Si tu préfères le NAND, il faut changer le rootfstype en yaffs2, ce qui donne ceci pour le nandargs :

Merci pour l’info, j’étais arrivé à la conclusion que le l’init ne se trouvais pas dans /dev/cardblksd2 par élimination. En espérant que Frank_fr n’ai pas jeté l’éponge.

Bonjour à tous,

Merci SIP pour ces info. Je les copie dans mon fichier doc_uboot_Amlogic.
J’ai un gros problème car j’ai du trouver la solution mais je ne sais pas laquelle c’est. Maintenant ça marche.

Au départ, je ne modifiais qu’un seul paramètre à la fois, dans uboot ou dans la config du kernel, pour bien debuger et tracer ce que je fais. Mais après avoir fait une cinquantaine de tests, j’ai jeté l’éponge en me disant que j’achette une autre carte, puis je m’étais dis aller je fais quand même un dernier test.
J’ai du modifier une dizaine de parametres dans la config du kernel et remis uboot dans la config d’origine, mis le rootfs que j’ai compilé à partir du build_root et miracle j’ai eu ça:

[ 3.668000] sd_mmc_init() is completed successfully!
[ 3.673000] This SDHC card is working in Wide Bus and normal speed mode!
[ 3.673000]
[ 3.681000] cardblksd: cardblksd1
[ 3.765000] EXT2-fs (cardblksd1): warning: mounting unchecked fs, running e2fsck is recommended
[ 3.768000] VFS: Mounted root (ext2 filesystem) on device 253:1.
[ 3.774000] init_post.
[ 3.776000] Freeing init memory: 152K
[ 3.780000] run_init_process /init.
sh: /etc/mdev/cardmount.sh: Permission denied
make new dir /dev/input
mount: sysfs already mounted or /sys busy
mount: according to mtab, none is already mounted on /sys
Initializing random number generator… done.
Starting system message bus: done
Starting network…
ifup: interface lo already configured
/etc/init.d/rcS: line 23: /etc/init.d/S50amadecd: Permission denied
sh-3.2#

J’ai essayé avec le rootfs wheezy mais il bloque sur udev.

J’ai suivi la procédure sur scienceliaison.com/design-de … fs-for-arm. Il boot puis me demande le mot de passe root.

[ 3.208000] DVB: registering adapter 0 frontend 0 (AMLOGIC DVB-T)…
[ 3.215000] Waiting for root device /dev/cardblksd1…
[ 3.221000] hub 2-1:1.0: USB hub found
[ 3.223000] hub 2-1:1.0: 4 ports detected
[ 3.500000] usb 2-1.2: new high speed USB device using dwc_otg and address 3
[ 3.601000] Actual delay time in sd_voltage_validation() = 70 ms
[ 3.665000] #SD_ERROR_SWITCH_FUNCTION_COMUNICATION error occured in sd_switch_funtion()
[ 3.667000] sd_mmc_init() is completed successfully!
[ 3.672000] This SDHC card is working in Wide Bus and normal speed mode!
[ 3.672000]
[ 3.681000] cardblksd: cardblksd1
[ 3.765000] EXT2-fs (cardblksd1): warning: mounting unchecked fs, running e2fsck is recommended
[ 3.768000] VFS: Mounted root (ext2 filesystem) on device 253:1.
[ 3.774000] init_post.
[ 3.776000] Freeing init memory: 152K
[ 3.780000] run_init_process /init.
modprobe: FATAL: Could not load /lib/modules/2.6.34/modules.dep: No such file or directory

INIT: version 2.88 booting
Using makefile-style concurrent boot in runlevel S.
.udev/ already exists on the static /dev! … (warning).
Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events…done.
Waiting for /dev to be fully populated…done.
Activating swap…done.
[ 14.430000] usb 2-1.2: USB disconnect, address 3
Cleaning up ifupdown…
Setting up networking…
Loading kernel modules…done.
Activating lvm and md swap…done.
Checking file systems…fsck from util-linux-ng 2.17.2
done.
Mounting local filesystems…done.
Activating swapfile swap…done.
Cleaning up temporary files…
Configuring network interfaces…done.
Cleaning up temporary files…
Setting kernel variables …done.
INIT: Entering runlevel: 2
Using makefile-style concurrent boot in runlevel 2.
Starting OpenBSD Secure Shell server: sshd.

Debian GNU/Linux 6.0 serveur ttyS0

serveur login:

sacré progrès!
il ne te reste plus qu’a installer les modules de ton kernel, et ça roule!

Je suis en train de faire la mise à jour de la squeeze sur le device et d’installer des applis avec les commandes apt.

Comment installer les modules ?
j’ai fait un make ARCH=arm CROSS_COMPILE=/opt/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi- modules mais je ne trouve pas le repertoir lib/modules/xxx/modules.dep…etc il m’a crée un repertoire drivers…

Déjà, ton noyau a-t-il des modules (CONFIG_=m) ou bien tout est compilé en dur ?
S’il y en a, alors ils sont dans le répertoire de destination de la compilation du noyau. Pour les installer dans /lib/modules, il faut exécuter “make modules_install”.