SHMEM? / PAM? / 2.6.20.4-rt [geloest]

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

SHMEM? / PAM? / 2.6.20.4-rt [geloest]

Beitrag von debdog » 11.04.2007 00:53:41

Hallo Alle,

ich habe ein Problem mit dem Ausführen von jackd als
Benutzer. Als root funktioniert alles, es ist wohl irgend ein Rechteproblem.

Erst mal die wichtigsten Teile der Ausgabe von jackd beim Start:

Code: Alles auswählen

/usr/bin/jackd -v -R -dalsa -dhw:0 -r44100 -p1024 -n2
...
cannot lock down memory for jackd (Cannot allocate memory)
...
JACK: unable to mlock() port buffers: Cannot allocate memory
...
cannot use real-time scheduling (FIFO at priority 20) [for thread  \
     -1228596304, from thread -1228596304] (1: Operation not permitted)
cannot use real-time scheduling (FIFO at priority 10) [for thread  \
     -1236989008, from thread -1236989008] (1: Operation not permitted)
Jackd läuft dann zwar aber nicht so ganz mit der gewünschten Performance.
Falls die ganze Ausgabe gewünscht ist, kein Problem ist schnell gemacht.

Aber, wenn ich die Meldung richtig verstehe, hat er Probs mit dem Zugriff
auf den Speicher. Das müsste in diesem Fall ja ein POSIX Shared Memory sein,
oder? Welches sich, wenn ich richtig informiert bin, als /dev/shm äussern
sollte?

Code: Alles auswählen

# ls -ld /dev/shm
drwxrwxrwt 2 root root 40 2007-04-09 01:53 /dev/shm
~# ls -l /dev/shm
insgesamt 0
Müsste da was drin sein?
Ein Ändern der Gruppe auf audio hatte keinen Einfluss. Soviel zum
Thema Shared Memory, Leider hab ich kein HowTo zu diesem Thema gefunden, so
kann ich nicht sagen ob ich da alles konfiguriert habe - wenn Jemand einen
Text dazu kennt, bin ich für einen Link wirklich dankbar!


Starte ich den jackd ohne -R tritt der Fehler nicht auf, ist die Frage, ob
jackd so kein SHMEM benötigt oder ob er nur im RT-Mode nicht auf Selbiges
zugreifen kann. Dann müsste ich im Bereich realtime-lsm/pam/rlimit suchen.
realtime-lsm scheidet aus Gründen aus, bleibt also pam mit rlimit oder
rlimit mit pam? Da dieses Thema wohl sehr neu ist, im 2.6.18 gab es wohl
realtime-lsm noch, sind die meisten Realtime-HowTos noch nicht mit pam
versehen. Die wenigen Welche haben nichts gebracht (

Code: Alles auswählen

# cat /etc/pam.d/wdm | grep pam
auth            required        pam_nologin.so
auth            required        pam_env.so
session         pam_limits.so
# cat /etc/security/limits.conf
# rtprio
@audio hard rtprio 90
@audio hard nice -5  
@audio - memlock 350000
).
Auch zu Diesem Thema, pam und/oder/mit rlimit, hab ich nicht viel Brauchbares gefunden - wobei ich
hier nicht mal genau weiß nach was ich suchen soll. Deshalb auch hier: bin
dankbar für jeden Link, Hinweis, Tipp ;-)


Natürlich, ich könnte die Progs einfach als root starten oder die sudoers
konfigurieren, irgendwo im Hinterkopf hab ich mich mittlerweile mit diesem Gedanken
schon 'angefreundet', aber es würd' mich schon arg kratzen wenn ich mein
System nicht so unter Kontrolle kriege wie ich das will ;-)

Vielen Dank schonmal vorab
ond nadirlich Griassla
debdog
Zuletzt geändert von debdog am 15.04.2007 16:57:20, insgesamt 1-mal geändert.
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 11.04.2007 01:10:44

Das ganze hat mit /dev/shm nichts zu tun und ist ein bekanntes Problem:
man jackd hat geschrieben: -R, --realtime
Use realtime scheduling. This is needed for reliable low-latency performance. On most sys-
tems, it requires jackd to run with special scheduler and memory allocation privileges,
which may be obtained in several ways. The simplest, and least-secure method is to run
jackd with root privileges. This means that all JACK clients must also run as root. With a
Linux 2.6 kernel, ordinary users can run jackd and its clients using options of the realtime
LSM. Linux 2.4 kernels need "POSIX draft capabilities" enabled (see the <linux/capabil-
ity.h> include file). Using that method, ordinary users who invoke the daemon using jack-
start, can later launch JACK clients without running them as root. See
http://jackit.sourceforge.net/docs/faq.php#a52 for more information.
Hier http://jackit.sourceforge.net/docs/faq.php#a52 sieht es so aus, als ob du um die rootrechte nicht herumkommst, wenn du aus realtime-lsm verzichten willst.

Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

Beitrag von debdog » 12.04.2007 00:31:22

Seid gegrüßt Spasswolf,

erst mal vielen Dank, daß Du dir diesen Monsterpost reingezogen hast bzw. soviel Geduld aufgebracht hast.
Lustiger Wolf hat geschrieben:Hier http://jackit.sourceforge.net/docs/faq.php#a52 sieht es so aus, als ob du um die rootrechte nicht herumkommst, wenn du aus realtime-lsm verzichten willst.
Es ist nicht so, daß ich realtime-lsm nicht verwenden will, eher daß es mit 2.6.20 anscheinend und angeblich nicht mehr funktioniert. Auswälen kann ich es nach dem Patchen zwar noch aber das Modul wird dann nicht gebaut. Und weil dort zu Lesen ist:
make xconfig hat geschrieben:Real-Time LSM (Obsolete) (REALTIME_CAPABILITIES)

This is an obsolete LSM - use newer PAM and rt-limites
to manage your real-time apps.

If you are unsure how to answer this question, answer N.
dachte ich, daß ich wohl besser pam verwende.

Auch hier wird behauptet es würde gehen. Aber das sind dann auch schon alle Infos die ich dazu so gefunden habe. Eine 'komplette' Beschreibung von PAM mit RLIMITS muss es doch irgendwo geben, ich hänge schon über zwei Wochen an diesem Problem und hab unzählige INetSeiten überflogen/gelesen/studiert aber nicht gefunden was ich suche.

Ich will Dich jetzt nicht vor den Kopf stossen, aber man jackd gibt ausser dem geposteten Text auch eine Jahreszahl aus: 2004. Und die jackdFAQ ist auch nicht auf dem neuesten Stand:
How should I configure my Linux 2.6 Operating System? hat geschrieben:Currently (as of 2.6.7) JACK has a...
Trotzdem noch mal Danke Spasswolf.

Und wenn doch Jemand was zu PAM und RLIMIT liefern kann, immer her damit (man pam hab ich schon probiert ;-) ).

debdog
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

brummer
Beiträge: 182
Registriert: 19.02.2007 19:21:23

Beitrag von brummer » 15.04.2007 14:04:19

hallo

bei mir funktioniert PAM einwandfrei,
version : libpam-modules 0.79-4
der eintrag in der /etc/security/limits.conf lautet bei mir:

Code: Alles auswählen

#<domain>      <type>  <item>         <value>
#

@audio           -       rtprio           99
@audio           -       memlock         250000
@audio           -       nice            -10
# End of file
der user muß midglied in der gruppe @audio sein um rtprio zu nutzen !

RTLIMITS ist bei dieser version nicht mehr nötig !

gruß brummer

Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

Beitrag von debdog » 15.04.2007 16:56:53

hi brummer,

vielen Dank für den Post. Es hat zwar nicht direkt geholfen aber, nachdem ich das System jetzt mal ein paar Tage stehen hab lassen, habe ich gerade neu gebootet um die /etc/security/limits.conf nochmals abzuändern und es funtioniert - einfach so, die '-' anstelle von 'hard' oder 'soft' hatte ich früher da auch drin stehen, die haben sich nur im Laufe des Probierens verändert. Ich hab keine Ahnung woran es jetzt genau lag, werde mich darum aber noch kümmern.

Ich sehe das Problem aber vorerst als erledigt an. Ausserdem habe ich heute Vormittag auch noch gefunden was ich gesucht habe:
http://www.kernel.org/pub/linux/libs/pam/modules.html
http://www.kernel.org/pub/linux/libs/pa ... M_SAG.html

Heute muss mein Glückstag sein :-D

Grüsse
debdog
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

Beitrag von debdog » 15.04.2007 23:56:06

Hab den Fehler gefunden.

Als ich den Post heute mittag schrieb war ich mittels ssh auf dem Musikrechner eingeloggt, da hat ja Alles funktioniert. Vorhin hab ich mich direkt an den Rechner gehockt und es funktionierte wieder nicht! In der gleichen Konsole ssh -l gleicherBenutzer localhost ausgeführt, und dann geht es.

Wo ist der Unterschied? Ich verwende (hier) den wdm als grafisches Frontend, also wird /etc/pam.d/wdm ausgeführt, /etc/pam.d/ssh und /etc/pam.d/login aber nicht! Folgerichtig hat in der .../wdm etwas gefehlt. Und so sollte es aussehen, dann klappt´s auch mit dem Nachbarn:

Code: Alles auswählen

$ cat /etc/pam.d/wdm
#%PAM-1.0
auth            required        pam_nologin.so
auth            required        pam_env.so
@include common-auth
@include common-account
@include common-session
session         required        pam_limits.so
Vielen Dank für Ihre Aufmerksamkeit :-D

debdog
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

Antworten