Outils pour utilisateurs

Outils du site


Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
article:linux:raspberry [2016/12/31 11:14]
fab [Un pelican (blog)]
article:linux:raspberry [2017/09/13 23:56]
bicarbonate [Installer Bind / Un serveur DNS]
Ligne 1: Ligne 1:
 +====== Raspberry ======
  
 +Alternatives au Raspberry:
 +
 +  * Odroid: http://​linuxfr.org/​users/​elyotna/​journaux/​test-de-l-odroid-c1
 +  * OlinuXIuno: http://​linuxfr.org/​news/​olinuxino-la-raspberry-pi-version-open-source
 +  * ...
 +===== Installation =====
 +
 +Il existe des images pour des systèmes minimaux.
 +
 +https://​github.com/​debian-pi/​raspbian-ua-netinst
 +
 +
 +===== Quelle distribution ? =====
 +
 +C'est vrai quoi, on a le choix.
 +
 +  * Raspbian classique (sous Stable ? Sous Testing ?)
 +  * Raspbian minimale
 +  * Une Archlinux
 +  * Yunohost
 +  * Volumio: http://​volumio.org
 +
 +J'ai pour le moment une Raspbian minimale en Testing.
 +===== Wheezy ou Jessie ? =====
 +
 +On peut mélanger les 2.
 +
 +<code bash>
 +$ cat /​etc/​apt/​sources.list
 +# Dépot Wheezy de départ
 +deb http://​mirrordirector.raspbian.org/​raspbian/​ wheezy main contrib non-free rpi
 +# Dépot Jessie ajouté
 +deb http://​mirrordirector.raspbian.org/​raspbian/​ jessie main contrib non-free rpi
 +
 +# Dépot Wheezy de départ (dans soures.list.d)
 +deb http://​archive.raspberrypi.org/​debian/​ wheezy main
 +# Dépot Jessie inexistant
 +#deb http://​archive.raspberrypi.org/​debian/​ testing main
 +# Dépot Jessie OK
 +deb http://​archive.raspbian.org/​raspbian jessie main contrib non-free rpi
 +</​code>​
 +<code bash>$ cat /​etc/​apt/​preferences
 +Package: *
 +Pin: release n=wheezy
 +Pin-Priority:​ 600
 +
 +Package: *
 +Pin: release n=jessie
 +Pin-Priority:​ 300
 +
 +# Ci-dessous, pas certain de son utilité
 +Package: *
 +Pin: release o=Raspbian
 +Pin-Priority:​ -10
 +</​code>​
 +
 +Ne pas installer les paquets recommendés:​ http://​linux.koolsolutions.com/​2009/​01/​07/​howto-tell-apt-get-not-to-install-recommends-packages-in-debian-linux/​
 +
 +En fin de compte, passage intégral à Jessie (changement des priorités dans ''​preferences''​),​ on verra ce qu'il en est...
 +
 +===== Économiser la carte SD =====
 +
 +  * http://​wiki.edmc73.com/​raspberry/​log - Réduire la verbosité des logs système
 +  * http://​david.mercereau.info/​raspberrypi-raspbian-en-lecture-seul-readonly-pour-preserver-la-carte-sd/​ ; un article pour aller plus loin ; système entier en lecture seul
 +
 +===== Corruption de la carte SD =====
 +
 +Continuons de maudire notre cher Raspberry, il me semble être dans le même cas de figure que ce billet de blog: http://​hardware-libre.fr/​2014/​03/​raspberry-pi-et-corruption-de-carte-sd/​ ; ou bien celui-là: http://​www.bortzmeyer.org/​raspberry-pi-usage.html
 +
 +Les cartes SD ne sont pas faites pour faire tourner un système. Du coup, pourquoi le raspberry est conçu d'une façon qui nous y encourage ?
 +
 +Il ne serait pas évident non plus d'​installer un système uniquement en lecture seule.
 +
 +Il serait possible d'​utiliser un disque externe (mais encore une fois, on surcharge les ports USB qui peinent peut-être déjà).
 +
 +===== Cron-apt =====
 +
 +Pas très utile.
 +  - Télécharge les paquets.
 +  - Préviens par email
 +  - Mais ne pas mettre à jour, car MàJ tout le système est risqué, et Raspbian ne distingue pas les dépots Security des autres.
 +
 +
 +===== Email =====
 +
 +Service SMTP simple:
 +
 +http://​wiki.ouieuhtoutca.org/​doku.php?​id=ssmtp => Noooon, c'est un MTA, donc on s'en fout en fait... Thunderbird fait pareil.
 +
 +Il nous faut postfix.
 +
 +Aperçu de ce qu'on trouve sur le net...
 +
 +  * https://​wiki.debian.org/​Postfix
 +  * http://​www.foulquier.info/​tutoriaux/​mise-en-place-d-un-smtp-avec-postfix-sur-linux-debian
 +  * http://​fabienpoulard.info/​post/​2007/​04/​28/​Installation-d-un-serveur-de-mail-sous-Debian
 +
 +Voir la doc Debian.
 +
 +Par ici c'est plus clair : http://​postfix.traduc.org/​index.php/​BASIC_CONFIGURATION_README.html
 +===== DNS / Ip dynamique =====
 +
 +Utiliser les services de FreeDNS / Afraid.org.
 +
 +//Contenu de /​etc/​inadyn.conf://​
 +
 +OBSOLETE, la syntaxe du fichier de config a changé depuis.
 +
 +<​file>​
 +-a cacatoes,​mettreicivotrehashtrouvésurlesitedefreedns
 +--dyndns_system default@freedns.afraid.org
 +--background
 +</​file>​
 +
 +Voir /​etc/​default/​inadyn et /​etc/​inadyn.conf.
 +===== Radio =====
 +
 +Un serveur type icecast, avec synthèse sonore via des patches puredata déposés via le wiki ou Git.
 +
 +Voir: [[:​article:​puredata:​radio]]
 +
 +===== NAS ===== 
 +
 +En faire un NAS, avec disque dur qui se met en veille automatiquement.
 +
 +Voir aussi:
 +
 +  * http://​www.howtogeek.com/​139433/​how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device (un exemple avec Samba + NTFS)
 +  * http://​wiki.edmc73.com/​raspberry/​dd_externe (histoire de hdparm)
 +  * http://​wiki.edmc73.com/​raspberry/​debit_hdd (histoire de débit, option dans fstab)
 +
 +Reste à voir comment on va se débrouiller entre hdparm, sshfs...
 +
 +Crainte n°1: c'est pas mega sécurisé. Si le raspberry se fait pirater, alors le disque peut être effacé. On a quand même 2 services sensibles accessibles via le WAN: ssh + http.
 +
 +Crainte n°2: si on y accède via sshfs, est-ce que le disque dur reste «en usage» et du coup ne se met pas en veille ?
 +
 +=> Bilan après brève periode d'​essai:​ des extinctions et remises sous tension un peu trop aléatoires,​ du coup je préfère abandonner l'​idée du NAS.
 +
 +==== hdparm et sdparm ====
 +
 +Interroger le status du disque:
 +
 +<code bash>​hdparm -C /dev/sda
 +
 +/dev/sda:
 + drive state is:  unknown
 +</​code>​
 +
 +... ne fonctionne pas. Par contre, sur mon ordi, l'​état est correctement indiqué. Donc ça ne vient pas seulement du disque dur, mais aussi du contrôleur USB/​IDE/​que-sais-je.
 +
 +Et la commande de mise en veille par hdparm ne fonctionne pas non plus:
 +<code bash>
 +# hdparm -y /dev/sda
 +
 +/dev/sda:
 + ​issuing standby command
 + ​HDIO_DRIVE_CMD(standby) failed: Invalid argument
 +</​code>​
 +
 +Par contre la commande:
 +<​code>​sdparm --flexible --command=stop /​dev/​sda</​code>​
 +... <​del>​fonctionne chez moi.</​del>​ Sauf que sdparm n'est pas fait pour ajuster un temps d'​inactivité. Aussi, sdparm ne permet pas de connaître l'​état du disque.
 +
 +En fait elle fait semblant de fonctionner,​ on entend le disque dur faire mine de se couper mais il redémarre aussi sec et ne s'​éteint pas.
 +
 +Hey, par contre, en fait, la commande hdparm fonctionne... même si ça balance un "​invalid argument",​ le disque dur devient silencieux.
 +
 +
 +
 +
 +
 +Avec une mise en veille qui fonctionne, la solution serait donc l'​usage d'un script/​daemon...
 +
 +  * http://​wiki.edmc73.com/​raspberry/​dd_externe
 +  * https://​superuser.com/​questions/​651880/​force-spin-down-of-external-hard-drive-on-linux-raspberry-pi
 +
 +Cadeau, le [[.:​raspberry:​hdparm|résultat]] de...
 +<code bash>​hdparm -I /​dev/​sda</​code>​
 +
 +Penser à faire un ''​sync''​ avant la mise en veille du disque dur.
 +
 +**Problème:​** Si j'​avais mis cette solution de côté, c'est parce que la mise en veille s'​effectuait bien, mais que le disque dur était malgré tout réveillé régulièrement sans que je lui demande. Il va donc falloir être attentif à ça.
 +
 +**Questionnement:​**
 +
 +  * La mise en veille du disque dur est-elle automatiquement planifiée par systemD ?
 +  * Y a t-il un moyen de connaître l'​état de veille du disque autrement qu'​avec hdparm ?
 +
 +=== liens ===
 +
 +  * http://​blog.olivierdelort.net/?​p=1771,​ configuration de la mise en veille avec hdparm, quand tout se passe bien
 +  * http://​info4admins.com/​tips-to-spindown-your-hard-disk-in-debian-or-ubuntu/​
 +  * http://​www.htpcguides.com/​spin-down-and-manage-hard-drive-power-on-raspberry-pi/​
 +  * http://​www.techradar.com/​us/​reviews/​pc-mac/​pc-components/​storage/​disk-drives-hdd-ssd/​samsung-d3-station-3tb-1183543/​review : mise en veille indispo avec les Samsung D3 Station
 +
 +==== Montage automatique avec SystemD ====
 +
 +Pour le moment, je n'​arrive pas à le faire se monter automatiquement. Si je fais un ''​ls''​ sur le répertoire sans qu'il soit monté, ça poireaute indéfiniment...
 +
 +Présence d'un avertissement dans dmesg: ​
 +''​Parent hub missing LPM exit latency info.  Power management will be impacted.''​
 +
 +<​code>​
 +[149473.523522] usb 1-1.2: new full-speed USB device number 5 using dwc_otg
 +[149473.644643] usb 1-1.2: Parent hub missing LPM exit latency info.  Power management will be impacted.
 +[149473.656284] usb 1-1.2: not running at top speed; connect to a high speed hub
 +[149473.668122] usb 1-1.2: New USB device found, idVendor=0bc2,​ idProduct=3312
 +[149473.680596] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 +[149473.690020] usb 1-1.2: Product: Expansion Desk
 +[149473.696509] usb 1-1.2: Manufacturer:​ Seagate ​
 +[149473.701126] usb 1-1.2: SerialNumber:​ NA4J5HJP
 +[149473.724069] usb-storage 1-1.2:1.0: USB Mass Storage device detected
 +[149473.736301] scsi0 : usb-storage 1-1.2:1.0
 +[149474.754993] scsi 0:0:0:0: Direct-Access ​    ​Seagate ​ Expansion Desk   0316 PQ: 0 ANSI: 6
 +[149474.791483] sd 0:0:0:0: Attached scsi generic sg0 type 0
 +[149485.067623] sd 0:0:0:0: [sda] 3907029167 512-byte logical blocks: (2.00 TB/1.81 TiB)
 +[149485.079613] sd 0:0:0:0: [sda] Write Protect is off
 +[149485.087293] sd 0:0:0:0: [sda] Mode Sense: 2b 00 10 08
 +[149485.088661] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
 +[149485.168769] ​ sda: sda1
 +[149485.194432] sd 0:0:0:0: [sda] Attached SCSI disk
 +</​code>​
 +
 +Une remarque en commentaire sur ce point: http://​askubuntu.com/​questions/​210879/​external-usb-3-drive-not-recognized
 +===== Le son (fasttrack pro, pulseaudio, mpd...) =====
 +
 +La carte son FastTrack Pro fonctionne avec ALSA. MPD fonctionne également (penser à l'​ajouter au groupe "​audio":​ addgroup mpd audio)
 +
 +J'ai retiré le module du chipset son intégré au raspberry (dans /​etc/​modules je crois), vu que je ne m'en sert pas car j'ai une carte son externe.
 +
 +Quand pulseaudio tourne sans toucher à sa configuration,​ il met un "​Warn"​ en disant que les réglages se font pour chaque utilisateur. Cool, mais quoi faire plus précisément ? Ok, ce warn est un bug (voir bugtracker debian), on peut l'​ignorer.
 +
 +Reste à comprendre que la session pulseaudio peut être lancée par les applacations elles-mêmes (auto-spawn). Et qu'on peut aussi lancer tuer le daemon avec:
 +
 +<​code>​
 +pulseaudio -D # démarrer
 +pulseaudio -k # tuer
 +</​code>​
 +
 +Sans rien toucher, et en essayant de lire un son en utilisant ALSA pendant que pulseaudio tourne, j'​avais droit à de jolis freezes du système complet. La raison reste à identifier, il me semble que ça ne le refait plus.
 +
 +Maintenant, il faut activer le module "​network"​ de pulseaudio. L'​essentiel se passe dans /​etc/​pulse/​default.pa.
 +
 +Etat actuel: mpd tourne bien avec le module de sortie '​pulse'​. Par contre, si j'​essaie de lire une video avec VLC/Mplayer depuis mon poste, j'ai des coupures bien chiantes (conso CPU ~30%), le problème pourrait venir du buffering, des priorités temps-réel,​ du resampling qui consomme, que sais-je... ​
 +
 +27/10/2014:
 +
 +J'ai de nouveau des freezes lorsque je lance pulseaudio (en démon système) sur la carte son externe. J'ai pourtant pris quelques précautions:​
 +
 +  * Aucun processus ne squatte le périphérique son (je coupe ''​mpd''​)
 +  * Les modules liés à la carte son interne sont blacklistés (tous les snd_soc_*)
 +  * La carte son est branchée sur un hub alimenté par un transfo externe.
 +  * J'ai installé rtirq-init pour essayer de voir si ça aidait.
 +
 +Le freeze survient au moment de lancer pulseaudio (et non pas au moment de brancher la carte son).
 +
 +Edit: oh, après avoir remis pulseaudio en mode «utilisateur» (plutôt que système) et suivi la partie "​dwc_otg.speed=1"​ de cet article, le lancement de pulseaudio n'a pas foiré: http://​wiki.linuxaudio.org/​wiki/​raspberrypi (lien trouvé grâce aux [[http://​forum.pdpatchrepo.info/​topic/​8018/​pure-data-freeze-usb-sound-card-raspberry-pi|puredataeux]])
 +
 +Edit2: maintenant j'ai ces messages dans dmesg:
 +
 +<​code>​[ ​ 138.181682] usb-audio: Fast Track Pro switching to config #2
 +[  138.181800] snd-usb-audio:​ probe of 1-1.3.1:1.0 failed with error -5
 +[  138.185585] usb-audio: Fast Track Pro config OK
 +[  138.212720] usbcore: registered new interface driver snd-usb-audio
 +[  170.919558] INFO:: schedule_periodic:​ Insufficient periodic bandwidth for periodic transfer.
 +[  170.919558] ​
 +[  170.919610] ERROR::​dwc_otg_hcd_urb_enqueue:​544:​ DWC OTG HCD URB Enqueue failed adding QTD. Error status -1
 +[  170.919610] ​
 +[  170.919636] cannot submit urb 0, error -1: unknown error
 +[  253.189425] INFO:: schedule_periodic:​ Insufficient periodic bandwidth for periodic transfer.
 +[  253.189425] ​
 +[  253.189477] ERROR::​dwc_otg_hcd_urb_enqueue:​544:​ DWC OTG HCD URB Enqueue failed adding QTD. Error status -1
 +[  253.189477] ​
 +[  253.189503] cannot submit urb 0, error -1: unknown error
 +[ 1836.221894] bcm2708_fb_blank(1) returns=1 p[1]=0x80000000
 +[ 2168.560067] INFO:: schedule_periodic:​ Insufficient periodic bandwidth for periodic transfer.
 +[ 2168.560067] ​
 +[ 2168.560119] ERROR::​dwc_otg_hcd_urb_enqueue:​544:​ DWC OTG HCD URB Enqueue failed adding QTD. Error status -1
 +[ 2168.560119] ​
 +[ 2168.560145] cannot submit urb 0, error -1: unknown error
 +</​code>​
 +
 +Sûrement causés par le changement dans la ligne de boot. D'​autres personnes rencontrent ce type de problème: http://​puredata.info/​docs/​raspberry-pi
 +
 +28/10/2014:
 +
 +Bon, je confirme que sans le petit bout de ''​dwc_otg.speed=1'',​ le système saute à la lecture/​démarrage de pulseaudio. Peut-être pas à tous les coups...
 +
 +Cette fois-ci, je ne passe plus par un hub auto-alimenté,​ mais j'ai branché directement la carte son au raspberry (ça ne semble pas changer grand chose).
 +
 +J'​avais tenté de retirer le dwc_otg.speed=1 car les messages d'​erreur que je récuperais dans mon dmesg font que la lecture sous MPD saute, et que je suis obligé de décharger/​recharger le module snd_usb_audio pour que ça refonctionne (uniquement un temps). Ces coupures se faisaient fréquentes et arrivaient quand je changeais de stream MP3, je me demande si l'​activité sur la liaison ethernet pourrait aussi être en rapport avec ces problèmes.
 +
 +Voir aussi: setup simple de PA: http://​rootprompt.apatsch.net/​2013/​02/​20/​raspberry-pi-network-audio-player-pulseaudio-dlna-and-bluetooth-a2dp-part-1-pulseaudio/​
 +
 +==== On prend les mêmes et on recommence ====
 +
 +Tentative avec ''​moc''​ (mocp). Ne prend pas en charge pulseaudio.
 +
 +Je dis ça mais en même temps maintenant, il démarre le daemon automatiquement,​ et consomme 60%+30% du CPU, donc son hachuré.
 +
 +N'​oublions pas que cet enfoiré de pulseaudio vient court-circuiter le .asoundrc pour s'​imposer quelle que soit l'​application qui démarre. Résultat le plus simple pour tenter de démarrer une application sans pulseaudio, c'est de le désinstaller. (Bon, on a ptet la solution pasuspend... j'​essayerai la prochaine fois)
 +
 +Voir la suite par ici: [[:​article:​linux:​mpd-raspberry-alsa]]
 +===== Nettoyer sa distrib =====
 +
 +==== Services ====
 +
 +Que viennent foutre là ''​triggerhappy plymouth plymouth-log''​ ?
 +
 +<​code>​update-rc.d -f nom_service remove</​code>​
 +
 +Source: http://​linuxfr.org/​news/​votre-blogue-a-la-maison-sur-raspberry-pi#​faisons-un-peu-de-m%C3%A9nage
 +
 +==== Modules ====
 +
 +lsmod affiche des modules de son dont nous n'​aurons pas besoin. Dans le fichier /​etc/​modules il suffit de commenter le module son:
 +
 +snd-bcm2835  ​
 +snd_soc_pcm512x
 +  ​
 +  ​
 +===== 4 décembre 2014: Nouvel objectif =====
 +
 +  * Avoir mpd
 +  * Utiliser la carte son externe en ALSA (pas pulseaudio)
 +  * Avoir le disque dur externe branché, avec script de mise en veille
 +  * Avoir le système de fichiers de la carte SD en lecture seule
 +
 +... ça va pas être de la tarte.
 +
 +Problème: on ne va pas réveiller le disque dur externe à chaque fois qu'on veut jouer un fichier situé sur l'ordi portable.
 +
 +Une piste: http://​www.musicpd.org/​doc/​user/​plugin_reference.html#​proxy_database
 +
 +mpd installé à la fois sur le raspberry, et l'ordi portable.
 +
 +BDD sur l'ordi portable. Elle contient: les fichiers audio locaux, les fichiers audio du disque dur raspberry externe, les streams radios. A chaque rafraichissement de la BDD, on réveille le DD externe, ce qui ne serait pas trop grave.
 +
 +Utiliser autofs+sshfs pour accéder: à la BDD, aux fichiers de l'ordi portable.
 +
 +Utiliser autofs pour accéder au disque dur externe USB.
 +
 +Suite ici: [[..:​linux:​mpd-raspberry-alsa]]
 +
 +
 +===== Client IRC modulaire =====
 +
 +J'ai oublié le nom du client IRC, mais on peut se dispenser d'un bouncer si on utilise ce client. En gros, le front-end vient se câler sur la partie daemon du client IRC.
 +
 +Quassel. Installer quassel-core installe les librairies qt4, ça va encore. Par contre la partie cliente sur une Debian fraîche installe 250Mo de librairies. Tandis que hexchat prends 10Mo. Genre ça installe phonon, vlc, matroska... à méditer du coup, on va y'​aller progressivement.
 +
 +Smuxi, lui, nécessite Mono. Du coup c'est un peu pareil...
 +
 +===== Mettre à jour le firmware du Raspberry =====
 +
 +http://​raspberrypi.stackexchange.com/​questions/​164/​how-do-i-update-software-and-firmware
 +
 +En résumé, installer rpi-update, et l'​exécuter.
 +
 +
 +===== Installation de Yunohost sur la Raspbian =====
 +
 +C'est par ici: https://​yunohost.org/#/​install_manually
 +
 +L'​installation sur un raspberry prend un peu de temps et installe une bonne 50aine de paquets (à moins que ça ne soit plutôt 300 wouah), parmi lesquels: nginx, mysql...
 +
 +Echec lors de l'​installation:​
 +<​code>​
 +Traitement des actions différées (« triggers ») pour man-db (2.7.0.2-5) ...
 +Paramétrage de libnewt0.52:​armhf (0.52.17-1) ...
 +Paramétrage de whiptail (0.52.17-1) ...
 +Traitement des actions différées (« triggers ») pour libc-bin (2.19-13) ...
 +======== Checking domain ========
 +======== Adding repositories ========
 +OK
 +======== Install ========
 +======== Installation failed ========
 +Rolling back have to be done manually !
 +Check your legacy configuration files => '/​etc/​yunohost/​.legacy'​
 +Check install logs => '/​var/​log/​yunohost.log'​ and '/​var/​log/​yunohost.error'​
 +</​code>​
 +
 +Le répertoire /​etc/​yunohost/​.legacy est vide.
 +
 +Le fichier /​var/​log/​yunohost.error inexistant.
 +
 +Le fichier /​var/​log/​yunohost.log décrit l'​échec de dpkg lors de l'​installation:​
 +<​code>​
 +Préparation du dépaquetage de .../​haste_1.0-beta4~megusta1_all.deb ...
 +Dépaquetage de haste (1.0-beta4~megusta1) ...
 +Traitement des actions différées (« triggers ») pour man-db (2.7.0.2-5) ...
 +Traitement des actions différées (« triggers ») pour mime-support (3.58) ...
 +Traitement des actions différées (« triggers ») pour dbus (1.8.12-3) ...
 +Des erreurs ont été rencontrées pendant l'​exécution :​
 + /​var/​cache/​apt/​archives/​mysql-server-5.5_5.5.40-1+rpi1_armhf.deb
 + /​var/​cache/​apt/​archives/​slapd_2.4.40-3_armhf.deb
 + /​var/​cache/​apt/​archives/​postfix_2.11.3-1_armhf.deb
 + /​var/​cache/​apt/​archives/​yunohost-config-tahoe_2.0-rc1~megusta1_all.deb
 +E: Sub-process /​usr/​bin/​dpkg returned an error code (1)
 +</​code>​
 +
 +Le script d'​installation ajoute le dépot APT de yunohost directement dans /​etc/​apt/​sources.list,​ il serait préférable de le mettre dans /​etc/​apt/​sources.d/​.
 +
 +Le script vérifie t-il si la version de la distribution ajoutée correspond au dépot de Yunohost ? (A quelle version de Debian correspond "​Megusta"​ ?)
 +
 +Et donc oui, je n'ai pas été assez attentif, yunohost est prévu pour Wheezy et n'est pas censé tourner avec Jessie.
article/linux/raspberry.txt · Dernière modification: 2017/09/13 23:56 par bicarbonate