RT Çekirdek Yönergeleri

Şuraya atla: kullan, ara

RT Çekirdek Yönergeleri SuSE 10.0 için Sürüm 2


This page in:
More languages
in the left sidebar

Linux sisteminizi bir işitsel-iş istasyonuna nasıl dönüştüreceğinize ilişkin küçük bir rehber

Gimpel'den HowTo'nun güncellenmişidir.(gimpel.funpic.de); çeviren oc2pus; Güncelleme metasymbol.

İşitsel-işlemde temel hedef gecikme süresidir. Gecikme süresi, im-yaratma ve sistemdeki işleyişe erişme arasındaki gecikmedir. (örneğin, klavyedeki bir tuşa basma ve sesi işitme arasında geçen süre) Windows ya da Mac kullanımında olduğu gibi, standart çekirdeklerde yavaş işleme(~11ms) olumsuzluğu bulunmaktadır. Sistem hızı arttığında; ki bu durumda gecikme süresi daha azalır; sistemde eş zamanlı olarak çalışan şeyler artar. (örn. daha fazla synths)

Ingo Molnar, RedHat geliştiricisi; ve bazı diğer kişiler Linux'te gecikme süresini en aza indirmek için bir proje başlattılar: Realtime Preemption. JACK demon (Jack Audio Connection Kit)adlı mükemmel bir işitsel donanım kullanarak, gecikme süresini < 1ms altına düşürdüler; ve MacOS X „coreaudio“ sisteme yaklaştılar. İlgilenenler için, bu yeni çekirdeğin nasıl derleneceğine ve kurulacağına ilişkin bilgilerle devam etmektedir.

Not:

Bu yalnızca deneysel bir çekirdektir. Geliştiriciler açısından rt-lsm eskimiştir. openSUSE için "resmi" Audio RT Kernel PAM for SCHED_FIF önceliklerini kullanacaktır.

Mevcut SuSE-çekirdeğine kıyasla bazı özellikler kaybolmaktadır :


- ide-disk sis5513 işlemci thermal fan denetim desteği

GÜNCELLEME Bu düzeltilebilir: (denenmedi) edit /[path to current kernel sources]/arch/i386/kernel/tsc.c, aşağıdaki satırları aratınız:

void tsc_c3_compensate(unsigned long usecs)
{
       u64 cycles = (usecs * tsc_khz)/1000;
       tsc_c3_offset += cycles;
}

Bundan sonra, aşağıdaki kodu giriniz :

EXPORT_SYMBOL_GPL(tsc_c3_compensate)

- reiser4 filesystem (IMHO İşitsel uygulamalar için yararsızdır. –) (?)

- lirc (IR uzaktan kumanda) (?)

- alt-bağlantı (gerekli değil, özdevinimli bağlantı için SuSE 9.2 uses udev, hal/dbus/ivman . Özdevinimli bağlanma özelliğini daha sonra, yeni çekirdek çalışırken kurabilirsiniz ) ) (?)

- bazı ipv6 malzemeleri ve bazı diğer "küçük şeyler" (?)

Örnek çekirdek, sabit 2.6.13.4 çekirdeğidir.


GÜNCELLEME: Bazı kullanıcılar, mevcut rt patch 20/21 ile güncel 2.6.14.3 çekirdeğini kurabildiklerini bildirmişlerdir.


Adım 1: çekirdek kaynakları ve gerekli yamaları yükleyiniz


  • mevcut vanilla kernel yükleyiniz
~> wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.4.tar.bz2
  • Realtime Preemption yamasını yükleyiniz
~> wget http://people.redhat.com/mingo/realtime-preempt/older/patch-2.6.13-rt14
  • realtime-lsm yamasını yükleyiniz

Bu özellik kullanıcıların gerçek zamanlı öncelik ile çalışmasına olanak tanır. (Bu yama; gelmekte olan “rt-limits�? nedeniyle artık geliştirmede değildir. 2.6.11.7 için yapılan son sürümü kullanıyoruz ve hala 2.6.13.4 üzerinde iyi çalışıyor.)


~> wget http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.11/2.6.11-mm4/broken-out/rt-lsm.patch
  • bootsplash seviyorsanız :
~> wget http://www.bootsplash.de/files/bootsplash-3.1.6-2.6.13.diff



Adım 2: Paketi çözünüz ve çekirdeği yamayınız


~> cd /usr/src/linux
~> su
<passwort>
# tar xvjf /path/to/linux-2.6.13.4.tar.bz2
# mv linux-2.6.13.4 linux-2.6.13.4-realtime
# cd linux-2.6.13.4-realtime
# patch -p1 < /path/to/patch-2.6.13-rt14
# patch -p1 < /path/to/rt-lsm.patch
# patch -p1 < /path/to/bootsplash-3.1.6-2.6.13.diff
  • Kendi çekirdeğiniz için serbest bırakma bilgisini değiştiriniz.
# vi Makefile

.. EXTRAVERSION=.4-jad3 ekleyin ve dosyayı kaydediniz.



Adım 4: Çekirdek yapılanması


  • Klonlama ile başlayınız

Çekirdeğin mevcut yapılanması her şeyin yolunda gitmesini sağlayacaktır:

# zcat /proc/config.gz > .config
  • Yapılanmada bazı düzenlemeler yapınız:
# make menuconfig
  • rt full preempt etkinleştiriniz
Processor type and features --->
Preemption Mode (Complete Preemption (Real-Time)) --->
( ) No Forced Preemption (Server)
( ) Voluntary Kernel Preemption (Desktop)
( ) Preemptible Kernel (Low-Latency Desktop)
(X) Complete Preemption (Real-Time)
  • realtime-lsm 'i etkinleştiriniz
Security options  --->
     <M>   Realtime Capabilities

"Çıkış" ile menüden çıkınız ve yapılanmayı kaydediniz.


Adım 5: Yeni çekirdeği derleyiniz ve kurunuz


  • Çekirdeği derlemek:
# make rpm

Uzun sürebilir ...


  • Çekirdeği kurmak:

Hangi çekirdeğin çalışmakta olduğunu denetleyiniz:

# rpm -qa | egrep kernel kernel-2.6.13-14-default

Veri tabanından varsayılanı siliniz:

# rpm -e --justdb kernel-2.6.13-14-default

JAD çekirdek kurulumu:

# rpm -ivh 2.6.13.4-jad3-default.i386.rpm
initrd yaratınız
# cd /boot
# mkinitrd -k vmlinuz-2.6.13.4-jad3-default -i initrd-2.6.13.4-jad3-default

simgesel bağlantılar yaratınız:

# ln -s initrd-2.6.11.7-jad.1 initrd-jad
# ln -s vmlinuz-2.6.11.7-jad1 vmlinuz-jad

Önyüklemeyi yapılandırınız

# vi /boot/grub/menu.lst

Eski çekirdeğiniz için var olan girişi kopyalayınız ve isimleri düzenleyiniz. İsim yeni çekirdeğiniz ile eşleşmelidir. (simgesel bağlantılar initrd-jad ve vmlinuz-jad)


  • Dua ediniz ve önyüklemeyi yeniden yapınız...



Adım 6: İşitsel RT deneyiniz ve etkinleştiriniz


  • Yeniden önyükleme sonrası;

Gerçek zamanlı kullanıcı birimini etkinleştirme zamanı :

Audio için için ID kullanıcıları belirleyiniz

~> ID uid=1000(metasymbol) gid=100(users) Gruppen=16(dialout), 17(audio), 33(video), 100(users)
~> su
şifre:
# modprobe commoncap
# modprobe real-time gid=17

Artık olağan kullanıcı Audio Realtime becerilerini kullanabilir.

# lsmod|grep real-time
real-time 5512 0
commoncap 7040 1 real-time

realtime doğru olarak çalışıyorsa :

# echo "modprobe real-time gid=17" > >/etc/init.d/boot.local

gerçek zamanlı kullanıcı biriminin başlatılmasını özdevimlileştirecektir.


  • qjackctl and zynaddsubfx ile

Audio RT test edin


“qjackctl�? başlatınız, ayarlarınızı yapınız,  basın “Start�? ->  JACK başarıyla çalışıyorsa,  “zynaddsubfx�? başlatınız,  qjackctl içinde “Connect�? açınız ve bağlantılarınızı yapınız. Umarız  ZynAddSubFX güzel sesi belirecektir.

İyi eğlenceler; bizi bilgilendirmeyi unutmayınız :) core at jacklab dot net



Bilinen Yanlışlar


mkinitrd -k başlangıç durumuna getirilirken :
/Driver modules: ide-disk sis5513 processor thermal fan/
/Filesystem modules:/
/WARNING:
/var/tmp/mkinitramfs.a11783/mnt/lib/modules/2.6.13.4-jad3--default/kernel/drivers/acpi/processor.ko
needs unknown symbol tsc_c3_compensate/
/Including: klibc initramfs udev/
/Bootsplash: SuSE (1024x768)/
/6568 blocks/