Aller au contenu

[arch] patch de noyau rt.

Featured Replies

Posté(e)

Bonjour,

Voilà, j'utilise pour l'instant rosegarden sur arch.

Alors que le noyau gère le preemt et que /etc/security/limits.conf est configuré pour la mao par défaut, je reçoit ce message à chaque chargement de rosegarden.

La résolution de l'horloge système est trop basse
Rosegarden n'a pas pu trouver d'horloge haute résolution pour l'interprétation MIDI.
Vous pouvez peut-être résoudre ce problème en chargeant le module noyau RTC timer. Pour faire ceci, essayez d'exécuter dans la fenêtre d'un terminal la commande sudo modprobe snd-rtctimer, puis relancez Rosegarden.

Pas de module rtc timer.

J'utilise timidity pour le midi.

Donc, je présume que je doit installer un noyau avec prise en charge du rt.

Il y a dans AUR kernel26-rt, mais celui-ci est basé sur 2.6.26. Le seul patch rt depuis 2.6.26 est 2.6.29-rt3.

Donc, je pense compiler 2.6.29.1 avec ce patch, mais lors de l'opération, j'ai ces messages que j'ai épuré pour ne garder que les messages importants:

[ph11@coincoin linux-2.6.29.1]$ bzcat ../patch-2.6.29-rt3.bz2 | patch -p1

patching file Makefile												   
Hunk #1 FAILED at 1.													 
1 out of 3 hunks FAILED -- saving rejects to file Makefile.rej
patching file arch/x86/kernel/check.c									
Hunk #1 FAILED at 83.													
1 out of 1 hunk FAILED -- saving rejects to file arch/x86/kernel/check.c.rej
patching file arch/x86/kernel/cpu/mtrr/generic.c							
Hunk #1 succeeded at 33 with fuzz 2.										
Hunk #2 succeeded at 220 with fuzz 2 (offset 28 lines).					 
Hunk #3 succeeded at 236 (offset 28 lines).								 
Hunk #4 succeeded at 355 (offset 28 lines).								 
Hunk #5 FAILED at 400.													  
Hunk #6 FAILED at 412.													  
Hunk #7 succeeded at 426 (offset 7 lines).								  
Hunk #8 succeeded at 461 (offset 7 lines).								  
Hunk #9 succeeded at 488 with fuzz 2 (offset 9 lines).					  
Hunk #10 succeeded at 557 (offset 9 lines).								 
2 out of 10 hunks FAILED -- saving rejects to file arch/x86/kernel/cpu/mtrr/generic.c.rej
patching file arch/x86/kernel/ptrace.c												   
Hunk #6 FAILED at 686.																   
Hunk #7 succeeded at 1415 (offset -1 lines).											 
Hunk #8 succeeded at 1441 (offset -1 lines).											 
1 out of 8 hunks FAILED -- saving rejects to file arch/x86/kernel/ptrace.c.rej
patching file arch/x86/kernel/tlb_uv.c												   
Hunk #5 FAILED at 751.																   
1 out of 5 hunks FAILED -- saving rejects to file arch/x86/kernel/tlb_uv.c.rej
patching file arch/x86/lguest/boot.c													 
Hunk #3 succeeded at 841 (offset 6 lines).											   
Hunk #4 succeeded at 1003 (offset 6 lines).											  
Hunk #5 succeeded at 1051 (offset 8 lines).											  
Hunk #6 succeeded at 1066 (offset 8 lines).
patching file arch/x86/mm/pat.c
Hunk #5 FAILED at 670.
Hunk #6 succeeded at 709 (offset 1 line).
1 out of 6 hunks FAILED -- saving rejects to file arch/x86/mm/pat.c.rej
Reversed (or previously applied) patch detected!  Assume -R? [n]

Ça me semblerait bizarre que ce patch ait déjà été appliqué. Quelqu'un peut m'expliquer le problème ?

Posté(e)
  • Auteur

C'est ce que je me demande aussi, mais je ne trouve pas de kernel 2.6.29. Je présume que le patch 2.6.29.1-rt n'est pas sorti ou ne sortira pas, ce qui serait embêtant si le noyau est indisponible.

Posté(e)
  • Auteur
Je pense qu'il suffit de recompiler le noyau avec le paramètre CONFIG_HZ à 1000.

Oui, c'est ce que j'ai fait. Mais le patchage a fonctionné aussi. Je n'ai plus ce problème avec la preemption complète et la fréquence à 1000Hz.

Par contre, il arrive que jackd se plante. Je devrais le backtracer.

Quel outil dois-je utiliser ? gdb ?

Posté(e)
  • Auteur

Il ne me semble pas. Je le dirais lors du prochain plantage.

Tu as des options à privilégier pour strace ?

Posté(e)
  • Auteur

Bon. Je viens d'utiliser les programmes sans faire de bt.

J'utilise jack, timidity et rosegarden.

Voilà ce que me dit jack

$ jackd -R -P 60 -d alsa -d hw:0 -r 48000 -p 128 -n 2 -S   
jackd 0.109.2															   
Copyright 2001-2005 Paul Davis and others.								  
jackd comes with ABSOLUTELY NO WARRANTY									 
This is free software, and you are welcome to redistribute it			   
under certain conditions; see the file COPYING for details				  

JACK compiled with POSIX SHM support.
loading driver ..					
apparent rate = 48000
creating alsa driver ... hw:0|hw:0|128|2|48000|0|0|nomon|swmeter|-|16bit
control device hw:0
configuring for 48000Hz, period = 128 frames (2.7 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 16bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 16bit little-endian
ALSA: use 2 periods for playback


**** alsa_pcm: xrun of at least 1239035385217.024 msecs

subgraph starting at rosegarden timed out (subgraph_wait_fd=25, status = 0, state = Running)

Là, je vois un problème entre jack et rosegarden, mais les logiciels ne se tuent pas.

**** alsa_pcm: xrun of at least 1239035385217.024 msecs


subgraph starting at TiMidity timed out (subgraph_wait_fd=25, status = 0, state = Running)
jackd watchdog: timeout - killing jackd

Ici, pareil, mais avec timidity et là, jack et timidity s'arretent.

$ timidity -iA -B2,8 -Oj -EFreverb=0
TiMidity starting in ALSA server mode
Opening sequencer port: 128:0 128:1 128:2 128:3
Playing time: ~324 seconds
Notes cut: 0
Notes lost totally: 0
^C[phil@Hal-9000 ~]$ timidity -iA -B2,8 -Oj -EFreverb=0
TiMidity starting in ALSA server mode
Opening sequencer port: 128:0 128:1 128:2 128:3

Processus arrêté

Il n'y a rien de spécial ici.

Pour rosegarden, il n'y a rien jusqu'ici:

Composition::getTrackById(0) - WARNING - track id not found, this is probably a BUG /build/src/rosegarden-1.7.3/src/base/Composition.cpp:1533											 
Available track ids are:																	 
Renaming device 0 to General MIDI Device													 
Disconnecting my port 3 from 128:0 on reconnection										   
Connecting my port 3 to 128:0 on reconnection												
AlsaDriver::setPlausibleConnection: connection like 129:0 TiMidity port 0 (write) requested for device 0																				  
AlsaDriver::setPlausibleConnection: fuzzy match 128:0 TiMidity port 0 (write) available with fitness 9																					
Renamed 129:3 to General MIDI Device														 
Renaming device 1 to MIDI software device 2												  
Renaming device 2 to MIDI software device 3												  
Renaming device 3 to MIDI software device 4												  
Disconnecting my port 4 from 128:1 on reconnection										   
Connecting my port 4 to 128:1 on reconnection												
AlsaDriver::setPlausibleConnection: connection like 129:1 TiMidity port 1 (write) requested for device 1																				  
AlsaDriver::setPlausibleConnection: fuzzy match 128:1 TiMidity port 1 (write) available with fitness 13																				   
Renamed 129:4 to MIDI software device 2													  
Disconnecting my port 5 from 128:2 on reconnection										   
Connecting my port 5 to 128:2 on reconnection												
AlsaDriver::setPlausibleConnection: connection like 129:2 TiMidity port 2 (write) requested for device 2																				  
AlsaDriver::setPlausibleConnection: fuzzy match 128:2 TiMidity port 2 (write) available with fitness 13																				   
Renamed 129:5 to MIDI software device 3													  
Disconnecting my port 6 from 128:3 on reconnection										   
Connecting my port 6 to 128:3 on reconnection												
AlsaDriver::setPlausibleConnection: connection like 129:3 TiMidity port 3 (write) requested for device 3																				  
AlsaDriver::setPlausibleConnection: fuzzy match 128:3 TiMidity port 3 (write) available with fitness 13																				   
Renamed 129:6 to MIDI software device 4													  
DataBlockRepository::clear()																 
Warning: Composition::~Composition() with 3 observers still extant						   
Observers are: 0x305eca0 [N10Rosegarden19SegmentParameterBoxE] 0x30d3960 [N10Rosegarden17TrackParameterBoxE] 0x316d200 [N10Rosegarden20CompositionModelImplE]							 
TrackButtons::slotUpdateTracks															   
SoundDriver::initialiseAudioQueue -- new queue has 0 files								   
AudioPlayQueue::~AudioPlayQueue()															
cannot complete execution of the processing graph (Ressource temporairement non disponible)  
zombified - calling shutdown handler														 
closed client																				
SoundDriver::clearAudioQueue																 

 ALSA Client information:

128,0 - (TiMidity, TiMidity port 0)		 (WRITE ONLY) [ctype 1, ptype 2, cap 66]
128,1 - (TiMidity, TiMidity port 1)		 (WRITE ONLY) [ctype 1, ptype 2, cap 66]
128,2 - (TiMidity, TiMidity port 2)		 (WRITE ONLY) [ctype 1, ptype 2, cap 66]
128,3 - (TiMidity, TiMidity port 3)		 (WRITE ONLY) [ctype 1, ptype 2, cap 66]

reset plugins

JackDriver::initialiseAudio - JACK sample rate = 48000Hz, buffer size = 128
JackDriver::initialiseAudio - found 6 JACK physical outputs				
JackDriver::initialiseAudio - connecting from "rosegarden:master out L" to "system:playback_1"
JackDriver::initialiseAudio - connecting from "rosegarden:master out R" to "system:playback_2"
JackDriver::initialiseAudio - found 2 JACK physical inputs
JackDriver::initialiseAudio - connecting from "system:capture_1" to "rosegarden:record in 1 L"
JackDriver::initialiseAudio - connecting from "system:capture_2" to "rosegarden:record in 1 R"
JackDriver::initialiseAudio - initialised JACK audio subsystem
SoundDriver::initialiseAudioQueue -- new queue has 0 files
AudioPlayQueue::~AudioPlayQueue()
cannot complete execution of the processing graph (Ressource temporairement non disponible)
zombified - calling shutdown handler
cannot read result for request type 7 from server (Connexion ré-initialisée par le correspondant)
closed client
reset plugins

JackDriver::initialiseAudio - JACK server not running
SoundDriver::clearAudioQueue

Posté(e)

whow, t'es hyper violent avec jack :ouioui: tu ne veux pas essayer avec une latence un poils plus grande (essaye 4, 6 ou 8 périodes, ce qui te donnera respectivement 5.4ms, 8.1ms et 10.8ms de latence). J'ai peur que timidity ne suive pas une telle cadence...

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.