RT Çekirdek Yönergeleri
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.
- Proje Sayfası: JackLab
İş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/