Outils pour utilisateurs

Outils du site


wiki:linux_pour_zynq_de_xilinx:projet_dels_petalinux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
wiki:linux_pour_zynq_de_xilinx:projet_dels_petalinux [2015/11/19 17:28] – [Interaction avec un terminal sériel] emeyerwiki:linux_pour_zynq_de_xilinx:projet_dels_petalinux [2016/04/19 13:12] (Version actuelle) – [Installation des images sur la carte SD] emeyer
Ligne 294: Ligne 294:
 On peut alors s'identifier avec l'utilisateur //root// et le mot de passe //root//. On peut alors s'identifier avec l'utilisateur //root// et le mot de passe //root//.
  
-===== Accéder aux DELs via l'espace utilisateur ===== +===== Démarrage à partir d'une carte SD ===== 
-((Voir wiki Xilinx [[http://www.wiki.xilinx.com/Linux+GPIO+Driver#SysFs%20Interface-Using%20GPIO%20with%20SysFs|Linux GPIO Driver]] et forum Xilinx [[http://forums.xilinx.com/xlnx/attachments/xlnx/EDK/37000/1/petalinux_entry_guide.pdf|petalinux entry guide]]))Par défaut, le système de fichiers est configuré pour accéder aux GPIO via le procédé SysFs. Il s'agit d'un procédé de fichiers avec une arborescence spécifique accessible depuis// /sys/.// On peut retenir ces ces points importants : +==== Configuration de la carte SD avec un système de fichier EXT ==== 
-  - Les contrôleurs de GPIO sont visibles depuis// /sys/class/gpio.// Chaque contrôleur contrôle quelques GPIO. <code> +La carte doit comporter 2 partitions. Il est possible de préparer la carte au moyen d'un logiciel tel que GPARTED ou avec plusieurs utilitaires en ligne de commande. 
-root@Petalinux_LEDs:~# ls /sys/class/gpio +  - 4 MB d'espace libre en premier 
-export       gpiochip898  gpiochip906  unexport +  - 40 MB au moins formatés en FAT32, étiqueté //BOOT//. Cette partition comportera les images du programme de démarrage initial, du "devicetree" et du noyau. 
-</code> Ici nous pouvons voir deux contrôleurs //gpiochip898// et //gpiochip906//. Des informations sont disponibles pour chacun d'eux.<code> +  - Le reste formaté en ext4, étiqueté //rootfs//. Cette partition contiendra le système de fichiers. 
-root@Petalinux_LEDs:~# ls /sys/class/gpio/gpiochip898 +==== Configuration de Petalinux ==== 
-base       label      ngpio      power      subsystem  uevent +  - Aller dans la racine du répertoire du projet Petalinux\\ <code>$ cd <répertoire-projet-petalinux> </code> 
-root@Petalinux_LEDs:~# cat /sys/class/gpio/gpiochip898/base  +  - Éditer la configuration du projet\\ <code>$ petalinux-config </code> 
-898 +  - Sélectionner //Image Packaging Configuration//
-root@Petalinux_LEDs:~# cat /sys/class/gpio/gpiochip898/label +  - Sélectionner //Root filesystem type//. 
-/amba_pl/gpio@41200000 +  - Sélectionner //SD card// comme "RootFS" type. 
-root@Petalinux_LEDs:~# cat /sys/class/gpio/gpiochip898/ngpio  +  - Sortir de "menuconfig" (//Exit -> Exit//) et sauvegarder la configuration. Cela va mettre à jour les arguments de démarrage dans le fichier de "device-tree" //system-conf.dtsi// pour charger le système de fichiers depuis la carte SD. Vous pouvez consulter ce fichier ici : //subsystems/linux/configs/device-tree/system-conf.dtsi// 
-8 +  - Si nécessaire, générer les images Petalinux. \\ <code> $ petalinux-build </code> 
-</code> <code> +  - Si nécessaire, générer l'image de //BOOT.BIN// <code> $ petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --fpga <FPGA bitstream> --u-boot </code> \\ Si besoin, on utiliser l'option //[[--]]force// pour ré-générer l'image.\\ //<FSBL image>// se trouve dans le répertoire : //  images/linux/ //. \\ //<FPGA bitstream>// est un un fichier //.bit// et il se trouve dans le répertoire : // images/linux/ //. 
-root@Petalinux_LEDs:~# ls /sys/class/gpio/gpiochip906/ +  - Générer l'image //rootfs.cpio//. en sélectionnant //SD card// comme //RootFS type//, la commande //petalinux-build// ne la génère pas automatiquement\\ <code> $ petalinux-package --image -c rootfs --format initramfs </code>Le fichier se trouvera dans le répertoire //images/linux//. 
-base       device     label      ngpio      power      subsystem  uevent + 
-root@Petalinux_LEDs:~# cat /sys/class/gpio/gpiochip906/base  +==== Installation des images sur la carte SD ==== 
-906 +  - S'assurer que la partition //BOOT// de la carte SD est bien montée et la repérer dans le système de fichiers. Par exemple, taper la commande \\ <code> $ mount | grep BOOT  
-root@Petalinux_LEDs:~# cat /sys/class/gpio/gpiochip906/label  + /dev/mmcblk0p1 on /media/BOOT type vfat rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2) </code> \\ Dans ce casla partition est montée ici : ///media/BOOT//. 
-zynq_gpio +  - Copier //BOOT.BIN// et //image.ub// dans la partition //BOOT// de la carte SD. Le fichier //image.ub// contient les images du "device tree" et du noyau.\\ <code> $ cp images/linux/BOOT.BIN /media/BOOT
-root@Petalinux_LEDs:~# cat /sys/class/gpio/gpiochip906/ngpio  + $ cp images/linux/image.ub /media/BOOT/ </code> 
-118 +  - S'assurer que la partition //rootfs// de la carte SD est bien montée et la repérer dans le système de fichiers. Par exemple, taper la commande \\ <code> $ mount | grep rootfs 
-</code> ((à confirmer))Il semble que le premier contrôleur soit réservé pour le port des DELs que nous avons configuré lors de la création du projet Vivado (il y en a 8 au total) et que le second corresponde à l'ensemble des GPIOs qui sont accessibles par le ZynqLe numéro indiqué dans le fichier //base// correspond au numéro de la première GPIO accessible sur ce portLes GPIO suivantes sont accessible aux numéros suivants, jusqu'à //base// //ngpio//. +/dev/mmcblk0p2 on /media/rootfs type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2) </code> 
-  - Les GPIOs à utiliser doivent être configurées. Il faut les déclarer dans le fichier //export//. Cela crée un répertoire du nom de la GPIO.<code> +  - Copier //rootfs.cpio// dans la partition //rootfs// de la carte SD. <code> sudo cp images/linux/rootfs.cpio /media/rootfs
-root@Petalinux_LEDs:~# echo 898 > /sys/class/gpio/export +[sudo] password for <utilisateur></code> 
-root@Petalinux_LEDs:~# ls /sys/class/gpio+L'utilisation de //sudo// permet de se positionner en administrateur pour cette commande, si le système le permet pour cet <utilisateur>. En effet, la partition //rootfs// a des droits d'accès, il faut les respecter pour copier un fichier.  
-export       gpio898      gpiochip898  gpiochip906  unexport +  - Extraire le système de fichier de son image \\ <code> $ cd /media/rootfs 
-root@Petalinux_LEDs:~# ls /sys/class/gpio/gpio898 + $ sudo pax -rvf rootfs.cpio </code> 
-active_low  direction   power       subsystem   uevent      value + 
-</code> Une fois crééeil est nécessaire d'indiquer sa direction (entrée ou sortie), dans le fichier //direction//.<code> + 
-root@Petalinux_LEDs:~# echo out > /sys/class/gpio/gpio898/direction +===== Et maintenant ... ===== 
-</code> Idem pour la les autres DELs, jusqu'à :<code> +Le système semble fonctionner correctement avec cette procédure par défaut. Il va falloir en faire quelque-chose maintenant. On pourra par exemple [[wiki:linux_pour_zynq_de_xilinx:acces_dels_via_sysfs|accéder aux entrées/sorties depuis l'espace utilisateur via SysFs]]. 
-root@Petalinux_LEDs:~# echo 905 > /sys/class/gpio/export +
-root@Petalinux_LEDs:~# echo out > /sys/class/gpio/gpio905/direction +
-</code> +
-  - Pour affecter un état à la sortie, on utilise le fichier //value//<code> +
-root@Petalinux_LEDs:~# echo 1 > /sys/class/gpio/gpio898/value +
-root@Petalinux_LEDs:~# echo 1 > /sys/class/gpio/gpio905/value +
-</code> Les DELs //LD0// et //LD7// s'allument. <code> +
-root@Petalinux_LEDs:~# echo 0 > /sys/class/gpio/gpio898/value +
-root@Petalinux_LEDs:~# echo 0 > /sys/class/gpio/gpio905/value +
-</codeLes DELs //LD0// et //LD7// s'éteignent.+
wiki/linux_pour_zynq_de_xilinx/projet_dels_petalinux.1447950485.txt.gz · Dernière modification : 2015/11/19 17:28 de emeyer