View  Edit  Attributes  History  Attach  Print  Search

Flasher le kernel (noyau) Linux dans la carte micro 2440 sous Ubuntu

Par X.H. - Sept 2010

1.  Télécharger l'utilitaire de Flashage USB pour Ubuntu

  • Sous Windows, le flashage de la carte se fait par USB à l'aide d'un utilitaire appelé DNW fourni par le fabricant. Voir ici : http://www.friendlyarm.net/dl.php?file=mini2440_manual.pdf
  • Cet utilitaire n'est pas utilisable sous Ubuntu (Gnu/Linux). Il existe une alternative cependant qui est utilisable sous Gnu/Linux : il s'agit d'un petit exécutable appelé usbpush (dispo ici : http://www.friendlyarm.net/dl.php?file=usbpush.tar.gz ) , lui-même dérivé (et amélioré...) d'un autre éxécutable proposé (ici : http://code.google.com/p/mini2440/downloads/list)
  • Il faut donc télécharger cette archive et la décompresser. Je vous conseille de copier/coller le contenu décompressé dans un répertoire situé dans votre home/user/ et que vous appelerez comme vous voulez. Moi je l'ai appelé mon_usb_push :
  • Dans ce répertoire se trouve l'exécutable qui sera utilisé pour réaliser le transfert.

2.  Télécharger la dernière version du Kernel (noyau) Linux pour la carte Mini2440 :

  • Il faut télécharger la dernière version du Kernel (noyau) Linux pour la carte Mini2440 : http://www.friendlyarm.net/downloads : fichier zImages 2010-06-09
  • Il faut extraire l'archive et copier/coller le fichier zImage_T35 dans le répertoire où on a décompressé l'utilitaire usbpush

3.  Connexion entre le PC et la carte

  • On connecte le port série COM 0 (celui à côté de la prise audio) au port série à l'aide du câble femelle-femelle fourni.
  • Ne pas connecter le câble USB A-B à ce stade

4.  Préparation côté PC

Il est nécessaire de disposer côté PC d'un terminal série pouvant communiquer via le port Série. Sous Ubuntu (GNU/Linux), on pourra utiliser GTKTerm, disponible dans le menu Application > Logithèque Ubuntu sous Ubuntu 10.04 (programme intitulé Terminal sur port Série)

On lance le terminal (Applications > Accessoires > Terminal pour Port Série ) :

Aller dans Configuration > Port. On sélectionne le port utilisé (ttyS0 à priori) et on initialise la connexion série à 115200 bauds, sans bit de parité, en mode 8 bits avec 1 bit de stop, puis valider :

A noter que l'on peut enregistrer cette configuration dans Configuration > Sauve la configuration. On peut également configurer l'aspect de la sortie terminal (police notamment) dans Configuration > Main Window

Autres alternatives pour le terminal :

5.  Lancement du Terminal Série et mise sous tension de la carte :

  • le terminal Série est ouvert côté PC et a été configuré comme indiqué
  • veiller à ce que le sélecteur de boot S2 soit bien sur NOR afin que le boot se fasse sur la mémoire NOR.
  • brancher la carte et une fois branchée, mettre le sélecteur ON/OFF sur ON : 2 LEDS rouges s'allument (une sur le SDK et une sur le Stamp) ainsi que 2 LEDs vertes sur le stamp qui se mettent à clignoter.
  • Dans la fenêtre du Terminal côté PC, on doit voir s'afficher un menu avec plusieurs options :

6.  Lancement du téléchargement du Kernel (noyau) Linux côté carte 2440

  • A présent, on sélectionne v et on valide afin de lancer le téléchargement du bootloader sur la carte :
  • A ce moment, un message indique que USB n'est pas connecté : connecter alors le câble entre la prise USB esclave de la carte et un port USB du PC. Le message USB connected apparaît.

7.  Lancement du téléchargement du bootloader Supervivi côté PC :

  • Ouvrir une console et se positionner dans le répertoire où vous avez copié l'utilitaire usbpush et le fichier zImage_T35 à l'aide de la commande cd mon_rep
  • La commande ls permet de vérifier le contenu du répertoire.
  • La structure de la commande de l'exécutable de transfert est : usbpush address /path/and/filename. A présent, on lance le transfert vers la carte à l'aide de la ligne de commande : $ sudo ./usbpush zImage

8.  Déroulement :

  • Le transfert est lancé et la console affiche :
  • Côté Terminal, on obtient un message indiquant que le fichier a bien été reçu :

9.  Que s'est-il passé ?

Voici le message sortie du Terminal une fois le transfert réalisé :

Now, Downloading [ADDRESS:30000000h,TOTAL:2516926] RECEIVED FILE SIZE: 2516926 (48KB/S, 51S) Downloaded file at 0x30000000, size = 2516916 bytes Found block size = 0x00280000 Erasing... ... done Writing... ... done Written 2516916 bytes

Tout porte à croire que le fichier est d'abord écrit en RAM (cf adresse 30000000h) puis transféré en FLASH (cf Erasing... Writing...).

10.  Liens utiles :