воскресенье, 13 марта 2011 г.

Продолжаю осваивать LIRC устройство

Всем привет. Как ясно из названия заметки - наступила пора прикрутить вторую часть собранного мною устройства, а именно передатчика. Напротив компьютера установлен телевизор, пульт от которого я использую для управления компьютером. Так вот решил, что будет неплохо использовать для его управления функциональность моего нового устройства. Во первых - с компьютера подвел питание +6V

и пришлось расположить устройство так, чтобы светодиод устройства светил прямо на фотодиод телевизора.
Ну и заодно на светодиод надел кусок пластиковой трубки, чтобы убрать "ложные срабатывания", так как оказалось, что управляется не только телевизор, но и компьютер.
А вот с програмщиной под OpenSuse дело обстояло несколько сложнее. Дело в том, что в файл lirc_serial.ko из пакета lirc_kmp_desktop скомпилирован без поддержки трансмиттера. Пришлось скачивать программу с сайта http://prdownloads.sourceforge.net/lirc/lirc-0.8.7.tar.bz2 распаковывать, запускать конфигурацию (в которой по умолчанию стоит поддержка трансмиттера)
Вообщем пришлось установить драйвер вручную, но пакет lirc поставить сверху из репозитория, так как в родном пакете нет годного файла /etc/init.d/lirc. 
И вот теперь командами из консоли можно управлять телевизором

irsend LIST Samsung_BN59-00865A ""    -  Получить список доступных команд пульта

irsend SEND_ONCE Samsung_BN59-00865A P+   - Переключение на следующий канал
irsend SEND_ONCE Samsung_BN59-00865A POWER   - Включить/Выключить телевизор.

понедельник, 7 марта 2011 г.

LIRC устройство в OpenSuse 11.3

Добрый день.
Сегодня успешно закончилась эпопея обуздания инфракрасного порта, который был мной приобретен в магазине в виде набора для самостоятельной сборки http://www.micel.ru/one.php?id=227638,
Для тех, кто последует моему примеру, скажу сразу - позаботьтесь о шлейфе и разъеме для подключения к нему устройства, их нет в комплекте.
Вот, собственно устройство, которое у меня получилось:
Собственно с самим прибором проблем не было. Спаяли мы его с младшим сыном буквально часа за три. А вот дальше началось самое интересное. Материнская плата ASUS P5B имеет на борту единственный COM порт, но разводка самого порта очень необычна (терминология, сами понимаете изменена). Естественно для осознания того, что проблема не во мне и не в непроверенных деталях и не в качестве пайки, а в инженерной мысли конструкторов пришлось обращаться к друзьям с просьбой протестировать устройство. Вообщем все дело оказалось в распайке шлейфа и я с наслаждением даю ссылку на схему соответствия контактов:
После того, как я убедился в исправности устройства настало время для его настройки. Для  Windows достаточно скачать программу WinLirc у которой в комплекте есть необходимые инструменты для проверки и настройки устройства.
1. Распаковываем архив скачанный вот отсюда http://winlirc.sourceforge.net/
2. Ищем имеющийся пульт управления здесь http://lirc.sourceforge.net/remotes/ и скачиваем файл
3. Запускаем программу и проводим в ней настройки на наш COM порт и выбираем файл с нашим пультом управления.



После этого можно воспользоваться утилитой RawCodes чтобы увидеть, что устройство принимает с пульта сигналы
Ну и если подключить питание к разъему на устройстве, то можно прямо из программы WinLIRC управлять вместо пульта управления ну скажем телевизором.
Несколько сложнее оказалось настроить работу с пультом в OpenSUSE. Сама программа LIRC есть в репозитории, но если для подоконников все нужное оказалось в одном архиве, то для работы с LIRC пришлось читать много и на английском вот здесь http://www.lirc.org/html/index.html
Первое что пришлось - это настраивать работу модуля lirc_serial с портом 3F8.
Вот те 2 заветные команды, которые позволили из консоли администратора увидеть устройство:

setserial /dev/ttyS0 uart none
modprobe lirc_serial type=0 irq=4 io=0x3f8 sense=1
Для проверки того, что с пульта приходят команды использовалась команда 
mode2 -d /dev/lirc0
То есть везде пришлось явным образом указывать режимы работы портов и номера устройств.
На рисунке, представленном ниже виден вывод программы (верхние 3/4 окна. Для выхода из программы использован Ctrl-C) 

И после того, как я убедился, что с порта все идет как надо дошло дело до настройки сервера LIRCD. 
Файл с настройками пульта был скопирован в каталог /etc/lirc под именем lircd.conf
после чего вручную был запущен сервер lircd с параметром -n для работы в консольном режиме. (На рисунке выше виден запуск сервиса и вывод информации о подключаемых к сервису клиентах).
Далее можно убедиться в том, что сервер нормально расшифровывает команды, принимаемые с пульта управления. Для этого в другом окне, также с правами root-а, запускаем программу irw и нажимаем на кнопки пульта управления. В окне должны увидеть что-то подобное:
Ну теперь мы справились с настройками и убедились, что все работает, далее настраиваем сервис LIRC (как я понял - надстройка над LIRCD для запуска через init.d)
В файл /etc/sysconfig/lirc были внесены следующие изменения:
LIRCD_DEVICE="/dev/lirc0"
LIRC_MODULE="lirc_serial"
И после этого сервер LIRC был запущен вручную командой 
/etc/init.d/lirc start
При этом в системном лотке KDE программа Kremotecontrol отобразила, что доступен пульт управления Samsung_BN59_00865A.
Теперь осталось привести все описанные команды в исполнение в момент загрузки компьютера . С сервером LIRC поступаем просто - идем в Yast и указываем на 5-м уровне запуск сервиса автоматически. Но для того, чтобы он сработал необходимо проинициализировать последовательный порт и загрузить драйвер lirc_serial. Если честно, было лениво искать как это все делать правильно, потому я засунул обе команды в раздел старта сервиса в файл /etc/init.d/lirc получилось вот так:
...
case "$1" in
    start)
# VVG 
echo -n Setup COM port
/bin/setserial /dev/ttyS0 uart none
echo -n Start LIRC_COM device
modprobe lirc_serial type=0 irq=4 io=0x3f8 sense=1
# /VVG
echo -n "Starting lircd "
...
Перегрузил компьютер и все стартовало как надо. Далее выполняем привязку действий на требуемые кнопки пульта ДУ...
Разваливаемся на диване и балдеем. 

понедельник, 7 февраля 2011 г.

KDE 4.6 в OpenSuSE 11.3


Всем привет.
Как и ожидалось, в репозитории http://download.opensuse.org/repositories/KDE:/Release:/46/openSUSE_11.3/ были размещены бинарные пакеты KDE версии 4.6 для дистрибутива OpenSuSE 11.3.
Первые сборки разместили еще 30 января, но мой первый опыт обновления был неудачным. Пришлось откатываться обратно на 4.5.5. Но 3 дня назад я попробовал снова обновиться и ...уже успешно. Впечатления от рабочего стола - очень хорошие. Все работает стабильно и надежно. Единственный глюк, который мной был замечен - терялись ползунки в программе Kmix, но проблема оказалась в некорректном считывании значений из старой версии файла ~/.kde4/share/config/kmixctrlrc - удалил его, загрузил KDE (файл пересоздался)  и все заработало как надо. Так что моя рекомендация - обновляйтесь.

суббота, 29 января 2011 г.

Основные вопросы установки OpenSuse 11.3 и Mandriva 2010.2

Привет всем.
Вчера, как я писал в прошлом посте, вновь завалил свой OpenSuse при попытке де инсталлировать KDE 4.5.9 (для "чистой" установки 4.6.0). Потому пришлось вновь переустанавливать систему начисто (разумеется переустанавливаются только системные разделы, а раздел /home как был создан при установке нового винчестера в начале 2010г. так и продолжает жить со всеми закладками, документами и загрузками и файлами меня и моих домочадцев).
Ну а поскольку свежа в памяти установка Mandriva 2010.2, то расскажу и о ней.
Итак, OpenSuSE 11.3
Сразу после установки и обновления системы сталкиваешься с несколькими проблемами - 1. Стандартные драйвера NVIDIA версии 260 из стандартного репозитория. Проблема проявляется при попытке запустить VirtualBox - выходит сообщение  Исключение в операции с плавающей точкой
Способ исправления ошибки мной уже ранее рассматривался. Помните, что заменить драйвер нужно еще до обновления KDE до версии 4.5 и выше или получите неработающий рабочий стол KDE и посмотреть в интернете способы решения проблемы будет гораздо сложнее. Теперь перейдем к добавлению репозиториев. Опять же не буду повторяться о том как это сделать (Внешне Yast из OpenSuSE 11.2 мало отличим от Yast в OpenSuSE 11.3). Итак, нажимаем "Добавить" и в появившемся окне
оставляем переключатель в положениии "Указать URL" и нажимаем кнопку "Далее "

Далее я буду перечислять добавленные репозитории давая полный URL и его имя.
Yandex зеркало репозитория PACMAN ftp://mirror.yandex.ru/opensuse/packman/11.3/
Поставил именно это зеркало, поскольку доступ к нему через ADSL в Череповце идет на скорости до 8 мегабит в секунду. Пакман из репозитория сообщества дает скорость в 1 мегабит - скорость подключения по договору с провайдером.
Далее KDE 4.5 http://download.opensuse.org/repositories/KDE:/Release:/45/openSUSE_11.3/
в репозитории на момент написания заметки расположена версия 4.5.5 - довольно стабильная версия.
KDE 4.6 -  http://download.opensuse.org/repositories/KDE:/Release:/46/openSUSE_11.3/ репозиторий пока пуст, но думаю когда новую версию для OpenSuSE разместят она будет там.
Ну и если надоело устанавливать вручную проприетарный VirtualBox, то вот ссылка на его репозиторий http://download.virtualbox.org/virtualbox/rpm/opensuse/11.3/.

Madriva 2010.2
В случае этого дистрибутива наибольшие вопросы были к устройствам работы со звуком. Оказалось, что корень всех проблем таился в настройках PulseAudio. Но про настройки я расскажу чуть попозже. Сначала добавим репозитории. Как и в случае с OpenSuSE, приоритет отдается заркалам Yandex. Добавить репозитории Вы можете через центр управления Mandriva, но я, подключаясь через ssh все таки предпочитаю командную строку - быстрее и надежнее. Итак, вот последовательность команд для добавления нужных репозиториев:
urpmi.addmedia main http://mirror.yandex.ru/mandriva/official/2010.2/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia main_backports http://mirror.yandex.ru/mandriva/official/2010.2/i586/media/main/backports with media_info/hdlist.cz
urpmi.addmedia contrib http://mirror.yandex.ru/mandriva/official/2010.2/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia contrib_backports http://mirror.yandex.ru/mandriva/official/2010.2/i586/media/contrib/backports with media_info/hdlist.cz
urpmi.addmedia non-free http://mirror.yandex.ru/mandriva/official/2010.2/i586/media/non-free/release with media_info/hdlist.cz
urpmi.addmedia non-free_backports http://mirror.yandex.ru/mandriva/official/2010.2/i586/media/non-free/backports with media_info/hdlist.cz
urpmi.addmedia --update main_updates http://mirror.yandex.ru/mandriva/official/2010.2/i586/media/main/updates with media_info/hdlist.cz
urpmi.addmedia --update contrib_updates http://mirror.yandex.ru/mandriva/official/2010.2/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia --update non-free_updates http://mirror.yandex.ru/mandriva/official/2010.2/i586/media/non-free/updates with media_info/hdlist.cz
urpmi.addmedia KDE_4.5 ftp://mirror.yandex.ru/mirrors/ftp.kde.org/stable/4.5.5/Mandriva/2010.2/i586/

urpmi --auto-update 
Желающий может скопировать текст, поместить его в файл, назвать его как-то add_reps.sh и выполнить через консоль с правами администратора  sh add_reps.sh
Резульатом будет:
Ядро Linux localhost 2.6.36.2-desktop586-2mnb
KDE 4.5.5 и обновление практически всех программ.
И теперь возвращаемся к настройке PulseAudio
В программе настройки уровня звука PulseAudio (Меню - приложения-аудио и видео-громкость) следует выбрать правильную схему звуковой карты во вкладке "Конфигурация".

Удачи!

вторник, 4 января 2011 г.

Удаленное подключение к компьютеру с Mandriva 2010.2 через VNC с использованием SSH

Добрый день.
Все большее число людей просят установить Linux. Мне эта тенденция нравится, поскольку ковыряться на компьютерах с Windows, кишащих червями, вирусами и троянами, право слово, дело ассенизаторов, а не программистов.
Теперь несколько слов о рекомендуемых мной дистрибутивах - Open SuSe, Mandriva и Ubuntu.
Дистрибутив OpenSuSe я использую сам и рекомендую устанавливать его тем, кто собирается изучить Linux более или менее углубленно, кому нравится экспериментировать с новинками, но при этом надо быть готовым к тому, что после очередного обновления KDE до последней версии вам все таки придется откатываться на стандартную версию рабочего стола. Однако,  благодаря консольной версии yast я знаю, что никаких проблем с восстановлением системы не будет, а кроме того, подключение и удаленное дминистрирование по протоколу SSH позволяет достаточно быстро решать вопросы на компьютерах моих друзей.
Следующим дистрибутивом, который я рекомендую для установки на домашних компьютерах пользователям, у которых есть желание просто поставить и пользоваться - это дистрибутив Mandriva. Мне кажется, что центр управления в этом дистрибутиве более прост и понятен начинающим пользователям, нежели в OpenSuSe.
И наконец третий дистрибутив - Ubuntu. Его я рекомендую потому, что лично стал свидетелем его самостоятельной установки и успешного освоения одним знакомым врачем - человеком весьма отдаленным от информационных технологий.

Далее речь пойдет о требуемых настройках в дистрибутиве Mandriva, необходимых для того, чтобы к нему стало возможно подключиться удаленно, причем подключиться к графическому рабочему столу KDE.
Подключаться мы будем через штатный протокол VNC, но для того, чтобы избежать проблем с несанкционированным подключением (о том как меня ломали можно почитать здесь) делать мы это будем через зашифрованный протокол SSH.
Итак, перед вами установленный по умолчанию дистрибутив Mandriva 2010.2 (установлен с live KDE CD).
Первое - необходимо включить сервер SSHD. Делается это через центр управления (Навигация: Меню -> Утилиты -> Системные ->Настройка компьютера) После ввода пароля root-а попадаем в центр управления Mandriva. Переходим во вкладку "Система" и выбираем "Включение и отключение системных сервисов"
В списке находим строку сервиса SSHD, в ней ставим галочку "При запуске" и нажимаем на кнопку "Запустить". Через несколько секунд служба запустится.
 Нажимаем "Ok"  и возвращаемся в центр управления. Теперь нужно настроить Fierwall для того, чтобы к службе можно было подключиться из вне.
Переходим во вкладку "Безопасность" и выбираем пункт "Настройка персонального файерволла"
В открывшемся окне выставляем галочку напротив SSH и также нажимаем "Ok"
Далее ничего больше не меняем, соглашаемся с принятыми настройками для выбранного интерфейса (все время "Ok"), после чего можно закрыть центр управления Mandriva.
Следующим шагом настроим доступ к удаленному рабочему столу. (Навигация: Меню -> Утилиты -> Системные ->Krfb)
В открывшемся окне программы нажимаем кнопку "Настроить"
Проверим, что в разделе "Сеть" настройки выглядят как на рисунке и переходим к разделу "Безопасность"
Здесь мы укажем минимальный уровень безопасности и введем простенький пароль для соединения без приглашения (дело в том, что в настройках программы "Клиент терминального сервера" без указания пароля создать подключение у меня не получилось). Настройка минимальной безопасности нас устраивает, поскольку настоящая безопасность будет обеспечена шифрованием SSH. Собственно на компьютере пользователя более проводить никаких дополнительных настроек не нужно. 
Переходим к настройкам на стороне администратора.
Для подключения используется программа Terminal server client.
В нем создается новое подключение
В котором в качестве сервера указываем localhost и некий произвольный не занятый порт - в моем случае 15900 и указываем пароль, который был указан в настройках Krfb на машине с Mandriva. Сохраняем соединение и идем в терминал, где инициируем SSH соединение следующей командой: ssh username@192.168.1.4 -L localhost:15900:localhost:5900
Рассмотрим подробно из чего состоит и что делает означенная команда:
username - имя пользователя для входа на компьютер с Mandriva
192.168.1.4 - адрес компьютера с Mandriva (понятно что адрес к которому будем подключаться следует заранее узнать)
Опция -L localhost:15900:localhost:5900 пробрасывает порт 5900 компьютера с Mandriva на порт 15900 моего компьютера, таким образом, подключаясь с своей машине по порту 15900, я фактически попаду на порт 5900 компьютера с Mandriva.
Вот и все. Теперь можно удаленно подключаться и помогать друзьям не тратя времени на дорогу.

суббота, 20 ноября 2010 г.

is607 Установка optware вручную

Добрый день уважаемые посетители моих заметок.
Обновил я на своем i-Stor 607 прошивку на 2.6.3-20100921.
Общее впечатление - вроде как работать стал аппарат поживее, приятно, что интерфейс стал русским, появился Transmission и sshd прямо из коробки.
Из минусов - все что скачивается с торрентов складывается в каталог download с атрибутами root-а, в результате чего понадобилось изменять привилегии на каталог. Ну и еще одно - не смог установить пакет optware, который добавляет недостающие консольные UNIX утилиты - wget, screen, mc, top ...
На сайте поддержки информации по установке не нашел - предлагаются разные способы от разных IS устройств, но у меня ничего не сработало. Поэтому все поставил руками и теперь делюсь с Вами опытом.
Оговорюсь, что мой апарат настроен на IP адрес 192.168.1.5 и каталог public примонтирован к /mnt/ide1. На устройстве включен ssh и каталог public подключен на чтение - запись к моим компьютерам по NFS протоколу.


Теперь скачиваем файл optware-vc-0.1.tgz - в нем предустановлены нужные утилиты, а таже уже ненужный нам sshd.
Далее, по сети разархивируем файл в папку application на устройстве IS607. После разархивации появится папка optware в которой будет лежать нужный нам файл optware.tgz
Теперь заходим в консоль устройства через SSH под учетной записью root  (из терминала Linux команда ssh root@192.168.1.5 пароль от admin) и далее выполняем следующие команды:
cd /mnt/ide1
tar -xzf ./mnt/ide1/public/applications/optware/optware.tgz
(Не забываем заменять /mnt/ide1 на свое значение, которое можно найти в WEB интерфейсе устройства - меню "Настройки" > "Управление доступом" - смотрим поле "ПУТЬ").
После выполнения команд должен появиться каталог /mnt/ide1/optware (проверить можно командой ls /mnt/ude1).
Далее, удалим запуск sshd из optware, поскольку в прошивке уже есть свой экземпляр программы
rm /mnt/ide1/optware/etc/init.d/S40sshd
Теперь нам понадобится скрипт, по которому каталог /mnt/ide1/optware будет монтироваться в каталог /opt и запускать установленные менеджером ipkg программы.
Ниже привожу текст скрипта start_optware.sh - представляет собой несколько переработанный файл init

#! /bin/sh
REAL_OPT_DIR=/mnt/ide1/optware/

echo "Starting Optware."
if test -n "${REAL_OPT_DIR}"; then
  if ! grep ' /opt ' /proc/mounts >/dev/null 2>&1 ; then
    mkdir -p /opt
    mount -o bind ${REAL_OPT_DIR} /opt
  fi
fi

export PATH=$PATH:/opt/bin:/opt/sbin
echo "export PATH=$PATH" >> /etc/profile
echo "export PATH=$PATH" >> /root/.profile
touch /etc/profile
if [ -x /opt/etc/rc.optware ]; then
         /opt/etc/rc.optware
fi


В оригинале переменная REAL_OPT_DIR определялась командой cat /usr/sausalito/codb/objects/1/Disk.rootdir, но в новой версии прошивки почему то возвращается пустое значение, поэтому стандартные скрипты на установку и запуск не работают. А мы, чтобы обойти эту ошибку, инициализируем переменную константой (кстати, тоже не забудьте исправить /mnt/ide1 на свое значение).
Скрипт сохраняем в файл /mnt/ide1/optware/bin/start_optware.sh и делаем его исполняемым. Тем, кто работает в линуксе проще всего это сделать войдя на IS607 по протоколу FISH в mc (тем кто в Windows - рекомендую создать текстовый файл в каком нибудь редакторе, сохранить его в папке на IS607, перенести в нужный каталог командой mv и установить атрибут на файл командой chmod +x )
Итак, все что нужно почти сделано. Теперь удаляем исходный распакованный архив optware-vc-0.1.tgz из /mnt/ide1/public/applications и теперь можно запускать optware. Я делаю это через консоль вот так:

ввожу пароль и optware запускается. Теперь до отключения IS607 все команды пакета будут доступны, но после перезагрузки нужно снова выполнить скрипт. Обращаю внимание, что работать в системе под root-ом не желательно, поэтому для работы с устройством я вхожу под своим логином и пользуюсь утилитами из Optware.
Удачи.

PS
Совсем забыл.
Для того чтобы запустить программу из Optware не забудьте что нужно внести в файл .profile в домашнем каталоге пользователя под которым вы входите в строку PATH следующие каталоги
:/opt/bin:/opt/sbin
вот теперь все будет работать сразу после входа в консоль. 

четверг, 4 ноября 2010 г.

Обновление KDE 4.5.3 - ошибка при старте Plasma в OpenSuSe 11.3

Добрый вечер уважаемые обладатели NVIDIA, как ни странно но именно у нас при обновлении KDE до версии 4.5.3 возникает неприятная ошибка при старте - система ругается на plasma и работать не дает. Виной всему - новая версия драйвера NVIDIA, конфликтующая с новым релизом рабочего стола. Описание ошибки и собственно решение на английском Вы можете увидеть здесь http://forums.opensuse.org/english/get-help-here/install-boot-login/449305-warning-update-factory-kde-4-5-3-generate-big-problem-2.html а я опишу коротко путь пройденный мной:
1. Из под рабочего стола LXDE скачал более старую версию драйвера отсюда NVIDIA-Linux-x86-256.53.run
2. Завершил сессию и перешел на первую консоль (ctrl-alt-F1) где зарегистрировался под root-ом
3. Переключился в init 3
4. Запустил yast и удалил пакеты из репозитория NVIDIA, после чего удалил и сам репозиторий.
5. Запустилна исполнение скачанный драйвер командой sh NVIDIA-Linux-x86-256.53.run далее прошел по вопросам инсталлятора и отказался от автоматической настройки.
6. Выполнил команду modprobe nvidia
7. Запустил X командой rcxdm start

Вот собственно и все. Может кому пригодится.