RaspberryPI - Kodi
Posted on sam. 02 mai 2015 in Projets
Présentation du projet
J'ai un Raspberry PI B première génération sur lequel j'ai installé il y à longtemps ArchArm et XBMC le tout permettant de visionner sur ma télé les données de mon NAS.
Je vous l'accorde j'ai un télévision SAMSUNG avec SmartHUB mais voila je l'ai interdit sur le réseau, pour par exemple un micro qui fonctionne en permanence et que l'on ne peut pas arrêter, un butineur de très mauvaise qualité, bref SmartHUB je m'en passe.
Dernièrement le Raspberry PI a pris un petit coup de jeune :-) la version 2 B avec son nouveau SOC est vraiment intéressant à un prix humm.... 45€ avec un bloc alim 2A.
Pré-requis
- un raspberry PI 2B
- un bloc alimentation de 5V 2A
- une carte microSD 8 Go
- un câble Ethernet
- un dongle USB WI-FI
- un clavier sans fil
Réalisation du projet
Préparation de la carte microSD
Je vais utiliser mon portable sous Arch pour préparer la carte microSD. Je pars du principe que vous avez les connaissance minimum pour correctement identifier votre carte microSD.
fdisk -l
me permet de trouver ma carte
Disque /dev/mmcblk0 : 7,4 GiB, 7948206080 octets, 15523840 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x417ee54b
donc vous remplacerez /dev/mmcblk0 par l'identifiant de votre carte.
Ce que nous allons faire : * Création d'une partition primaire de 100M au format FAT * Création d'une partition prenant tout la place disponible restante au format Linux
Voila le déroulé des actions à effectuer :
phil@asus~ $sudo fdisk /dev/mmcblk0
Bienvenue dans fdisk (util-linux 2.26.1).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.
Commande (m pour l'aide) : o
Création d'une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0xbfab1046.
Commande (m pour l'aide) : p
Disque /dev/mmcblk0 : 7,4 GiB, 7948206080 octets, 15523840 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xbfab1046
Commande (m pour l'aide) : n
Type de partition
p primaire (0 primaire, 0 étendue, 4 libre)
e étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (1-4, 1 par défaut) : 1
Premier secteur (2048-15523839, 2048 par défaut) :
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-15523839, 15523839 par défaut) : +100M
Une nouvelle partition 1 de type « Linux » et de taille 100 MiB a été créée.
Commande (m pour l'aide) : t
Partition 1 sélectionnée
Type de partition (taper L pour afficher tous les types) : c
Type de partition « Linux » modifié en « W95 FAT32 (LBA) ».
Commande (m pour l'aide) : n
Type de partition
p primaire (1 primaire, 0 étendue, 3 libre)
e étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (2-4, 2 par défaut) : 2
Premier secteur (206848-15523839, 206848 par défaut) :
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (206848-15523839, 15523839 par défaut) :
Une nouvelle partition 2 de type « Linux » et de taille 7,3 GiB a été créée.
Commande (m pour l'aide) : w
~~~~{console}
La table de partitions a été altérée.
Appel d'ioctl() pour relire la table de partitions.
Synchronisation des disques.
Voila maintenant la carte est correctement partitionnée.
~~~~{console}
fdisk -l
...
Disque /dev/mmcblk0 : 7,4 GiB, 7948206080 octets, 15523840 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xbfab1046
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/mmcblk0p1 2048 206847 204800 100M c W95 FAT32 (LBA)
/dev/mmcblk0p2 206848 15523839 15316992 7,3G 83 Linux
Les commandes suivantes s'effectuerons dans une console root
Formatage de la première partition en FAT
mkfs.vfat /dev/mmcblk0p1
Création d'un répertoire
mkdir boot
Montage de la partition
mount /dev/mmcblk0p1 boot
Formatage de la deuxième partition en EXT4
mkfs.ext4 /dev/mmcblk0p2
Création d'un répertoire
mkdir root
Montage de la partition
mount /dev/mmcblk0p2 root
Téléchargement du systeme d'exploitation
wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
On dé-tar et l'on pose cela sur root
bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
On s'assure que toutes les données dans les tampons en mémoire sont inscrite sur le disque.
sync
Déplacement des fichiers de démarrage sur la première partition:
mv root/boot/* boot
Démontage des partitions
umount boot root
Insérer la microSD dans le Raspberry Pi, connecter le câble Ethernet, et l'alimentation 5V.
A partir de là le Raspberry Pi boot, il vous faut trouver quelle IP a été donnée.
sudo nmap -v -sn 192.168.1.0/24
et la réponse se trouve dans la liste
Nmap scan report for 192.168.1.57
Host is up (0.0069s latency).
MAC Address: B8:27:EB:E9:BE:E8 (Raspberry Pi Foundation)
lancer une connexion ssh
ssh root@192.168.1.57
le mot de passe est 'root'
Configuration de ArchARM
Mise à jour du système
pacman -Syu
Dans mon cas la mise à jour a installé un nouveau kernel on reboot
reboot
changement du mot de passe root
passwd
fuseau horaire
date
Sat May 2 19:20:16 UTC 2015
rm localtime
ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
date
Sat May 2 21:21:09 CEST 2015
Création d'un utilisateur kodi
useradd -m -g users -G wheel,storage,audio,video -c kodi -s /bin/bash kodi
et on s'occupe aussi de son mot de passe
passwd kodi
supprimer l'acces root via ssh
Bon dois je le faire ou pas, je suis sur mon reseau local, le firewall du routeur ne permet pas l'accès au port 22.
dans le fichier /etc/ssh/sshd_conf et remplacer
#PermitRootLogin yes
par
PermitRootLogin no
sudo
pacman -S sudo
puis on configure l'accès
export EDITOR=nano;
visudo
on supprimera le commentaire
## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
quelques outils.
pacman -S mc
pacman -S gst-plugins-base gst-plugins-ugly gst-libav gst-plugins-good gst-plugins-bad ffmpeg
pacman -S alsa-firmware alsa-utils alsa-oss
Réseau
L'accès s'effectue en Wi-Fi sur mon réseau local. Je passe en IP fixe cela permet de gagner quelques secondes lors du boot.
Installation du Wifi
Pour gérer la connexion j'utilise netctl, j'ai besoin d'installer
pacman -S dialog dhclient wpa_supplicant ifplugd ifenslave
création du fichier de configuration
nano /etc/netctl/wifi-maison-static
puis on modifie comme suit
Description='Connexion WiFi maison static'
Interface=wlan0
Connection=wireless
Security=wpa
ESSID='votre ESSID'
Key='votre passphrase'
IP=static
Address='192.168.1.35/24'
Gateway='192.168.1.1'
DNS=('192.168.1.1')
# Uncomment this if your ssid is hidden
#Hidden=yes
On test la connexion
netctl start wifi-maison-static
s'il n'y a pas de retour d'erreur, pour le démarrage au boot
netctl enable wifi-maison-static
Installation de Kodi
pacman -S kodi-rbp
pacman -S polkit udisk upower lsb-release
Création du fichier /etc/systemd/system/xbmc.service qui va nous permettre de démarrer kodi lors du boot.
[Unit]
Description = Starts an instance of KODI
After = remote-fs.target
[Service]
User = kodi
Group = kodi
Type = simple
ExecStart = /usr/bin/kodi-standalone -l /run/lirc/lircd
Restart = on-failure
[Install]
WantedBy = multi-user.target
puis
systemctl enable kodi
Il ne reste plus qu'a paramétrer kodi pour l'accès au partage réseau, et modifier les preferences de fonctionnement.
Pilotage de kodi
un clavier
Le petit clavier est reconnu sans problème
dmesg
me donne
[ 643.719669] usb 1-1.3: new low-speed USB device number 6 using dwc_otg
[ 643.850496] usb 1-1.3: New USB device found, idVendor=0c40, idProduct=8000
[ 643.857578] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 643.868503] usb 1-1.3: Product: 2.4GHz receiver
[ 643.874965] usb 1-1.3: Manufacturer: ELMCU
[ 643.902874] input: ELMCU 2.4GHz receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:0C40:8000.0005/input/input4
[ 643.918396] hid-generic 0003:0C40:8000.0005: input,hidraw0: USB HID v1.11 Keyboard [ELMCU 2.4GHz receiver] on usb-bcm2708_usb-1.3/input0
[ 643.960169] input: ELMCU 2.4GHz receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.1/0003:0C40:8000.0006/input/input5
[ 643.975794] hid-generic 0003:0C40:8000.0006: input,hidraw1: USB HID v1.11 Mouse [ELMCU 2.4GHz receiver] on usb-bcm2708_usb-1.3/input1
une partie des touches comme vol+, pause, sont bien reconnues le clavier est en qwerty
avec une tablette ou smartphone Android
Il existe deux applications pour piloter Kodi. Les deux sont disponibles dans le dépôt f-droid.org.