dimanche 21 janvier 2018

Création d'une image (.img) de la carte SD du raspberry sur un serveur et réduction de la taille de l'image.

L'objet est de créer une sauvegarde de la carte SD vers un serveur distant sous samba et de réduire la taille de se fichier .img.

Prérequis

Un serveur sous linux avec samba ayant un espace libre supérieur à 3 fois la taille de la carte SD

Installation du client samba

sudo apt-get install samba-common smbclient samba-common-bin cifs-utils


Montage du dossier distant 

Le serveur samba est en 192.168.1.100 et partage un dossier nommé "NAS" pour l'utilisateur "nas" avec mot de passe "nas", "/media/nas" est le chemin local vers le serveur samba.

sudo mkdir /media/nas
sudo mount -t cifs //192.168.1.100/NAS /media/nas -o user=nas,pass=nas

Lancement de la copie de la carte SD

Option: utilisation d'un console déportée :
sudo apt-get install screen
sudo screen -S backup 


Le dossier partagé a pour chemin locale: /media/omv/tmp/

sudo dd if=/dev/mmcblk0 of=/media/omv/tmp/image.img bs=1M


Le temps passe et cours... et puis à la fin: 

On quitte la console déportée par Ctrl a + d et on y revient par sudo screen -x backup


15193+1 enregistrements lus
15193+1 enregistrements écrits
15931539456 bytes (16 GB, 15 GiB) copied, 5734,18 s, 2,8 MB/s



Maintenant on se connecte au serveur samba (192.168.1.100) pour réduire la taille de l'image créée

Création d'une console déportée 

sudo screen -S shrink

Lancement du script de réduction (voir plus bas)

sudo chmod +x pishrink.sh

sudo ./pishrink.sh /media/usb/tmp/image.img /media/usb/tmp/cabass.img

Ctrl a + d pour quitter la console déportée

Pour vérifier l'avancement du script on ré-ouvre la console déportée par:

sudo screen -x shrink
 

Ctrl a + d
etc...



A la fin le script donne les tailles des images avant et après, c'est beau.

 

Annexe

Voici le script pishrink.sh proposé par Matteo Mattei :

#!/bin/bash
#
# Copyright 2016 - Matteo Mattei <matteo.mattei@gmail.com>
# This script is intended to be used to shrink raspberry pi images
# created with dd client command.

# Check if you are root
if [ ! $(id -u) -eq 0 ]; then
   echo "ERROR: This program must run as root"
   exit 1
fi

IMG=${1}
# Check if the file exists
if [ ! -f ${IMG} ]; then
  echo "ERROR: File ${IMG} does not exist"
  exit 1
fi

if [ -z "$(which parted 2> /dev/null)" ]; then
   echo "ERROR: parted command not found - please install it and retry"
   exit 1
fi
if [ -z "$(which losetup 2> /dev/null)" ]; then
   echo "ERROR: losetup command not found - please install it and retry"
   exit 1
fi
if [ -z "$(which resize2fs 2> /dev/null)" ]; then
   echo "ERROR: resize2fs command not found - please install it and retry"
   exit 1
fi
if [ -z "$(which truncate 2> /dev/null)" ]; then
   echo "ERROR: truncate command not found - please install it and retry"
   exit 1
fi
if [ -z "$(which gzip 2> /dev/null)" ]; then
   echo "ERROR: gzip command not found - please install it and retry"
   exit 1
fi
INFO=$(parted -m ${IMG} unit B print | grep ext4)

NUM=$(echo ${INFO} | awk -F':' '{print $1}')
START=$(echo ${INFO} | awk -F':' '{print $2}')
OLD=$(echo ${INFO} | awk -F':' '{print $3}')
DUMMY=$(echo ${INFO} | awk -F':' '{print $4}')

START=${START::-1}
OLD=${OLD::-1}

LOOPBACK=$(losetup -f --show -o $START $IMG)
e2fsck -p -f ${LOOPBACK}
if [ ! ${?} -eq 0 ]; then
   echo "ERROR: filesystem seems corrupted"
   losetup -d ${LOOPBACK}
   exit 1
fi

INFO=$(resize2fs -P ${LOOPBACK} 2>&1)
SIZE=$(echo ${INFO} | awk -F': ' '{print $2}')
SIZE=$((${SIZE} + 1024))

resize2fs -p ${LOOPBACK} ${SIZE}

losetup -d ${LOOPBACK}
SIZE=$(( ${SIZE} * 4096 + ${START} ))

parted ${IMG} rm ${NUM}
parted -s ${IMG} unit B mkpart primary ${START} ${SIZE}

SIZE=$(( ${SIZE} + 58720257 ))
truncate -s ${SIZE} ${IMG}

gzip -9 ${IMG}
 

Merci à lui.


samedi 20 janvier 2018

Console déportée, ou faire quelque chose en tâche de fond

Screen permet d’exécuter des tâches dans une console déportée ou virtuelle ou masquée ou ce qu'on veut. ça permet d’exécuter des tâches longues en se déconnectant ou en continuant à travailler.

Installation:
sudo apt-get install screen

créer une console déportée:
screen -S toto

a partir de ce moment vous êtes dans la console déportée
      Lancez une tâche qui prend du temps, par exemple télécharger un film avec wget...
     wget http://www.toutgratos.com/unjolifilm.mkv

Sortez de la console:
 Appuyez sur les touches Ctrl et a puis sur d
   Ctrl a + d

Vous êtes revenu sur la console d'origine, vous pouvez continuer à travailler et même sortir par un beau exit

Pour lister les consoles déportées:
screen -ls

Pour re-rentrer dans la console déportée;
screen -x toto

vous revoila dans la console déportée, vous pouvez constater l'avancement de votre wget,
faites de nouveau Ctrl a + d pour en sortir etc...

lundi 1 janvier 2018

Premiers essais de domotique avec un Orange-Pi et un module recepteur 433.92 MHz

Update de l'orange pi

après avoir installer dietpi, un armbian léger en comparaison même de raspbian lite:
https://docs.google.com/spreadsheets/d/1mDHGZC-H6tU6_O8kuLTG8d4A8Nt7lV1Q7MXTR_6qw30/edit#gid=0
et après avoir également configuré la bestiole, on fait ...

 

 Comme d'hab..

sudo apt-get update
sudo apt-get upgrade

 

Python

cd ~ 
apt-get install python3-pip
apt-get install python3-dev
pip3 install rpi-rf

Brochage GPIO Raspberry Pi VS Orange Pi


WiringPI pour Orange Pi

cd ~ 
git clone https://github.com/zhaolei/WiringOP.git -b h3
cd WiringOP
chmod +x ./build
sudo ./build
 
 
Petit test:
gpio readall
gpio reset
gpio readall
 
 +-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
 |  12 |   8 |    SDA.0 |   IN | 1 |  3 || 4  |   |      | 5V       |     |     |
 |  11 |   9 |    SCL.0 |   IN | 1 |  5 || 6  |   |      | 0v       |     |     |
 |   6 |   7 |   GPIO.7 |   IN | 0 |  7 || 8  | 0 | IN   | TxD3     | 15  | 13  |
 |     |     |       0v |      |   |  9 || 10 | 0 | IN   | RxD3     | 16  | 14  |
 |   1 |   0 |     RxD2 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO.1   | 1   | 110 |
 |   0 |   2 |     TxD2 |   IN | 1 | 13 || 14 |   |      | 0v       |     |     |
 |   3 |   3 |     CTS2 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO.4   | 4   | 68  |
 |     |     |     3.3v |      |   | 17 || 18 | 0 | IN   | GPIO.5   | 5   | 71  |
 |  64 |  12 |     MOSI |   IN | 0 | 19 || 20 |   |      | 0v       |     |     |
 |  65 |  13 |     MISO |   IN | 0 | 21 || 22 | 0 | IN   | RTS2     | 6   | 2   |
 |  66 |  14 |     SCLK |   IN | 0 | 23 || 24 | 0 | IN   | CE0      | 10  | 67  |
 |     |     |       0v |      |   | 25 || 26 | 0 | IN   | GPIO.11  | 11  | 21  |
 |  19 |  30 |    SDA.1 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.1    | 31  | 18  |
 |   7 |  21 |  GPIO.21 |   IN | 0 | 29 || 30 |   |      | 0v       |     |     |
 |   8 |  22 |  GPIO.22 |   IN | 0 | 31 || 32 | 0 | IN   | RTS1     | 26  | 200 |
 |   9 |  23 |  GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v       |     |     |
 |  10 |  24 |  GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | CTS1     | 27  | 201 |
 |  20 |  25 |  GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | TxD1     | 28  | 198 |
 |     |     |       0v |      |   | 39 || 40 | 0 | IN   | RxD1     | 29  | 199 |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+

433Utils

cd ~
git clone --recursive git://github.com/ninjablocks/433Utils.git
git submodule init
git submodule update 
cd 433Utils/RPi_utils

On modifie RFSniffer.cpp pour l'adapter au GPIO du orange pi comme suit:
Remplacer la ligne "int PIN = 2;" par "int PIN = 16;"


make

LE MODULE DE RECEPTION 433,92 MHz AUREL (ci-dessous) NE FONCTIONNE PAS BIEN !

Ce récepteur manque de sensibilité






UTILISEZ UN MODULE RXB6 comme celui-là :


Ses qualités de réception sont bien meilleurs !


Essais cd ~/433Utils/RPi_utils
sudo ./RFSniffer


Attrapez votre télécommande et utilisez là, vous devriez voir queque chose comme ça :

~/433Utils/RPi_utils¤ sudo ./RFSniffer
Received 1361
Received 1361
Received 5471
Received 1361
Received 5471
Received 5471
Received 1361
Received 5457
Received 1361

Youppi! ...

Mais pourquoi les codes sont quelques fois différents pour une même touche ???
Il y a bien "appuyé" "relaché" mais "relaché" est parfois différent...

Réception de station météo Oregon Scientific

https://github.com/1000io/OregonPi

dimanche 22 octobre 2017

Hardware Infos : "Mon pi, c'est quel modèle ?"

Simplement:

$ cat /proc/device-tree/model 

Qui renvoi pour un Raspberry 3 par exemple:
Raspberry Pi 3 Model B Rev 1.2 

Ou bien pour un modèle 1:

Raspberry Pi Model B Plus Rev 1.2

Ou plus complètement:

$ cat /proc/cpuinfo

Résultat pour un Pi 1 B+ :
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7

Hardware : BCM2835
Revision : 1000010
Serial : 00000000cf77fa3f


Résultat pour un Pi 2 B+ :

processor : 0
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5

processor : 1
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5

processor : 2
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5

processor : 3
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5

Hardware : BCM2835
Revision : a01041
Serial : 000000007c221d8e



La mémoire

$ cat /proc/meminfo

Résultat pour un Pi 1 B+ :

MemTotal:         444520 kB
MemFree:          272864 kB
MemAvailable:     355836 kB
Buffers:           16764 kB
Cached:           111744 kB
SwapCached:            0 kB
Active:            93280 kB
Inactive:          57716 kB
Active(anon):      22996 kB
Inactive(anon):     3068 kB
Active(file):      70284 kB
Inactive(file):    54648 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:        102396 kB
SwapFree:         102396 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         22496 kB
Mapped:            42008 kB
Shmem:              3584 kB
Slab:              12300 kB
SReclaimable:       6192 kB
SUnreclaim:         6108 kB
KernelStack:         856 kB
PageTables:         1388 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      324656 kB
Committed_AS:     137392 kB
VmallocTotal:     573440 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
CmaTotal:           8192 kB
CmaFree:            6292 kB
 


Résultat pour un Pi 2 B+ :

MemTotal:         999816 kB
MemFree:          100960 kB
MemAvailable:     852712 kB
Buffers:          471284 kB
Cached:           336984 kB
SwapCached:            0 kB
Active:           116760 kB
Inactive:         727444 kB
Active(anon):      24672 kB
Inactive(anon):    29736 kB
Active(file):      92088 kB
Inactive(file):   697708 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2385912 kB
SwapFree:        2385852 kB
Dirty:                48 kB
Writeback:             0 kB
AnonPages:         35932 kB
Mapped:            23548 kB
Shmem:             18428 kB
Slab:              24580 kB
SReclaimable:      14020 kB
SUnreclaim:        10560 kB
KernelStack:        1088 kB
PageTables:         1400 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2885820 kB
Committed_AS:     246348 kB
VmallocTotal:    1064960 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
CmaTotal:         262144 kB
CmaFree:           73108 kB



à L'oeil








samedi 21 octobre 2017

Afficher graphiquement la séquence de démarrage

C'est très simple !

$ sudo systemd-analyze plot > boot.svg

Il ne reste plus qu'a afficher boot.svg (un navigateur fait l'affaire) 


vendredi 13 octobre 2017

ympd, une interface web ultra légère pour mpd

Cette interface web très légère vous permettra de contrôler (pas complètement toutefois) mpd.
Le principal intérêt de cette UI est sa légèreté et sa réactivité. Développé en C, elle ne fait appel ni à un serveur web comme Apache on nginx, et ni à PHP, Python ou autre langages de script.


le site : https://www.ympd.org/

L'installation peu poser problème, et l'installation via les sources est parfois nécessaire.
Il faudra installer et compiler libmpdclient et openssl
Puis suivre les instructions suivantes:
  1. install the dependencies: cmake and libmpdclient are available from all major distributions.
  2. create build directory cd /path/to/src; mkdir -p build; cd build
  3. create makefile with cmake ../.. -DCMAKE_INSTALL_PREFIX_PATH=/usr
  4. build with make
  5. install with sudo make install or just run with ./ympd

jeudi 28 septembre 2017

Un Adblocker avec raspberry : pi-hole

https://pi-hole.net/

pi-hole transforme un raspberry pi en serveur DHCP qui va filtrer les requêtes DNS

L'interface d'administration:
L'interface web accessible depuis une navigateur quelconque de votre LAN

Ainsi même vos téléphones, tablettes etc pourront bénéficier d'un adblocker

Pour reseter pihole:
$ sudo pihole -r

Pour mettre à jour pihole:
$ sudo pihole -up

Pour voir si tout est ok:
$ sudo pihole -d



mercredi 30 août 2017

Activer le pavé numérique au démarrage

Editer /etc/init.d/bootmisc.sh

$ sudo nano /etc/init.d/bootmisc.sh

A la fin du do_start ajouter les lignes suivantes :


    # Activer le pavé numérique
    for tty in dev/tty[1-6] do
        setleds -D +num < $tty > /dev/null
    done



Avant:




Après :


Enregistrez et redémarrez


mardi 29 août 2017

Bloc notes (Trucs en vrac)

Services

Un service ne démarre pas ou plus automatiquement...

Le cas de mpd par exemple :
$ sudo systemctl enable mpd.service

Bash

Les alias...

Editer votre fichier .bashrc :
$ nano ~/.bashrc
Ajouter par exemple à la fin du fichier :
alias lsa='ls -chArl'
alias lsusers='sudo cat /etc/passwd | awk -F: "{print $ 1}"'
alias lsgroups='sudo cat /etc/group | awk -F: "{print $ 1}"'
alias lst='ls -charlot'

Puis pour recharger bash :
$ source ~/.bashrc

Les commandes...

Rechercher une ligne de commande déjà utilisée :
$ history | grep unboutdelacommande
par exemple :
$ history | grep ftp

Bash en couleur avec sudo

Editer votre fichier .bashrc :
$ nano ~/.bashrc
Ajouter à la fin du fichier :
alias sudo='sudo '

Nano

Affichage des numéros de ligne

Rien de moins simple, il faut recompiler nano et utiliser l'option -linenumbers 

$ sudo apt-get install git
$ git clone git://git.savannah.gnu.org/nano.git;cd nano;./autogen.sh;./configure;sudo make install
Editer .nanorc
$ nano ~/.nanorc

Ajouter ces deux lignes:
set const
set linenumbers

Coloration syntaxique

$ nano ~/.nanorc
Ajouter les lignes suivantes
include "/usr/share/nano/asm.nanorc"
include "/usr/share/nano/autoconf.nanorc"
include "/usr/share/nano/awk.nanorc"
include "/usr/share/nano/changelog.nanorc"
include "/usr/share/nano/cmake.nanorc"
include "/usr/share/nano/c.nanorc"
include "/usr/share/nano/css.nanorc"
include "/usr/share/nano/debian.nanorc"
include "/usr/share/nano/default.nanorc"
include "/usr/share/nano/html.nanorc"
include "/usr/share/nano/java.nanorc"
include "/usr/share/nano/javascript.nanorc"
include "/usr/share/nano/json.nanorc"
include "/usr/share/nano/makefile.nanorc"
include "/usr/share/nano/man.nanorc"
include "/usr/share/nano/nanorc.nanorc"
include "/usr/share/nano/perl.nanorc"
include "/usr/share/nano/php.nanorc"
include "/usr/share/nano/python.nanorc"
include "/usr/share/nano/ruby.nanorc"
include "/usr/share/nano/sh.nanorc"
include "/usr/share/nano/tex.nanorc"
include "/usr/share/nano/xml.nanorc"


Utilisateurs et groupes

Ajouter un utilisateur existant à un groupe existant:
$ usermod -a -G legroupe lutilisateur

Changer le groupe d'un utilisateur existant:
$ usermod -g admin lutilisateur

Rappel sur l'affichage des droits des fichiers et répertoires:
  • 000  =  0  = ---
  • 001  =  1  = --x (exécution)
  • 010  =  2  = -w- (écriture)
  • 011  =  3  = -wx
  • 100  =  4  = r--(lecture)
  • 101  =  5  = r-x
  • 110  =  6  = rw-
  • 111  =  7  = rwx
Exemples :
  • 777  =  rwxrwxrwx = utilisateurs, groupes et "other" peuvent tous lire + écrire + exécuter.
  • 605  =  rw----r-x = utilisateurs peuvent lire + écrire, groupes rien faire et "other" lire + exécuter.
  • 644  =  rw-r--r--= utilisateurs peuvent lire + écrire groupes lire et "other" lire.
  • 666  =  rw-rw-rw- = utilisateurs, groupes et "other" lire + écrire. Aucun ne peut exécuter.


Disques et partitions

Vérifier et réparer la partition racine (root) :

Ajouter dans le fichier /boot/cmdline.txt: "fsck.mode=force fsck.repair=yes" avant "rootwait",  penser à l'enlever après le reboot!

Connections 

Afficher toutes les connexions ssh établies:
$ sudo netstat -tnpa | grep 'ESTABLISHED.*sshd'

 

samedi 22 juillet 2017

Comparaison vitesse de transfert en écriture vs système de fichier sur clé USB

Quel système de fichier utiliser sur les supports USB d'un Raspberry Pi (1) pour améliorer le taux de transfert par Samba ? 

Je fais quelques tests sans prétention avec la configuration "de base" sur le Pi 1 B+

Configuration:

Raspberry Pi 1 B+


Kernel Linux 4.9.37+
Processor armv6l
CPU Frequency 700MHz
Load Average 1.59 1.48 0.99
CPU Temperature 44.4℃
Uptime 00:26 (hh:mm)

Memory: 482M
Used 183M
38%
Free 299M
62%
Buffered 27M
6%
Cached 100M
21%

Swap: 0B
Used 0B
0%
Free 0B
0%


Disk Usage
/ (ext4)

Total Size 2G

Used 1G 83%

Available 318M 17%

/boot (vfat)

Total Size 61M

Used 23M 38%

Available 39M 62%

/media/16GO (fuseblk)

Total Size 15G

Used 255M 2%

Available 15G 98%



smb.conf :

 [global]
    server string = SMB Server
    security = USER
    map to guest = Bad User
    guest account = root
    log level = 0
    log file = /var/log/samba.log
    max log size = 100
    syslog = 0
    load printers = No
    printcap name = /dev/null
    disable spoolss = Yes
    preferred master = No
    local master = No
    domain master = No
    dns proxy = No
    create mask = 0775
    directory mask = 0775
    printing = bsd
    socket options = IPTOS_LOWDELAY TCP_NODELAY SO_KEEPALIVE SO_RCVBUF=65535 SO_SNDBUF=65535
    write cache size = 2097152
    use sendfile = yes
    getwd cache = yes
    min receivefile size = 16384



fstab:
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
# Preserver la carte SD:
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=10m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=10m 0 0
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=10m 0 0


Pas d'autre deamon lancé sur le Raspberry

Clé USB

Clé USB 16 Go Verbatim (modèle bas de gamme avec un taux de transfert sur PC de 17 Mo/s)


Fichiers transférés:

Transfert d'un dossier de 828 Mo contenant 5 fichiers de tailles comprises en 80 et 230 Mo.
Un fichier a un nom contenant des caractères chinois.

Les essais:

Il faudrait parler des tailles d'unité d'allocation, ici j'ai pris les tailles par défaut, je pense que ce n'est pas le meilleurs choix...

 EXfat

Maximum à 11Mo/s
le début de transfert utilise surement le cache RAM et culmine à 11Mo/s (max théorique de l'ethernet à 100 Mb/s)
Vitesse moyenne environ 6.5 Mo/s






VFAT 32

Maximum à 5.2 Mo/s
Fonctionnement erratique : blocage, plantage avec des nom de fichiers en chinois, temps de transfert total très important (plus de 7 minutes)




NTFS

Maximum à 360 Ko/s
Vitesse moyenne environ  355Ko/s
Vitesse stable mais ridicule. Temps de transfert total annoncé très important (plus de 40 minutes)


Je n'ai pas encore compris le PB dans ce cas, j'aurais du obtenir quelque chose ressemblant à l'essai avec VFAT mais sans erreur.


Conclusion à chaud :


UTILISER LE EXFAT SUR VOS SUPPORT USB !

PS : Un petit bémol cependant, en cas de problème sur le support, fsck ne fonctionne pas complètement, il trouvera les erreurs mais ne saura pas réparer l'exfat...

PS 2 : Il faut avoir installé exfat sur le Pi :
$ sudo apt-get install exfat-fuse exfat-utils
et monter le disque :
$ sudo mkdir /media/exfat
$ sudo mount -t exfat /dev/sdc1 /media/exfat
sdc1 doit être remplacer par le bon device, faites 
$ sudo fdisk -l 
pour le connaitre...





jeudi 20 juillet 2017

Réduire les accès à la carte SD et donc la préserver

Les cartes SD, quelques soit leurs performances ou leurs technologies, ne sont pas éternelles.
Il est possible de les préserver en limitant les accès en écriture au maximum.

Une première chose à faire pour cela est de passer les logs en RAM :


sudo nano /etc/fstab

# les fichiers de log et tempo passent en RAM
tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=10m 0 0
tmpfs /var/spool tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777,size=10m 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755,size=10m 0 0

Ensuite il faut vérifier et éventuellement modifier les chemins utilisés par les applications pour leurs log:

Samba : /etc/samba/smb.conf
mpd : /etc/mpd.conf
nginx : /etc/nginx/nginx.conf et les autres fichiers par exemple /etc/nginx/sites_enabled/default etc...

Re-créer les dossiers dans var à chaque redémarrage


Créer un script avec nano appelé create_var_folders

cd ~
nano create_var_folders.sh

Ajouter ceci dedans :

#!/bin/bash
# Script to create required directories in tempfs /var (that are not otherwise created)
# Thanks to http://blog.philippklaus.de/2011/02/ssd-optimizations-on-linux/ for the list below :-)

for dir in news ntpstats samba cron anacron nginx dlna; do
 if [ ! -d /var/log/$dir ] ; then
 mkdir /var/log/$dir
fi
done
for dir in cups-pdf anacron; do
if [ ! -d /var/spool/$dir ] ; then
mkdir /var/spool/$dir
fi
done 



Modifier éventuellement la ligne "for dir in .... ; do" selon vos besoin et ajouter des lignes pour relancer certains services comme anacron:

service anacron restart


Rendre le script exécutable :

sudo chmod 755 create_var_folders.sh

Déplacer le script dans un dossier fait pour /usr/local/bin par exemple :

sudo mv create_var_folders.sh /usr/local/bin

Modifier rc.local comme suit:

sudo nano /etc/rc.local

Ajouter la ligne suivante juste avant la ligne "exit 0" :

/usr/local/bin/create_var_folders.sh

Redémarrer et vérifier que le dossier /var/log et /var/spool contiennent bien les dossiers du script

ls -carl /var/log

ls -carl /var/spool

dimanche 2 juillet 2017

Dont forget to update your Raspberry periodicaly....

It's easy and can increase performances and functionalities !

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install rpi-update
$ sudo apt-get clean
$ sudo rpi-update
$ sudo reboot

You could also remove old kernel modules:
$ sudo ls /lib/modules

4.1.19+ 4.1.19-v7+ 4.9.35+  4.9.35-v7+

$ sudo rm -rf /lib/modules.bak
$ sudo rm -rf /lib/modules/4.1.19+
$ sudo rm -rf /lib/modules/4.1.19-v7+


To remove automaticaly old kernel modules :
$ sudo PRUNE_MODULES=1 rpi-update


More informations about kernel releases history:

https://github.com/raspberrypi/firmware/commits/master

And search a modification concerning a specific part as ALSA:
https://github.com/search/advanced?q=alsa

jeudi 20 avril 2017

How to enable wifi channels 12 and 13...

Unable to connect to your wifi access point ?

Maybe your WAP use channel 12 or channel 13 and your Raspberry setting is set to a limited radio spectrum, i live in France and here, wifi channels 12 and 13 are legal.

So...


$ sudo apt-get install wireless-regdb iw crda
...
$ sudo iwlist wlan0 channel

wlan0 11 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz



As you could see, none of channels 12 or 13 are listed...

Enabling channels for FRANCE:

$ sudo iw reg set FR
...
$ sudo iwlist wlan0 channel

wlan0 11 channels in total; available frequencies :  

          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
          Current Frequency:2.472 GHz (Channel 13)


It's better now, but you have to make this setting permanent :


$ sudo nano /etc/default/crda

# Set REGDOMAIN to a ISO/IEC 3166-1 alpha2 country code so that iw(8) may set
# the initial regulatory domain setting for IEEE 802.11 devices which operate
# on this system.
#
# Governments assert the right to regulate usage of radio spectrum +within
# their respective territories so make sure you select a ISO/IEC 3166-1 alpha2
# country code suitable for your location or you may infringe on local
# legislature. See `/usr/share/zoneinfo/zone.tab' for a table of timezone
# descriptions containing ISO/IEC 3166-1 alpha2 country codes.

REGDOMAIN=FR



 Post script : In Japan, channel 14 is available ...




 

jeudi 5 janvier 2017

Un equalizer pour mpd

Voici comment utiliser un equalizer (ou égaliseur) graphique avec mpd:

$ sudo su
$ rpi-update
$ shutdown -r now
...
$ sudo su
$ apt-get update
$ apt-get install libasound2-plugin-equal
$ aplay -l
On obtient quelque chose comme:
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ HiFi pcm512x-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

ou bien : (ça dépend du DAC)
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_amp], device 0: HifiBerry AMP HiFi tas5713-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0

$ nano -w /etc/asound.conf
Copier dedans:

ctl.equal {
type equal;
}

pcm.plugequal {
type equal;
slave.pcm "plughw:0,0";
#this is where you have to input the number of your soundcard,

#so card0 = plughw:0,0 - card1 would be plughw:1,0 etc.
}

pcm.equal {
# Or if you want the equalizer to be your
# default soundcard uncomment the following
# line and comment the above line.
# pcm.!default {
type plug;
slave.pcm plugequal;
}

$ sudo cp /etc/mpd.conf /etc/mpd.conf_bak
$ sudo nano -w /etc/mpd.conf

Ajouter cette sortie à la fin
# Equalized ouput
audio_output {
type "alsa"
name "AlsaEqual"
device "plug:plugequal"
mixer_control "Digital"
mixer_device "hw:0"
mixer_index "0"
dop "no"
}

$ shutdown -r now
$ sudo -H -u mpd alsamixer -D equal

Quelque chose comme ça apparait:

Utiliser les touches des curseurs et + et - pour ajuster les niveaux comme désiré, puis "Echap" pour sortir.
     - Déplacez-vous avec les touches fléchées gauche et droite.
     - Augmentez et diminuez le volume avec les touches fléchées haut et bas.
     - Augmentez et diminuez le volume des canaux gauche ou droit avec les touches (clavier AZERTY):


     - Activer/désactiver le son avec la touche "M". Un "MM" signifie muet et "OO" signifie non muet. 
Notez qu'une barre peut être pleine à 100% mais toujours être coupée, alors vérifiez cela.
     - Quittez alsamixer avec la touche Echap.



Si une erreur du type (ou autre..) apparait,
Failed to open controls file:/home/mpd/.alsaequal.bin.

Alors vérifier la présence du dossier /home/mpd et si absent faire :

$ sudo mkdir /home/mpd
$ sudo chown mpd /home/mpd
$ sudo chgrp audio /home/mpd
$ sudo usermod -aG audio mpd

...

Dans le client MPD sélectionner la sortie audio "AlsaEqual"