середа, 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 :

$ 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.*

понеділок, 26 квітня 2010 р.

Українське Інтернет Телебачення (прямі лінки)

Якийсь просто капець, задав в гуглі слова як у назві, видало купу рашн спікін сайтів, де прямих лінків обмаль або якісь перенаправлення. Коротше моя підбірка (доповнюватиметься потроху. якщо хтось має свою підбірку прямих (!!!) посилань, то кидайте в коменти):

УТР:  mms://live2.eu.utr.kiev.ua/UTR-EU
5 канал: mms://217.20.164.165:8000/5tv.asf

Доповнення: Все таки я погано шукав. На сторінці вікіпідії  в розділі Українське інтернет-мовлення якраз все і є.

неділя, 14 березня 2010 р.

Однокласники геть

Десь кілька років тому зареєструвався я там, скоріше заради цікавості. Особливої активності не проявляв. Сьогодні дізнався, що пароль мій хакнутий і з нього розсилається спам. Причиною хаку, я думаю, було висловлювання І.Драча "Дивний народ українці - його найбільші вороги сконали своєю смертю". Відновив пароль, подивився на бардак що там поробили, і повністю видалив рахунок. Не український це проект...

понеділок, 16 листопада 2009 р.

Конвертація djvu в pdf в лінуксі

Питання це нагло постало переді мною, довелося ритися в неті. Таким чином, вирішив написати для себе на майбутнє короткий огляд-пам’ятку.
  1. Djview4 має в собі експорт в pdf. Недолік: не завжди вихідний файл читається.
  2. Друкувати в файл (в посткрипт) (або djvups filename.djvu filename.ps), потім переганяти в в pdf за допомогою ps2pdf. Недолік: громіздка операція, особливо коли багато сторінок, крім того, виходить великий за розміром файл pdf.
  3. ddjvu -format=tiff ваш_файл.djvu ваш_файл.tiff , а потім tiff2pdf -j -o ваш_файл.pdf ваш_файл.tiff . Працює дуже добре.
  4. Скористатися чудовим скриптом. Працює супер, треба мати pdftk.
  5. Користатися cups-pdf. Це фактично то саме, що і 2-й пункт, тільки більш зручніше.
Буде ще щось, то допишу.

вівторок, 6 жовтня 2009 р.

XPGnome тема

Страшенно тішився переглядом відео, як перетворити вигляд Гном-десктопа в XP:


Показав одному колєзі, який спочатку не в’їхав в чому справа, наполягаючи на тому, що я попсував XP. Довелося показати стандартне завантаження лінукса, щоб його повністю переконати.
Тут міститься повна інструкція, як зробити такий десктоп. Що важливо, можна відновити назад попередній вигляд Вашого десктопу.
18.07.2012 Уже там нічого немає. Файл можна звантажити тут.

понеділок, 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 (для інших моделей можуть відрізнятися):

# /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

Google Analytics