Kirjoittaja Aihe: Realtime Threads ? Renoise ja Ubuntu  (Luettu 4222 kertaa)

antti20121

  • Käyttäjä
  • Viestejä: 86
    • Profiili
Realtime Threads ? Renoise ja Ubuntu
« : 10.10.12 - klo:16.46 »
Moi,
Täytyisi ymmärtää alla oleva ja osata suorittaakin.
-----------------------------------------------------------
How do I configure Linux to enable Realtime Threads for ALSA or JACK?

To allow Renoise to create realtime threads, which are required for low latencies with ALSA or JACK, you have to edit the /etc/security/limits.conf file. A realtime kernel does NOT help here, does not set the required options automatically! To enable RT thread creation via PAM open the /etc/security/limits.conf file as root (or via sudo). Then somewhere at the end of the file add:

    YOURUSERNAME - rtprio 99
    YOURUSERNAME - nice −10
-----------------------------------------------------------
Voisiko joku kertoa miten tuo tehdään kun en osaa ylläolevien ohjeiden perusteella ?

Lepotila zZ

  • Käyttäjä
  • Viestejä: 346
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #1 : 10.10.12 - klo:18.02 »
Minullekin kelpaa neuvot, koska huomasin, että omalta koneeltani näitä realtime merkintöjä löytyy kolmesta eri tiedostosta. Ovatkohan ne ristiriitaisia? Riittäisiköhän yksikin? (Ubuntu 12.04)
/etc/security/limits.conf:
Koodia: [Valitse]
# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - an user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#        - NOTE: group and wildcard limits are not applied to root.
#          To apply a limit to the root user, <domain> must be
#          the literal username root.
#
#<type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
#<item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open files
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit (KB)
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#        - chroot - change root to directory (Debian-specific)
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#root            hard    core            100000
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

@audio - rtprio 90       # maximum realtime priority
@audio - memlock unlimited  # maximum locked-in-memory address space (KB)

# End of file
/etc/security/limits.d/audio.conf:
Koodia: [Valitse]
# Provided by the jackd package.
#
# Changes to this file will be preserved.
#

@audio   -  rtprio     95
@audio   -  memlock    unlimited
#@audio   -  nice      -19
/etc/security/limits.d/99-realtime.conf:
Koodia: [Valitse]
@realtime   -  rtprio     99
@realtime   -  memlock    unlimited

Lepotila zZ

  • Käyttäjä
  • Viestejä: 346
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #2 : 10.10.12 - klo:18.38 »

To allow Renoise to create realtime threads, which are required for low latencies with ALSA or JACK, you have to edit the /etc/security/limits.conf file. A realtime kernel does NOT help here, does not set the required options automatically! To enable RT thread creation via PAM open the /etc/security/limits.conf file as root (or via sudo). Then somewhere at the end of the file add:

    YOURUSERNAME - rtprio 99
    YOURUSERNAME - nice −10
-----------------------------------------------------------
Voisiko joku kertoa miten tuo tehdään kun en osaa ylläolevien ohjeiden perusteella ?

Omissa tiedostoissani ei ole käyttäjänimeäni vaan käyttäjäryhmän nimi (@audio). Oman käyttäjännimensä voi sitten lisätä audio-ryhmän jäseneksi. Muistaakseni tein tämän jollakin graafisella sovelluksella, mutta en sellaista nyt xfce-valikostani löydä.

Kernelin on tuettava realtime-säikeitä eli tavallisen tilalle tulee asentaa lowlatency -kernel.

Renoisessa minulla on asetuksissa valittuna "Realtime audio CPUs" kohdassa 1 CPU vaikka koneessa on kaksi ydintä. Kahden ytimen käyttö audio-säikeisiin aiheuttaa xruneja.

antti20121

  • Käyttäjä
  • Viestejä: 86
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #3 : 14.10.12 - klo:17.29 »
Seuraavan lauseen jos osaisin suorittaa voisin ehkä edistyä.

" To enable RT thread creation via PAM open the /etc/security/limits.conf file as root (or via sudo)."

Voisiko joku kertoa miten tuo tehdään ?

PAM ? mikä se on ?

Kuinka avaus suoritetaan ?

Vika/fiba

  • Käyttäjä
  • Viestejä: 652
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #4 : 14.10.12 - klo:18.01 »
PAMista en tiedä, mutta tiedosto avataan päätteessä (via sudo eli sudolla eli pääkäyttäjän oikeuksin)
Koodia: [Valitse]
gksudo gedit /etc/security/limits.conf Avautuvan tiedoston loppuun laitat nuo rivit, tallennat ja suljet tiedoston. Yuorusernamen tilalle tietysti oma käyttäjänimesi :P

@Lepotila zz: luulen, että tuon /etc/security/limits.conf-tiedoston käpistely riittää.

Lepotila zZ

  • Käyttäjä
  • Viestejä: 346
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #5 : 14.10.12 - klo:19.44 »
Minulla on asennettuna kxstudion jack2 - en tiedä voisiko tällä olla vaikutusta näiden tiedostojen toimintaan.

Ilmeisesti Jack käyttää koneellani /etc/security/limits.d/audio.conf -tiedostoa, joten merkinnät /etc/security/limits.conf -tiedostoon eivät ole välttämättömiä. Htop näyttää audiosäikeiden prioriteetiksi -96, joten luulen, että tämä vastaa audio.conf tiedostoni merkintää 95 eikä limits.conf tiedostoni merkintää 90.

Jackin sivuilta http://jackaudio.org/linux_rt_config saa sen vaikutelman, että merkinnät tulisi tehdä tiedostoon /etc/security/limits.d/99-realtime.conf. Luultavasti kuitenkaan tällä tiedostolla ei ole mitään vaikutusta koneellani - se määrittelee prioriteetiksi 99, mutta htop tosiaan näyttää -96.

Memlock ja nice asetuksista on kirjoitettu:
 
Lainaus
Setting memlock to unlimited shouldn't be strictly necessary since most apps would work fine with lower values (such as 500000).
 However, certain applications have been reported to complain or even to crash with lower values than unlimited.
 On the other hand, giving unlimited capability of locking memory can cause buggy applications to temporarily freeze the whole system.
...
You could also allow the audio group to renice processes with the help of the limits.conf file, but since nice uses SCHED_OTHER it basically does nothing to increase the performance of a low-latency real-time audio environment that relies on SCHED_FIFO/SCHED_RR. Consult the sched_setscheduler manpage for more info on this subject.

Nice määrittely reaaliaikaisille säikeille lienee siis turhaa, mutta harmitonta.

antti20121

  • Käyttäjä
  • Viestejä: 86
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #6 : 15.10.12 - klo:11.44 »
PAMista en tiedä, mutta tiedosto avataan päätteessä (via sudo eli sudolla eli pääkäyttäjän oikeuksin)
Koodia: [Valitse]
gksudo gedit /etc/security/limits.conf Avautuvan tiedoston loppuun laitat nuo rivit, tallennat ja suljet tiedoston. Yuorusernamen tilalle tietysti oma käyttäjänimesi :P

Kiitoksia, tein tuon muttei auttanut.  Ilmoitus tulee, failed to open realtime threads etc. for ALSA.

Lepotila zZ

  • Käyttäjä
  • Viestejä: 346
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #7 : 15.10.12 - klo:22.05 »
PAMista en tiedä, mutta tiedosto avataan päätteessä (via sudo eli sudolla eli pääkäyttäjän oikeuksin)
Koodia: [Valitse]
gksudo gedit /etc/security/limits.conf Avautuvan tiedoston loppuun laitat nuo rivit, tallennat ja suljet tiedoston. Yuorusernamen tilalle tietysti oma käyttäjänimesi :P

Kiitoksia, tein tuon muttei auttanut.  Ilmoitus tulee, failed to open realtime threads etc. for ALSA.
Luulen, että oikeuksien muuttamisen jälkeen on uudelleen kirjauduttava (tai käynnistettävä kone uudelleen) ennen kuin muutokset tulevat voimaan.

Onhan sinulla rt-säikeitä tukeva kernel käytössä?

Ei nyt muuta tule mieleen... ehkä lisätä "memlock unlimited" merkintä limits.conf -tiedostoon.

antti20121

  • Käyttäjä
  • Viestejä: 86
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #8 : 16.10.12 - klo:10.31 »
Kyllä uskoisin että on RT säikeitä tukeva Kerneli, tuleeko mieleen miten tuon voisi tehdä, ehkä Renoisen antamat ohjeet ovat vain suuntaa antavia, Tai tietääkö joku onko tuo ohje oikein annettu?
Asennusohjekin  oli vain sinnepäin.


Lepotila zZ

  • Käyttäjä
  • Viestejä: 346
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #9 : 16.10.12 - klo:12.26 »
Kyllä uskoisin että on RT säikeitä tukeva Kerneli, tuleeko mieleen miten tuon voisi tehdä, ehkä Renoisen antamat ohjeet ovat vain suuntaa antavia, Tai tietääkö joku onko tuo ohje oikein annettu?
Asennusohjekin  oli vain sinnepäin.


Kernelin version voi tarkistaa esimerkiksi päätteeltä kirjoittamalla:
Koodia: [Valitse]
uname -aMinulla tulos sisältää rimpsun "3.2.0-23-lowlatency". Jos sen sijaan esiintyy sana "generic", ei kernel tue rt-säikeitä. Edit: En olekaan ollenkaan varma tästä. Ehkä lowlatency vain mahdollistaa pienemmät latenssiajat.

Huomasin myös, että minulla on asennettuna paketti nimeltään rtirq-init. Sen ei kuitenkaan pitäsi olla välttämätön rt-säikeille.

(Ihmettelen, ettei asiantuntevampaa apua ole tullut. Ehkä "Multimedia ja grafiikka" osio olisi ollut sopivampi näille kysymyksille...)
« Viimeksi muokattu: 16.10.12 - klo:17.17 kirjoittanut Lepotila zZ »

Lepotila zZ

  • Käyttäjä
  • Viestejä: 346
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #10 : 16.10.12 - klo:18.15 »
Osoitteesta http://wiki.linuxmusicians.com/doku.php?id=system_configuration&DokuWiki=bfa0924709c27bf34ab2751b7ebfdbbf selvisi, että nykyään myös generic kernel kykenee rt-säikeisiin, lowlatency kernel vain saattaa kyetä lyhyempiin latenssiaikoihin.

Summa summarum: En tiedä miksi rt-säikeet eivät sinulla toimi...

koivukoski1

  • Käyttäjä
  • Viestejä: 722
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #11 : 16.10.12 - klo:20.56 »
Audio.confissa neuvotaan...     dpkg-reconfigure -p high jackd
Jos halutaan muuttaa reaaliaika lupia. Ubuntussa... sudo  ...tuohon eteen.
AVLinuxin manuaalissa esim. 40-rtc-permissions.rules, bootti flagit ...threadirqs... yms.
Yritin saada saman virheen kommentoimalla konfini, mutta ei onnistunut, joten vaikea neuvoa.
Jos kuitenkin laitat sen audio.confin kuntoon ja ajat tuon ...sudo dpkg....rimpsun paatteesta.

koivukoski1

  • Käyttäjä
  • Viestejä: 722
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #12 : 24.10.12 - klo:11.30 »
Vahan myohaan, mutta kuitenkin.

  /etc/udev/rules.d/40-timer-permissions.rules ...onko tallaista?
Koodia: [Valitse]
KERNEL=="rtc0", GROUP="audio"
KERNEL=="hpet", GROUP="audio"
(tai nimella NAME="joku")

t. Koivukoski1

Lepotila zZ

  • Käyttäjä
  • Viestejä: 346
    • Profiili
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #13 : 24.10.12 - klo:18.48 »
Vahan myohaan, mutta kuitenkin.

  /etc/udev/rules.d/40-timer-permissions.rules ...onko tallaista?
Koodia: [Valitse]
KERNEL=="rtc0", GROUP="audio"
KERNEL=="hpet", GROUP="audio"
(tai nimella NAME="joku")

t. Koivukoski1
Minulla ei ole tuollaista tiedostoa ja rt-säikeet toimivat hyvin (1,5ms latenssi) - rt-säikeiden toimimattomuus ei voi olla tuosta tiedostosta kiinni.

Heikki Ketoharju

  • Käyttäjä
  • Viestejä: 716
  • Tee enemmän, harmittaa vähemmän!
    • Profiili
    • heikki.ketoharju.info
Vs: Realtime Threads ? Renoise ja Ubuntu
« Vastaus #14 : 27.10.12 - klo:18.00 »
Hei!

Minä neuvon näissä asioissa mielelläni (sen mitä nyt osaan), mutta en tosiaan koskaan katso tätä peruskäyttö -osiota. Jos siis musiikinteko ei Linuxilla luonnistu, niin silloin kannattaa kysyä tuolla Multimedia ja grafiikka -osastolla.

1) Minä olen laittanut nuo PAM-säännöt tiedostoon /etc/security/limits.d/audio.conf. Periaatteessa ei toki ole väliä mihin ne laittaa (Jackaudion sivuilla oleva ohje on ihan yhtä hyvä), mutta Ubuntussa on valmiina tuo /etc/security/limits.d/audio.conf -tiedosto, joten siksi olen sitä käyttänyt.

2) Ubuntussa on tapana luoda audio-ryhmä, ja laittaa oma käyttäjä siihen ryhmään. Eli ne kaksi riviä, mitkä tiedostoon laitat, pitää olla muotoa
Koodia: [Valitse]
@audio   -  rtprio     95
@audio   -  memlock    unlimited
...ja sen jälkeen lisäät itsesi audio-ryhmään. Kun kirjoitat komentoriville
Koodia: [Valitse]
groupsja painat enter, saat listauksen ryhmistä, joihin kuulut.
Jos haluat lisätä itsesi audio-ryhmään, ja käyttäjätunnuksesi on heikki, anna seuraava komento komentorivillä:
Koodia: [Valitse]
sudo usermod --append --groups audio heikki
Aiemmin tämän pystyi Ubuntussa tekemään graafisesti, mutta Gnome kolmosen ja uusitun control panelin myötä se asetuspaneeli näyttää kadonneen. Jos joku tietää graafisen ohjelman tätä hommaa varten, kertokoon. Ja jos joku tuntee intoa hackata, niin varmaan Gnomen tyypit ottaisi mielellään vastaan avun tuon ryhmä-systeemin kehittämisessä.

3) Anna vielä komentorivillä komento
Koodia: [Valitse]
sudo dpkg-reconfigure -p high jackd, kuten koivukoski1 neuvoi. Järjestelmä konfiguroi Jackin uudestaan, ja uudet asetukset tulevat siten käyttöön.

4) Lowlatency-kerneli ei ole rt-kerneli. Kerneleitä on siis useaa eri tyyppiä: generic eli tavallinen, lowlatency eli tavallinen muunnelluilla asetuksilla ja rt eli Ingo Molnarin patchaama versio.

3.0-versiosta lähtien generic-kerneli on suoriutunut audiokäytössäkin sangen hyvin (jos tarkkoja ollaan, muutos tapahtui jo versiossa 2.6.39, mutta 3 on helpompi luku muistaa)

Tässä on ohjeet realtime-kernelistä: https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel
« Viimeksi muokattu: 27.10.12 - klo:18.02 kirjoittanut Heikki Ketoharju »
-
Minä kirjoittelen suomenkielisiä ohjeita Linux-musiikintekoon:
http://linux.fi/wiki/Musiikinteko_Linuxilla
-
Kansainvälinen Linux-audio -wiki, sovellusluettelo ja äänikorttitietokanta:
http://wiki.linuxaudio.org