30 сент. 2010 г.

NX Client + Multimedia support

Появилась интересная задачка - получить звук с удаленного терминала на локальную рабочую станцию. И там и там linux (Debian Lenny и Ubuntu Lucid), терминал - NX (не ванильный NX-free от NoMachine), а RX@Etersoft, но в данном вопросе сие неважно). 
Немного потыкавшись по интернетам, выяснил, что сие возможно, причем без излишнего шаманства. Разработчики клиента добавили функционал "проброса" аудио-потока через nx-сессию, поэтому со стороны клиента достаточно в настройках подключения во вкладке Services выставить галку Multimedia Support. 
С серверной стороны действий несколько больше. Вскрытие показало, что для передачи аудио-потока используется eSound. В принципе, никаких допольнительных настроек оного не требуется, достаточно просто его установить:
apt-get install esound
Затем выставляем галку "Включить программное смешивание звука (ESD)" в Система - Параметры - Звук - вкладка Звук. Если установлен пакет gnome-audio, то тут же можно проверить работоспособность на звуковых файлах, нажав "Воспроизвести".
В принципе, всё. Можно слушать музыку, смотреть фильмы и так далее, нужно лишь установить какой-нибудь поддерживающий esd медиаплаер. Например, для работы с amaroK нужно в настройках движка xine (должна быть установлена библиотека libxine1) выставить модуль вывода esd. 
Непонятно, правда, как правильно задать вывод через esd для vlc, я ниасилил сделать это в интерфейсе настроек. Однако рабочим является такой вариант: vlc --aout=esd file:///home/user/Track1.mp3. Предварительно стоит установить пакет vlc-plugin-esd, который по умолчанию не всегда установлен.
Таким образом, если ширина канала позволяет, звук идет без артефактов. Теоретически, думаю, можно регулировать канал потока, но этим я не занимался пока что.

28 сент. 2010 г.

10.04 + ps/2 mouse

Столкнулся при установке/настройке Ubuntu Server 10.04 с неработоспособностью ps/2-мышки, однако, думается, сабжевые грабли возможны и при работе с другими дистрибутивами. Лечится элементарно - установкой пакета mdetect:
apt-get install mdetect
В особо клинических случаях может не хватать модуля для xorg-a, тогда:
apt-get install xserver-xorg-input-mouse

27 сент. 2010 г.

eGroupware + Невозможность добавления групп

При работе с eGroupware версии 1.6.003-2 вскрылся неприятный баг - невозможно добавить группу. Точнее, интерфейс добавления доступен, работает, но в итоге группа никуда не добавляется. Лечится, в целом, просто. В файле /usr/share/egroupware/phpgwapi/inc/class.accounts_ldap.inc.php ищется строчка if (!$old) - 243-я в моем файле - и меняется на  if (!$old && !$is_group). Собственно, всё. Если лень менять руками, тут обсуждается это же, но в форме патча.

22 сент. 2010 г.

Openoffice.org 3.2.1 + black splash

В свежем Инфра-Ресурсном Openoffice.org 3.2.1 имеется непонятный баг - при запуске (что в KDE4, что в LXDE), имеем черную заставку с кривым прогрессбаром. Лечится также непонятно, но просто: 
chmod -x /opt/openoffice.org3/program/ooosplash.bin
Никаких косяков впоследствии мной замечено не было, а заставка - работает ;)

21 сент. 2010 г.

Заполнение known_hosts

Иногда при настройке рабочей станции пользователя на базе Linux, или при создании образа тонкого клиента (особенно в этом случае!), или просто при загрузке образа с системой по сети требуется заполнить файл /home/user/.ssh/known_hosts, дабы ssh при подключении не ругался непонятными для человека буквами и цифрами. Вот как легко и просто это сделать:
ssh-keyscan -t rsa $server_ip >> ./known_hosts
О том, что это вообще за механизм такой, можно поглядеть, к примеру, тут. Или где-нибудь еще из выдачи Google. $)

20 сент. 2010 г.

xorg.conf + gtf

В очередной раз сегодня пришлось вспомнить, как вручную задать требуемое разрешение/развертку экрана в X.org. Дабы было, где искать, оставлю линк здесь - бамс!

9 сент. 2010 г.

NX + numlock + клавиатура

Так, оставлю заметку здесь, чтобы помнить, где искать. Если имеется RX@Etersoft в качестве терминального сервера (или просто freenx, неважно) и nxclient в качестве, соответственно, клиента, то может проявиться пренеприятный баг: при создании терминального подключения сходят с ума клавиатурные маппинги некоторых клавиш (например, при нажатии стрелки вверх запускается скриншотер, т.е. отрабатывает PrScn). Лечится изменением типа клавиатуры на управляемую evdev. После переподключения проблема не воспроизводится. Правда, в некоторых случаях следует сходить в настройку клавиатуры, в часть горячих клавиш, и поменять там биндинг "Снять скриншот" с Print на Ctrl+Print.
Еще одна проблема - отваливается дополнительная клавиатура. Она лечится добавлением директивы NUMLOCK_METHOD="on" в /etc/nxserver/node.conf.d/50-numlockx.conf. Дополнительно может потребоваться отключение слежения DE за состояникм Numlock'а. В Gnome это делается с помощью gconf-editor'а: снять галку /desktop/gnome/peripherials/keyboard/remember_numlock_state.
Править можно также и вручную, все описанные директивые по такому же пути доступны в xml-файлах в /home/$user/.gconf.
UPD: В некоторых непонятных случаях ничего из вышеперечисленного не помогает. В некоторых случаях из этих некоторых помогает еще одна таблетка - переинициализация среды gnome. Это можно сделать, удалив из ~ директории .gconf .gconfd .gnome .gnome2 .gnome2_private .nautilus  .themes. После перезахода она создадутся заново, и numpad магическим образом начинает работать.

6 сент. 2010 г.

Нечитаемые имена файлов внутри zip-архива

Дельно о корректной распаковке за-zip-ленных в виндах архивах с левой кодировкой - тут.

3 сент. 2010 г.

МТС Коннект

Поговорим о 3G/EDGE/GPRS USB модемах, раздаваемых "большой тройкой". Сейчас речь пойдет о Huawei E1550, но, думаю, для других моделей все нижесказанное тоже актуально, за исключением разве что idProduct'а и idVendor'а, которые можно найти в Сети для каждой железки.
Проблема работы этих устройств в линуксах заключается, по большому счету, в том, что при подключении девайс определяется как CD-ROM, на котором лежит софт для подключения и работы в винде. После установки он сам переключает (flip-flop) девайс на "режим модема". У linux же такое переключение возможно, если работать с модемом софтинкой Mobile Partner от Huawei. Но она, на мой взгляд, уж сильно прожорливая и неторопливая, что особо нехорошо для мобильных устройств. Итак, основная задача - перевести девайс в режим модема, заимев в результате /dev/ttyUSB0, через который pppd и  будет "звонить". В случае Ubuntu все просто:
sudo apt-get install usb-modeswitch
Свежие версии "знают" о Huawei E1550, поэтому добавлять ничего не придется.
Для того, чтобы модем переключался в нужный режим автоматически при подключении, создадим правило udev: /etc/udev/rules.d/45-huawei1550.rules следующего содержания:
SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch -v 0x12d1 -p 0x1446 -m 0x01 -M 55534243000000000000000000000011060000000000000000000000000000"
Таким образом, если udev видит подключенное устройство с совпадающими параметрами, он выполняет соответствующую команду.
Для проверки следует переподключить модем и поглядеть вывод lsusb, который должен отрапортовать о наличии модема.
lsusb | grep Huawei
Bus 003 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
В случае с Debian Lenny действий придется совершить чуть больше, ибо пакет usb-modeswitch доступен только для sid. Не беда, соберем сами. Алгоритм простой: качаем исходники, распаковываем, собираем и устанавливаем. Предварительно полезно прочитать информацию на страничке продукта, выяснив, к примеру, что для сборки необходимо установить пакеты tcl и libusb-dev, а также pppconfig для последующей настройки подключения.
apt-get install tcl libusb-dev pppconfig
mkdir modswitch; cd modeswitch
wget -c http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.1.4.tar.bz2
tar zjvf  usb-modeswitch-1.1.4.tar.bz2
cd  usb-modeswitch-1.1.4
make install
cd ..
wget -c http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20100826.tar.bz2
tar xjvf usb-modeswitch-data.tar.bz2
cd  usb-modeswitch-data
make install
Установщик сам "договорится" с udev-ом, поэтому переключение в режим модема при подключении девайса должно работать сразу, что и следует  проверить после окончания установки usb-modeswitch.
Теперь осталось лишь настроить ppp-подключение. Запускаем pppconfig, отвечаем на вопросы, к примеру, так: 
Create -> mts -> dynamic -> pap -> mts -> mts -> 115200 -> tone -> *99# -> Нет -> /dev/ttyUSB0 -> Finished
Все, осталось запустить соединение:
pppd call mts nodetach
Все должно работать. 
Один раз, на убунте, столкнулся с ошибкой: pppd отключался с таким отлупом:
Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
rcvd [IPCP ConfNak id=0x1 ]
sent [IPCP ConfReq id=0x2 ]
Modem hangup
Connection terminated.
Полечилось явным указанием точки входа в /etc/chatscripts/mts:

# modeminit
'' ATZ
'' AT+CGDCONT=1,\"IP\",\"internet.mts.ru\"
Проверка скорости на internet.yandex.ru:

Я.Интернет. Измерьте вашу скорость.
То бишь - HSDPA имеет место быть худо-бедно ;)