Login

Raspbian : Un bouton alarme

Dans le même style que le bouton pour arrêter OSMC.
Pour le bouton j'ai utilisé un bouton avec sonnette sans fil . dispo ici
Pour info :
Pour le bouton émetteur la pile 9V est fournie.
Le carillon récepteur fonctionne sous 3V (avec 2 piles AA)
    -Le carillon consomme 0.5 mA en veille, 35 mA en carillonnant.
   - J'ai débranché le carillon et je l'ai remplacé par un opto la consommation est alors de 4 mA en carillonnant.

Pour le câblage: j'ai alimenté le carillon avec le 3.3V du RPI. J'ai débranché le carillon et je l'ai remplacé par un opto SFH 620A.
L’émetteur de l'opto est relié au 0V et le collecteur sur le GPIO x. J'ai rajouté une capa de 100 nF entre l'’émetteur et le collecteur pour filtrer quelques parasistes.

Il faut un programme interruptd.py qui sera lancé au démarrage et qui va traiter l'interruption (bouton).
Dans mon cas, interruptd.py lance un script qui contient les actions à faire (envoie sms, envoie mail ...)

#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

# on importe les modules necessaires
import os
import RPi.GPIO as GPIO
import time

intPin = 26
t0=time.time()
decomptMax=8
decompt=decomptMax

# on met RPi.GPIO en mode notation BCM (numero des pins)
GPIO.setmode(GPIO.BCM)

# on met le GPIO 26 a UP pour eviter tout signal faux au demarrage, avec R de pull up
GPIO.setup(intPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def attente_signal():
global t0
    global decompt
    #global decomptMax

    # on met le bouton en attente d'appui et donc de passage du GPIO sur Down
    # le programme est en pause tant qu'il n'y a pas d'appui sur le bouton - pas de charge CPU
    #GPIO.wait_for_edge(intPin, GPIO.FALLING)
    #GPIO.wait_for_edge(intPin, GPIO.BOTH)
    GPIO.wait_for_edge(intPin, GPIO.RISING)
    # lorsque le GPIO passe sur down - appui - on passe a la suite

    t1=time.time()
    dt=t1-t0
    if dt < 2 :                        # pour filtrer les rebonds
        decompt = decompt - 1
    else:
        decompt = decomptMax
    t0=t1

    if decompt < 1:
        print '** Signal sur gpio ' ,intPin ,' - ici ecrire la suite des ... **'
        os.system('/var/www/interruption/alarme_sms.sh')
        decompt = decomptMax

        # Tempo de 10 s avant nouvelle interruption (filtre les rebonds ou melodie carillon)
        time.sleep(10)    
    
while 1:        
    attente_signal()

GPIO.cleanup() # pour sortir propement en cas control C.

Le script qui est appelé.

#!/bin/bash
# script version 1.0 pour envoyer sms + mail
#
#sms pour envoie de l alarme
wget -O- --no-check-certificate 'https://smsapi.free-mobile.fr/sendmsg?user=xxxxxxxx&pass=yyyyyyyyyy&msg=Alarme bouton from  (rpi alarme_sms.sh)'

# Mail pour envoie de l alarme
mail -s Alarme_bouton_from_RPI Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. <<EOF
Alarme bouton (rpi /var/www/interruption/alarme_sms.sh) a : $(date)
EOF

 

OSMC: Bouton shutdown

Un bouton poussoir pour arrêter OSMC

Cabler un BP entre GPIO17 et 0V  (pin 13 et 11)

Ajouter la librairie rpi.gpio pour python

$ sudo su
# apt-get update
# apt-get install python-pip python-dev gcc
# pip install rpi.gpio

créer le script shutdown.py

#!/usr/bin/env python2.7

# on importe les modules necessaires
import os
import RPi.GPIO as GPIO
import time

# on met RPi.GPIO en mode notation BCM (numero des pins)
GPIO.setmode(GPIO.BCM)

# on met le GPIO 17 a UP pour eviter tout signal faux au demarrage
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def attente_signal():
    print "Attente du signal "
    # on met le bouton en attente d'appui et donc de passage du GPIO sur Down
    # le programme est en pause tant qu'il n'y a pas d'appui sur le bouton - pas de charge CPU
    GPIO.wait_for_edge(17, GPIO.FALLING)
    # lorsque le GPIO passe sur down - appui - on passe a la suite
    print "** Signal sur gpio 17  - ici ecrire la suite des ... **"
    os.system('sudo halt')
    time.sleep(1)
    
attente_signal()
GPIO.cleanup()

Executer le script shutdown.py au démarrage, pour cela ajouter dans /etc/rc.local

python /home/osmc/shutdown.py &

RPI tmpfs

df
Sys. de fichiers blocs de 1K Utilisé Disponible Uti% Monté sur
/dev/root               7577920 1856288    5384068  26% /
devtmpfs                 242616            0     242616   0% /dev
tmpfs                      246900            4     246896   1% /dev/shm
tmpfs                      246900       9000     237900   4% /run
tmpfs                         5120            4         5116   1% /run/lock
tmpfs                      246900            0     246900   0% /sys/fs/cgroup
/dev/mmcblk0p1       64456      21312      43144  34% /boot

 

devtmpfs                 242616            0     242616   0% /dev


A filesystem that contains information about devices. The files is pointers to device drivers in the kernel.

tmpfs                      246900       9000     237900   4% /run


Used by daemons to save temporary information.

tmpfs                         5120            4         5116   1% /run/lock


Used to prevent the same daemon to be started more than once.

tmpfs                      246900            4     246896   1% /dev/shm


Used to create shared memory segments for Inter-Process Communication..

 

OSMC : Cavier azerty

Clavier azerty sur OSMC

Pour configurer le clavier (à faire en console ou ssh) :
sudo apt-get install console-common

Pour reconfigurer :
sudo dpkg-reconfigure console-data

Activer le bus 1 wire via le GPIO4

modprobe w1-gpio
modprobe w1-therm


puis editer /boot/config.txt
ajouter à la fin du fichier

#rajout par ev pour activer le bus 1 wire sur le gpio4
dtoverlay=w1-gpio,gpiopin=4

WIFI AP avec Raspberry PI

Besoin d'un point d’accès wifi ?
http://rpi.vypni.net/wifi-ap-rt5370-on-raspberry-pi/
matériel nécessaire :
 - rpi b 256mo
 - 2 clé usb WIFI
 - uns sd avec  Raspbian Jessie Lite du 2015-11-21

pi@rpijessy:~ $ lsusb
Bus 001 Device 005: ID 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. LAN9500 Ethernet 10/100 Adapter / SMSC9512/9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 Installation  de hostapd et dnmasq

aptitude install hostapd dnsmasq

Edition de /etc/network/interfaces afin de fixer une ip statique à wlan0

nano /etc/network/interfaces

 

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.0.46
        netmask 255.255.255.0
        broadcast 192.168.0.255
        network 192.168.0.0
        gateway 192.168.0.1
        dns-nameservers 212.27.40.240 212.27.40.241


allow-hotplug wlan0
iface wlan0 inet static
  address 192.168.100.1
  netmask 255.255.255.0

#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet manual

allow-hotplug wlan1
auto wlan1
 
iface wlan1 inet static
        address 192.168.0.36
        netmask 255.255.255.0
        broadcast 192.168.0.255
        network 192.168.0.0
        gateway 192.168.0.1
        dns-nameservers 212.27.40.240 212.27.40.241
    wpa-ssid "ssid_du_wifi_auquel_on_veut_se_connecter"
    wpa-psk "motdepasse"

 le client DHCP est actif par defaut. il vaut mieux le desactiver pour eviter les pb de double adresses IP sur ET0

 

Prompt root en rouge

Editer le fichier .bashrc
remplacer la ligne

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] '
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] '

(le 32m devient 31m  (32 ->vert; 31->rouge) ... 33 ->jaune

https://wiki.archlinux.org/index.php/Color_Bash_Prompt

 

Auto reconnecte WIFI

Comment faire pour que RPI se reconnecte automatiquement quand il y a une coupure WIFI ?

Voila une solution très simple:

1) Aller dans le répertoire  /etc/ifplugd/action.d/ et renommer le fichier ifupdown en ifupdown.original

cd /etc/ifplugd/action.d/
mv ifupdown ifupdown.original


2) Puis copier le fichier cp /etc/wpa_supplicant/ifupdown.sh ./ifupdown

cp /etc/wpa_supplicant/ifupdown.sh ifupdown


3) finalement reboot

reboot

 

Il y a également cet utilitaire qui peu très bien faire la même chose et aussi être utilisé pour configurer le WIFI: wicd

sudo apt-get install wicd-curses
sudo wicd-curses

 

Shell script lecture ds18b20

 

#!/bin/bash
# Ce script lit les températures de capteurs ds18b20 connecter sur le bus 1 wire
# puis il sauvegarde les températures dans une base mysql
#

function string_to_int (){
       LANG=C
    d=${1##*.}
    if [[ ${#1} -eq ${#d} ]]; then
            d=0
    fi
    e=${1%.*}
    e=${e//,/}
    printf %.0f "$e.$d" 2>/dev/null
}     
_TIMESTAMP=$( date +%s )
_DATE=$( date +%Y-%m-%d)
_HEURE=$(date +%H:%M:%S)
temperature=3.14
#echo $_TIMESTAMP
#echo $_DATE
#echo $_HEURE
index=0
# récupère tous les devices qui appartiennent à la famille '28'
FILES=`ls /sys/bus/w1/devices/w1_bus_master1/ | grep '^28'`
# iteration sur tous les devices
for file in $FILES
do
    # récupère les deux ligne de la réponse du device
    #cat /sys/bus/w1/devices/w1_bus_master1/$file/w1_slave
    GETDATA=`cat /sys/bus/w1/devices/w1_bus_master1/$file/w1_slave`
    GETDATA1=`echo "$GETDATA" | grep crc`
    GETDATA2=`echo "$GETDATA" | grep t=`
    #echo $GETDATA1
    #echo $GETDATA2
 
    # get temperature
    TEMP=`echo $GETDATA2 | sed -n 's/.*t=//;p'`
    #
    # test if crc is 'YES' and temperature is not -62 or +85
    if [ `echo $GETDATA1 | sed 's/^.*\(...\)$/\1/'` == "YES" -a $TEMP != "-62" -a $TEMP != "85000"  ]
    then
        # crc is 'YES' and temperature is not -62 or +85 - so save result
        _mavar=0
        #echo `date +"%Y-%m-%d %H:%M:%S "; echo $GETDATA2 | sed -n 's/.*t=//;p'`
        else
        # there was an error (crc not 'yes' or invalid temperature)
        # try again after waiting 1 second
        sleep 1
        # get the 2 lines of the response from the device again
        GETDATA=`cat /sys/bus/w1/devices/w1_bus_master1/$file/w1_slave`
        GETDATA1=`echo "$GETDATA" | grep crc`
        GETDATA2=`echo "$GETDATA" | grep t=`
        # get the temperature from the new response
        TEMP=`echo $GETDATA2 | sed -n 's/.*t=//;p'`
        if [ `echo $GETDATA1 | sed 's/^.*\(...\)$/\1/'` == "YES" -a $TEMP != "-62" -a $TEMP != "85000" ]
        then
            # save result if crc is 'YES' and temperature is not -62 or +85 - if not, just miss it and move on
            #echo `date +"%d-%m-%Y %H:%M:%S "; echo $GETDATA2 | sed -n 's/.*t=//;p'`
            _mavar=0
        fi
    fi
    tempe=`echo $GETDATA2 | sed -n 's/.*t=//;p'`
    temperature=$(string_to_int $tempe)
    
temperature=`cat /sys/bus/w1/devices/$file/w1_slave | sed -n 's/^.*\(t=[^ ]*\).*/\1/p' | sed 's/t=//' | awk '{x=$1}END{printf("%.1f" , x/1000)}'`

tableau[index]=$temperature
#echo ${tableau[$index]}
index=$(($index + 1))

done
#echo  $_TIMESTAMP $_DATE $_HEURE  ${tableau[0]}  ${tableau[1]}

mysql -uutilisateur -ppassword base<< EOF
insert into temperatures (timestamp,rec_date,rec_time,s1,s2) values ('$_TIMESTAMP','$_DATE','$_HEURE','${tableau[0]}','${tableau[1]}');
EOF

exit 0

 

Transfert d'une BD mysql d'un serveur A vers un autre serveur B

# A>Sur le serveur A qui contient la base domotique
#A> se placer dans tmp  (les fichiers de ce répertoire sont supprimés à chaque démarrage)
cd /tmp
#A>il faut faire un dump :
mysqldump -uroot -ppassword domotique > dump.sql
# A>compresser le dump (option pour réduire le temps de transfert):
bzip2 dump.sql


#B> se rendre sur le nouveau serveur B
#B> se placer dans tmp
cd /tmp
#B> copier le fichiers dump.sql.bz (en utilisant un user qui à le droit de se connecter sur A)
scp userCette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. :/tmp/dump.sql.bz2 .
#B>décompresser le dump :
bunzip2 dump.sql.bz2
#B> créer la base de donnée
mysqladmin -uroot -ppassword create  domotique
#B> charger le dump dans la base domotique  de mysql :
mysql -uroot -ppassword domotique < dump.sql
# B>supprimer le dump qui n'est plus nécessaire :
rm dump.sql

Sur le serveur A aussi supprimer aussi le dump
Pour supprimer une bd : mysqladmin -uroot -ppassword drop  domotique

Ne lancer qu'une seule instance d'un programme

#!/bin/bash

#on verifie si un fichier lock existe deja
if [ -e /var/lock/monfichier.lock ]
then
echo lancement_impossible

#on cree le LOCK, lance le programme voulu, puis supprime le LOCK
else
touch /var/lock/monfichier.lock
/var/www/ .../monprog
rm /var/lock/monfichier.lock
fi

Un autre exemple
https://gist.github.com/mharizanov/5325450

Monter le disque dur de la freebox

Le Raspberry Pi peut profiter pleinement du disque dur de la Freebox V6.
Pour commencer créer un dossier freebox dans la racine par exemple:

> su        (pour passer en root (mot de passe root)
> mkdir
/media/Freebox/

Il faut ensuite éditer le fichier ftsab afin de déclarer le disque dur:

> nano /etc/fstab

Puis ajouter la ligne suivante

//mafreebox.freebox.fr/Disque\040dur /media/Freebox cifs _netdev,rw,users,iocharset=utf8,uid=1000,sec=none,file_mode=0777,dir_mode=0777 0 0

Il faut à présent éditer le fichier /root/.smbcredentials

> nano /root/.smbcredentials

et y ajouter les lignes suivantes

username=
password=

Il faut les laisser vides telles quelles.
Enfin, il faut "monter" le disque dur en tapant:

> mount /media/Freebox

Vous avez à présent accès à l'intégralité du disque dur de votre Freebox!

Vous pouvez vous deconnecter du compte root  (control D).
Vérifier que l'utilisateur a bien accés au répertoire /media/Freebox/ .

 

Exemple d'utilisation à partir de l'extérieur.
Copie d'un répertoire films (sur le disque de la freebox), avec éventuellement ses sous-répertoires, vers le répertoire courant du serveur dédié sur le web:
> sshpass -p 'password' scp -r loginCette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. :/media/Freebox/films . &

pour un montage provisoire en ligne de commande

mount -t cifs //mafreebox.freebox.fr/Disque\ dur/Vidéos  /mnt/freebox/ -o user=freebox,password=password,uid=1000,gid=1000,rw

Troisième démmarrage du raspberry PI

 

Présentation

Installation des serveurs LAMP, phpmyadmin

http://www.tropfacile.net/doku.php/raspberry-pi/comment-installer-un-serveur-web-lamp

Procédure

apt-get install libmysqlclient-dev mysql-client
apt-get install mysql-server
apt-get install apache2 php5 phpmyadmin

Personnalisation pour téléinfo

Installation de la librairie libmysqlclient-dev nécessaire pour téléinfo ...
apt-get install libmysqlclient-dev

Vérifier qu'il n'y a pas d’erreur en compilant teleinfo.c

 Désactiver l'entrée TTY via la voie série utilisée par téléinfo. Editer le fichier /etc/inittab et commenter la ligne suivante (dernière ligne de inittab)
#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100       <-- celle la

 Ajouter dans /etc/rc.local
# Mail pour avertir que le serveur démarre
mail -s demarrage_serveur_ubuntu_chez_machin Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. <<EOF
demarrage serveur a : $(date)
EOF
# init de la voie série pour le RPI utilisée par téléinfo
stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crtscts
#
# init voie serie 0 (com1) 1200 bauds  utilisée par téléinfo
#/bin/stty -F /dev/ttyS0 1200 sane evenp parenb cs7 -crtscts
#
# init voie serie 1 (com2) 1200
#/bin/stty -F /dev/ttyS1 1200 sane evenp parenb cs7 -crtscts
#
#init enable wahe on lan
ethtool -s eth0 wol g

#init gpio

/var/www/onoff/lib/bash/init_gpio.sh

# Laisser en dernière ligne exit 0
exit 0

 

Installation de wiringpi

 

sudo apt-get install git-core
sudo apt-get update
sudo apt-get upgrade

git clone git://git.drogon.net/wiringPi
cd wiringPi
./build


 

Installation de samba

 

apt-get install samba samba-common-bin

ajouter a la fin de /etc/samba/smb.conf
[root]
        writeable = yes
        path = /
        comment = root RPi 192.168.0.45
        public = yes
        security = share
        create mode = 777
        allow hosts = 192.168.0.
        directory mode = 777

 Installation de la commande mail et de ssmtp

apt-get install mailutils mpack
apt-get install ssmtp

nano /etc/ssmtp/ssmtp.conf        le fichier doit contenir les ligne suivantes:

root=Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
mailhub=smtp.free.fr
hostname=rpi41
FromLineOverride=YES

(Comme mon FAI est free je n'est pas besoin d'identifiant ni de mot de passe)
Je test immediatement si cela fonctionne:
echo "Contenu du mail" | mail -s "Titre du mail" trucCette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
 

 

Installation de fail2ban logwatch

apt-get install fail2ban logwatch
nano /etc/fail2ban/jail.conf       modifier les lignes suivantes:

# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1/8 192.168.0.* 151.xx.xx.xx                      #les ipqui ne seront jamais bannies
bantime  = 360000                                                                # bannir pendant 100 heures
nano /usr/share/logwatch/default.conf/logwatch.conf    modifier les lignes suivantes:
Output = mail

Je test immediatement si cela fonctionne:

logwatch                            le mail configurer dans ssmtp.conf doit recevoir un rapport

Installation de webmin

Editer le fichier /etc/apt/sources.list et ajouter les deux lignes suivantes

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
You should also fetch and install my GPG key with which the repository is signed, with the commands : cd /root wget http://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc
You will now be able to install with the commands : apt-get update
apt-get install webmin
All dependencies should be resolved automatically

 

Sécurité

 Si votre serveur RPI est accessible depuis le web , alors:
- suprrimez l'utilisateur pi (car le nom est connu comme étant par défaut)
- creer un nouveau utilisateur (qui vous servira à vous connecter)

- Interdire la connexion root via ssh (toutes les tentatives d'intrusion se font par là, il vous faudrat alors vous connecter
avec l'utilisateur précédemment créer puis faire un su)
- Modifier le port de connexion à ssh

deluser --remove-all-files pi // suppression du compte pi ainsi que les fichiers lui appartenant
adduser nouveau_utilisateur // ajout du nouveau compte

nano /etc/ssh/sshd_config //editer le fichier
port 22 -> devient port 15722 // (modification du numero de port , choisir un nombre 1024 > x > 65535 et vous en souvenir
PermitRootLogin no // (interdire le login de root

 

 

 

 

 

 

Deuxième démarrage du raspberry pi

 

Présentation

Utilisation de l'utilitaire raspi-config pour faire quelque réglages.
   - Taille de la carte SD, Fréquence CPU, Langue FR, Taille mémoire, Nom de machine

Procédure

Lanncer l'utilitaire ->raspi-config
1. Utilisation de toutes la carte sd aller sur la ligne Expand Filesystem puis select.
2. Choix de la fréquence du CPU , aller sur la ligne Overclock puis choisir modeste 800MHz
3. Choix de la langue FR , aller sur la ligne Internationalistion option puis Change Locale -> cochez en_GB.UTF-8 UTF-8 et fr_FR.UTF-8 UTF-8 puis OK Choisir fr_FR.UTF-8 UTF-8 par défaut
3.1 Choix timezone Paris aller sur la ligne Internationalistion option puis Change timezone
3.2 Choix du clavier FR aller sur la ligne Internationalistion option puis Change keyboard
4. Taille mémoire mini pour la vidéo , aller sur la ligne Advanced Option puis Memory split Taper 16 puis OK
5. Nom de la machine , aller sur la ligne Advanced Option puis Hostname Puis tapez un nom de machine qui sera visible sur le réseau.
6. Desactiver la voie série: aller sur la ligne Advanced Option puis Serial
reboot

Premier démarrage de Raspbian

 

Présentation

Par défaut le système Raspbian ne permet pas de connexion à partir du compte super-utilisateur (root). Il est nécessaire d'activer celui-ci pour pouvoir s'y connecter.

Procédure

  1. Démarrer le "RaspberryPI" sur la distribution "Raspbian".

  2. Se connecter au terminal du système avec le compte principal (identifiant : "pi" et mot de passe : "raspberry").
    Modifier le mote de passe "pi" -> passwd    taper d'abord le mot de passe actuel puis deux fois le nouveau mot de passe

  3. Autoriser root a se connecter en ssh
    Saisir la commande sudo passwd root.
    Saisir le mot de passe pour le compte super utilisateur puis le confirmer.

  4. Editer le fichier /etc/ssh/sshd_config.
    puis vérifier que
    PermitRootLogin yes

  5. Lors de la prochaine ouverture de session du système il sera maintenant possible de se connecter à l'aide du compte super utilisateur (identifiant : root) et du mot de passe saisi précédemment.

  6. Supprimerles paquets pas nécessaires qui occupe beaucoup de place wolfram-engine (mathematica), minecraft-pi, sonic-pi, (su nécessaire)
    ->apt-get remove wolfram-engine
    ->apt-get remove minecraft-pi
    ->apt-get remove sonic-pi
    ->apt-get --purge  remove x11-*
    -> apt-get autoremove

    apt-get remove wolfram-engine minecraft-pi sonic-pi    (en une ligne)

  7. Mise à jour des dépots -> apt-get update
  8. Mise à jour du système ->apt-get -y upgrade
  9. Mise à jour des de tous les paquets ->apt-get -y dist-upgrade
    En une fois ->  apt-get update &&  apt-get -y upgrade && apt-get -y dist-upgrade

  10. Mise à jour du firmware -> rpi-update



  11. Editer /etc/network/interfaces pour passer en IP fixe
    remplacer le contenu par  (personnaliser l'IP la gateway et les DNS

    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet static
            address 192.168.0.45
            netmask 255.255.255.0
            broadcast 192.168.0.255
            network 192.168.0.0
            gateway 192.168.0.1
            dns-nameservers 212.27.40.240 212.27.40.241

  12. Mise à ll'heure
    Editez le fichier /etc/ntp.conf
    rajouter les deux lignes suivantes dans la section des server
    server 192.168.0.1   (ip de la freebox)
    server ntp.free.fr

    /etc/init.d/ntp restart
    Verifier l'heure avec   date   ntpd -p
  13. Copier le .bashrc modele de root  vers /root
    cp /etc/skel/.bashrc /root
    personnaliser le bashrc de root   (enlever commentaire sur  ll)


  14. reboot

Se connecter au Wifi de la freebox via les lignes de commande

 

Voici l’étape 5.3 avec le raspberry pi, je considère donc que vous avez suivi les étapes précédentes (sinon, on recommence par ici)

Ces commandes fonctionnes avec un peu près tous les systèmes unix (linux), (enfin, je crois…).

On commence par déterminer ce que vous avez point de vue matériel avec la commande ifconfig, ce qui donne :

1
pi@raspberrypi ~ $ ifconfig

On y découvre l’interface wlan0, l’interface wifi, via la clé USB wifi, si l’interface n’est pas visible, c’est que le Pi ne l’a pas trouvé… vérifier les branchements, si votre clé wifi est compatible avec le raspberry, et si les drivers sont bien installés. Pour vérifier les périphériques USB branchés : utiliser cette commande lsusb.

On va utiliser maintenant iwlist pour afficher tous les réseaux wifi disponible, et surtout trouver le votre.

1
pi@raspberrypi ~ $ sudo iwlist scan

Et là, si comme moi vous vivez en ville… catastrophe, 400 lignes défilent… on va utiliser une fonction sympa unix : less, (pour savoir à quoi sert cette fonction, souvenez vous de la fonction man, tapez donc : « man less »). On réessaye avec less, qui va nous afficher page par page les réseaux wifi accessible.

1
pi@raspberrypi ~ $ sudo iwlist scan | less

Note : pour afficher cet étrange caractère |, et non pas un L minuscule, appelé « vertical bar », sur mac c’est : SHIFT + ALT + L, sur un clavier PC, c’est souvent ALTGR + 6, sinon il faut essayer de ALTGR + 1 à 9…

Less : Pour naviguer, utiliser les flèches du clavier, repérer votre wifi dans la liste, en face du champ : « ESSID », puis pour quitter, appuyer sur Q (ou A, si vous avez toujours votre clavier en qwerty)

Une autre solution, pour ma part, j’ai une Freebox, ça facilite un peu, et je préfère utiliser grep (grep ? une autre fonction unix : taper « man grep » pour plus d’info)

1
pi@raspberrypi ~ $ sudo iwlist scan | grep "freebox"

et j’obtiens

1
2
pi@raspberrypi ~ $ sudo iwlist scan | grep "freebox"
                    ESSID:"freebox_RZEAHK"

vous pouvez aussi essayer :

1
pi@raspberrypi ~ $ sudo iwlist scan | grep "ESSID"

Note : grep est sensible à la casse (majuscule/minuscule), donc taper bien ESSID en majuscule
Bonus : si vous avez VRAIMENT beaucoup de wifi à proximité, vous pouvez combiner grep et less, en tapant : « sudo iwlist scan | grep « ESSID » | less »

Une fois votre wifi trouvé, noter bien votre ESSID,

Si vous avez une protection type WPA, vérifier que wpasupplicant est installé :

1
pi@raspberrypi ~ $ sudo apt-get install wpasupplicant

Puis on modifie le fichier interfaces, avec l’éditeur nano intégré

1
pi@raspberrypi ~ $ sudo nano /etc/network/interfaces

Le contenu devra être :

1
2
3
4
5
6
7
8
9
10
auto lo
iface lo inet loopback
iface eth0 inet dhcp
 
allow-hotplug wlan0
auto wlan0
 
iface wlan0 inet dhcp
  wpa-ssid "freebox_votre_ssid"
  wpa-psk "votre_mot_de_passe"

Fermer le l’éditeur avec CTRL+X (quitter), valider avec Y (ou O en français), et valider encore si besoin.

Ensuite, je un petit ON/OFF de l’interface, pour être sur, avec :

1
2
pi@raspberrypi ~ $ sudo ifdown wlan0 #Couper le wifi
pi@raspberrypi ~ $ sudo ifup wlan0   #Allumer le wifi

On teste! Avec ping

1
pi@raspberrypi ~ $ ping google.com

Et là, si ça répond, c’est que c’est fait! Et le Raspberry se connectera automatiquement à chaque reboot.
Et pour trouver votre ip :

1
pi@raspberrypi ~ $ ifconfig

Desactiver la mise en veille du dongle wifi en cas inactivité

faire
cat /sys/module/8192cu/parameters/rtw_power_mgnt
si la commande renvoie 1 alors editerle fichier
nano /etc/modprobe.d/8192cu.conf et y ajouter la ligne suivante, puis un reboot (vérifier que cat /sys/module/8192cu/parameters/rtw_power_mgnt renvoie bien O)
options 8192cu rtw_power_mgnt=0

Test des performances SD CARD du RPI

Dépend de l'OS, voila mes résultats sur RASPBIAN overclocker 800MHz

SDCARD: SanDisk Ultra 30MB/s classe 10 SDHC I 8GB
Le test en écriture doit être fait en premier car il crée un fichier test.tmp qui sera utilisé pour le test en lecture.

Test écriture:
root@rpi45 ~ # dd if=/dev/zero of=~/test.tmp bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB) copied, 31.7866 s, 16.5 MB/s

Test lecture:
root@rpi45 ~ # dd if=~/test.tmp of=/dev/null bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB) copied, 29.49 s, 17.8 MB/s

Micro SDHC: SanDisk Ultra 30MB/s classe 10 UHC I 8GB
Test écriture: 524288000 octets (524 MB) copiés, 35,2601 s, 14,9 MB/s
Test lecture: 524288000 octets (524 MB) copiés, 29,0789 s, 18,0 MB/s

Micro SDHC: Micro SD 6 8GB
Test écriture: 524288000 octets (524 MB) copiés, 69,7167 s, 7,5 MB/s
Test lecture: 524288000 octets (524 MB) copiés, 30,5705 s, 17,2 MB/s

 Micro SDHC: Transcend micro SD classe 10 8GB
Test écriture: 524288000 octets (524 MB) copiés, 48.2316 s, 10.9 MB/s
Test lecture: 524288000 octets (524 MB) copiés, 28.4049 s, 18,5 MB/s

 

Ramdrive pour RPI

Voici un exemple de script pour créer ramdrive pour /ram de 1Mo

#!/bin/bash
if [ ! -d "/ram" ]
then
mkdir /ram
fi
mkfs -q /dev/ram1 1024
mount /dev/ram1 /ram
chmod 777 /ram