Outils pour utilisateurs

Outils du site


raspberry_pi

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
raspberry_pi [2016/08/16 12:19] – [Port série] simonraspberry_pi [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1
Ligne 1: Ligne 1:
-====== Raspberry Pi ====== 
  
-Le Raspberry Pi est un micro-ordinateur conçu par [[https://www.raspberrypi.org/about/|la Fondation Raspberry Pi]] 
- 
-===== Choix de l'OS ===== 
-On peut trouver les [[https://www.raspberrypi.org/downloads/|systèmes d'exploitations officiellement supportés]] sur le site de la fondation. J'utilise beaucoup [[Raspbian]] (basée sur [[Debian]]). 
- 
-==== Raspbian ==== 
-Tous les détails sur la page de [[Raspbian]]. 
-==== Ubuntu Mate ==== 
-On peut trouver [[Ubuntu Mate]] pour Raspberry Pi sur [[https://ubuntu-mate.org/raspberry-pi/|leur site]]. J'ai téléchargé la dernière LTS en torrent. Ils proposent d'utiliser [[ddrescue]] à la place de [[dd]]. Pour l'installer :  
-<code bash> 
-$ sudo aptitude install gddrescue xz-utils 
-</code> 
- 
-Il faut utiliser [[unxz]] pour décompresser l'image téléchargée : 
-<code bash> 
-$ unxz ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img.xz 
-</code> 
- 
-L'image est assez grande (~8Go). Il faut donc choisir une carte SD de 16Go. Comme toujours, on vérifie l'emplacement de la carte SD avec [[lsblk]] avant de copier l'image dessus. 
-<code bash> 
-$ lsblk  
-NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT 
-sda      8:0    0 149,1G  0 disk  
-├─sda1   8:   0 145,2G  0 part / 
-├─sda2   8:   0     1K  0 part  
-└─sda5   8:   0   3,9G  0 part [SWAP] 
-sdb      8:16    16G    0 disk  
-└─sdb1   8:17    16G    0 part /media/ordi/blabla 
- 
-$ sudo ddrescue -D --force ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img /dev/sdb 
-[sudo] Mot de passe de salon :  
-GNU ddrescue 1.19 
-Press Ctrl-C to interrupt 
-rescued:     8053 MB,  errsize:       0 B,  current rate:    9830 kB/s 
-   ipos:     8052 MB,   errors:       0,    average rate:   10582 kB/s 
-   opos:     8052 MB, run time:   12.68 m,  successful read:       0 s ago 
-Finished     
-</code> 
- 
-==== HypriotOS ==== 
-HypriotOS est une distribution basée sur Raspbian, optimisée pour l'utilisation de [[Docker]]. Elle est disponible sur le site d'[[http://blog.hypriot.com/|Hypriot]], dans la partie [[http://blog.hypriot.com/downloads/|downloads]]. On suit la même procédure que pour l'[[Ubuntu Mate]] :  
-<code bash> 
-$ lsblk  
-NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT 
-sda      8:0    0 149,1G  0 disk  
-├─sda1   8:   0 145,2G  0 part / 
-└─sda5   8:   0   3,9G  0 part [SWAP] 
-sdb      8:16     7,4G  0 disk  
- 
-$ sudo ddrescue -D --force Téléchargements/hypriotos-rpi-v0.8.0.img /dev/sdb 
-GNU ddrescue 1.19 
-Press Ctrl-C to interrupt 
-rescued:     1363 MB,  errsize:       0 B,  current rate:    8126 kB/s 
-   ipos:     1363 MB,   errors:       0,    average rate:    8519 kB/s 
-   opos:     1363 MB, run time:    2.66 m,  successful read:       0 s ago 
-Finished      
-</code> 
- 
-==== MINIBIAN ==== 
-[[Minibian]] ([[https://minibianpi.wordpress.com/|site]]) est une distribution basée sur Debian Jessie dont l'objectif est d'être très légère et de ne pas embarquer de logiciels superflus. 
- 
-===== Trucs et astuces ===== 
- 
-==== Port série ==== 
-=== Repérer et récupérer des informations sur le port série === 
-On débranche/rebranche et on lance la commande suivante : 
-<code bash> 
-$ dmesg | grep tty 
-(...) 
-[  852.021751] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device 
-[ 1009.732832] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device 
-</code> 
- 
-Une autre possibilité consiste à utiliser ce script ([[http://unix.stackexchange.com/questions/144029/command-to-determine-ports-of-a-device-like-dev-ttyusb0|source (stackexchange.com)]]) : 
-<code bash>$ nano find-uart-device.sh 
- 
-$ cat find-uart-device.sh 
-#!/bin/bash 
- 
-for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do 
-    ( 
-        syspath="${sysdevpath%/dev}" 
-        devname="$(udevadm info -q name -p $syspath)" 
-        [[ "$devname" == "bus/"* ]] && continue 
-        eval "$(udevadm info -q property --export -p $syspath)" 
-        [[ -z "$ID_SERIAL" ]] && continue 
-        echo "/dev/$devname - $ID_SERIAL" 
-    ) 
-done 
- 
-$ chmod +x find-uart-device.sh 
- 
-$ ./find-uart-device.sh 
-/dev/ttyACM0 - 3D_Robotics_PX4_FMU_v2.x_0 
-</code> 
- 
-On peut également utiliser [[lsusb]] : 
-<code bash> 
-pi@raspberrypi:~ $ lsusb  
-(...)  
-Bus 001 Device 006: ID 26ac:0011   
-(...) 
-</code> 
- 
-Un autre moyen de récupérer des informations, [[udevadm]] :  
-<code bash>$ udevadm info -a -n /dev/ttyACM0  
-(...) 
-  looking at device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/tty/ttyACM0': 
-    KERNEL=="ttyACM0" 
-    SUBSYSTEM=="tty" 
-    DRIVER=="" 
-(...) 
-  looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2': 
-    KERNELS=="1-1.2" 
-    SUBSYSTEMS=="usb" 
-    DRIVERS=="usb" 
-    ATTRS{bDeviceSubClass}=="00" 
-    ATTRS{bDeviceProtocol}=="00" 
-    ATTRS{devpath}=="1.2" 
-    ATTRS{idVendor}=="26ac" 
-    ATTRS{speed}=="12" 
-    ATTRS{bNumInterfaces}==" 2" 
-    ATTRS{bConfigurationValue}=="1" 
-    ATTRS{bMaxPacketSize0}=="64" 
-    ATTRS{busnum}=="1" 
-    ATTRS{devnum}=="8" 
-    ATTRS{configuration}=="Bulk" 
-    ATTRS{bMaxPower}=="500mA" 
-    ATTRS{authorized}=="1" 
-    ATTRS{bmAttributes}=="80" 
-    ATTRS{bNumConfigurations}=="1" 
-    ATTRS{maxchild}=="0" 
-    ATTRS{bcdDevice}=="0101" 
-    ATTRS{avoid_reset_quirk}=="0" 
-    ATTRS{quirks}=="0x0" 
-    ATTRS{serial}=="0" 
-    ATTRS{version}==" 2.00" 
-    ATTRS{urbnum}=="15" 
-    ATTRS{ltm_capable}=="no" 
-    ATTRS{manufacturer}=="3D Robotics" 
-    ATTRS{removable}=="removable" 
-    ATTRS{idProduct}=="0011" 
-    ATTRS{bDeviceClass}=="02" 
-    ATTRS{product}=="PX4 FMU v2.x" 
- 
-  looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1': 
-    KERNELS=="1-1" 
-    SUBSYSTEMS=="usb" 
-    DRIVERS=="usb" 
-    ATTRS{bDeviceSubClass}=="00" 
-    ATTRS{bDeviceProtocol}=="02" 
-    ATTRS{devpath}=="1" 
-    ATTRS{idVendor}=="0424" 
-    ATTRS{speed}=="480" 
-    ATTRS{bNumInterfaces}==" 1" 
-    ATTRS{bConfigurationValue}=="1" 
-    ATTRS{bMaxPacketSize0}=="64" 
-    ATTRS{busnum}=="1" 
-    ATTRS{devnum}=="2" 
-    ATTRS{configuration}=="" 
-    ATTRS{bMaxPower}=="2mA" 
-    ATTRS{authorized}=="1" 
-    ATTRS{bmAttributes}=="e0" 
-    ATTRS{bNumConfigurations}=="1" 
-    ATTRS{maxchild}=="5" 
-    ATTRS{bcdDevice}=="0200" 
-    ATTRS{avoid_reset_quirk}=="0" 
-    ATTRS{quirks}=="0x0" 
-    ATTRS{version}==" 2.00" 
-    ATTRS{urbnum}=="113" 
-    ATTRS{ltm_capable}=="no" 
-    ATTRS{removable}=="unknown" 
-    ATTRS{idProduct}=="9514" 
-    ATTRS{bDeviceClass}=="09" 
- 
-  looking at parent device '/devices/platform/soc/3f980000.usb/usb1': 
-    KERNELS=="usb1" 
-    SUBSYSTEMS=="usb" 
-    DRIVERS=="usb" 
-    ATTRS{bDeviceSubClass}=="00" 
-    ATTRS{bDeviceProtocol}=="01" 
-    ATTRS{devpath}=="0" 
-    ATTRS{idVendor}=="1d6b" 
-    ATTRS{speed}=="480" 
-    ATTRS{bNumInterfaces}==" 1" 
-    ATTRS{bConfigurationValue}=="1" 
-    ATTRS{bMaxPacketSize0}=="64" 
-    ATTRS{authorized_default}=="1" 
-    ATTRS{busnum}=="1" 
-    ATTRS{devnum}=="1" 
-    ATTRS{configuration}=="" 
-    ATTRS{bMaxPower}=="0mA" 
-    ATTRS{authorized}=="1" 
-    ATTRS{bmAttributes}=="e0" 
-    ATTRS{bNumConfigurations}=="1" 
-    ATTRS{maxchild}=="1" 
-    ATTRS{interface_authorized_default}=="1" 
-    ATTRS{bcdDevice}=="0404" 
-    ATTRS{avoid_reset_quirk}=="0" 
-    ATTRS{quirks}=="0x0" 
-    ATTRS{serial}=="3f980000.usb" 
-    ATTRS{version}==" 2.00" 
-    ATTRS{urbnum}=="25" 
-    ATTRS{ltm_capable}=="no" 
-    ATTRS{manufacturer}=="Linux 4.4.13-v7+ dwc_otg_hcd" 
-    ATTRS{removable}=="unknown" 
-    ATTRS{idProduct}=="0002" 
-    ATTRS{bDeviceClass}=="09" 
-    ATTRS{product}=="DWC OTG Controller" 
- 
-  looking at parent device '/devices/platform/soc/3f980000.usb': 
-    KERNELS=="3f980000.usb" 
-    SUBSYSTEMS=="platform" 
-    DRIVERS=="dwc_otg" 
-    ATTRS{hnp}=="HstNegScs = 0x0" 
-    ATTRS{srp}=="SesReqScs = 0x1" 
-    ATTRS{regvalue}=="invalid offset" 
-    ATTRS{hsic_connect}=="HSIC Connect = 0x1" 
-    ATTRS{guid}=="GUID = 0x2708a000" 
-    ATTRS{mode}=="Mode = 0x1" 
-    ATTRS{srpcapable}=="SRPCapable = 0x1" 
-    ATTRS{regdump}=="Register Dump" 
-    ATTRS{gpvndctl}=="GPVNDCTL = 0x00000000" 
-    ATTRS{ggpio}=="GGPIO = 0x00000000" 
-    ATTRS{hprt0}=="HPRT0 = 0x00001005" 
-    ATTRS{wr_reg_test}=="Time to write GNPTXFSIZ reg 10000000 times: 370 msecs (37 jiffies)" 
-    ATTRS{driver_override}=="(null)" 
-    ATTRS{hcd_frrem}=="HCD Dump Frame Remaining" 
-    ATTRS{mode_ch_tim_en}=="Mode Change Ready Timer Enable = 0x0" 
-    ATTRS{gnptxfsiz}=="GNPTXFSIZ = 0x01000306" 
-    ATTRS{remote_wakeup}=="Remote Wakeup Sig = 0 Enabled = 0 LPM Remote Wakeup = 0" 
-    ATTRS{busconnected}=="Bus Connected = 0x1" 
-    ATTRS{hcddump}=="HCD Dump" 
-    ATTRS{gotgctl}=="GOTGCTL = 0x001c0001" 
-    ATTRS{spramdump}=="SPRAM Dump" 
-    ATTRS{grxfsiz}=="GRXFSIZ = 0x00000306" 
-    ATTRS{gsnpsid}=="GSNPSID = 0x4f54280a" 
-    ATTRS{gusbcfg}=="GUSBCFG = 0x20001700" 
-    ATTRS{hptxfsiz}=="HPTXFSIZ = 0x02000406" 
-    ATTRS{devspeed}=="Device Speed = 0x0" 
-    ATTRS{fr_interval}=="Frame Interval = 0x1d4c" 
-    ATTRS{rem_wakeup_pwrdn}=="" 
-    ATTRS{bussuspend}=="Bus Suspend = 0x0" 
-    ATTRS{buspower}=="Bus Power = 0x1" 
-    ATTRS{hnpcapable}=="HNPCapable = 0x1" 
-    ATTRS{rd_reg_test}=="Time to read GNPTXFSIZ reg 10000000 times: 920 msecs (92 jiffies)" 
-    ATTRS{enumspeed}=="Device Enumeration Speed = 0x1" 
-    ATTRS{inv_sel_hsic}=="Invert Select HSIC = 0x0" 
-    ATTRS{regoffset}=="0xffffffff" 
- 
-  looking at parent device '/devices/platform/soc': 
-    KERNELS=="soc" 
-    SUBSYSTEMS=="platform" 
-    DRIVERS=="" 
-    ATTRS{driver_override}=="(null)" 
- 
-  looking at parent device '/devices/platform': 
-    KERNELS=="platform" 
-    SUBSYSTEMS=="" 
-    DRIVERS=="" 
- 
-$ udevadm info -a -n /dev/ttyACM0 | grep idVendor 
-    ATTRS{idVendor}=="26ac" 
-    ATTRS{idVendor}=="0424" 
-    ATTRS{idVendor}=="1d6b" 
- 
-$ udevadm info -a -n /dev/ttyACM0 | grep idProduct 
-    ATTRS{idProduct}=="0011" 
-    ATTRS{idProduct}=="9514" 
-    ATTRS{idProduct}=="0002" 
- 
-$ udevadm info -a -n /dev/ttyACM0 | grep serial 
-    ATTRS{serial}=="0" 
-    ATTRS{serial}=="3f980000.usb" 
- 
-$ udevadm info -a -n /dev/ttyACM0 | grep manufacturer 
-    ATTRS{manufacturer}=="3D Robotics" 
-    ATTRS{manufacturer}=="Linux 4.4.13-v7+ dwc_otg_hcd" 
- 
-$ udevadm info -a -n /dev/ttyACM0 | grep product 
-    ATTRS{product}=="PX4 FMU v2.x" 
-    ATTRS{product}=="DWC OTG Controller" 
-</code> 
- 
-Ou encore, en regardant dans les logs :  
-<code bash> 
-$ sudo cat /var/log/messages | grep SerialNumber 
-(...) 
-Aug 16 14:10:22 raspberrypi kernel: [ 1060.450258] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
-Aug 16 14:10:22 raspberrypi kernel: [ 1060.450296] usb 1-1.2: SerialNumber: 0 
-</code> 
- 
-=== Fixer le chemin d'accès vers du matériel en série === 
-<code bash> 
-$ sudo nano /etc/udev/rules.d/99-usb-serial.rules 
- 
-$ sudo cat /etc/udev/rules.d/99-usb-serial.rules 
-SUBSYSTEM=="tty", ATTRS{idVendor}=="1-1.2",  
-ATTRS{idProduct}=="1.0", ATTRS{serial}=="0", SYMLINK+="autopilot" 
- 
-#matériel débranché : 
-$ ls -al /dev/a* 
-crw------- 1 root root 10, 235 aoû 16 13:50 /dev/autofs 
- 
-#matériel branché : 
-$ ls -al /dev/a* 
-crw------- 1 root root 10, 235 aoû 16 13:50 /dev/autofs 
-</code> 
-( [[http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/|source (hintshop.ludvig.co.nz)]] ) 
raspberry_pi.1471349941.txt.gz · Dernière modification : 2020/08/09 12:59 (modification externe)