Перша частина знаходиться тут.
Опишу тепер досвід в конфігурації і використання Малинки.
Показ дописів із міткою Arch. Показати всі дописи
Показ дописів із міткою Arch. Показати всі дописи
пʼятниця, 15 січня 2016 р.
вівторок, 12 січня 2016 р.
Raspberry Pi 2 як мінімалістичний десктоп? Частина 1.
Ця машинка появилася в мене випадково, але якщо вже з'явилася, тож опишу свій досвід колупання в ній.
середа, 5 травня 2010 р.
Інсталяція VDR для archlinux
Це доповнений вільний переклад цього wiki.
Базове налаштування Archlinux
Перш за все Вам потрібно заінсталювати Archlinux. Рекомендується створити одну партицію для системи і ще одну для Ваших записів. Останню змонтувати до /var/lib/video.00. Тут є приклад стрічки в fstab:
/dev/sda3 /var/lib/video.00 ext3 defaults,user 0 2
Після інсталяції основної системи бажано мати доступ до VDR. Для цього інсталюємо ssh сервер:
pacman -Sy openssh
Дозволити з’єднання з сервером:
nano /etc/hosts.allow
і додаємо стрічку:
# let everyone connect to you
sshd: ALL
Також перевіряємо файл /etc/hosts.deny чи має стрічку
ALL: ALL: DENY
Якщо не має, то додаємо її.
Стартуємо sshd демон, і додаємо sshd до файлу /etc/rc.conf щоб демон стартував при завантаженні:
/etc/rc.d/sshd start
nano /etc/rc.conf
DAEMONS=(... ... sshd ... ...)
Перевіряємо чи працює віддалене з’єднання знашим сервером:
ssh -l
Було б добре синхронізувати локальну базу пакунків з репозитаріями:
pacman -Sy
і інсталювати пакети для подальшого збирання VDR:
pacman -S base-devel kernel-headers
Нарешті можна приступати до установки VDR. Перед інсталяцією варто переконатися, що система підтримує Вашу DVB-S чи DVB-S2. На даний момент практично майже всі карти підтримується. Якщо карта не підтримується, спробуйте скомпілювати і інсталювати драйвера від Ігоря Ліпляніна. Якщо використовується карта NVIDIA, яка підтримує технологію VDPAU (Video Decode and Presentation API for Unix), то зверніться до сторінки VDPAU.
Lirc
LIRC = "Linux Infrared Remote Control", програма, яка управляє пристроями, що використовують інфрачервоний порт з linux.
Інсталяція lirc:
pacman -S lirc lirc-utils
Пакет lirc забезпечує відповідний модуль ядра.
Пристрої на базі X10
Для пристроїв, які базовані на протоколі X10, потрібно використати lirc_atiusb, і відповідно додати в чорний список непотрібні модулі від lirc (ati_remote):
nano /etc/modprobe.d/modprobe.conf
Щоб додати до чорного списку, дописуємо стрічку:
blacklist ati_remote
Далі потрібно відредагувати /etc/rc.conf і додати демон lircd до списку демонів, щоб демон стартував при завантаженні:
DAEMONS="(... lircd)"
Тепер потрібно відредагувати lircd.conf для X10, наприклад так як у прикладі тут USB_X10. Для цього створити якийсь файл в /etc/conf.d/ , наприклад:
nano /etc/conf.d/lircd_X10.conf
Вставити в нього код з прикладу вище і зберегти його. Тепер потрібно додати його конфігураційного файлу lircd:
nano /etc/conf.d/lircd
Він повинен виглядати подібно до цього:
LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER=""
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/conf.d/lircd_X10.conf"
Потім запустити irw з командної стрічки і понатискати якісь кнопки на пульті. Повинен бути відгук на команди пульта:
[crow@vdrbox ~]$ irw
00000014e20d0000 00 1 Medion_X10
00000014e20d0000 01 1 Medion_X10
000000140b360000 00 ren Medion_X10
000000140b360000 01 ren Medion_X10
00000014ed180000 00 snapshot Medion_X10
00000014ed180000 01 snapshot Medion_X10
Це означає, що все ОК.
Пристрої на базі lirc_serial
Після інсталяції lirc і lirc-utils потрібно впевнитися, що Ви маєте серійний порт, для цього зробити "dmesg |grep ttyS". Це повинно дати щось подібне на це:
[@~]# dmesg |grep ttyS
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:01: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[@~]#
В цьому прикладі ми бачимо, що наш порт є на пристрої ttyS0. Тепер потрібно викликати драйвер ядра lirc_serial, запускаючи "modprobe lirc_serial". Якщо немає ніяких помилок, то продовжуємо далі. Якщо ж виходить якась помилка, тто потрібно її виправити.
[@~]# modprobe lirc_serial
FATAL: Error inserting lirc_serial (/lib/modules/2.6.32-ARCH/kernel/drivers/misc/lirc_serial.ko): Device or resource busy
то тут видно, що серійний порт вже використовується, і потрібно це припинити наступними діями:
[@~]# pacman -S setserial
[@~]# setserial /dev/ttyS0 uart none
[@~]# modprobe lirc_serial
Відгук "dmesg" повинен бути схожий на це:
lirc_dev: IR Remote Control driver registered, major 61
lirc_serial: port 03f8 already in use
lirc_serial: use 'setserial /dev/ttySX uart none'
lirc_serial: or compile the serial port driver as module and
lirc_serial: make sure this module is loaded first
lirc_serial: auto-detected active low receiver
lirc_dev: lirc_register_driver: sample_rate: 0
lirc_serial $Revision: 5.104 $ registered
Це означатиме, що тепер все в порядку. Завтоматизуємо подані вище команди, використовуючи окремий конфігураційний файл для lirc:
[@~]# nano /etc/modprobe.d/lirc_custum.conf
Вставимо ці команди туди:
alias char-major-61 lirc_serial
options lirc_serial irq=4 io=0x3f8
install lirc_serial /usr/bin/setserial /dev/ttyS0 uart none; /sbin/modprobe --ignore-install lirc_serial
Зберігаємо і перевіряємо /etc/conf.d/lircd.conf що він має правильні налаштування:
LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER=""
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/conf.d/lircd_xbox360.conf"
Також потрібно додати lirc_serial до файлу /etc/rc.conf, щоб він викликався при завантаженні системи, тобто в /etc/rc.conf додати lirc_serial в MODULES=() :
MODULES=(lirc_serial)
Покладемо lircd_xbox360.conf або конфігураційний файл Вашого пульта в /etc/conf.d/ , пам’ятаючи про зміну шляху до нього в lircd.conf. Після старту lircd і запуску irw Ви повинні побачити подібне:
[@~]#/etc/rc.d/lircd start
[@~]# irw
000000037ff00bfe 00 1 Harmony_XBOX_360
000000037ff00bfe 01 1 Harmony_XBOX_360
000000037ff00bfd 00 2 Harmony_XBOX_360
000000037ff00bfd 01 2 Harmony_XBOX_360
000000037ff00bfc 00 3 Harmony_XBOX_360
000000037ff00bfc 01 3 Harmony_XBOX_360
^C
[@~]#
Потрібно також додати lircd демон до /etc/rc.conf, так як це було зроблено для пристроїв на базі X10, перезавантажити комп’ютер, запустити irw і переконатися що відклик є правильним. Після цього продовжувати наступні кроки. Далі ми заінсталюємо xorg і alsa.
xorg, alsa і драйвери nvidia
pacman -S xorg fam hal
#Advanced Linux Sound Architecture (ALSA)
pacman -Sy alsa-lib alsa-utils
Відредагуйте /etc/rc.conf і додайте alsa до демонів:
DAEMONS="(... alsa...)"
Якщо Ви використовуєте HDMI, то потрібно включити hdmi/iec958/spdif, оскільки по замовчуванню воно відключено. Так само бажано перевірити, чи наша карта (hdmi/iec958) є в списку за допомогою aplay -L :
Якщо Ви це бачите, тоді включіть SPDIF вивід за допомогою alsamixer . Використовуючи клавіші "вправо" і "вліво" перейдіть до пристрою "iec958/hdmi/spdif" і зніміть заглушку, натиснувши клавішу "m". Тоді переконайтеся, що все працює:
Базова інструкція по VDR
Ми використовуємо звичайного користувача для компіляції всього VDR. В цьому прикладі це буде archvdr (можна змінити на будь-якого на Ваш розсуд):
useradd -m -G users,audio,lp,optical,storage,video,wheel,power -s /bin/bash archvdr
Це додасть користувача до всіх потрібних груп, а ця команда встановить пароль для цього користувача:
passwd archvdr
Потрібно інсталювати sudo, щоб мати змогу інсталювати пакети як користувач:
pacman -S sudo
EDITOR=nano visudo
І додати стрічку під: # User privilege specification root ALL=(ALL) ALL:
archvdr ALL=(ALL) ALL
Тепер можете залогуватися як новий користувач archvdr і продовжувати інсталяцію VDR. Для цього заінсталюємо subversion і скачаємо PKGBUILD-и VDR пакетів:
sudo pacman -S subversion
svn co https://archvdr.svn.sourceforge.net/svnroot/archvdr archvdr
Драйвера nvidia і утиліти
Ми використовуємо офіційні драйвера nvidia з репозиторію archlinux.
sudo pacman -Sy nvidia nvidia-utils libvdpau
Тепер потрібно створити файл xorg.conf для X11, і оскільки GUI не буде використовуватися, тож відключимо composite, який часом створює проблеми без інстальованого GUI.
sudo nvidia-xconfig --no-composite
Після інсталяції драйверів для nvidia можна компілювати VDR.
Почнемо з драйверів DVB-S2, ttf-symbols і start-stop-daemon.
s2-liplianin-hg
cd ../s2-liplianin-hg
sudo pacman -S mercurial
makepkg -s
sudo pacman -f -U s2-liplianin-hg-*-i686.pkg.tar.gz
УВАГА!!! Після кожної інсталяції ядра Archlinux потрібно переінстальовувати s2-liplianin-hg!!!!
ttf-vdrsymbols
cd ../ttf-vdrsymbols/
makepkg -s
sudo pacman -U ttf-vdrsymbols-*-i686.pkg.tar.gz
start-stop-daemon
cd ../start-stop-daemon/
makepkg -s
sudo pacman -U start-stop-daemon-*-i686.pkg.tar.gz
VDR
cd ../vdr-1.7.19/
makepkg -s
sudo pacman -U vdr-1.7.*-i686.pkg.tar.gz
Інсталяція VDR також додасть користувача і групу vdr, однак потрібно вручну додати його до списку sudors:
sudo EDITOR=nano visudo
І під стрічкою: "# User privilege specification root ALL=(ALL) ALL" додаємо це:
vdr ALL=(root) NOPASSWD: ALL
Цього повинно бути достатньо для VDR. Тепер збудуємо кілька vdr-плагінів і системних пакетів для VDR.
vdr-acpiwakeup
cd ../vdr-addon-acpiwakeup/
makepkg -s
sudo pacman -U vdr-addon-acpiwakeup-*-i686.pkg.tar.gz
xine-lib
cd ../xine-lib-1.2/
makepkg -s
sudo pacman -U xine-lib-vdpau-*-i686.pkg.tar.gz
xine-ui
cd ../xine-ui-vdr-cvs/
makepkg -s
sudo pacman -U xine-ui-vdr-*-i686.pkg.tar.gz
vdr-xineliboutput
cd ../vdr-plugin-xineliboutput-cvs/
makepkg -s
sudo pacman -U vdr-plugin-xineliboutput-*-i686.pkg.tar.gz
xine-vdr
cd ../vdr-plugin-xine/
makepkg -s
sudo pacman -U vdr-plugin-xine-*-i686.pkg.tar.gz
Старт vdr
sudo /etc/rc.d/vdr start
Підготовка графічного клієнта VDR
Нижче вважається, що ви маєте робочий xorg.conf і що X сервер запущено.
Інсталяція vdr-scripts
Нам потрібно vdr-plugin-signal, рскільки vdr-scripts залежить від нього:
cd ../vdr-plugin-signal/
makepkg -s
sudo pacman -U vdr-plugin-signal-*-i686.pkg.tar.gz
vdr-scripts
cd ../vdr-scripts/
makepkg -s
sudo pacman -U vdr-scripts-*i686.pkg.tar.gz
Пакет vdr-scripts містить скрипти для обслуги Вашого VDR. Він також містить деякі специфічні скрипти для старту і зупинки графічного клієнта VDR. Корисно подивитися на вміст цього пакету і за необхідності виправити потрібні файли.
В /etc/default/vdrfrontend Ви можете вибрати бажаний графічний клієнт.
* FRONTEND=xinexv : xine плагін в зв’язці з відео драйвером xv
* FRONTEND=xinevdpau : xine плагін в зв’язці з відео драйвером vdpau
* FRONTEND=sxfexv: xineliboutput плагін в зв’язці з відео драйвером xv
* FRONTEND=sxfevdpau : xineliboutput плагін в зв’язці з відео драйвером vdpau
Якщо Ви бажаєте запустити інший клієнт або щось змінити, то загляньте до /var/lib/vdr/vdr-client.
Після закінчення налаштувань запускаєте клієнт:
/etc/rc.d/vdrclient start
В комбінації з плагіном vdr-plugin-menuorg Ви можете використати vdr-scipts для рестарту wlan або зробити копію вашої інсталяції VDR.
Підказка: Додайте в grub.conf до параметрів ядра nox. Це дозволить Вам завантажитися без клієнта vdr. Це помічне, якщо Вам потрібен shell.
Закінчення
Якщо все працює як очікувалося, Ви можете автоматично стартувати vdr і графічний клієнт vdrclient. Відредагуйте /etc/rc.conf і додайте до списку демонів:
DAEMONS="(... vdr-addon-acpiwakeup vdr-pre @vdr @vdrclient)"
Копія (backup)
Коли все зроблено, можна про всяк випадок зберегти копію Вашого VDR. Найлегший шлях це використати vdr-scripts і vdr-plugin-menuorg.
Ви повиння побачити ED's команди в головнрму меню. Знайдіть їх і виберіть Backup в наступному меню.
Ви побачите екранне повідомлення що почався процес збереження. (Використайте vdr-plugin-mlist щоб прочитати пропущені повідомлення.)
Коли збереження закінчиться, Ви можете знайти його в /backup/.
Увага: Скрипт збереження копії очистить системні логи у /var/log/.
VDPAU трюки
На AMD машинах важливо встановити мінімальну частоту CPU на 1.8GHz для отримання добрих результатів з VDPAU.
Це обмеження походить з включеного контролера пам’яті в CPU.
Інсталяція cpufrequtils
pacman -S cpufrequtils
і додайте до списку демонів в /etc/rc.conf :
DAEMONS="(... cpufrequtils)
Відредагуйте /etc/conf.d/cpufreq і впевніться, що виставлено min_freq="1.8GHz", так як в прикладі:
#configuration for cpufreq control
# valid governors:
# ondemand, performance, powersave,
# conservative, userspace
governor="ondemand"
# valid suffixes: Hz, kHz (default), MHz, GHz, THz
min_freq="1.8GHz"
max_freq="2.5GHz"
Файл build_vdr_stuff.sh
Базове налаштування Archlinux
Перш за все Вам потрібно заінсталювати Archlinux. Рекомендується створити одну партицію для системи і ще одну для Ваших записів. Останню змонтувати до /var/lib/video.00. Тут є приклад стрічки в fstab:
/dev/sda3 /var/lib/video.00 ext3 defaults,user 0 2
Після інсталяції основної системи бажано мати доступ до VDR. Для цього інсталюємо ssh сервер:
pacman -Sy openssh
Дозволити з’єднання з сервером:
nano /etc/hosts.allow
і додаємо стрічку:
# let everyone connect to you
sshd: ALL
Також перевіряємо файл /etc/hosts.deny чи має стрічку
ALL: ALL: DENY
Якщо не має, то додаємо її.
Стартуємо sshd демон, і додаємо sshd до файлу /etc/rc.conf щоб демон стартував при завантаженні:
/etc/rc.d/sshd start
nano /etc/rc.conf
DAEMONS=(... ... sshd ... ...)
Перевіряємо чи працює віддалене з’єднання знашим сервером:
ssh -l
Було б добре синхронізувати локальну базу пакунків з репозитаріями:
pacman -Sy
і інсталювати пакети для подальшого збирання VDR:
pacman -S base-devel kernel-headers
Нарешті можна приступати до установки VDR. Перед інсталяцією варто переконатися, що система підтримує Вашу DVB-S чи DVB-S2. На даний момент практично майже всі карти підтримується. Якщо карта не підтримується, спробуйте скомпілювати і інсталювати драйвера від Ігоря Ліпляніна. Якщо використовується карта NVIDIA, яка підтримує технологію VDPAU (Video Decode and Presentation API for Unix), то зверніться до сторінки VDPAU.
Lirc
LIRC = "Linux Infrared Remote Control", програма, яка управляє пристроями, що використовують інфрачервоний порт з linux.
Інсталяція lirc:
pacman -S lirc lirc-utils
Пакет lirc забезпечує відповідний модуль ядра.
Пристрої на базі X10
Для пристроїв, які базовані на протоколі X10, потрібно використати lirc_atiusb, і відповідно додати в чорний список непотрібні модулі від lirc (ati_remote):
nano /etc/modprobe.d/modprobe.conf
Щоб додати до чорного списку, дописуємо стрічку:
blacklist ati_remote
Далі потрібно відредагувати /etc/rc.conf і додати демон lircd до списку демонів, щоб демон стартував при завантаженні:
DAEMONS="(... lircd)"
Тепер потрібно відредагувати lircd.conf для X10, наприклад так як у прикладі тут USB_X10. Для цього створити якийсь файл в /etc/conf.d/ , наприклад:
nano /etc/conf.d/lircd_X10.conf
Вставити в нього код з прикладу вище і зберегти його. Тепер потрібно додати його конфігураційного файлу lircd:
nano /etc/conf.d/lircd
Він повинен виглядати подібно до цього:
LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER=""
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/conf.d/lircd_X10.conf"
Потім запустити irw з командної стрічки і понатискати якісь кнопки на пульті. Повинен бути відгук на команди пульта:
[crow@vdrbox ~]$ irw
00000014e20d0000 00 1 Medion_X10
00000014e20d0000 01 1 Medion_X10
000000140b360000 00 ren Medion_X10
000000140b360000 01 ren Medion_X10
00000014ed180000 00 snapshot Medion_X10
00000014ed180000 01 snapshot Medion_X10
Це означає, що все ОК.
Пристрої на базі lirc_serial
Після інсталяції lirc і lirc-utils потрібно впевнитися, що Ви маєте серійний порт, для цього зробити "dmesg |grep ttyS". Це повинно дати щось подібне на це:
[@~]# dmesg |grep ttyS
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:01: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[@~]#
В цьому прикладі ми бачимо, що наш порт є на пристрої ttyS0. Тепер потрібно викликати драйвер ядра lirc_serial, запускаючи "modprobe lirc_serial". Якщо немає ніяких помилок, то продовжуємо далі. Якщо ж виходить якась помилка, тто потрібно її виправити.
[@~]# modprobe lirc_serial
FATAL: Error inserting lirc_serial (/lib/modules/2.6.32-ARCH/kernel/drivers/misc/lirc_serial.ko): Device or resource busy
то тут видно, що серійний порт вже використовується, і потрібно це припинити наступними діями:
[@~]# pacman -S setserial
[@~]# setserial /dev/ttyS0 uart none
[@~]# modprobe lirc_serial
Відгук "dmesg" повинен бути схожий на це:
lirc_dev: IR Remote Control driver registered, major 61
lirc_serial: port 03f8 already in use
lirc_serial: use 'setserial /dev/ttySX uart none'
lirc_serial: or compile the serial port driver as module and
lirc_serial: make sure this module is loaded first
lirc_serial: auto-detected active low receiver
lirc_dev: lirc_register_driver: sample_rate: 0
lirc_serial $Revision: 5.104 $ registered
Це означатиме, що тепер все в порядку. Завтоматизуємо подані вище команди, використовуючи окремий конфігураційний файл для lirc:
[@~]# nano /etc/modprobe.d/lirc_custum.conf
Вставимо ці команди туди:
alias char-major-61 lirc_serial
options lirc_serial irq=4 io=0x3f8
install lirc_serial /usr/bin/setserial /dev/ttyS0 uart none; /sbin/modprobe --ignore-install lirc_serial
Зберігаємо і перевіряємо /etc/conf.d/lircd.conf що він має правильні налаштування:
LIRC_DEVICE="/dev/lirc0"
LIRC_DRIVER=""
LIRC_EXTRAOPTS=""
LIRC_CONFIGFILE="/etc/conf.d/lircd_xbox360.conf"
Також потрібно додати lirc_serial до файлу /etc/rc.conf, щоб він викликався при завантаженні системи, тобто в /etc/rc.conf додати lirc_serial в MODULES=() :
MODULES=(lirc_serial)
Покладемо lircd_xbox360.conf або конфігураційний файл Вашого пульта в /etc/conf.d/ , пам’ятаючи про зміну шляху до нього в lircd.conf. Після старту lircd і запуску irw Ви повинні побачити подібне:
[@~]#/etc/rc.d/lircd start
[@~]# irw
000000037ff00bfe 00 1 Harmony_XBOX_360
000000037ff00bfe 01 1 Harmony_XBOX_360
000000037ff00bfd 00 2 Harmony_XBOX_360
000000037ff00bfd 01 2 Harmony_XBOX_360
000000037ff00bfc 00 3 Harmony_XBOX_360
000000037ff00bfc 01 3 Harmony_XBOX_360
^C
[@~]#
Потрібно також додати lircd демон до /etc/rc.conf, так як це було зроблено для пристроїв на базі X10, перезавантажити комп’ютер, запустити irw і переконатися що відклик є правильним. Після цього продовжувати наступні кроки. Далі ми заінсталюємо xorg і alsa.
xorg, alsa і драйвери nvidia
pacman -S xorg fam hal
#Advanced Linux Sound Architecture (ALSA)
pacman -Sy alsa-lib alsa-utils
Відредагуйте /etc/rc.conf і додайте alsa до демонів:
DAEMONS="(... alsa...)"
Якщо Ви використовуєте HDMI, то потрібно включити hdmi/iec958/spdif, оскільки по замовчуванню воно відключено. Так само бажано перевірити, чи наша карта (hdmi/iec958) є в списку за допомогою aplay -L :
$ aplay -L
. # I deleted line which are used for speakers as we just need HDMI/spdif
.
.
iec958:CARD=NVidia,DEV=0
HDA NVidia, ALC662 rev1 Digital
IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
HDA NVidia, HDMI 0
HDMI Audio OutputЯкщо Ви це бачите, тоді включіть SPDIF вивід за допомогою alsamixer . Використовуючи клавіші "вправо" і "вліво" перейдіть до пристрою "iec958/hdmi/spdif" і зніміть заглушку, натиснувши клавішу "m". Тоді переконайтеся, що все працює:
speaker-test -c 6 -Dplug:hdmi # or -Dplug:iec958 #then store alsamixer settings alsactl -f /var/lib/alsa/asound.state store
Базова інструкція по VDR
Ми використовуємо звичайного користувача для компіляції всього VDR. В цьому прикладі це буде archvdr (можна змінити на будь-якого на Ваш розсуд):
useradd -m -G users,audio,lp,optical,storage,video,wheel,power -s /bin/bash archvdr
Це додасть користувача до всіх потрібних груп, а ця команда встановить пароль для цього користувача:
passwd archvdr
Потрібно інсталювати sudo, щоб мати змогу інсталювати пакети як користувач:
pacman -S sudo
EDITOR=nano visudo
І додати стрічку під: # User privilege specification root ALL=(ALL) ALL:
archvdr ALL=(ALL) ALL
Тепер можете залогуватися як новий користувач archvdr і продовжувати інсталяцію VDR. Для цього заінсталюємо subversion і скачаємо PKGBUILD-и VDR пакетів:
sudo pacman -S subversion
svn co https://archvdr.svn.sourceforge.net/svnroot/archvdr archvdr
Драйвера nvidia і утиліти
Ми використовуємо офіційні драйвера nvidia з репозиторію archlinux.
sudo pacman -Sy nvidia nvidia-utils libvdpau
Тепер потрібно створити файл xorg.conf для X11, і оскільки GUI не буде використовуватися, тож відключимо composite, який часом створює проблеми без інстальованого GUI.
sudo nvidia-xconfig --no-composite
Після інсталяції драйверів для nvidia можна компілювати VDR.
Почнемо з драйверів DVB-S2, ttf-symbols і start-stop-daemon.
s2-liplianin-hg
cd ../s2-liplianin-hg
sudo pacman -S mercurial
makepkg -s
sudo pacman -f -U s2-liplianin-hg-*-i686.pkg.tar.gz
УВАГА!!! Після кожної інсталяції ядра Archlinux потрібно переінстальовувати s2-liplianin-hg!!!!
ttf-vdrsymbols
cd ../ttf-vdrsymbols/
makepkg -s
sudo pacman -U ttf-vdrsymbols-*-i686.pkg.tar.gz
start-stop-daemon
cd ../start-stop-daemon/
makepkg -s
sudo pacman -U start-stop-daemon-*-i686.pkg.tar.gz
VDR
cd ../vdr-1.7.19/
makepkg -s
sudo pacman -U vdr-1.7.*-i686.pkg.tar.gz
Інсталяція VDR також додасть користувача і групу vdr, однак потрібно вручну додати його до списку sudors:
sudo EDITOR=nano visudo
І під стрічкою: "# User privilege specification root ALL=(ALL) ALL" додаємо це:
vdr ALL=(root) NOPASSWD: ALL
Цього повинно бути достатньо для VDR. Тепер збудуємо кілька vdr-плагінів і системних пакетів для VDR.
vdr-acpiwakeup
cd ../vdr-addon-acpiwakeup/
makepkg -s
sudo pacman -U vdr-addon-acpiwakeup-*-i686.pkg.tar.gz
xine-lib
cd ../xine-lib-1.2/
makepkg -s
sudo pacman -U xine-lib-vdpau-*-i686.pkg.tar.gz
xine-ui
cd ../xine-ui-vdr-cvs/
makepkg -s
sudo pacman -U xine-ui-vdr-*-i686.pkg.tar.gz
vdr-xineliboutput
cd ../vdr-plugin-xineliboutput-cvs/
makepkg -s
sudo pacman -U vdr-plugin-xineliboutput-*-i686.pkg.tar.gz
xine-vdr
cd ../vdr-plugin-xine/
makepkg -s
sudo pacman -U vdr-plugin-xine-*-i686.pkg.tar.gz
Старт vdr
sudo /etc/rc.d/vdr start
Підготовка графічного клієнта VDR
Нижче вважається, що ви маєте робочий xorg.conf і що X сервер запущено.
Інсталяція vdr-scripts
Нам потрібно vdr-plugin-signal, рскільки vdr-scripts залежить від нього:
cd ../vdr-plugin-signal/
makepkg -s
sudo pacman -U vdr-plugin-signal-*-i686.pkg.tar.gz
vdr-scripts
cd ../vdr-scripts/
makepkg -s
sudo pacman -U vdr-scripts-*i686.pkg.tar.gz
Пакет vdr-scripts містить скрипти для обслуги Вашого VDR. Він також містить деякі специфічні скрипти для старту і зупинки графічного клієнта VDR. Корисно подивитися на вміст цього пакету і за необхідності виправити потрібні файли.
В /etc/default/vdrfrontend Ви можете вибрати бажаний графічний клієнт.
* FRONTEND=xinexv : xine плагін в зв’язці з відео драйвером xv
* FRONTEND=xinevdpau : xine плагін в зв’язці з відео драйвером vdpau
* FRONTEND=sxfexv: xineliboutput плагін в зв’язці з відео драйвером xv
* FRONTEND=sxfevdpau : xineliboutput плагін в зв’язці з відео драйвером vdpau
Якщо Ви бажаєте запустити інший клієнт або щось змінити, то загляньте до /var/lib/vdr/vdr-client.
Після закінчення налаштувань запускаєте клієнт:
/etc/rc.d/vdrclient start
В комбінації з плагіном vdr-plugin-menuorg Ви можете використати vdr-scipts для рестарту wlan або зробити копію вашої інсталяції VDR.
Підказка: Додайте в grub.conf до параметрів ядра nox. Це дозволить Вам завантажитися без клієнта vdr. Це помічне, якщо Вам потрібен shell.
Закінчення
Якщо все працює як очікувалося, Ви можете автоматично стартувати vdr і графічний клієнт vdrclient. Відредагуйте /etc/rc.conf і додайте до списку демонів:
DAEMONS="(... vdr-addon-acpiwakeup vdr-pre @vdr @vdrclient)"
Копія (backup)
Коли все зроблено, можна про всяк випадок зберегти копію Вашого VDR. Найлегший шлях це використати vdr-scripts і vdr-plugin-menuorg.
Ви повиння побачити ED's команди в головнрму меню. Знайдіть їх і виберіть Backup в наступному меню.
Ви побачите екранне повідомлення що почався процес збереження. (Використайте vdr-plugin-mlist щоб прочитати пропущені повідомлення.)
Коли збереження закінчиться, Ви можете знайти його в /backup/.
Увага: Скрипт збереження копії очистить системні логи у /var/log/.
VDPAU трюки
На AMD машинах важливо встановити мінімальну частоту CPU на 1.8GHz для отримання добрих результатів з VDPAU.
Це обмеження походить з включеного контролера пам’яті в CPU.
Інсталяція cpufrequtils
pacman -S cpufrequtils
і додайте до списку демонів в /etc/rc.conf :
DAEMONS="(... cpufrequtils)
Відредагуйте /etc/conf.d/cpufreq і впевніться, що виставлено min_freq="1.8GHz", так як в прикладі:
#configuration for cpufreq control
# valid governors:
# ondemand, performance, powersave,
# conservative, userspace
governor="ondemand"
# valid suffixes: Hz, kHz (default), MHz, GHz, THz
min_freq="1.8GHz"
max_freq="2.5GHz"
Файл build_vdr_stuff.sh
#!/bin/sh
WORK=$PWD
#PLUGINS=`ls -l | grep vdr-plugin | awk -F ' ' '{print $9;}'`
PLUGINS=`pacman -Q | grep vdr-plugin | awk -F ' ' '{print $1;}'`
rm -Rf $WORK/build.log $WORK/packages/
mkdir $WORK/packages/
#cd $WORK/../..
#sudo -u vdr svn update
#cd $WORK
# build vdr
VDR=`ls -l | grep vdr-1.7 | awk -F ' ' '{print $9;}'`
VDR=vdr-1.7.15
echo $VDR
cd $WORK/$VDR
rm -rf src pkg > /dev/null
makepkg --asroot -c -f -s
mv *pkg.tar.gz $WORK/packages/ > /dev/null
mv *pkg.tar.xz $WORK/packages/ > /dev/null
BUILD=`ls $WORK/packages/$vdr*`
if [ "$BUILD" == "" ]; then
echo "build fail for $VDR" >> $WORK/build.log
fi
pacman -U $WORK/packages/vdr-1.7*.pkg.tar.xz
#build xine libs
PKG=xine-lib-1.2
cd $WORK/$PKG
rm -rf src pkg > /dev/null
makepkg --asroot -c -f -s
mv *pkg.tar.gz $WORK/packages/ > /dev/null
mv *pkg.tar.xz $WORK/packages/ > /dev/null
BUILD=`ls $WORK/packages/$PKG*`
if [ "$BUILD" == "" ]; then
echo "build fail for $PKG" >> $WORK/build.log
fi
pacman -U $WORK/packages/xine-lib-1.2*.pkg.tar.xz
#build xine-ui-vdr
PKG=xine-ui-vdr-cvs
cd $WORK/$PKG
rm -rf src pkg > /dev/null
makepkg --asroot -c -f -s
mv *pkg.tar.gz $WORK/packages/ > /dev/null
mv *pkg.tar.xz $WORK/packages/ > /dev/null
BUILD=`ls $WORK/packages/$PKG*`
if [ "$BUILD" == "" ]; then
echo "build fail for $PKG" >> $WORK/build.log
fi
pacman -U $WORK/packages/xine-ui*.pkg.tar.xz
#build vdr-scripts
PKG=vdr-scripts
cd $WORK/$PKG
rm -rf src pkg > /dev/null
makepkg --asroot -c -f -s
mv *pkg.tar.gz $WORK/packages/ > /dev/null
mv *pkg.tar.xz $WORK/packages/ > /dev/null
BUILD=`ls $WORK/packages/$PKG*`
if [ "$BUILD" == "" ]; then
echo "build fail for $PKG" >> $WORK/build.log
fi
pacman -U $WORK/packages/vdr-scripts*.pkg.tar.xz
#build crystalhd and crystalhd-lib
#PKG=crystalhd
#cd $WORK/$PKG
#rm -rf src pkg > /dev/null
#makepkg --asroot -c -f -s
#mv *pkg.tar.gz $WORK/packages/ > /dev/null
#mv *pkg.tar.xz $WORK/packages/ > /dev/null
#BUILD=`ls $WORK/packages/$PKG-2010*`
#if [ "$BUILD" == "" ]; then
# echo "build fail for $PKG" >> $WORK/build.log
#fi
#pacman -U $WORK/packages/crystalhd*.pkg.tar.xz
#PKG=crystalhd-lib
#cd $WORK/$PKG
#rm -rf src pkg > /dev/null
#makepkg --asroot -c -f -s
#mv *pkg.tar.gz $WORK/packages/ > /dev/null
#mv *pkg.tar.xz $WORK/packages/ > /dev/null
#BUILD=`ls $WORK/packages/$PKG*`
#if [ "$BUILD" == "" ]; then
# echo "build fail for $PKG" >> $WORK/build.log
#fi
#pacman -U $WORK/packages/crystalhd-lib*.pkg.tar.xz
#PKG=cxxtools
#cd $WORK/$PKG
#rm -rf src pkg > /dev/null
#makepkg --asroot -c -f -s
#mv *pkg.tar.gz $WORK/packages/ > /dev/null
#mv *pkg.tar.xz $WORK/packages/ > /dev/null
#BUILD=`ls $WORK/packages/$PKG*`
#if [ "$BUILD" == "" ]; then
# echo "build fail for $PKG" >> $WORK/build.log
#fi
# build vdr plugins
for PLUGIN in $PLUGINS
do
echo $PLUGIN
cd $WORK/$PLUGIN
rm -rf src pkg > /dev/null
makepkg --asroot -c -f -s
mv *pkg.tar.gz $WORK/packages/ > /dev/null
mv *pkg.tar.xz $WORK/packages/ > /dev/null
BUILD=`ls $WORK/packages/$PLUGIN*`
if [ "$BUILD" == "" ]; then
echo "build fail for $PLUGIN" >> $WORK/build.log
fi
done
pacman -U $WORK/packages/vdr-plugin-*.pkg.tar.xz
# build xbmc
#PKG=xbmc-pvr-testing
#cd $WORK/$PKG
#rm -rf src pkg > /dev/null
#makepkg --asroot -c -f -s
#mv *pkg.tar.gz $WORK/packages/ > /dev/null
#mv *pkg.tar.xz $WORK/packages/ > /dev/null
#BUILD=`ls $WORK/packages/$PKG*`
#if [ "$BUILD" == "" ]; then
# echo "build fail for $PKG" >> $WORK/build.log
#fi
repo-add $WORK/packages/vdr.db.tar.gz $WORK/packages/*.pkg.tar.*
понеділок, 5 жовтня 2009 р.
Samsung n120 і Archlinux
Це чудо приїхало в липні цього року з дешевої країни США (Юра, дякую ще раз!). Я довго вагався, який би нетбук купити, вибір впав власне на Samsung n120 з кількох причин:
час праці на батареї (до 8 годин),
вага (біля 1 кг),
кнопка Fn розміщена справа від клавіші Ctrl,
повна клавіатура,
великі клавіші,
монітор 10 дюймів (мінімальний розмір, як для мене, який ще достатній для нормальної роботи).
Мені не хочеться вдаватися в технічні подробиці, оскільки в інтернеті можна знайти купу описів, наприклад такий.
Побавившись десь зо дві години з Віндовсом, який якогось біса туди заінсталювали виробники, зрозумів, що він явно тут не пасує - все рухалося з такими гальмами, що мене трафляло, не допомогли ніякі твіки, виключання непотрібних сервісів, аплікацій в треї і т.п.
Порада: Віндовс в кошик!
Переконавшись в повній безпорадності вінди, я засунув флешку з Archlinux. Стартонув з неї (при завантаженні натиснути клавішу Esc і вибрати USB диск), інсталяція чогось не йшла, довелося добавити acpi=off до параметрів ядра і все пішло як по маслу.
Порада: Деякі дистрибутиви по замовчуванню мають ці опцію виключеною, оскільки орієнтовані також на старе залізо з біосом до 2001 року. Тому на нових компах інсталяція часом не йде, Лікується добавлянням опції acpi=off до стрічки завантаження ядра.
Враження мої наступні: супер! Все працює, я практично закинув мій старий десктоп (на ньому теж стоїть Archlinux - виявилося, що Arch на ньому краще себе почуває, ніж Ubuntu).
Тепер детальніше.
Працює практично все: Bluetooth (модуль btusb), WiFi ( модуль ath5k), eth0 (модуль sky2), засинання, synaptic tauchpad, веб-камера (модуль uvcvideo), порти USB.
Були проблеми з підтримкою відеозображення в Skype, але з ядром 2.6.31 проблема перестала існувати. Про всяк випадок нагадаю відомий твік: Skype треба запускати наступним чином: LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype .
Також є певні проблеми з Fn клавішами. Щоб їх уникнути, треба зробити наступне:
відкрити в редакторі файл /usr/share/hal/fdi/information/10freedesktop/30-keymap-misc.fdi
знайти стрічку з samsung, вона виглядатиме приблизно так:
match key="/org/freedesktop/Hal/devices/computer:system.hardware.product" contains_outof="SP55S;SQ45S70S;SX60P;R59P/R60P/R61P;Q310;X05"
додати до неї ;NC120 , тобто стрічка має стати такою:
match key="/org/freedesktop/Hal/devices/computer:system.hardware.product" contains_outof="SP55S;SQ45S70S;SX60P;R59P/R60P/R61P;Q310;X05;N120"
Це дозволить користуватися клавішами зміни яскравості і звуку (перед тим переконатися, що в Гном запущений gnome-power-manager). Твік взятий з wiki Убунту.
Звичайно, що найбільше цікавить енергозберігання. В звичайному режимі (з включеним laptop-mode), Самсунг поїдає біля від 10 до 12 Ват. Нижче є готовий файл rc.local (міститься в /etc/rc.local), в якому зібрані найбільш популярні твіки для збереження енергії в Самсунгу N120 (для інших моделей можуть відрізнятися):
Зауваження: в цьому файлі використовується зниження напруги процесора. Щоб скористатися цим твіком, треба заінсталювати phc-intel.
Корисною річчю на будь-якому нотбуку є включення laptop-mode. На більшості дистрибутивів треба заінсталювати laptop-mode-tool, конфігурація відбувається в /etc/laptop-mode/laptop-mode.conf .
Деякі корисні параметри подані нижче:
Завантаження з описаними вище твіками дає можливість знизити енегроспоживання до 7-8 Ват, і, відповідно, збільшити час праці на акумуляторі.
Наведене вище стосувалося Гнома і Archlinux. Можливо, що деякі рекомендації можна використати і на інших дистрибутивах. Зокрема, добре зарекомендував себе Ubuntu Netbook Remix. Його добрий опис дав Bum в свому блозі. З мого досвіду з Ubuntu Netbook Remix на Samsung n120 споживання електроенергії коливається від 9 до 11 Ват (мірялося за допомогою powertop).
час праці на батареї (до 8 годин),
вага (біля 1 кг),
кнопка Fn розміщена справа від клавіші Ctrl,
повна клавіатура,
великі клавіші,
монітор 10 дюймів (мінімальний розмір, як для мене, який ще достатній для нормальної роботи).
Мені не хочеться вдаватися в технічні подробиці, оскільки в інтернеті можна знайти купу описів, наприклад такий.
Побавившись десь зо дві години з Віндовсом, який якогось біса туди заінсталювали виробники, зрозумів, що він явно тут не пасує - все рухалося з такими гальмами, що мене трафляло, не допомогли ніякі твіки, виключання непотрібних сервісів, аплікацій в треї і т.п.
Порада: Віндовс в кошик!
Переконавшись в повній безпорадності вінди, я засунув флешку з Archlinux. Стартонув з неї (при завантаженні натиснути клавішу Esc і вибрати USB диск), інсталяція чогось не йшла, довелося добавити acpi=off до параметрів ядра і все пішло як по маслу.
Порада: Деякі дистрибутиви по замовчуванню мають ці опцію виключеною, оскільки орієнтовані також на старе залізо з біосом до 2001 року. Тому на нових компах інсталяція часом не йде, Лікується добавлянням опції acpi=off до стрічки завантаження ядра.
Враження мої наступні: супер! Все працює, я практично закинув мій старий десктоп (на ньому теж стоїть Archlinux - виявилося, що Arch на ньому краще себе почуває, ніж Ubuntu).
Тепер детальніше.
Працює практично все: Bluetooth (модуль btusb), WiFi ( модуль ath5k), eth0 (модуль sky2), засинання, synaptic tauchpad, веб-камера (модуль uvcvideo), порти USB.
Були проблеми з підтримкою відеозображення в Skype, але з ядром 2.6.31 проблема перестала існувати. Про всяк випадок нагадаю відомий твік: Skype треба запускати наступним чином: LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype .
Також є певні проблеми з Fn клавішами. Щоб їх уникнути, треба зробити наступне:
відкрити в редакторі файл /usr/share/hal/fdi/information/10freedesktop/30-keymap-misc.fdi
знайти стрічку з samsung, вона виглядатиме приблизно так:
match key="/org/freedesktop/Hal/devices/computer:system.hardware.product" contains_outof="SP55S;SQ45S70S;SX60P;R59P/R60P/R61P;Q310;X05"
додати до неї ;NC120 , тобто стрічка має стати такою:
match key="/org/freedesktop/Hal/devices/computer:system.hardware.product" contains_outof="SP55S;SQ45S70S;SX60P;R59P/R60P/R61P;Q310;X05;N120"
Це дозволить користуватися клавішами зміни яскравості і звуку (перед тим переконатися, що в Гном запущений gnome-power-manager). Твік взятий з wiki Убунту.
Звичайно, що найбільше цікавить енергозберігання. В звичайному режимі (з включеним laptop-mode), Самсунг поїдає біля від 10 до 12 Ват. Нижче є готовий файл rc.local (міститься в /etc/rc.local), в якому зібрані найбільш популярні твіки для збереження енергії в Самсунгу N120 (для інших моделей можуть відрізнятися):
# /etc/rc.n120: various init and power saving stuff for samsung n120.
#
# avoid too many power up/down of hard drive, taken over by laptop-mode-tools anyway
hdparm -B 255 /dev/sda
#disable bluetooth
#(alternatively you can disable bluetooth in rc.conf: MODULES=(... !btusb ...))
hciconfig hci0 down ; rmmod btusb
# enables on-demand cpu freq scaling (requires cpufreq modules) :
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
### turn off wifi
# ifconfig wmaster0 down
# echo "wifi is shut down"
# You can also disable wifi module in /etc/rc.conf: MODULES=(.. !ath5k ...)
# or
rmmod ath5k
#The pdflush writeback daemons will periodically wake up and
#write "old" data out to disk. This tunable expresses
#the interval between those wakeups, in 100'ths of a second.
#Setting this to zero disables periodic writeback altogether.
echo "1500"| tee -a /proc/sys/vm/dirty_writeback_centisecs
#dirty_ratio contains, as a percentage of total system memory,
#the number of pages at which a process which is generating
#disk writes will itself start writing out dirty data.
#echo "20"| tee -a /proc/sys/vm/dirty_ratio
#dirty_background_ratio Contains, as a percentage of total system memory,
#the number of pages at which the pdflush background
#writeback daemon will start writing out dirty data.
#echo "10"| tee -a /proc/sys/vm/dirty_background_ratio
#Not sure
#echo "1"| tee -a /sys/devices/system/cpu/sched_smt_power_savings
#The value of the laptop_mode knob determines the time between the
#occurrence of disk I/O and when the flush is triggered.
#A sensible value for the knob is 5 seconds.
#Setting the knob to 0 disables laptop mode.
echo "5" | tee -a /proc/sys/vm/laptop_mode
# CPU undervolting
echo "12:24 10:20 8:15 6:15"| tee -a /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
echo "12:24 10:20 8:15 6:15"| tee -a /sys/devices/system/cpu/cpu1/cpufreq/phc_controls
# autosuspend webcamera ****does this really work ????****
echo "auto" | tee -a /sys/bus/usb/devices/1-8/power/level
echo "1" | tee -a /sys/bus/usb/devices/1-8/power/autosuspend
## sound chip power save mode
## => disabled because it makes some high frenquency noise...
#echo "10" | tee -a /sys/module/snd_hda_intel/parameters/power_save
#Set initial brightness level
#setpci -s 00:02.1 F4.B=50
setpci -s 00:02.1 F4.B=35
Зауваження: в цьому файлі використовується зниження напруги процесора. Щоб скористатися цим твіком, треба заінсталювати phc-intel.
Корисною річчю на будь-якому нотбуку є включення laptop-mode. На більшості дистрибутивів треба заінсталювати laptop-mode-tool, конфігурація відбувається в /etc/laptop-mode/laptop-mode.conf .
Деякі корисні параметри подані нижче:
#turn off hard-drive after 10min on AC and 2min on battery (prevents freezes when accessing hd often)
LM_AC_HD_IDLE_TIMEOUT_SECONDS=600
LM_BATT_HD_IDLE_TIMEOUT_SECONDS=120
NOLM_HD_IDLE_TIMEOUT_SECONDS=1800
CONTROL_HD_POWERMGMT=1
# prevents too many parking of heads while still saving some power on battery.
BATT_HD_POWERMGMT=254
LM_AC_HD_POWERMGMT=255
NOLM_AC_HD_POWERMGMT=255
Завантаження з описаними вище твіками дає можливість знизити енегроспоживання до 7-8 Ват, і, відповідно, збільшити час праці на акумуляторі.
Наведене вище стосувалося Гнома і Archlinux. Можливо, що деякі рекомендації можна використати і на інших дистрибутивах. Зокрема, добре зарекомендував себе Ubuntu Netbook Remix. Його добрий опис дав Bum в свому блозі. З мого досвіду з Ubuntu Netbook Remix на Samsung n120 споживання електроенергії коливається від 9 до 11 Ват (мірялося за допомогою powertop).
субота, 12 вересня 2009 р.
lirc і CyberLink Remote Control

Чорт дьорнув мене купити оцей пульт, який забрав в мене кілька годин часу з настройкою під лінукс. Все би було добре, якби при підключенні приймача не появлялося два вхідні пристрої /dev/input/event6 і /dev/input/event7, один з яких відповідав за верхній ряд кнопок, а другий за нижній. Інтернет багато не дав, почав копати в напрямку як заставити lirc сприймати два девайси відразу. Що найсмішніше, рішення знайшлося на сторінці lirc (Using multiple different devices simultaneously). Просто відключив lircd при завантаженні, і додав дві стрічки в /etc/rc.local:
lircd -d `grep -l 'TopSeed' /sys/class/input/input*/name | tail -n2 | awk 'NR==1' | sed -e s'|/name||' | sed -e s'|sys/class/input/input|dev/input/event|'` -H dev/input --output=/dev/lircd1 --pidfile=/var/run/lircd1.pid --listen
lircd -d `grep -l 'TopSeed' /sys/class/input/input*/name | tail -n2 | awk 'NR==2' | sed -e s'|/name||' | sed -e s'|sys/class/input/input|dev/input/event|'` -H dev/input --output=/dev/lircd --pidfile=/var/run/lircd.pid --connect=localhost:8765
Замість lircd.conf використав lircd.conf.devinput з /usr/share/lirc/remote/devinput, як remote_device відповідно використано devinput. Все працює :-)
PS Приклад для systemd:
$cat lircd-cyberlink.service
[Unit]
Description=Linux Infrared Remote Control
[Service]
ExecStartPre=/usr/bin/rm -rf /dev/lircd* /var/run/lirc/lirc*.pid
ExecStartPre=/usr/bin/ln -sf /dev/lircd /var/run/lirc/lircd
ExecStart=/usr/local/bin/lircvdr
ExecStop=/usr/bin/rm -rf /dev/lircd* /var/run/lirc/lirc*.pid
Type=forking
PIDFile=/var/run/lirc/lircd.pid
[Install]
WantedBy=multi-user.target
пʼятниця, 19 червня 2009 р.
Проблеми з мишою в новому Xorg в зв’язці з hal
Після оновлення Xorg, якому тепер не потрібно мати файл настройки xorg.conf, виявилося, що не все так радісно, як би мало бути. Проблема проявилася як на мому лаптопі з Убунту Jaunty, так і на Archlinux, який віднедавна загніздився в мене на стаціонарному компі. Проблемка проявилася в тому, що при клацанні лівою клавішою миші, наприклад, при згортуванні програми, один клік ідентифікувався як два кліка, тому програма спочатку згорталася і потім відразу відкривалася. Це також проявлялося на закриванні вкладок в Вогнелисиці і в інших програмах. Аналіз /var/log/Xorg.0.log показав, що hal якогось чорта знаходить 2 миші, одна як "USB mouse", що відповідає дійсності, і друга "Macintosh mouse button emulation". Зрозуміло, що при натисканні клавіші на миші сигнал йшов два рази від кожного знайденого девайса, що і спричиняло ефект подвійного кліку. Це легко можна було побачити, запустивши xev і перевіривши за допомогою xinput list скільки мишей є в системі. Досить тривалий пошук по інтернету дав купу згадувань про цю проблему, як в Убунту, так і інших дистрибутивах. Знайшов і вирішення цієї проблеми, досить просте - заблокувати Macintosh мишку в полісах hal. Робиться все досить просто:
1. Створити файлик /etc/hal/fdi/preprobe/10-blacklist.fdi з таким вмістом:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.category" contains="input">
<match key="input.product" contains="Macintosh">
<merge key="info.ignore" type="bool">true</merge>
</match>
</match>
</device>
</deviceinfo>
2. Записати файл, перезапустити hal через sudo /etc/init.d/hal restart в Убунту чи sudo /etc/rc.d/hal restart в Archlinux.
3. Рестартувати X-сервер sudo /etc/init.d/gdm restart в Убунту або /etc/rc.d/gdm restart в Archlinux.
4. Перевірити, що є одна миша, заглянувши в /var/log/Xorg.0.log або запустивши xinput list.
Рецепт взятий звідси. Крім того, постійно в інтернеті є нарікання, що hal-івські правила погано документовані, причому немає аплікації, яка б могла на ходу змінювати їх по бажанню користувача. Наприклад, я довго бився, як в новому Xorg зробити так, щоб по замовчуванні були ті розкладки клавіатури, які мені потрібні. Виявилося, що це робиться досить просто через hal правила. А саме, треба створити файлик /etc/hal/fdi/policy/10-keymap.fdi з таким вмістом:
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keypad">
<merge key="input.xkb.rules" type="string">base</merge>
<merge key="input.xkb.model" type="string">pc105</merge>
<merge key="input.x11_driver" type="string">evdev</merge>
<merge key="input.xkb.layout" type="string">pl,ua</merge>
<merge key="input.xkb.variant" type="string">,unicode</merge>
<merge key="input.xkb.options" type="string">grp:alt_shift_toggle,lv3:ralt_switch,grp_led:scroll</merge>
</match>
</device>
</deviceinfo>
фактично прописавши те, що раніше було в xorg.conf. Правила hal, які вміщаються в /etc/hal/fdi/policy, перезаписують правила по замовчуванню, які можна знайти в /usr/share/hal/fdi/. Позадававши таким чином відповідні пристрої в власноручно написаних правилах, можна дійсно спокійно видаляти xorg.conf. Не знаю, наскільки такий спосіб є зручніший від того, щоб все було компактно в xorg.conf...
1. Створити файлик /etc/hal/fdi/preprobe/10-blacklist.fdi з таким вмістом:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.category" contains="input">
<match key="input.product" contains="Macintosh">
<merge key="info.ignore" type="bool">true</merge>
</match>
</match>
</device>
</deviceinfo>
2. Записати файл, перезапустити hal через sudo /etc/init.d/hal restart в Убунту чи sudo /etc/rc.d/hal restart в Archlinux.
3. Рестартувати X-сервер sudo /etc/init.d/gdm restart в Убунту або /etc/rc.d/gdm restart в Archlinux.
4. Перевірити, що є одна миша, заглянувши в /var/log/Xorg.0.log або запустивши xinput list.
Рецепт взятий звідси. Крім того, постійно в інтернеті є нарікання, що hal-івські правила погано документовані, причому немає аплікації, яка б могла на ходу змінювати їх по бажанню користувача. Наприклад, я довго бився, як в новому Xorg зробити так, щоб по замовчуванні були ті розкладки клавіатури, які мені потрібні. Виявилося, що це робиться досить просто через hal правила. А саме, треба створити файлик /etc/hal/fdi/policy/10-keymap.fdi з таким вмістом:
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keypad">
<merge key="input.xkb.rules" type="string">base</merge>
<merge key="input.xkb.model" type="string">pc105</merge>
<merge key="input.x11_driver" type="string">evdev</merge>
<merge key="input.xkb.layout" type="string">pl,ua</merge>
<merge key="input.xkb.variant" type="string">,unicode</merge>
<merge key="input.xkb.options" type="string">grp:alt_shift_toggle,lv3:ralt_switch,grp_led:scroll</merge>
</match>
</device>
</deviceinfo>
фактично прописавши те, що раніше було в xorg.conf. Правила hal, які вміщаються в /etc/hal/fdi/policy, перезаписують правила по замовчуванню, які можна знайти в /usr/share/hal/fdi/. Позадававши таким чином відповідні пристрої в власноручно написаних правилах, можна дійсно спокійно видаляти xorg.conf. Не знаю, наскільки такий спосіб є зручніший від того, щоб все було компактно в xorg.conf...
вівторок, 5 травня 2009 р.
Archlinux!
Підписатися на:
Дописи (Atom)
loading..