NanoPi (Raspberry-PI miniature) avec Debian

C’est plus fort que moi, je n’ai pas pu résister à l’acquisition de ce bidule sorti début août 2015.nanopi

Les spécifications sont assez sympa:

  • CPU Samsung S3C2451 à 400MHz
  • RAM: 64Mo DDR2 (ok, ok, ça fait faiblard)
  • Chip intégré pour WiFi et Bluetooth
  • I/O: 1 USB type A, 1 port série pour debug, 1 port microSD
  • 1 port microUSB qui sert pour l’alimentation ET data (port série ou Ethernet)
  • interface LCD, interface caméra DVP
  • 40pin de GPIO compatibles avec ceux du Raspberry Pi (UART, SPI, I2C…)
  • 12pin de GPIO supplémentaires: I2S, I2C, UART
  • Dimensions: 75 x 30 mm²
  • Alimentation en 5v
  • Supporte a priori : u-boot, GNU/Linux 4.1, et Debian

Ce post rassemble mes notes sur le déballage, puis installation Debian et configuration WiFi…

Commande groupée pour les membres intéressés du LabSud de quelques nanopis, sur nanopi.org , reçue le 31/8 (ah… le bonheur de la douane, des taxes inopinées… priceless, sans jeu de mot).

Au déballage, c’est comme un Raspberry-PI mais en 2x plus petit. C’est sans sortie HDMI, moins de RAM, mais tous les connecteurs GPIO/pi-cam/pi-rgb sont là (form-factor compatible!), et en bonus on a du Wi-Fi et BT embarqué 😎 . ET ça consomme moins ( 200mA avec écran LCD P43, mais tout nu  seulement 45mA x 5V soit <250mW, à comparer avec les 3.5W pour le RPI-B, rendez-vous compte!!).nanopi_z

nanopi_b

Inventaire pour démarrer l’expérience:

  • NanoPi
  • une carte microSD d’au moins 64Mo (semble-t-il), j’ai recyclé une vieille microSD 4Go (mauvais choix, car pas rapide du tout!)
  • câble microUSB pour les transferts
  • un PC avec Ubuntu, connecté à Internet

Préparation à l’installation

D’abord un terminal: la ligne de commande c’est la vie.
Brancher la carte sur l’ordi Ubuntu, et choper le deviceID de la carte microSD avec la commande (dans le terminal, il va y en avoir pleinpleinplein):

dmesg | tail

Exemple de sortie sur la console:

[18956.642851] usb-storage 4-2:1.0: USB Mass Storage device detected
[18956.643069] scsi9 : usb-storage 4-2:1.0
[18957.642362] scsi 9:0:0:0: Direct-Access TS-RDF5 SD Transcend TS37 PQ: 0 ANSI: 6
[18957.642600] sd 9:0:0:0: Attached scsi generic sg3 type 0
[18957.934852] sd 9:0:0:0: [sdd] 8028160 512-byte logical blocks: (4.11 GB/3.82 GiB)
[18957.935665] sd 9:0:0:0: [sdd] Write Protect is off
[18957.935668] sd 9:0:0:0: [sdd] Mode Sense: 23 00 00 00
[18957.936373] sd 9:0:0:0: [sdd] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[18957.941108] sdd: sdd1
[18957.943373] sd 9:0:0:0: [sdd] Attached SCSI removable disk

Donc, il s’agit dans ce cas de /dev/sdd . Maintenant on peut préparer la carte.

Dans un répertoire de travail (~/Bureau/NanoPi chez moi):

git clone https://github.com/friendlyarm/sd-fuse_nanopi.git 
cd sd-fuse_nanopi 
sudo ./fusing.sh /dev/sdX MODE

En gros, la 1ère commande télécharge le projet hébergé sur GitHub (environ 350 Mo), puis exécution du script (en remplaçant /dev/sdX par le « deviceID » repéré à l’étape précédente, et MODE par soit sd ou sdhc selon le type de la carte. Ma carte est une SDHC, car >=4Go: j’ai donc « ./fusing.sh /dev/sdd sdhc »). Voici le résultat du git clone:

remote: Counting objects: 116, done.
remote: Total 116 (delta 0), reused 0 (delta 0), pack-reused 116
Réception d'objets: 100% (116/116), 354.25 MiB | 765.00 KiB/s, done.
Résolution des deltas: 100% (48/48), done.
Vérification de la connectivité... fait.

Et la sortie de ma commande: « ./fusing.sh /dev/sdd sdhc »

Card type: SDHC
---------------------------------
make /dev/sdd partition
---------------------------------
...(plein de choses)...
---------------------------------
Rootfs is fused successfully.
All done.

La carte dans le NanoPi, Debian Jessie!

Insérer la carte dans le slot prévu (sous le port PiCam, opposé au port USB). Brancher le NanoPi avec le câble microUSB à l’hôte Ubuntu. Le NanoPi se met tout seul en route; si la diode LED bleue clignote, alors la carte fonctionne et est opérationnelle. (pas d’écran raccordé, le reste se fait donc en aveugle).
Le côté cool de la connexion microUSB c’est qu’elle donne aussi une connexion réseau de type Ethernet!! Sortie ‘dmesg’ (toujours en console côté Ubuntu) :

[24236.821076] usb 3-2: Product: FriendlyARM Gadget v2.4
[24236.821078] usb 3-2: Manufacturer: Linux 4.1.2-FriendlyARM with s3c-hsudc
  ...
[24240.981258] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[24253.696012] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready

Du coup ‘ifconfig’ est plus locace, avec une interface ‘usb0’ en plus!

usb0 Link encap:Ethernet HWaddr 7e:51:XX:XX:XX:XX 
    inet adr:192.168.100.200 Bcast:192.168.100.255 Masque:255.255.255.0
    adr inet6: XXXX::XXXX:XXXX:XXXX:XXXX/64 Scope:Lien
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    Packets reçus:17 erreurs:0 :0 overruns:0 frame:0
    TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 lg file transmission:1000 
    Octets reçus:1708 (1.7 KB) Octets transmis:13606 (13.6 KB)

A ce stade, le NanoPi est accessible sur 192.168.100.1 en SSH , le mot de passe ‘root’ par défaut est ‘fa’.

Donner de l’autonomie avec du Wi-Fi

D’abord, se connecter depuis Ubuntu: ssh root@192.168.100.1
le ‘ifconfig -a‘ confirme qu’une interface wifi (wlan0) est présente, mais non configurée. Donc créer un fichier de configuration de cette interface: vi /etc/network/interfaces.d/wlan0.
Et dedans (bon cet exemple c’est pour chez moi avec une authent en WPA-PSK TKIP) :

auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-ssid YourWiFiESSID
wpa-ap-scan 1
wpa-proto WPA RSN
wpa-pairwise CCMP TKIP
wpa-group CCMP TKIP
wpa-key-mgmt WPA-PSK
wpa-psk YourWiFiPassword

Redémarrage de la stack réseau avec ‘/etc/init.d/networking restart‘ (même si Jessie recommande systemctl daemon-reload). Un nouveau ‘ifconfig -a‘ confirme le changement:

wlan0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
     inet6 addr: XXXX::XXX:XXXX:XXXX:XXXX/64 Scope:Link
     UP BROADCAST MULTICAST MTU:1500 Metric:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000
     RX bytes:0 (0.0 B) TX bytes:2700 (2.6 KiB)

La conf initiale Wi-Fi est finie (on a même pécho l’adresse MAC): donc ‘halt‘ (la diode bleue finit de clignoter), puis débrancher le câble USB.

Après redémarrage avec USB « secteur » ou même batterie (donc sans câble connecté au PC), on peut personnaliser le contenu de la distrib (puisqu’elle a accès à Internet): activer les dépôts dans /etc/apt/sources.list , liste de serveurs compatibles sur [http://www.debian.org/mirror/list] et attention à l’architecture! On est sur armel pas x86_64.

apt-get update; apt-get upgrade

Et c’est une Debian, pas une raspbian (la distribution quasi-officielle pour le Raspberry Pi): il manque des tas de choses pratiques qu’on trouve de base sur le R-Pi.
Le système n’est d’ailleurs pas à l’heure, il n’y a pas d’horloge interne: installation du paquet ‘ntp’, ‘vim’ (pour la couleur) , et quoi jouer avec Python et le GPIO (voir le projet zumo):

apt-get install ntp vim 
echo syn on >> /etc/vim/vimrc.local 
apt-get install python-setuptools

Le module GPIO « python3-rpi.gpio » qui est fournie avec Raspbian, manque ici apparemment?
Alors installer ce qui manque:

apt-get install python-pip 
apt-get install python-dev 
pip install RPi.GPIO

La librairie python RPIO (signaux PWM):

easy_install -U RPIO

 

….. [A SUIVRE !] … (les commentaires sont bienvenus!!!!!!)

 

Ressources utiles sur la bestiole:

Ressources utiles pour Linux:

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.