Salut
Surtout ne copie pas le fichier nand.img dans la flash car il ne
convient pas. Le format de fichier NAND généré par flashimg est une
représentation physique du contenu de la flash NAND avec les zones OOB
(out of band) qui sont géré soit par le hardware soit par le driver
d’accès à la flash. C'est pour cela qu'il sont présent pour que Qemu
puisse voir le fichier comme une vrai flash NAND.
Je conseil de commencer par booter en NFS. C'est plus souple et plus
pratique que de copier dans la flash à chaque fois que tu fais une
modification de ton code. Pour cela regarde à cette page :
http://billforums.station51.net/viewtopic.php?f=1&t=17
Voilà comment j'ai fait :
Pour commencer installe u-boot sur ta carte :
http://bill.station51.net/index.php?post/2010/01/16/U-Boot-on-Mini2440
Pour ma part j'ai utilisé la méthode d'écrite à la fin de l'article
(UPDATE MAY 31st, 2010 ...). En voici un résumé de mémoire :
- mettre le switch en position boot en NOR
- relier la mini2440 au PC avec le cable USB
- allumer la carte. Le bootloader Supervivi démarre.
- appuie sur v pour le choix : "[v] Download vivi"
- lancer la commande suivante sur le PC pour lancer le transfert de
données : sudo s3c2410_boot_usb u-boot-nand2k.bin
- mettre le switch sur boot en NAND
- rebooter la carte
L'outil de transfert par USB ce trouve là :
http://mini2440.googlecode.com/files/s3c2410_boot_usb-20060807.tar.bz2
Source de u-boot pour la mini2440 :
http://repo.or.cz/w/u-boot-openmoko/mini2440.git
Dans le répertoire NFS (par exemple /export/nfs), copie y le fichier
buildroot/output/images/uImage. Crée un répertoire rootfs où tu untar le
fichier buildroot/output/images/rootfs.tar (pense à activer la création
de ce fichier dans buildroot).
Résultat :
$ ls /export/nfs
rootfs uImage
$ ls /export/nfs/rootfs
bin etc lib media opt root sbin tmp var
dev home linuxrc mnt proc run sys usr
La configuration du serveur NFS se fait dans le fichier /etc/exports
(voir la dernière ligne) :
$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be
exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check)
hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/export/nfs/
192.168.0.0/24(rw,fsid=0,insecure,no_subtree_check,async)
À chaque fois que le fichier de config est modifié il faut relancer le
serveur. Pour cela :
$ sudo /etc/init.d/nfs-kernel-server restart
Configuration de u-boot (192.168.0.42 adresse IP de la mini2440,
192.168.0.11 adresse IP du PC) :
# dynpart192.168.0.42
# dynenv set u-boot_env
# setenv ipaddr 192.168.0.42
# setenv serverip 192.168.0.11
# setenv bootargs console=ttySAC0,115200 root=/dev/nfs
nfsroot=192.168.0.11:/export/nfs/rootfs rw ip=192.168.0.42 mini2440=3tb
# setenv bootcmd nfs 0x31000000 192.168.0.11:/export/nfs/uImage \; bootm
# env save
Après cela à chaque fois que la mini2440 reboot elle va démarrer en
téléchargeant le kernel présent sur le PC qui sert de serveur NFS.
Amuse toi bien avec ta mini2440 :)
--
Yargil
http://yargil.free.fr