пятница, 27 июня 2008 г.

Регулирование громкости Creative X-Fi X-MOD USB

Приобрел звуковуху Creative X-Fi X-MOD USB.
Подключил - звук пашет нормально (ядерный модуль snd_usb_audio).
Есть на ней аппаратный регулятор громкости, который на самом деле просто генерирует событие, которое можно отловить в системе, как нажатие на кнопку.

Для прикручивания использовал xbindkeys и amixer.
В домашний каталог необходимо поместить файл .xbindkeysrc (~/.xbindkeysrc), настроить его, и засунуть xbindkeys в автозапуск окружения рабочего стола.
Конфигурационный файл .xbindkeysrc имеет простой синтаксис:

"команда для запуска"
связанная клавиша

Коды клавиш смотрим командой xev, нажимая на них.
У меня получилось:
вращение по часовой стрелке - m:0x10 + c:176
вращение против часовой стрелке - m:0x10 + c:174
нажатие - m:0x10 + c:160
Файл настроек получился таким:

"amixer -c 0 get PCM | grep off > /dev/null; if [ $? = 1 ]; then amixer -q -c 0 set PCM mute; else amixer -q -c 0 set PCM unmute; fi;"
m:0x10 + c:160

"pgrep amixer; if [ $? = 1 ]; then amixer -c 0 set PCM 3dB+; fi;"
m:0x10 + c:176

"pgrep amixer; if [ $? = 1 ]; then amixer -c 0 set PCM 3dB-; fi;"
m:0x10 + c:174

-с 0 -- это параметр передающий номер звуковухи с которой работаем (у меня нуль т.к. она в системе единственная)
Верхняя команда выполняет проверку состояния mute и производит переключение на противоположное значение.
Еще две командные строки - управление громкостью. Они несколько усложнены проверкой наличия amixer в таблице процессов. Это обусловлено там, что быстрый поворот регулятора вызвал бы множественный одновременный запуск amixer, что повлекло бы несколько неадекватную регулировку из-за асинхронности вызовов на чтение и установку значения громкости (ничего страшного, но неприятно).
Можно убедиться в вышесказанном, попробовав использовать просто amixer -c 0 set PCM 3dB+ и amixer -c 0 set PCM 3dB- соответственно.
pgrep отрабатывает значительно быстрее amixer, что позволяет практически отвергать попытки запустить дубли процессов изменения громкости (теоретически, это, конечно, возможно т.к. pgrep операция отнюдь не атомарная, а bash-код тем более).

P.S.
~ $ time amixer -c 0 set PCM 3dB+ > /dev/null
real 0m0.228s
user 0m0.000s
sys 0m0.000s
~ $ time pgrep amixer
real 0m0.007s
user 0m0.000s
sys 0m0.004s

пятница, 20 июня 2008 г.

AIX посмотреть наличие link на сетевом интерфейсе

В AIX можно посмотреть расширенную информацию о сетевом интерфейсе командой

# entstat -d <имя интерфейса>

в том числе mac и наличие link

четверг, 19 июня 2008 г.

Памятка по GNU screen

# screen -ls - покажет открытые сессии screen
# screen -r pid - подключится к соответствующей сессии

окно - виртуальная область в которой работает программа - производит вывод и из которой читает ввод
регион - область терминала к которой можно прикрепить окно

^a c - создать новое окно в этом регионе
^a A - дать имя текущему окну
^a " - выбор окна из списка окон
^a ' - выбор окна по имени
^a 1 - переход на выбранное окно
^a p - переход на предыдущее окно
^a n - переход на следующее окно
^a x - заблокировать текущее окно
^a k - закрыть текущее окно

^a S - разрезать текущий регион на 2 (т.е. создать еще один регион)
^a tab - переход на другой регион
^a X - закрыть текущий регион

^a d - отключиться от сессии (останется висеть в фоне с возможностью ее подцепить)
^a \ - закрыть все окна и выйти из screen

^a = ctrl+a - это "эскейп"-последовательность. Конфигурируется в /etc/screenrc
^a \ по умолчанию работать не будет т.к. замаскировано в /etc/screenrc, как опасное сочетание, чтобы заставить работать нужно раскомментировать строку

bind \\ quit # default

и закомментировать

# bind \\

среда, 11 июня 2008 г.

Монтирование .iso в Solaris

монтируем:

#lofiadm -a cdrom.iso
#mount -F hsfs /dev/lofi/1 /mnt

Кстати, lofiadm очень похожа на losetup в линуксе

или

#mount -F hsfs `lofiadm -a cdrom.iso` /mnt

размонтируем:

#umount /mnt
#lofiadm -d /dev/lofi/1

Solaris посмотреть сетевые интерфейсы и наличие link

Как посмотреть "незапламбленые" (plumb) сетевые интерфейсы в Solaris? Можно, конечно, так:
#grep -i net /etc/path_to_inst ,
но покажет не на всех машинах (например, SunFire X4100).
Правильно так:
#dladm show-dev

У команды есть и дополнительные бонусы - показывает наличие link, скорость и дуплекс. Вроде, ethtool в Linux. Вот только вносятся изменения в настройки сетевого интерфейса в Солярисе с помошью ndd

Установка словарей StarDict

Берем отсюда.

Распаковываем и ФАЙЛЫ (не каталоги) кучкой кидаем в

/usr/share/stardict/dic

(хотя, должны работать и каталоги, но у меня не получилось)

Активно обсуждается тут.

воскресенье, 8 июня 2008 г.

Fedora 9 boot without graphics (text mode startup)

В Fedora 9, как и в прошлых версиях, процесс запуска служб во время загрузки отображается в графическом режиме. Я, как большой любитель Gentoo, категорически против этого :)
Изменяется данное положение дел в файле

/etc/sysconfig/init

необходимо выставить параметр

GRAPHICAL=no