Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины.
   

Вернуться   Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины. > Помощь и поддержка > Поддержка платформы Linux \ Live

Ответ
 
Опции темы Опции просмотра
Старый 29.07.2010, 18:23   #1
spinner
Junior Member
 
Регистрация: 29.07.2010
Сообщений: 4
Post Как подключить родной пульт ASRock ION 330HT в openSUSE 11.3 (инструкция)

Всем привет.

Полгода назад друг спросил у меня как это сделать. Но девайса для экспериментов у меня не было и я ему лишь подсказал как распаковать DEB-пакеты. В итоге он купил другой пульт...

Недавно я таки обзавелся своим экземпляром этой чудесной железки и решил вести ритуальную пляску с бубном до окончательной победы. Результатами делюсь со всеми, кому интересно. Надеюсь это избавит кого-нибудь от многочасового гугления:

Шаг первый: получаем исходный код драйверов

Драйвера скачиваются с сайта производителя:

Код:
wget http://europe.asrock.com/downloadsite/drivers/Nettop/Ubuntu/IR(10.04).zip
Распаковываем вложенные матрешкой ZIP'ы и получаем два исходных файла: lirc-nct677x-src-1.0.4-ubuntu10.04.deb и lirc-nct677x-1.0.4-ubuntu10.04.deb.

Для того, чтобы распотрошить дебиановские пакеты нужно установить утилиту dpkg из пакета deb:

Код:
zypper install deb
Потрошим дебиановские пакеты:

Код:
dpkg -x lirc-nct677x-1.0.4-ubuntu10.04.deb conf
dpkg -x lirc-nct677x-src-1.0.4-ubuntu10.04.deb src
В результате получаем две директории: src и conf, с исходниками и конфигурационными файлами соответственно. Конфиги понадобятся нам в самом конце, так что приступаем к укрощению исходников.

Шаг второй: Подготовка ядра

Для начала нужно убедиться, что установлены исходники ядра. В нашем примере мы используем официальное сусешное ядро 2.6.34-12-desktop. Заодно установим lirc, чтобы не возиться потом со скриптами запуска.

Код:
zypper install kernel-desktop-devel kernel-devel lirc
Теперь переходим в /usr/linux и готовим исходники ядра к сборке модулей:

Код:
make menuconfig
Нужно убедиться, что в разделе конфигурации General Setup в поле Local version мы видим "-12-desktop". Далее:

Код:
make prepare
По идее, этого достаточно, чтобы начать собирать модуль. Но поверьте, гораздо спокойнее жить когда ядро собрано на целевой системе. Поэтому рекомендую не полениться и собрать ядро, модули, установить всё и перезагрузиться уже в свое ядро. Знаю что «боянище», тем не менее:

Код:
make && make modules_install && make install
После перезагрузки заругался драйвер NVIDIA на невозможность сделать vmalloc. Вылечилось установкой параметра ядра при загрузке vmalloc=512m. Разумеется, можно этот параметр подкрутить перед сборкой ядра в конфиге. Пусть это будет домашним заданием особо въедливым читателям.

Шаг третий: сборка LIRC

Теперь нам нужны исходники LIRC, версия 0.8.6 для нашего случая. Скачиваем с www.lirc.org и распаковываем в /usr/src/lirc-0.8.6.

Конфигурируем LIRC с помощью ./configure, в меню выбираем Driver Configuration > IRDa/CIR hardware > WinBond 8769L, возвращаемся и выходим через Save configuration & run configure.

Не спешите запускать сборку — исходники LIRC придется патчить. Во-первых, нужно подсказать LIRC куда в новых для него ядрах подевался файл autoconf.h

Код:
ln -s /usr/src/linux/include/generated/autoconf.h /usr/linux/include/linux/autoconf.h
Пуристы могут вместо этого заменить linux/autoconf.h на generated/autoconf.h по всему дереву исходников LIRC.

Во-вторых, нужно подкрутить drivers/lirc_dev/lirc_dev.h:

Код:
cd /usr/src/lirc-0.8.6/drivers/lirc_dev
wget http://launchpadlibrarian.net/39884031/lirc-LP529514.patch
patch < lirc-LP529514.patch
Теперь LIRC можно собирать и устанавливать:

Код:
make && make install
Теперь приступаем к сборке модуля:

Шаг четвертый: сборка модуля ИК-порта

Исходники драйвера ИК-порта тоже переносим в /usr/src/lirc-nct677x-src-1.0.4-ubuntu9.10.
Заходим в эту директорию и собираем модуль командой:

Код:
make -C lirc_wb677 KSRC=/usr/src/linux KVER="2.6.34-12-desktop" modules
Если всё сделано правильно, модуль соберется, но ругнется на отсутствующие определения двух функций — lirc_register_driver и lirc_unregister_driver. Это неприятно, но с этим жить оказывается можно. Честным путем такой модуль загружаться откажется, но если его принудить, то будет работать без вопросов.

Устанавливаем модуль:

Код:
cp lirc_wb677/lirc_wb677.ko /lib/modules/2.6.34-12-desktop/misc/lirc_wb677.ko
depmod -a
Загружаем модули:

Код:
modprobe lirc_dev
modprobe -f lirc_wb677
Шаг пятый: сборка всего вместе и проверка

Осталось немного: сконфигурировать LIRC и проверить.

Заходим в директорию conf, в которую распаковывали конфигурационные файлы и находим там lircd.conf.wb677. Копируем его как /etc/lirc/lircd.conf

Все, запускаем lircd и проверяем его работу программой irw, нажимая кнопки на пульте. Должен получиться примерно такой результат:

Код:
000000037ff07bf2 00 Home mceusb
000000037ff07bf2 00 Home mceusb
000000037ff07bf2 01 Home mceusb
000000037ff07be1 00 Up mceusb
000000037ff07be1 01 Up mceusb
000000037ff07be0 00 Down mceusb
000000037ff07be0 01 Down mceusb
000000037ff07bdd 00 OK mceusb
000000037ff07bdd 01 OK mceusb
Дальнейшие шаги уже зависят от фантазии. Я просто прописал команды загрузки модулей в /etc/init.d/lirc, чтобы они выполнялись, когда тот получает команду start.

Пульт работает.
spinner вне форума   Ответить с цитированием
   
Старый 29.07.2010, 18:55   #2
bsp
Member
 
Аватар для bsp
 
Регистрация: 11.05.2010
Сообщений: 37
По умолчанию

У меня вопрос , а к XBMC Вы его прикрутили этот пульт? Если можно, то hardware.conf, lircd.conf и lircmap плз приложите к сообщению. Интересно посмотреть.
И вот это :
"Я просто прописал команды загрузки модулей в /etc/init.d/lirc, чтобы они выполнялись, когда тот получает команду start."
Поподробней нельзя на эту тему?
__________________
nettop _ XBMC_lucid_mini

Последний раз редактировалось bsp; 29.07.2010 в 19:26.
bsp вне форума   Ответить с цитированием
Старый 29.07.2010, 19:31   #3
spinner
Junior Member
 
Регистрация: 29.07.2010
Сообщений: 4
По умолчанию

В установленном из репозитория PACKMAN XBMC (9.11) работает без вопросов.

hardware.conf и lircmap в системе отсутствует (?!), lircd.conf взят из пакета с драйвером. Приложил.
Вложения
Тип файла: txt lircd.conf.txt (9.3 Кб, 257 просмотров)
spinner вне форума   Ответить с цитированием
Старый 29.07.2010, 19:33   #4
spinner
Junior Member
 
Регистрация: 29.07.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от bsp Посмотреть сообщение
"Я просто прописал команды загрузки модулей в /etc/init.d/lirc, чтобы они выполнялись, когда тот получает команду start."
Поподробней нельзя на эту тему?
Код:
case "$1" in
    start)
        modprobe lirc_dev
        modprobe -f lirc_wb677
        echo -n "Starting lircd "
Вот так
spinner вне форума   Ответить с цитированием
Старый 29.07.2010, 19:40   #5
bsp
Member
 
Аватар для bsp
 
Регистрация: 11.05.2010
Сообщений: 37
По умолчанию

Цитата:
Сообщение от spinner Посмотреть сообщение
В установленном из репозитория PACKMAN XBMC (9.11) работает без вопросов.
Именно это и интересовало. У Вас , если смотреть на lirc-nct677x-src-1.0.4-ubuntu10.04.deb, ось на базе ubuntu10.04. А XBMC 9.11 из пакетов стабильной версии собран.
В обычной мини убунте 10.04 у меня проблема с пультом . irw показывает коды для кнопок пульта без проблем. А irrecord запускается , но не реагирует на пульт.
Press RETURN to continue.
Now enter the names for the buttons.
Please enter the name for the next button (press <ENTER> to finish recording)
KEY_1

Now hold down button "KEY_1".
irrecord: no data for 10 secs, aborting
The last button did not seem to generate any signal.
Press RETURN to continue.

Спасибо за ответ.
__________________
nettop _ XBMC_lucid_mini

Последний раз редактировалось bsp; 29.07.2010 в 19:51.
bsp вне форума   Ответить с цитированием
Старый 29.07.2010, 22:40   #6
Joky
Senior Member
 
Регистрация: 08.06.2010
Сообщений: 215
По умолчанию

to bsp:
вы ошибаетесь, у него не ubuntu, а openSUSE, поэтому такие замороченные шаги.

у меня в мини ubuntu 10.04 этот пульт и считыватель работает нормально, хотя пришлось пошаманить
__________________
LibreELEC 9.2.6 -> Mini-PC GB-XM12-3227 -> SHARP LC-40LE700 & Yamaha RX-V367
Joky вне форума   Ответить с цитированием
Старый 29.07.2010, 23:39   #7
bsp
Member
 
Аватар для bsp
 
Регистрация: 11.05.2010
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Joky Посмотреть сообщение
to bsp:
вы ошибаетесь, у него не ubuntu, а openSUSE, поэтому такие замороченные шаги.

у меня в мини ubuntu 10.04 этот пульт и считыватель работает нормально, хотя пришлось пошаманить
По мне хоть убунту, лубунту , рунту - всё одно линуксовая ось. А openSUSE эта драйвер от lirc-nct677x-src-1.0.4-ubuntu10.04.deb юзает.
А Вам и шаманить то наверное не надо было, если специально драйвер для 10.04 под Ваш пульт написали, да и на 35 страницах на основном форуме по этому вопросу http://forum.xbmc.org/showthread.php?t=61840 и здесь http://forum.sabayon.org/viewtopic.p...102c3dc49f8163 и здесь https://bbs.archlinux.org/viewtopic.php?pid=727145
Мне другое в этом вопросе интересно было . На сайте lirc написано , что он поддерживает 2.6.31 и тестировался на нём. http://lirc.org/faq.html#compilation
А бубунта 10.04 с 2.6.32.хх пошла
~$ uname -v -r
2.6.32-24-generic #38-Ubuntu
Может поэтому и праблы с пультом?
__________________
nettop _ XBMC_lucid_mini

Последний раз редактировалось bsp; 01.08.2010 в 16:51.
bsp вне форума   Ответить с цитированием
Старый 30.07.2010, 02:03   #8
spinner
Junior Member
 
Регистрация: 29.07.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от bsp Посмотреть сообщение
По мне хоть убунту, лубунту , рунту - всё одно линуксовая ось. А openSUSE эта драйвер от lirc-nct677x-src-1.0.4-ubuntu10.04.deb юзает.
Ну что Вы, нельзя же так всё под одну гребенку. Конечно, все "*бунты" близкие родственники, но с openSUSE у них огромное количество различий. И самое неприятное - отличающийся подход к конфигурированию системы.

Так исторически сложилось, что я "сусешник" и мое нежелание жить с Убунтой в медиацентре вызвано именно нежеланием тратить время на изучение, что там и где у ней закопано. Как говорится у классиков "лучше сейчас три дня потерять, зато потом за полчаса долететь".

Я ни вкоем случае не хочу сказать, что Ubuntu это плохо. И в случае с XBMC она является наименее безболезненным выбором, т.к. работает все в общем-то "из коробки". Но дело в том, что я на установке XBMC останавливаться не собираюсь, и буду обучать свой медиацентр разным премудростям. И тут очень важно точно знать, какие гайки в какую сторону крутить.

Также неверно, что в моем примере openSUSE использует драйвер от Ubuntu. Так можно было бы сказать, если бы я нашел способ установить и заставить работать убунтовкий бинарный пакет. А тут совершенно о другом речь: инженеры ASRock запаковали драйвер только для Ubuntu, видимо на остальных сил не хватило. Потому-то из src-пакета был выпотрошен и укрощен исходник драйвера, то есть модуля ядра. А модулю наплевать на дистрибутив, т.к. он живет внутри ядра и с внешним миром общается только посредством жестко стандартизированных механизмов.

Это очень важно понимать, т.к. описаный мной путь с небольшими отклонениями можно использовать на вообще любом дистрибутиве использующим ядро 2.6.34, будь то хоть Gentoo или Arch или ASPLinux. Кому что по душе.

Вот про LIRC Вы совершенно правы, в новых версиях ядра изменен API, которым он пользуется. Из-за этого собрать его не найдя подходящий патч невозможно.

P.S. Не принимайте близко к сердцу - люблю потеоретизировать

Последний раз редактировалось spinner; 30.07.2010 в 02:08. Причина: орфография
spinner вне форума   Ответить с цитированием
Старый 30.07.2010, 07:53   #9
bsp
Member
 
Аватар для bsp
 
Регистрация: 11.05.2010
Сообщений: 37
По умолчанию

spinner
Описание у Вас про пульт в openSUSE прекрасное. Мега зачёт.
И мне все равно кто какую ось юзает. И холивар на эту тему разводить совсем не хочу.
Мне нужно понять будет ли что в обновлениях 10.04 в сторону улучшения драйверов для пультов и как скоро. Или lirc.org об этом позаботится. Я у них нашёл присланный кем-то lirc_0.8.7pre специально заточенный под Aureal пульт, присланный каким-то энтузиастом. Отсюда вопрос стоит ли сейчас бежать в сторону 10.04 или юзать старый стабильный пакет хбмс на базе 9.10, тем более, что он работает неплохо.
Непонятно, есть ли необходимость в kernel 2.6.32.xx в связке с новыми версиями xbmc. То есть обязательно ли для новых версий XBMC использовать ось с kernel 2.6.32.xx или можно поставить ту же кармик с kernel 2.6.31.19 и на неё xbmc svn 32246 например. Тогда вопрос насколько корректно эта связка будет работать и будет ли вообще работать. Или хбмс запросит апгрейда ядра оси ?
Или такой вариант , можно ли кодеки нового svn вклеить в старый релиз 1.9.11 svn26018 ?
Ну не нравится мне просто как много вопросов возникает по новой 3хххххх сборке . Пока только один плюс - это в обработке разного формата видео.
Путанно конечно , но смысл думаю понятен. Тоже люблю потеоретить.
__________________
nettop _ XBMC_lucid_mini

Последний раз редактировалось bsp; 01.08.2010 в 15:46.
bsp вне форума   Ответить с цитированием
Старый 02.08.2010, 23:29   #10
bigbax
Senior Member
 
Аватар для bigbax
 
Регистрация: 12.12.2009
Адрес: Моск.обл.
Сообщений: 4,433
Отправить сообщение для bigbax с помощью ICQ
По умолчанию

------------------------------------------
__________________
Ubuntu 20.0.х, Kodi next

Последний раз редактировалось bigbax; 08.09.2011 в 18:36.
bigbax вне форума   Ответить с цитированием
Ответ

Метки
asrock, ion 330ht, lirc, opensuse
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AsRock ION 330HT-BD Char Оборудование для XBMC 14 25.12.2012 15:08
IR-драйвер для ASRock ION 330HT Joky Поддержка платформы Linux \ Live 16 12.05.2012 11:37
Пробема с asrock ION330 нет звука по HDMI. KoKa Оборудование для XBMC 36 31.07.2011 19:34


Текущее время: 08:04. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.