lundi 31 juillet 2017

Cubieboard2 - Démarrage

Armbian


Cet article résume comment installer un système Armbian, sur une carte de type Cubieboard2

Accessoires


Distribution Armbian (déconseillée)


La distribution utilisée dérive d'une Debian Jessie disponible en téléchargement sur le site www.armbian.com.
Attention:
  • La distribution Android livrée sur la NAND ne boot pas !
  • La distribution Ubuntu desktop legacy kernel ne boot pas !
Il faut prendre une mainline de type: Armbian_5.25_Cubieboard2_Debian_jessie_next_4.9.7

Ecriture sur carte micro SD

L'image Armbian s'écrit sur une carte micro-SD avec les commandes suivantes:
sudo su
dd if=/dev/zero of=/dev/mmcblk0 bs=4M
dd if=./Armbian_5.25_Cubieboard2_Debian_jessie_next_4.9.7.img of=/dev/mmcblk0 bs=4096
sync

1er Démarrage


Accéder via SSH

WARNING MUST Log via SSH and use password 1234
You will be prompted to change this password at first login
You will then be asked to create a normal user account that is sudo enabled
(beware of default QWERTY keyboard settings at this stage)
Ethernet adapter with DHCP and SSH server ready on default port (22)

Mettre le clavier en Français

dpkg-reconfigure keyboard-configuration

Définir l'heure locale

dpkg-reconfigure locales

Utiliser le Français

dpkg-reconfigure console-setup

Définir l'heure locale

dpkg-reconfigure tzdata

Définir une adresse IP statique

By default your main network adapter’s IP is assigned by your router DHCP server.
cat /etc/network/interfaces iface eth0 inet dhcp
Pourra être remplacé par les lignes suivantes:
iface eth0 inet static
address 192.168.1.167
netmask 255.255.255.0
gateway 192.168.1.1

Définir le nom utilisé pour ce système

cat /etc/hostnam
cb2-zbx

Redémarrage et mise à jour

reboot apt-get update
apt-get upgrade

Distribution Cubian (recommandée)


La distribution utilisée dérive d'une Debian Wheezy disponible en téléchargement sur le site cubian.org.
Il faut choisir une distribution Cubian nano-a20-hdmi

Ecriture sur carte micro SD

L'image Cubian s'écrit sur une carte micro-SD avec les commandes suivantes:
sudo su
dd if=/dev/zero of=/dev/mmcblk0 bs=4M
dd if=./Cubian-nano-x1-a20-hdmi.img of=/dev/mmcblk0 bs=4096; sync

1er Démarrage


Mises à jour

sudo apt-get update
cubian-update
sudo apt-get install cubian-nandinstall
cubian-naninstall
reboot
sudo apt-get update

Connexion ssh

ssh -p 36000 cubie@192.168.1.21

Définir une adresse IP statique

/etc/network/interfaces
iface eth0 inet dhcp
Pourra être remplacé par les lignes suivantes:
iface eth0 inet static
address 192.168.1.167
netmask 255.255.255.0
gateway 192.168.1.1

Définir le nom utilisé pour ce système

cat /etc/hostnam
cb2-zbx

Intallation d'un disque SATA II


Liste des périphériques en mode block


root@cb2-zbx:/home/cubie# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 931,5G  0 disk 
└─sda1        8:1    0 931,5G  0 part 
nand         93:0    0   3,7G  0 disk 
mmcblk0     179:0    0  14,4G  0 disk 
├─mmcblk0p1 179:1    0    45M  0 part /boot
└─mmcblk0p2 179:2    0  14,4G  0 part /

Suppression des partitions du périphérique sda


root@cb2-zbx:/home/cubie# fdisk /dev/sda

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xb50298fb

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  1953521663   976759808    7  HPFS/NTFS/exFAT

Command (m for help): d
Selected partition 1

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Création de la nouvelle partition sda1


Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-1953525167, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1953525167, default 1953525167): 
Using default value 1953525167

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Création du système de fichiers sur la partion de sda1


root@cb2-zbx:/home/cubie# mkfs -t ext2 /dev/sda1
mke2fs 1.42.5 (29-Jul-2012)
Étiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
« Stride » = 0 blocs, « Stripe width » = 0 blocs
61054976 i-noeuds, 244190390 blocs
12209519 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=0
Nombre maximum de blocs du système de fichiers=0
7453 groupes de blocs
32768 blocs par groupe, 32768 fragments par groupe
8192 i-noeuds par groupe
Superblocs de secours stockés sur les blocs : 
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
 102400000, 214990848

Allocation des tables de groupe : complété                        
Écriture des tables d'i-noeuds : complété                        
Écriture des superblocs et de l'information de comptabilité du système de
fichiers : complété 

root@cb2-zbx:/home/cubie# 

Montage du système de fichiers sur /data


mkdir /data
mount /dev/sda1 /data

Montage de la partition sda1 au boot


cubie@cb2-zbx:~$ vi /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
#                
/dev/mmcblk0p2  /               ext4    defaults        0       1
/dev/mmcblk0p1  /boot           ext4    defaults        0       2
/dev/sda1       /data           ext2    defaults        0       2
tmpfs   /tmp    tmpfs   defaults        0       0
tmpfs   /var/tmp        tmpfs   defaults        0       0

lundi 26 septembre 2016

Choisir un nano-PC

Définition


Le terme nano-ordinateur ou nano-PC, est utilisé pour désigner des ordinateurs dont la taille est comparable à celle d'une carte de crédit.

Quelques exemples à processeur ARM


Parmi les nano-ordinateurs ARM les plus utilisés actuellement, on peut citer:

Quelques caractéristiques


Raspberry Pi 1 (model B)

Le Raspberry Pi repose sur un processeur ARM qui supporte l'exécution d'une distribution GNU/Linux et de logiciels compatibles. Il peut effectuer les tâches d’un PC de bureau mais il permet également la diffusion de vidéos en haute définition grâce à son circuit BMC Videocore.
Le Raspberry Pi nécessite en plus: une carte SD munie d'un OS Linux, une alimentation, un clavier USB, une souris USB, un boîtier et des câbles (Ethernet, HDMI). Pour préparer une carte SD bootable, il faut disposer d'un PC avec lecteur de carte.
  • Alimentation à prévoir: 5 Vcc (via prise micro-USB)
  • Consommation: 700 mA
  • CPU: ARM1176JZF-S 700 MHz
  • Mémoire: 512 MB
  • 2 ports USB 2.0
  • Port Ethernet 10/100 base T: RJ45
  • Bus: SPI, I2C, série
  • Support pour cartes SD/MMC/SDIO
  • Sorties audio: HDMI et jack 3,5 mm
  • Sorties vidéo: HDMI et vidéo-composite
  • Dimensions: 85 x 56 mm

BeagleBone Black (rev B)

Capable de réaliser des calculs arithmétiques de vecteurs avec virgule flottante, la platine BeagleBone Black est indiquée pour la conception de petits de robots.
  • AM335x Superscalar ARM Cortex-A8 1GHz
  • 512-MB DDR3L RAM
  • Mémoire Flash 2GB eMMC
  • 1 sortie vidéo/audio (stéréo) via un port micro HDMI
  • Résolution: 1024x768 - 1280x720 - 1440x900 - 1280x1024 supporte w/EDID
  • 1 port USB 2.0 (host) à usage multiple offrant la possibilité d’alimenter la platine
  • 1 port USB 2.0 (client)
  • 1 port Ethernet 10/100Base-T
  • Connecteur microSD
  • Interface JTAG pour débug en option
  • Accès à tous les signaux d’entrées/sorties (niveau 3,3 V) y compris ceux pour la gestion de LCD et de batterie sur 2 connecteurs femelles 46 broches au pas de 2,54 mm
  • Dimensions: 8,6 × 5,4 cm.

eMMC

eMMC est l'abréviation d'embedded MultiMedia Card ou carte multimédia embarquée. A ce jour, les cartes mémoire eMMC possédent les taux de transfert suivants:
  • 200 Mo/s en lectureséquentielle
  • 50 Mo/s en écriture séquentielle
  • 4000 IOPS en lecture aléatoire
  • 1500 IOPS en écriture aléatoire
Ces prestations sont inférieures à celles d'un disque SSD, mais nettement au-dessus des cartes SD les plus performantes.

Conclusion

 Les deux cartes présentées ci-dessus posèdent chacunes un domaine de prédilection.
  • La Raspberry Pi cible un panel de consommateurs très étendu. Il s'agit d'une carte grand public
  • La BeagleBone Black se destine à un marché d'utilsateurs avertis pour des prototypes industriels ou à caractère scientifique.

RPi3 - InfluxDB Grafana

Introduction

Cet article résume comment installer Grafana et InfluxDB sur une Raspberry Pi 3 Model . Le système d’exploitation est une distribution de type Linux Debian appelée Raspbian. La distribution utilisée dérive d'une Debian Jessie. Celle-ci est disponible en téléchargement sur le site de raspberrypi.

InfluxDB

InfluxDB est une base de données orientée “séries temporelles” dont le support de stockage repose sur la solution clé-valeur haute performance LevelDB

Grafana

Grafana va permettre de réaliser des tableaux de bords Web à partir de données stockées dans InfluxDB

Influxdb

Téléchargement et installation

Télécharger la dernière version disponible sur plateforme ARM pour influxdb:
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.0.0_linux_armhf.tar.gz
Décompresser l'archive correspondante:
tar xvfz influxdb-1.0.0_linux_armhf.tar.gz

Test

Exécuter le programme influxd: influxdb-1.0.0-1/usr/bin/influxd

[run] 2016/09/26 18:16:57 InfluxDB starting, version 1.0.0, branch master, commit 37992377a55fbc138b2c01edd4deffed64b53989
[run] 2016/09/26 18:16:57 Go version go1.6.2, GOMAXPROCS set to 4
[run] 2016/09/26 18:16:57 no configuration provided, using default settings
[store] 2016/09/26 18:16:57 Using data dir: /root/.influxdb/data
[subscriber] 2016/09/26 18:16:57 opened service
[monitor] 2016/09/26 18:16:57 Starting monitor system
[monitor] 2016/09/26 18:16:57 'build' registered for diagnostics monitoring
[monitor] 2016/09/26 18:16:57 'runtime' registered for diagnostics monitoring
[monitor] 2016/09/26 18:16:57 'network' registered for diagnostics monitoring
[monitor] 2016/09/26 18:16:57 'system' registered for diagnostics monitoring
[shard-precreation] 2016/09/26 18:16:57 Starting precreation service with check interval of 10m0s, advance period of 30m0s
[snapshot] 2016/09/26 18:16:57 Starting snapshot service
[admin] 2016/09/26 18:16:57 Starting admin service
[admin] 2016/09/26 18:16:57 Listening on HTTP: [::]:8083
[continuous_querier] 2016/09/26 18:16:57 Starting continuous query service
[monitor] 2016/09/26 18:16:57 Storing statistics in database '_internal' retention policy 'monitor', at interval 10s
[httpd] 2016/09/26 18:16:57 Starting HTTP service
[httpd] 2016/09/26 18:16:57 Authentication enabled: false
[httpd] 2016/09/26 18:16:57 Listening on HTTP: [::]:8086
[retention] 2016/09/26 18:16:57 Starting retention policy enforcement service with check interval of 30m0s
[run] 2016/09/26 18:16:57 Listening for signals 2016/09/26 18:16:57 Sending usage statistics to usage.influxdata.com
[shard] 2016/09/26 18:17:10 /root/.influxdb/data/_internal/monitor/1 database index loaded in 53.645µs

Automatiser le démarrage

Créer un script de démarrage sous le répertoire /etc/init.d puis exécuter les commandes suivantes:
cp influxdb.sh /etc/init.d
chmod +x /etc/init.d/influxdb.sh
update-rc.d influxdb.sh defaults

Grafana

Téléchargement et installation

Télécharger la dernière version disponible sur plateforme ARM pour Grafana
Installer le packet correspondant: root@rpi-iot:/home/pi# dpkg -i ./grafana_3.1.0-1468447908_armhf.deb

Sélection du paquet grafana précédemment désélectionné. (Lecture de la base de données... 118182 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../grafana_3.1.0-1468447908_armhf.deb ...
Dépaquetage de grafana (3.1.0-1468447908) ...
Paramétrage de grafana (3.1.0-1468447908) ...
Ajout de l'utilisateur système « grafana » (UID 113) ...
Ajout du nouvel utilisateur « grafana » (UID 113) avec pour groupe d'appartenance « grafana » ...
Le répertoire personnel « /usr/share/grafana » n'a pas été créé.
### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable grafana-server
### You can start grafana-server by executing sudo /bin/systemctl start grafana-server T
raitement des actions différées (« triggers ») pour systemd (215-17+deb8u4) ...

RPi 3 - Point d'accès WIFI

Introduction


Cet article résume comment installer un d'accès WIFI sur une Raspberry Pi 3 Model B.
Il faudra installer puis configurer deux packets supplémetaires.

hostapd

hostapd sera le service en charge de la création du point d'accès WIFI.

dnsmasq

dnsmasq est un serveur léger pour fournir les services DNS, DHCP, Bootstrap Protocol et TFTP sur un petit réseau. Il sera utilisé dans notre cas pour la affecter des adresses IP dynamiques aux clients qui vont se connecter sur le point d'accès WIFI, par l'intermédiaire du service hostapd.

Configuration DHCP


DHCP est désormais pris en charge par un nouveau paquet appelé dhcpcd. Dans ce cas, le fichier de configuration des interfaces réseaux /etc/network/interfaces ne comprend plus la ligne d'instruction iface eth0 inet dhcp. Celle-ci est remplacée par la ligne d'instruction iface eth0 inet manual.

/etc/network/interfaces

Pour définir une adresse IP statique, le fichier /etc/network/interfaces reste désormais inchangé. Il faudra ajouter les instructions suivantes à la fin du fichier /etc/dhcpcd.conf
# Static IP configuration for eth0.
interface eth0
static ip_address=192.168.1.xxx/24
static routers=192.168.1.1

# Dynamic IP configuration for wlan0
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

/etc/dhcpd.conf

Lorsque la carte réseau possède une adresse IP définie de manière statique, la résolution de noms (DNS) ne se fait plus et le fichier de configuration /etc/resolv.conf est vide ! Dans ce cas, il sera nécessaire d'ajouter les entrées de DNS dans le fichier de configuration /etc/dhcpcd.conf qui prendra finalement la forme suivante:
# Static IP configuration for eth0.
interface eth0
static ip_address=192.168.1.xxx/24
static routers=192.168.1.1
static domain_name_servers=8.8.4.4 8.8.8.8

Vérification adressage IP

Les commandes ifconfig et ip addr permettent d'afficher les infomations sur les interfaces réseau configurées:

hosapd et dnsmasq


Installation des packages nécessaires

apt-get update
apt-get install hostapd
apt-get installdnsmasq

Desactiver le démarrage automatique

update-rc.d -f hostapd remove update-rc.d -f dnsmasq remove 
ou bien:
update-rc.d hostapd disable
update-rc.d dnsmasq disable

Configurer le service hostapd

Créer un fichier /etc/hostapd/hostapd.conf avec le contenu suivant:

# This is the name of the WiFi interface we configured above
interface=wlan0
# Use the nl80211 driver with the brcmfmac driver
driver=nl80211
# This is the name of the network
ssid=Pi3-AP
# Use the 2.4GHz band
hw_mode=g
# Use channel 6
channel=6
# Enable 802.11n<
ieee80211n=1
# Enable WMM
wmm_enabled=1
# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
# Accept all MAC addresses
macaddr_acl=0
# Use WPA authentication
auth_algs=1
Require clients to know the network name
ignore_broadcast_ssid=0
# Use WPA2
wpa=2
# Use a pre-shared key
wpa_key_mgmt=WPA-PSK
# The network passphrase
wpa_passphrase=raspberry
# Use AES, instead of TKIP
rsn_pairwise=CCMP

Configurer le service dnsmasq

Créer un fichier /etc/dnsmasq.conf avec le contenu suivant:

interface=wlan0 # Use interface wlan0
listen-address=172.24.1.1 # Explicitly specify the address to listen on
bind-interfaces # Bind to the interface to make sure we aren't sending things elsewhere
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
bogus-priv # Never forward addresses in the non-routed address spaces.
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time

Mise en oeuvre


Créer un script de démarrage: wap.sh


#!/bin/bash
if [ "$(whoami)" != root ]
then
echo "You need administrator privileges to run this script"
exit 1
fi
ifconfig wlan0 down
ifconfig wlan0 172.24.1.1/24
ifconfig wlan0 up
service dnsmasq start
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
service hostapd start

RPi 3 - Démarrage

Raspbian


Cet article résume comment installer un système Raspbian, sur une Raspberry Pi 3 Model B

Accessoires


Installation d'un serveur


Le système d’exploitation est une distribution de type Linux Debian appelée Raspbian.
La distribution en usage actuellement dérive d'une Debian Jessie. Celle-ci est disponible en téléchargement sur le site de raspberrypi.

La distribution Raspbian peut se télécharger depuis un poste Linux avec la ligne de commande suivante:
wget http://downloads.raspberrypi.org/raspbian_latest

Décompresser le fichier contenant la distribution: unzip  raspbian_latest

Inserer la carte SD dans son logement puis rechercher son point de montage.
La commande dmesg permet d'identifier le type de périphérique: 
[15362.326489] mmcblk0: mmc0:0001 SD16G 14.6 GiB
[15362.329144]  mmcblk0: p1
[15362.496985] FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!


La commande umount permet de démonter la partition qui contiendra la distribution:
umount /dev/mmcblk0p1

Puis recopier l'image Raspbian sur la carte SD (Une procèdure détallée est disponible sur le site raspberry): dd bs=4M if=./2016-05-27-raspbian-jessie.img of=/dev/mmcblk0

Après cette opération de copie assez longue, la carte SD peut être insérée dans le logement de la carte du Raspberry Pi.

1er démarrage


Après insertion de la carte SD et mise sous tension, le systéme de fichier est redimensionné puis le serveur X est démarré. Ensuite, il est possible de lancer le menu de configuration en saisissant la commande raspi-config dans un terminal (avec les droits de root).


Configuration depuis raspi-config


Voici les options de menu raspi-config:
  • Expand_Filesystem: par défault la partition système fait 2Go. Cette option permet de l'agrandir afin d'occuper tout l'espace disponible.
  •  Change User Password: pour modifier le mot de passe de l'utilisateur par default (pi/raspberry) .
  •  Enabled boot to Desktop/Scratch: pour lancer une console ou un environnement graphique au boot. 
  •  Internationalisation Options: pour changer la langue. Pour mettre  et mettre le clavier en français. Pour changer l'heure locale.
  •  Advanced Options: Pour activer le service SSH afin de se connecter à distance. Pour redéfinir le nom de la machine sur le réseau. Pour définir les quantités de mémoire allouées respectivement aux CPU et au GPU.

Utiliser le français

Depuis le menu:  raspi-config | Internationalisation Options | Change locale

Définir l'heure locale

Depuis le menu:  raspi-config | Internationalisation Options | Change Timezone

Obligatoirement définir la localisation Wifi pour GB

Depuis le menu:  raspi-config | Internationalisation Options | Change Wi-fi country

Mettre le clavier en français

Depuis le menu:  raspi-config | Internationalisation Options | Change Keyboard layout

Etendre le système de fichier

Depuis le menu:  raspi-config | Expand Filesystem

Changer de mot de passe

Depuis le menu:  raspi-config | Change User Password

Démarrer le systéme en mode console

Depuis le menu:  raspi-config | Enable boot to Desktop / Scratch

Activer le serveur SSH

Depuis le menu:  raspi-config | Advanced Options | SSH

Définir le nom utilisé pour ce système

Depuis le menu:  raspi-config | Advanced Options | Hostname

Définir la quantité de mémoire allouée au GPU

Depuis le menu:  raspi-config | Advanced Options | Split

Utiliser 32Mib de RAM pour le GPU et le reste disponible pour le CPU.

Activer le chargement des modules noyau SPI

Depuis le menu:  raspi-config | Advanced Options | SPI

Activer le chargement des modules noyau I2C

Depuis le menu:  raspi-config | Advanced Options | I2C

Redémarrage et poursuite de la configuration


Ensuite, on pourra effectuer les actions suivantes:
  • Définir la liste des dépots sources
  • Mettre à jour les paquets
  • Définir une adresse IP statique

Définir la liste des dépots sources

Pour une distribution dérivée de la version Debian Jessie, le fichier de définition des paquets devrait contenir les entrées suivantes:
cat /etc/apt/sources.list
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi

Mettre à jour les paquets

Dans ce cas, on peut mettre à jour le système depuis Internet avec la commande suivante:
sudo apt-get update

Définir une adresse IP statique

Afin de faciliter les accès ultérieurs par ssh, on peut remplacer l'adressage DHCP par une IP statique:

/etc/network/interfaces
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Attention:

  • Mon routeur est une LivePlay Orange qui utilise le masque de sous réseau  192.168.1.xxx mais certains utilisent 192.168.0.xxx.
  • DHCP est désormais pris en charge par un nouveau paquet appelé dhcpcd. Dans ce cas, le fichier de configuration des interfaces réseaux ne comprend plus la ligne d'instruction iface eth0 inet dhcp. Celle-ci est remplacée par la ligne d'instruction iface eth0 inet manual.Pour définir un IP statique le fichier  /etc/network/interfaces reste désormais inchangé. Il faudra ajouter les instructions suivantes à la fin du fichier /etc/dhcpcd.conf
# Static IP configuration for eth0.
interface eth0
static ip_address=192.168.1.xxx/24
static routers=192.168.1.1

Résolution des noms de domaines

Lorsque la carte réseau possède une adresse IP définie de manière statique, la résolution de noms (DNS) ne se fait plus et le fichier de configuration /etc/resolv.conf est vide ! Dans ce cas, il sera nécessaire d'ajouter les entrées de DNS dans le fichier de configuration /etc/dhcpcd.conf qui prendra finalement la forme suivante:
# Static IP configuration for eth0.
interface eth0
static ip_address=192.168.1.xxx/24
static routers=192.168.1.1
static domain_name_servers=8.8.4.4 8.8.8.8

Redémarrage


Pour redémarrer la raspberry, il faudra saisir la commande suivante:
sudo reboot

Ensuite le systéme sera rendu accessible à distance depuis un client ssh avec la commande suivante:
ssh pi@192.168.1.xxx

Etat des lieux


Mémoire

La commande free -mh pernet de visualiser la quantité de RAM utilisée par le systéme:
                   total         used        free        shared      buffers     cached
Mem:          957M        91M       865M       6,5M       7,7M        45M
-/+ buffers/cache:        39M       918M
Swap:          99M         0B        99M

Espace disque

La commande df -h permet d'obtenir la liste des systémes de fichiers montés ainsi que leur point de montage et taux d'occupation:

Sys. de fichiers   Taille     Utilisé     Dispo   Uti%     Monté sur
/dev/root               30G        3,3G         25G    12%    /
devtmpfs             475M           0        475M      0%    /dev
tmpfs                   479M           0        479M      0%    /dev/shm
tmpfs                   479M       6,5M     473M       2%    /run
tmpfs                    5,0M       4,0K       5,0M       1%    /run/lock
tmpfs                   479M          0         479M       0%    /sys/fs/cgroup
/dev/mmcblk0p1   63M        21M        43M      33%    /boot
tmpfs                     96M          0           96M        0%    /run/user/1000

Adressage IP

Les commandes ifconfig et ip addr permettent d'afficher les infomations sur les interfaces réseau configurées:

lundi 10 août 2015

BBB - Démarrage

Debian sur BeagleBone Black (rev B)


Cet article résume comment installer un système Debian pour BBB, sur une carte microSD depuis un PC fonctionnant sous Linux. Le système sera ensuite transféré dans les 2GB de mémoire flash de la BeagleBone Black (rev B).

Accessoires


Installation de Linux Debian en eMMC


Ecriture sur carte micro SD

La distribution en usage actuellement dérive d'une Debian Jessie. Celle-ci est disponible en téléchargement sur le site elinux.org. L'image sera écrite dans les 2GB de mémoire eMMC d'une BeagleBone Black (rev B).

L'image Debian pour eMMC peut se télécharger avec laligne de commande suivante:
wget https://rcn-ee.com/rootfs/2015-07-08/flasher/BBB-eMMC-flasher-debian-8.1-console-armhf-2015-07-08-2gb.img.xz

Dans un premier temps, cette image sera décompressée puis écrite sur une carte microSD d'une capacité minimale de 2GB.

Décompresser le fichier contenant la distribution:
unxz BBB-eMMC-flasher-debian-7.5-console-2014-06-05-2gb.img.xz

Inserer la carte SD dans son logement puis rechercher son point de montage.
La commande dmesg permet d'identifier le type de périphérique: 
[15362.326489] mmcblk0: mmc0:0001 SD16G 14.6 GiB
[15362.329144]  mmcblk0: p1
[15362.496985] FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!


La commande umount permet de démonter la partition qui contiendra la distribution:
umount /dev/mmcblk0p1

Recopier l'image pour la BeagleBone depuis le PC sous linux vers la carte microSD:
sudo dd bs=4M if=./BBB-eMMC-flasher-debian-8.1-console-armhf-2015-07-08-2gb.img of=/dev/mmcblk0

Transfert de l'image Debian en eMMC

Ensuite, il faut :
  1. Insérer cette image sur microSD dans le lecteur de la carte BeagleBone.
  2. Maintenir enfoncé le bouton user boot de la carte.
  3. Mettre la carte sous tension.
  4. Relâcher le bouton user boot uniquement lorsque les 4 LED de la carte clignotent les une à la suite des autres.
Après 30-45 minutes, les 4 LED de la carte restent toutes allumées en même temps. Le système peut être mis hors tension et il suffira de retirer la carte microSD pour rebooter la BBB depuis sa mémoire eMMC.

1er démarrage


Utiliser le français

La définition des paramètres régionaux ainsi que le positionnement des variables d'environnement (LANG) se fait avec l'aide de la commande suivante:
sudo dpkg-reconfigure locales

Définir l'heure locale

La définition de l'heure locale et du fuseau horaire se fait avec la commande suivante:
dpkg-reconfigure tzdata

Mettre le clavier en français

Le clavier se bascule dans la langue française (AZERTY) avec les commandes suivantes:  
sudo apt-get update
sudo apt-get install console-data
dpkg-reconfigure console-data

Définir la liste des dépots sources

Pour une distribution dérivée d'une version debian wheezy, le fichier de définition des dépots sources devrait contenir les entrées suivantes:
cat /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ wheezy main contrib non-free
deb http://ftp.us.debian.org/debian/ wheezy-updates main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb [arch=armhf] http://repos.rcn-ee.net/debian/ wheezy main

Installer un serveur ssh

Mettre à jour la liste des paquets disponibles puis installer un serveur ssh avec les commandes suivantes:
sudo apt-get update
sudo apt-get install openssh-server

Installer un serveur ntp

Mettre à jour la liste des paquets disponibles puis installer un serveur ssh avec les commandes suivantes: 
sudo apt-get update
sudo apt-get install ntp

Définir le nom utilisé pour ce système

Ajouter le nom xxx qui sera utilisé par ce système, dans le fichier /etc/hostname

Changer de mot de passe

 L'image du système téléchargée utilise un compte et un mot de passe par défaut: debian / temppwd
Il est conseillé de créer un nouvel utilisateur mais on peut aussi utiliser le compte debian à condition de changer son mot de passe avec la commande suivante:
passwd

Définir une adresse IP statique

Afin de faciliter les accès ultérieurs par ssh, on peut remplacer l'adressage DHCP par une IP statique:
sudo vi /etc/network/interfaces

Remplacer la ligne:
iface eth0 inet dhcp

Par les lignes suivantes:
iface eth0 inet static
address 192.168.1.xxx
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

IP statique avec et image de test

Dans les cas où la version téléchargée correspond à une image Jessie de test, les ajouts dans le fichier /etc/network/interface seront sans effet. Pour les versions Jessie de test, le réseau est piloté par le module ConnMan qui possède une interface en ligne de commande. Dans ce cas, il faudra déterminer le nom du service ethernet avec la commande suivante:
$ sudo connmanctl services
AO Wired ethernet_d05fb8ed4f78_cable 

Enssuite, utiliser la commande pour configurer l'adresse IP statique et les adresses des serveur de noms. la synthaxe de la commande est la suivante:
sudo connmanctl config --ipv4 manual --nameservers


$ sudo connmanctl config ethernet_d05fb8ed4f78_cable --ipv4 manual 192.168.1.xxx 255.255.255.0 192.168.1.1 --nameservers 8.8.8.8 

On peut ensuite vérifier la configuration réseau avec la commande suivante: 
$ ip addr show dev eth0  

Enfin, on pourra revenir à la configuration DHCP avec la commande suivante: 
$ sudo connmanctl config ethernet_d05fb8ed4f78_cable --ipv4 dhcp

2nd Redémarrage


Au second redémarrage, faire un état des lieux du systéme.

IP statiques / Résolution de noms

vérifier les paramètres de votre carte réseau avec l'aide de la commande suivante:
sudo ifconfig

Ensuite, vérifier que le système accède bien à un serveur de noms de domaine:
cat /etc/resolv.conf

Mémoire / espace disque

La commande free -mh affiche la quantité de RAM utilisée:
                             total       used       free     shared   buffers   cached
Mem:                    490M      401M     89M     0B        36M        261M
-/+ buffers/cache: 103M      387M
Swap:                    0B           0B         0B

Remarque:

Ce système ne possède pas d'espace de swap.

La commande df -h affiche la liste des systémes de fichiers montés ainsi que leurs points de montage et taux d'occupation.

Filesystem   Size   Used   Avail    Use%  Mounted on
rootfs           1.8G  875M  789M  53%    /
udev             10M  0         10M    0%       /dev
tmpfs            99M  9.9M   89M    11%    /run
/dev/disk/by-uuid/5b9e0cf5-52b7-4bf3-8e38-c9c805d89105  1.8G  875M  789M  53% /
tmpfs            246M 0         246M   0%    /dev/shm
tmpfs            246M 0         246M   0%    /sys/fs/cgroup
tmpfs            100M 0         100M   0%    /run/user
tmpfs             5.0M 0         5.0M    0%    /run/lock

samedi 8 août 2015

RPi 1 2 - Démarrage

Raspbian


Cet article résume comment installer un système Raspbian, sur une carte SD depuis un PC fonctionnant sous Linux.Le système installé devra possèder les caractéristiques d'un serveur et non d'une station de travail pourvue d'un  environnement graphique. Il sera donc configuré en conséquence.

Accessoires


Installation d'un serveur


Le système d’exploitation est une distribution de type Linux Debian appelée Raspbian.
La distribution en usage actuellement dérive d'une Debian Wheezy. Celle-ci est disponible en téléchargement sur le site de raspberrypi.

La distribution Raspbian peut se télécharger depuis un poste Linux avec la ligne de commande suivante:
wget http://downloads.raspberrypi.org/raspbian_latest

Décompresser le fichier contenant la distribution:
ls -alh
unzip  raspbian_latest

Inserer la carte SD dans son logement puis rechercher son point de montage.
La commande dmesg permet d'identifier le type de périphérique: 
[15362.326489] mmcblk0: mmc0:0001 SD16G 14.6 GiB
[15362.329144]  mmcblk0: p1
[15362.496985] FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!


La commande umount permet de démonter la partition qui contiendra la distribution:
umount /dev/mmcblk0p1

Finalement, on recopie l'image Raspbian sur la carte SD ( Une procèdure détallée est disponible sur le site raspberry):
dd bs=4M if=./2015-05-05-raspbian-wheezy.img of=/dev/mmcblk0

Après cette opération de copie assez longue, la carte SD peut être insérée dans le logement de la carte du Raspberry Pi.

1er démarrage


Après insertion de la carte SD et mise sous tension, un menu de configuration s'affiche automatiquement lors du premier démarrage. Ensuite, il sera toujours possible de relancer ce menu en saisissant la commande raspi-config dans un terminal (avec les droits de root).


Configuration depuis raspi-config


Voici les options de menu raspi-config:
  • Expand_Filesystem: par défault la partition système fait 2Go. Cette option permet de l'agrandir afin d'occuper tout l'espace disponible.
  •  Change User Password: pour modifier le mot de passe de l'utilisateur par default (pi/raspberry) .
  •  Enabled boot to Desktop/Scratch: pour lancer une console ou un environnement au boot. 
  •  Internationalisation Options: pour changer la langue. Pour mettre  et mettre le clavier en français. Pour changer l'heure locale.
  •  Advanced Options: Pour activer le service SSH afin de se connecter à distance. Pour redéfinir le nom de la machine sur le réseau. Pour définir les quantités de mémoire allouées respectivement aux CPU et au GPU.

Utiliser le français

Depuis le menu:  raspi-config | Internationalisation Options | Change locale

Définir l'heure locale

Depuis le menu:  raspi-config | Internationalisation Options | Change Timezone

Mettre le clavier en français

Depuis le menu:  raspi-config | Internationalisation Options | Change Keyboard layout

Etendre le système de fichier

Depuis le menu:  raspi-config | Expand Filesystem

Changer de mot de passe

Depuis le menu:  raspi-config | Change User Password

Démarrer le systéme en mode console

Depuis le menu:  raspi-config | Enable boot to Desktop / Scratch

Activer le serveur SSH

Depuis le menu:  raspi-config | Advanced Options | SSH

Définir le nom utilisé pour ce système

Depuis le menu:  raspi-config | Advanced Options | Hostname

Définir la quantité de mémoire allouée au GPU

Depuis le menu:  raspi-config | Advanced Options | Split

Utiliser 16Mib de RAM pour le GPU et le reste disponible pour le CPU.

Redémarrage et poursuite de la configuration


Ensuite, on pourra effectuer les actions suivantes:
  • Définir la liste des dépots sources
  • Mettre à jour les paquets
  • Définir une adresse IP statique

Définir la liste des dépots sources

Pour une distribution dérivée de la version Debian Wheezy, le fichier de définition des paquets devrait contenir les entrées suivantes:
cat /etc/apt/sources.list
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/ wheezy main contrib non-free rpi


Mettre à jour les paquets

Dans ce cas, on peut mettre à jour le système depuis Internet avec la commande suivante:
sudo apt-get update

Définir une adresse IP statique

Afin de faciliter les accès ultérieurs par ssh, on peut remplacer l'adressage DHCP par une IP statique:
sudo vi /etc/network/interfaces

Remplacer:
iface eth0 inet dhcp

Par:
iface eth0 inet static
address 192.168.1.xxx
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Attention:

  • Mon routeur est une LivePlay Orange qui utilise le masque de sous réseau  192.168.1.xxx mais certains utilisent 192.168.0.xxx.
  • DHCP est désormais pris en charge par un nouveau paquet appelé dhcpcd. Dans ce cas, le fichier de configuration des interfaces réseaux ne comprend plus la ligne d'instruction iface eth0 inet dhcp. Celle-ci est remplacée par la ligne d'instruction iface eth0 inet manual. La suppression de la ligne iface eth0 inet manual est actuellement insuffisante et lors du redémarrage de l'interface réseau, le service dhcpcd continue de collecter une IP dynamique. Le systéme possède alors deux adresses IP: une IP statique définie par l'instruction iface eth0 inet static et une IP dynamique obtenue par le client dhcpcd...  Il est nécessaire de supprimer le paquet raspberrypi-net-mods, puis de descativer dhcpcd (voir les deux lignes de commande ci-dessous). Le redémarrage de l'interface réseau conduira enfin à l'obtention d'une seule IP statique.
  •  
    sudo apt-get purge raspberrypi-net-mods
    sudo update-rc.d -f dhcpcd remove

Résolution des noms de domaines

Lorsque la carte réseau possède une adresse IP définie de manière statique, la résolution de noms (DNS) ne se fait plus et le fichier de configuration /etc/resolv.conf est vide ! Dans ce cas, il sera nécessaire d'ajouter les entrées de DNS dans le fichier de configuration /etc/network/interfaces qui prendra finalement la forme suivante:
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.xxx
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-domain home
dns-search home
dns-nameservers 192.168.1.1 8.8.8.8 4.2.2.1
 

Redémarrage


Pour redémarrer la raspberry, il faudra saisir la commande suivante:
sudo reboot

Ensuite le systéme sera rendu accessible à distance depuis un client ssh avec la commande suivante:
ssh pi@192.168.1.xxx

Etat des lieux


Mémoire

La commande free -mh pernet de visualiser la quantité de RAM utilisée par le systéme:
                              total       used       free     shared    buffers     cached
Mem:                     482M     65M       417M     0B        10M        30M

-/+ buffers/cache:  24M       458M
Swap:                    99M       0B           99M

Espace disque

La commande df -h permet d'obtenir la liste des systémes de fichiers montés ainsi que leur point de montage et taux d'occupation:

Filesystem      Size  Used Avail Use% Mounted on
rootfs           30G  2.4G   26G   9% /
/dev/root        30G  2.4G   26G   9% /
devtmpfs        238M     0  238M   0% /dev
tmpfs            49M  228K   49M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            97M     0   97M   0% /run/shm
/dev/mmcblk0p1   56M   19M   37M  34% /boot


Adressage IP

Les commandes ifconfig et ip addr permettent d'afficher les infomations sur les interfaces réseau configurées: