Bien faire fonctionner Kodi sur un NanoPC-T4 m’a demandé quelques efforts, aussi je souhaite partager mon expérience ici

Sur le site officiel, il existe des distributions spécifiques qui ne me convenaient pas, aussi j’ai trouvé qu’armbian répondait à mon besoin et est bien supporté pour ce matériel :Retour ligne automatique
https://www.armbian.com/nanopc-t4/

- Télécharger l’image adéquate et copier là sur une SD card via usbmanager en root. Retour ligne manuel
- Insérer la SD card dans le logement adéquat et démarrer le NanoPC-T4 branché en HDMI Retour ligne manuel
- Laisser le démarrage s’effectuer, mettre un mot de passe non dépendant du clavier (clavier en qwerty au début), ajouter un utilisateur, sélectionner la bonne langue… les réponses tombent sous le sens.

Une fois l’installation faite, je bascule très vite l’installation sur le disque dur SSD interne afin de gagner en rapidité sur les étapes suivantes, la documentation est assez explicite ici :Retour ligne automatique
https://docs.armbian.com/User-Guide_Getting-Started/#how-to-install-to-emmc-nand-sata-usb

1er test avec l’image buster xfce desktop kernel 5.10 :Retour ligne automatique
Installation qui se déroule facilement, le seul problème concerne la partie son HDMI (la solution de ce problème est expliquée en fin d’article)…

Sous Kodi, le son est OK mais par contre les images apparaissent saccadés et charge énorme sur CPU (400% !)

Du coup j’abandonne cette solution et après être tombé sur la page Retour ligne automatique
https://forum.armbian.com/topic/16516-rk3399-legacy-multimedia-framework/Retour ligne automatique
j’essaye de basculer sur le kernel 4.4 spécifique, mais cela ne fonctionne pas (u-boot avec plein de messages d’erreurs) puisque comme indiqué sur la documentation il faut faire cette opération depuis un kernel déjà en 4.4 !

2ème test avec l’image 4.4 spécifique

Boot sur l’image buster avec le kernel 4.4 legacy avec la carte SD.Retour ligne automatique
Installation sur le DD interne.Retour ligne automatique
sudo apt update && sudo apt upgradeRetour ligne automatique
sudo apt install media-buster-legacy-rk3399 —install-recommends

Mais patatra, kodi-gbm ne fonctionne pas sur ma sortie HDMI, écran noir….

Du coup abandon de cette solution aussi !

Après quelques recherches je m’aperçois qu’en upstream le GPU est désormais bien supporté.Retour ligne automatique
https://wiki.debian.org/PanfrostLima

3ème test avec l’image 5.10 buster

Buster minimum avec le kernel 5.10Retour ligne automatique
Je bascule l’installation sur le disque interne avec Retour ligne automatique
J’installe gnome 3, alsa et tout les trucs dont j’ai besoin

Puis je modifie buster par bullseye dans /etc/apt.sources.list et /etc/apt.sources.list.d/xxx

Et je lance un apt update et apt upgrade

Et là après un reboot, je teste et miracle j’arrive à avoir une image nette sur kodi et un taux de rafraissiment d’image entre 54 et 60 à glxgears (sans avoir à ajouter le fichier du wiki debian plus haut)

Et donc cette solution est la bonne et que je conserve !

Passons alors à la résolution de mes problèmes liés à la partie son du HDMI

Par défaut la partie HDMI n’est qu’en stéréo et le choix du 5.1 n’est pas disponible au niveau pulseaudio de gnome…

La page suivante m’a mis sur la piste :Retour ligne automatique
https://forum.armbian.com/topic/10183-pulseaudio-and-built-in-audio-issue-involves-alsa/

Il suffit alors de créer le fichier suivant :

cat > /usr/share/alsa/cards/HDMI-OUT.conf << EOF
# configuration for HDMI connection which just expose the
# audio out device

<confdir:pcm/hdmi.conf>

HDMI-OUT.pcm.hdmi.0 {
@args [ CARD DEVICE CTLINDEX AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
}
@args.DEVICE {
type integer
}
@args.CTLINDEX {
type integer
}
@args.AES0 {
type integer
}
@args.AES1 {
type integer
}
@args.AES2 {
type integer
}
@args.AES3 {
type integer
}
type hw
card \$CARD
}
EOF

Puis on affiche la liste des cartes sons :

root@nanopct4 :/usr/share/alsa/cards# aplay -lRetour ligne automatique
**** List of PLAYBACK Hardware Devices ****Retour ligne automatique
card 0 : realtekrt5651co [realtek,rt5651-codec], device 0 : ff890000.i2s-rt5651-aif1 rt5651-aif1-0 [ff890000.i2s-rt5651-aif1 rt5651-aif1-0]Retour ligne automatique
Subdevices : 1/1Retour ligne automatique
Subdevice #0 : subdevice #0Retour ligne automatique
card 1 : hdmisound [hdmi-sound], device 0 : ff8a0000.i2s-i2s-hifi i2s-hifi-0 [ff8a0000.i2s-i2s-hifi i2s-hifi-0]Retour ligne automatique
Subdevices : 1/1Retour ligne automatique
Subdevice #0 : subdevice #0

Du coup ensuite ajout de l’entrée hdmi-sound cards.HDMI-OUTRetour ligne automatique
/usr/share/alsa/cards/aliases.conf

La commande « aplay -L » affiche désormais bien une sortie HDMI :

hdmi:CARD=hdmisound,DEV=0Retour ligne automatique
hdmi-sound, ff8a0000.i2s-i2s-hifi i2s-hifi-0Retour ligne automatique
HDMI Audio Output

Et un reboot plus loin j’ai désormais une entrée HDMI ds le menu sound settings de GNOME.Retour ligne automatique
Je sélectionne 5.1 et je teste les sorties et paf, pas de bol, j’ai un problème d’alignement entre la sortie donnée par mon NanoPC vers mon amplificateur en 5.1

En effet en testant sous gnome avec l’outil de test de son j’ai alors : Retour ligne manuel
- Front Left -> Enceinte « Front Left » Retour ligne manuel
- Front Right -> Enceinte « Front Right » Retour ligne manuel
- Front Center -> Enceinte « Rear Left » Retour ligne manuel
- Rear Left -> Enceinte « Subwoofer » Retour ligne manuel
- Rear Right -> Enceinte « Front Center » Retour ligne manuel
- Subwoofer -> Enceinte « Rear Right »

Il suffit alors de modifier une ligne dans le fichier /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf à la section [Mapping hdmi-surround] la ligne « channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe » par la ligne « channel-map = front-left,front-right,lfe,front-center,rear-left,rear-right »

Et un reboot plus loin tout est désormais bien aligné !

Et kodi utilise 155% de CPU plus 400 ou 500% de CPU ! (en sachant que le joujou a six 6 CPUs donc ça rulez).

Share

Test de la fonctionnalité « boom » dispo sur RHEL 7.5 Beta & dernières versions de Fedora

Une fonctionnalité dont j’ai très peu entendu parler… mais le fait que la fonctionnalité soit prévue d’être activée dans la prochaine RHEL a attiré mon attention

De quoi s’agit-il ? Et bien d’un petit programme en python qui s’interface avec grub2, si grub a le patch BLS (RHEL 7 & dernières versions de Fedora) comme indiqué sur le site upstream :
https://github.com/bmr-cymru/boom

OK, mais c’est quoi l’intérêt du dit programme ? Bah c’est simplement de pouvoir booter très facilement sur un snapshot LVM du / d’un serveur et donc de pouvoir revenir rapidement sur une version d’OS précédent l’application de patchs…. Et là ça rejoint justement quelque chose que je regardais en ce moment et j’avais justement creusé plusieurs solutions telles :

– Un miroir de LV que je peux synchroniser et désynchroniser à loisir… Le mirroring LV commence à bien mûrir désormais, les fonctionnalités –splitmirrors & –trackchanges sont plutôt intéressantes à regarder. En fait ce qui manque vraiment au niveau du mirroring au niveau LV c’est un bon support au niveau des distributions qui ne chargent souvent pas les modules correspondants au niveau de leur noyau de boot par défaut et surtout de leur noyau en mode rescue… Comme malgré tout c’est ce que j’ai mis en place au niveau de mon OS sur mes serveurs chez OVH, si j’ai un jour du temps je finirais peut-être par proposer un patch pour Debian & Fedora au niveau de leur installateur.

– Les snapshots LV… Là encore j’ai découvert qu’il existait désormais deux types de snapshot, les snapshot classique et le splitsnapshot, je dois creuser les différences…

Sur ces deux solutions, le truc à gérer c’est qu’il faut faire les entrées « à la main » dans grub pour pouvoir booter rapidement en cas de soucis sur la version N-1… Et c’est là justement qu’intervient boom, j’y reviens dans 2 secondes…

– La troisième solution consiste à avoir un autre VG (potentiellement sur le même DD) activable/désactivable à loisir contenant une copie complète au niveau des FS…. Et là rsync avec l’option -x peut être intéressante.

Reprenons nos explications sur boom…

Par défaut tout semble configurer pour que boom apparaisse dans grub

[root@testrhel75 ~]# more /etc/default/boom
BOOM_USE_SUBMENU= »yes »
BOOM_SUBMENU_NAME= »Snapshots »
BOOM_ENABLE_GRUB= »yes »
[root@testrhel75 ~]#

Et le fichier /etc/grub.d/42_boom montre bien que la création des entrées va se faire lors du lancement du grub2-mkconfig

Mais par défaut rien n’est présent… Et c’est bien là que la doc est pas top. Il faut « juste » lancer la commande suivante :

[root@testrhel75 ~]# boom profile create --from-host --uname-pattern Linux
Created profile with os_id 2bd22ca:
OS ID: « 2bd22ca1d1cf1a59e24623c92fcbb6aa7fbc867c »,
Name: « Red Hat Enterprise Linux Server », Short name: « rhel »,
Version: « 7.5 (Maipo) », Version ID: « 7.5 »,
UTS release pattern: « Linux »,
Kernel pattern: « /vmlinuz-%{version} », Initramfs pattern: « /initramfs-%{version}.img »,
Root options (LVM2): « rd.lvm.lv=%{lvm_root_lv} »,
Root options (BTRFS): « rootflags=%{btrfs_subvolume} »,
Options: « root=%{root_device} ro %{root_opts} »
[root@testrhel75 ~]#

A partir de là on voit que le profil existe :

[root@testrhel75 ~]# boom profile list
OsID Name OsVersion
2bd22ca Red Hat Enterprise Linux Server 7.5 (Maipo)
[root@testrhel75 ~]#

Créons alors un nouveau LV de snapshot… (Note: On a pas le droit d’appeler les LV en commençant par « snapshot »)

[root@testrhel75 ~]# lvcreate -s -L500M -n snap20180222 /dev/mapper/rhel-root
Logical volume « snap20180222 » created.
[root@testrhel75 ~]#

[root@testrhel75 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel owi-aos— <17.00g
snap20180222 rhel swi-a-s— 500.00m root 0.02
swap rhel -wi-ao—- 2.00g
[root@testrhel75 ~]#

On peut alors créer l’entrée correspondante dans boom :
boom create --title snap20180222 --root-device /dev/mapper/rhel-snap20180222 --profile 2bd22ca

Et relancer la création du fichier de configuration de grub :
grub2-mkconfig > /boot/grub2/grub.cfg

J’ai une erreur sur le duplicate UUID ce qui est bien normal 😉
[root@testrhel75 ~]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file …
Found linux image: /boot/vmlinuz-3.10.0-830.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-830.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-46f4128a747747718e53b6edf2592896
Found initrd image: /boot/initramfs-0-rescue-46f4128a747747718e53b6edf2592896.img
[126444.820507] XFS (dm-4): Filesystem has duplicate UUID beb5c54c-a3b1-4e28-92b1-61df4b1873ea – can’t mount
done
[root@testrhel75 ~]

On peut vérifier que grub a désormais la config liée à boom activé si on a les lignes suivantes dans le grub.cfg

### BEGIN /etc/grub.d/42_boom ###
submenu « Snapshots » {
insmod blscfg
bls_import
}

D’ailleurs il n’y a pas besoin de relancer la création du grub.cfg une fois cette opération faite…

On peut désormais faire un touch d’un fichier (mais on pourrait faire une mise à jour de tout un tas de package RHEL, hein)

[root@testrhel75 ~]# touch /toto
[root@testrhel75 ~]#

Et rebooter sur notre snapshot :

Red Hat Enterprise Linux Server (3.10.0-830.el7.x86_64) 7.5 (Maipo)
Red Hat Enterprise Linux Server (0-rescue-46f4128a747747718e53b6edf25928>
Snapshots

Use the ^ and v keys to change the selection.
Press ‘e’ to edit the selected item, or ‘c’ for a command prompt.

 

snap20180222

Use the ^ and v keys to change the selection.
Press ‘e’ to edit the selected item, or ‘c’ for a command prompt.
Press Escape to return to the previous menu.

Et là c’est le drame…. J’utilise virsh en ligne de commande et donc avec l’émulation du port série et l’option n’est pas reprise…. Ce qui est vite corrigé en faisant ça :

boom profile edit 2bd22ca --os-options="root=%{root_device} ro %{root_opts} console=ttyS0"

Et en détruisant/recréant l’entrée correspondant à mon snapshot…

Désormais si je boote sur le snapshot et lorsque je fais un ls sur /, je ne trouve pas le fichier /toto créé précédemment…

En espérant avoir un peu éclairé vos lanternes sur le sujet boom 😉

 

Share

Installer une CentOS en ligne de commande pour KVM

L’incantation magique donne cela (attention à ne pas oublier la partie carte réseau virtuelle si vous êtes chez OVH, la mac adresse se fixe via l’interface d’administration…) :

virt-install –network model=virtio,bridge=br0,mac=02:00:00:e0:49:da –autostart –disk /dev/VGdata/LVvirtualserver1 -l http://archive.kernel.org/centos-vault/6.2/os/x86_64/ –memory 1024 –name VM1 –accelerate –graphics none –hvm -x « console=tty0 console=ttyS0,115200n8 »

Vous pouvez améliorer la commande avec un fichier de kickstart pour pouvoir gérer plus soigneusement la partie LVM… mais vous avez l’idée.

Attention je n’ai pas réussi à faire fonctionner la ligne avec de la CentOS 5.x, uniquement avec CentOS 6 & 7

 

Share

Nested VMWARE… Partie 3 – Création/Installation/Configuration de la machine virtuelle Nas4Free…

Suite du montage du Labo ESXi virtualisé !

Créons la coquille vide pour Nas4Free :

1-AjoutMachineVirtuelleNas4Free-1 1-AjoutMachineVirtuelleNas4Free-2 1-AjoutMachineVirtuelleNas4Free-3 1-AjoutMachineVirtuelleNas4Free-4 1-AjoutMachineVirtuelleNas4Free-5

Nas4Free est à base de BSD :1-AjoutMachineVirtuelleNas4Free-6

On alloue beaucoup de disque parce qu’on va ensuite le découper pour le présenter en NFS et en iSCSI (le screenshot est à revoir puisqu’il faut prévoir un disque de 8 Go et un disque de 300 Go pour bien séparer installation des données) :1-AjoutMachineVirtuelleNas4Free-7

Avec deux points d’accès NFS et deux points d’accès en iSCSI :1-AjoutMachineVirtuelleNas4Free-8 1-AjoutMachineVirtuelleNas4Free-9 1-AjoutMachineVirtuelleNas4Free-10On boote sur l’iso d’installation et après la phase de boot on sélectionne le choix « 9 » pour l’installation :

install_nas4free_1

Puis on choisi le mode « Embedded » :install_nas4free_2 install_nas4free_3 install_nas4free_4 choixdisqueNas4free
install_nas4free_6 install_nas4free_7 install_nas4free_8 install_nas4free_9

On reboot (et on fait attention de retirer l’ISO ou de booter d’abord sur le disque dur) puis on choisi la configuration de la partie IP :install_nas4free_11 install_nas4free_12 install_nas4free_13 install_nas4free_14 install_nas4free_15 install_nas4free_16 install_nas4free_17On peut alors paramétrer la deuxième interface du Windows d’Admin pour pointer vers l’IP 10.10.0.2

Et à partir de là, on continue avec l’interface web depuis le poste Windows d’Admin (utilisateur: admin, mot de passe par défaut : nas4free)

Part3-InstallationNas4free-1

Part3-InstallationNas4free-2 Part3-InstallationNas4free-3

On ne fait pas le reboot tout de suite….Part3-InstallationNas4free-4 Part3-InstallationNas4free-5 Part3-InstallationNas4free-6 Part3-InstallationNas4free-7 Part3-InstallationNas4free-8On reboote… et on commence alors la configuration disque :

Part3-InstallationNas4free-9 Part3-InstallationNas4free-10 Part3-InstallationNas4free-11 Part3-InstallationNas4free-12 Part3-InstallationNas4free-13 Part3-InstallationNas4free-14 Part3-InstallationNas4free-15 Part3-InstallationNas4free-16 Part3-InstallationNas4free-17 Part3-InstallationNas4free-18 Part3-InstallationNas4free-19 Part3-InstallationNas4free-20 Part3-InstallationNas4free-21

Pas certain que la partie DataSet soit obligatoire (à vérifier)Part3-InstallationNas4free-22 Part3-InstallationNas4free-23 Part3-InstallationNas4free-24 Part3-InstallationNas4free-25 Part3-InstallationNas4free-26 Part3-InstallationNas4free-27 Part3-InstallationNas4free-28 Part3-InstallationNas4free-29 Part3-InstallationNas4free-30 Part3-InstallationNas4free-31 Part3-InstallationNas4free-32 Part3-InstallationNas4free-33 Part3-InstallationNas4free-34 Part3-InstallationNas4free-35 Part3-InstallationNas4free-36 Part3-InstallationNas4free-37 Part3-InstallationNas4free-38 Part3-InstallationNas4free-39 Part3-InstallationNas4free-40 Part3-InstallationNas4free-41 Part3-InstallationNas4free-42 Part3-InstallationNas4free-43 Part3-InstallationNas4free-44 Part3-InstallationNas4free-45 Part3-InstallationNas4free-46

Share