Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Fedolight Audio RT
#11
(11-29-2015, 01:47 PM)LittleScarabee a écrit : Merci Olivier pour ce partage...

Je suis en train de tester une migration Fedora 22 > 23...Le noyau RT 4.1.12 de base est le même il y a une petite différence dans le versioning ensuite...
Fedora 22 : kernel-rt-core-4.1.12-200.rt13.1.fc22.ccrma.x86_64.rpm
Fedora 23 : kernel-rt-core-4.1.12-300.rt13.1.fc23.ccrma.x86_64.rpm 

Si la migration se passe bien je vous livrerais mes commandes de migration pour cette beta version...

Merci Frédéric. Smile

Pierre
Répondre
#12
Mon installation :
- 1 mini PC avec un Bios standard (pas d'EFI)
- OS : Fedora 22 
- CCRMA : 4.1.10
- Bibliothèque : déportée sur le NAS, accessible via NFS au démarrage

La migration Fedora 22 > 23
1 - Faire une mise à jour complète du système
Code :
sudo dnf updgrade

2 - Redémarrer et sélectionner un noyau standard > Fedora 22 4.2.3
Code :
# sudo reboot

3 - Lister les noyaux installés
Code :
# sudo dnf list installed | grep kernel

4 - Supprimer le ou les noyaux que vous ne souhaitez plus conserver, exemple :
Code :
# sudo dnf remove kernel-rt-core-4.1.10-200.rt10.1.fc22.ccrma.x86_64

5 - Mise à jour de Grub et contrôle
Code :
# sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# grep "submenu\|^\menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2

6 - Redémarrer et sélectionner un noyau standard : Fedora 22 4.2.3
Code :
# sudo reboot

7 - Installer le plugin de mise à jour pour DNF
Code :
# sudo dnf install dnf-plugin-system-upgrade

8 -  Démarrer la mise à jour !! (475 M)
Code :
# sudo dnf system-upgrade download --releasever=23

9 - Redémarrer le PC avec option de mise à jour :
Code :
# sudo dnf system-upgrade reboot
>> Durée : 45 min environ

10 - Vérifier le noyau sur lequel vous êtes maintenant :
Code :
# uname -a
Linux PEACH 4.2.6-300.1.fc23.x86_64 #1 SMP Thu Nov 12 22:19:09 GMT 2015 x86_64 x86_64 x86_64 GNU/Linux

11 - Il faut maintenant lister les noyaux installés pour supprimer les noyaux en Fedora 22
Code :
# sudo dnf list installed | grep kernel

12 - Supprimer les noyaux en fc22, exemple :
Code :
# sudo dnf remove kernel-rt-core-4.1.12-200.rt13.1.fc22.ccrma
# sudo dnf remove kernel-core-4.2.3-200.1.fc22

13 - Lister les noyaux restants
Code :
# sudo dnf list installed | grep kernel
abrt-addon-kerneloops.x86_64        2.7.1-1.fc23                   @@commandline
kernel.x86_64                       4.2.6-300.1.fc23               @@commandline
kernel-core.x86_64                  4.2.6-300.1.fc23               @@commandline
kernel-modules.x86_64               4.2.6-300.1.fc23               @@commandline
kernel-rt.x86_64                    4.1.12-300.rt13.1.fc23.ccrma   @@commandline
kernel-rt-core.x86_64               4.1.12-300.rt13.1.fc23.ccrma   @@commandline
kernel-rt-modules.x86_64            4.1.12-300.rt13.1.fc23.ccrma   @@commandline

14 - Mise à jour de Grub et contrôle
Code :
# sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# grep "submenu\|^\menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
Fedora (4.2.6-300.1.fc23.x86_64) 23 (Server Edition)
Fedora (4.1.12-300.rt13.1.fc23.ccrma.x86_64+rt) 23 (Server Edition)
Fedora (0-rescue-52c2876dab76474c92bfe4562bd70757) 23 (Server Edition)

15 - On force le démarrage sur le noyau RT
Code :
# sudo grub2-set-default "Fedora (4.1.12-300.rt13.1.fc23.ccrma.x86_64+rt) 23 (Server Edition)"
# sudo grub2-editenv list
# sudo reboot

16 - On vérifie que l’on est bien sur le noyau choisi, suite au redémarrage :
Code :
# name -a
Linux PEACH 4.1.12-300.rt13.1.fc23.ccrma.x86_64+rt #1 SMP PREEMPT RT Sat Nov 7 18:53:42 PST 2015 x86_64 x86_64 x86_64 GNU/Linux


EDIT 30/11/15 : Bug sur le firewall

17 - On coupe le firewall car ce petit "canaillou" fait son retour…
La commande habituelle "systemctl disable firewall" ne fonctionne il faut autoriser les ports à la demande. Solution de contournement Il faut dérouler les étapes 18 & 19 & 20 en plus en tant que root.

18 - Il faut se connecter en tant que root et lister les zones
Code :
# firewall-cmd --get-active-zones
FedoraServer
 interfaces: enp4s0

19 - Ajout d'une règle pour [b]LMS[/b] dans la zone concernée (cf. Step 18)
[code]
# firewall-cmd --zone=FedoraServer --add-port=9000/tcp --permanent
# firewall-cmd --reload

20 - Ajout des règles pour Samba dans la zone concernée (cf. Step 18)
Code :
# firewall-cmd --zone=FedoraServer --add-port=137/tcp --permanent
# firewall-cmd --zone=FedoraServer --add-port=138/tcp --permanent
# firewall-cmd --zone=FedoraServer --add-port=139/tcp --permanent
# firewall-cmd --reload
137/tcp = NETBIOS Name Service
138/tcp = NETBIOS Datagram Service
139/tcp = NETBIOS session service


21 - Lister les ports (en tant que root) :
# firewall-cmd --zone=FedoraServer --list-ports
ou encore pour voir les ports & services :
# cat /etc/firewalld/zones/FedoraServer.xml


EDIT 30/11/15 : Bug sur Samba qui ne démarre plus
22 - Contrôle le statut
Code :
# sudo systemctl status smb nmb
● smb.service - Samba SMB Daemon
  Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
  Active: inactive (dead)

● nmb.service - Samba NMB Daemon
  Loaded: loaded (/usr/lib/systemd/system/nmb.service; disabled; vendor preset: disabled)
  Active: inactive (dead)

23 - Réactive les services et redémarrage
# sudo systemctl enable smb nmb
# sudo systemctl start smb nmb
# sudo systemctl status smb nmb

Enjoy !

Je me ferais une installation "propre" en 2016...

Source pour la migration de l'OS : https://fedoramagazine.org/upgrading-fro...fedora-23/
Streamer : Windows Server 2019 & AO 3 & HQPlayer | Aurdirvana -> Diretta
Dac : PS Paul Hynes SR4 -> Chord 2Qute
Casque : Auris HA-2SF -> Focal Clear MG
Démat : Auris HA-2SF -> Atoll IN100 By JCT (Ampli) -> Harbeth LS3/5A 11 Ohms
Vinyle : Thorens TD 295 MK IV & Autio-Technica AT-150MLX




Répondre
#13
Hello,

En complément et en rapport au Firewall voici comment permettre l'auto-découverte dessus LMS et la communication avec un Squeezelite distant :

1 - Ajout de la règle pour la communication avec les clients :
Code :
# firewall-cmd --zone=FedoraServer --add-port=3483/tcp --permanent
# firewall-cmd --zone=FedoraServer --add-port=3483/udp --permanent

2 - Recharge la configuration du Firewall :
Code :
# firewall-cmd --reload

Vous pouvez, après quelques secondes, voir apparaître dans votre le menu en haut à droite les autres platines pouvant être piloter depuis votre LMS.

Note : Il y a aussi le port 9090, qui permet d'exécuter à distance des commandes vers LMS (CLI). Pas nécessaire selon moi dans nos installations.
Streamer : Windows Server 2019 & AO 3 & HQPlayer | Aurdirvana -> Diretta
Dac : PS Paul Hynes SR4 -> Chord 2Qute
Casque : Auris HA-2SF -> Focal Clear MG
Démat : Auris HA-2SF -> Atoll IN100 By JCT (Ampli) -> Harbeth LS3/5A 11 Ohms
Vinyle : Thorens TD 295 MK IV & Autio-Technica AT-150MLX




Répondre
#14
Hello,

Je souhaite partager avec vous une petite optimisation / affiner le mode "Temps Réel" pour un processus sous linux, dans le cas c'est "squeezelite" :

* De base squeezelite après son démarrage génère plusieurs processus (1 parent & 3 enfants) et non un seul comme on pourrait le penser :
Code :
# pstree -p $(pidof squeezelite)
squeezelite(1762)─┬─{squeezelite}(1763)
                  ├─{squeezelite}(1764)
                  └─{squeezelite}(1765)


* Ensuite lorsque dans le fichier configuration vous placez la priorité du processus à "99" on obtient bien un temps réel, mais uniquement sur l'un des processus de Squeezelite, mais pas sur l'ensemble, cf. ci-dessous :
   

* Durant l'écoute d'un fichier, Squeezelite (qui travaille plus ou moins !!) répartie les actions sur l'un des autres processus crée à son démarrage : le processus passe donc de "Sleep" à "Running" :
   
   

> Comme on peut le voir sur la première copie d'écran c'est tout sauf le processus en RT qui travaille (j'utilise dans mon cas une carte audio interne SPDIF) ; lorsque j'attaque mon DAC via de l'USB c'était plutôt l'avant dernier processuis (en mode RT) qui faisait le travaille et qui au besoin passait "la main" aux autres processus...

* Maintenant si vous souhaitez passer Squeezelite en "full RT" il faut pour cela :
1 / Sauvegarder et Editer le fichier de service :
# sudo cp /usr/lib/systemd/system/squeezelite.service /usr/lib/systemd/system/squeezelite.service.bkp
# sudo vim /usr/lib/systemd/system/squeezelite.service

2 / A la section [Service] :
> Commenter les lignes suivantes :
Code :
CPUSchedulingPolicy=batch
Nice=-20
LimitRTPRIO=infinity
LimitMEMLOCK=infinity


> Ajouter les lignes suivantes
Code :
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=99

Source / Lecture : Systemd & Scheduler

3 / Recharger la configuration de systemd et redémarrer les services :
Code :
# sudo systemctl daemon-reload
# sudo systemctl restart squeezeboxserver
# sudo systemctl restart squeezelite

Note : je redémarre SqueezeBoxServer car j'ai pu constater une utilisation anormale du CPU par squeezelite sans cette action...


4 / Vérifier tout ça via la commande "htop" (plus détaillée que top) ce qui donne :
   

> On a bien tous nos processus en mode RT ! Big Grin

Mon retour : j'ai le sentiment qu'on a un son plus dynamique et plus de clair, je vous laisse juger par vous même. Wink

Il est possible d'aller "un poil" plus loin en faisant une affinité sur un coeur du processeur, car comme tout processus l'OS gére lui même la répartition sur les différents CPU disponible ...pour l'avoir testé en forçant le processus sur un seul coeur : j'ai surtout eu un soucis de stabilité CPU ensuite...donc attention ! Après cela mets rapidement en évidence les petits soucis de latence que l'on peut avoir : j'ai eu au début beaucoup coupure lorsque j'écoutais des fichiers lus depuis mon NAS via NFS...en jouant sur le buffer on arrive à gérer tout

Si vous souhaitez quand même le faire rien de plus simple, il faut pour cela :
1 / Editer le fichier de service :
# sudo vim /usr/lib/systemd/system/squeezelite.service

2 / A la section [Service] :
> Ajouter la ligne suivante :
CPUAffinity=0,1

Source : Set Affinity CPU

3 / Recharger la configuration de systemd et redémarrer les services :
Code :
# sudo systemctl daemon-reload
# sudo systemctl restart squeezeboxserver
# sudo systemctl restart squeezelite

La seule chose que je n'explique pas aujourd'hui, faute d'informations : pourquoi Squeezelite génère-t-il autant de processus  Huh  

Pour LMS c'est possible de le faire : il faut ajouter les mêmes lignes dans son fichier de service sans commenter l'existant :
Code :
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=99

A bientôt
Streamer : Windows Server 2019 & AO 3 & HQPlayer | Aurdirvana -> Diretta
Dac : PS Paul Hynes SR4 -> Chord 2Qute
Casque : Auris HA-2SF -> Focal Clear MG
Démat : Auris HA-2SF -> Atoll IN100 By JCT (Ampli) -> Harbeth LS3/5A 11 Ohms
Vinyle : Thorens TD 295 MK IV & Autio-Technica AT-150MLX




Répondre
#15
Ok, Ok te fâches pas...
bon sinon...à part ça....je fume pour de vrai moi Cool
routeur Cisco RV130 W - swicth Buffalo BS-GS 2016 - Lecteur réseau diy base Engineered/Sean Jacobs - Dac AD1865 en construction - préampli Conrad Johnson ET5 - bloc stéréo diy SE 2A3 - enceintes Quad ESL 57
Lien Installation 
Répondre
#16
Ecoute moi ça roule...
En tout cas je vais essayer de comprendre la raison du pourquoi du comment pour cette histoire de processus ! et puis d'abord ! Wink ... Je pense prochainement expérimenter la conversion à la volée Flac > Wave ... sur le même PC, je verrais bien si j'entends un mieux....
A bientôt Cool
Streamer : Windows Server 2019 & AO 3 & HQPlayer | Aurdirvana -> Diretta
Dac : PS Paul Hynes SR4 -> Chord 2Qute
Casque : Auris HA-2SF -> Focal Clear MG
Démat : Auris HA-2SF -> Atoll IN100 By JCT (Ampli) -> Harbeth LS3/5A 11 Ohms
Vinyle : Thorens TD 295 MK IV & Autio-Technica AT-150MLX




Répondre
#17
on ne peut pas faire la même chose avec le paramètre -p  de squeezelite?
Répondre
#18
La paramètre -p ne te place le mode "Temps Réel" sur uniquement un processus parmi les autres. Et comme Squeezelite génère plusieurs processus au démarrage pour avoir un "Temps réel" sur l'ensemble des processus il faut faire ainsi. As-tu le même comportement sur un rPi ?
Streamer : Windows Server 2019 & AO 3 & HQPlayer | Aurdirvana -> Diretta
Dac : PS Paul Hynes SR4 -> Chord 2Qute
Casque : Auris HA-2SF -> Focal Clear MG
Démat : Auris HA-2SF -> Atoll IN100 By JCT (Ampli) -> Harbeth LS3/5A 11 Ohms
Vinyle : Thorens TD 295 MK IV & Autio-Technica AT-150MLX




Répondre
#19
(12-23-2015, 09:02 PM)LittleScarabee a écrit : La paramètre -p ne te place le mode "Temps Réel" sur uniquement un processus parmi les autres. Et comme Squeezelite génère plusieurs processus au démarrage pour avoir un "Temps réel" sur l'ensemble des processus il faut faire ainsi. As-tu le même comportement sur un rPi ?

Je ne sais pas encore, car il s'agit d'une piste que je compte explorer pour prioriser Squeezelite et limiter les Dropouts intempestifs... Donc ton boulot m'intéresse au plus haut point! Je vais voir si ça peut le faire en environnement Debian
Répondre
#20
Salut LittleScarabee,

j'ai vu sur E&M que certains galèrent sur la version Fedora 23. As tu des pépins, est ce aussi fiable que la version 22 ? Du moins avec CCRMA !
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)