пятница, 15 июля 2011 г.

WDTV gen 1: подключение к сети

Девайс: WDTV HD Gen1
Задача: Подключить аппарат к компьютерной сети, настроить доступ с него к сетевым ресурсам для показа/проигрывания медиа-контента.
Решение:
1. Общее описание.
Используем альтернативную прошивку, позволяющую решить вышепоставленную задачу.
2. Мое решение.
Сначала была опробована прошивка от 1.03.01_B-RAD.CC_WDLXTV-0.5.8.1 (http://b-rad.cc).
При этом не было ничего из вспомогательных "железок", так как видимо поначалу было желание увидеть в принципе рабочий после перепрошивки девайс.
После были заказаны три адаптера USB-RJ45, два с китайского интернет-магазина, и один в российском интернет-магазине. В итоге на руках оказались модели: [1] KY-QF9700 (http://www.dealextreme.com/p/usb-10-100-rj45-ethernet-network-adapter-dongle-2797), [2] безымянная модель (http://www.dealextreme.com/p/usb-2-0-10-100mbps-rj45-lan-ethernet-network-adapter-dongle-34691) и [3] TRENDnet TU-ET100C (http://trendnet.ru/products/catalog/detail/TU-ET100C).
Далее все адаптеры были предварительно протестированы на ноутбуке с linux (просто потому, что будущая рабочая прошивка WDTV основана на linux-ядре). В качестве теста я просто произвел подключение каждого из них и командой ifconfig посмотрел состояние сетевых интерфейсов системы. 1й девайс никак себя не обнаружил, 2й и 3й сразу были показаны, как дополнительный сетевой интерфейс.
Итак, флешка с альтернативной прошивкой была подготовлена: архив с прошивкой был распакован, содержимое скопировано в корень флешки, затем был отредактирован файл  net.config для настройки адреса и других сетевых параметров будущего сетевого интерфейса WDTV.
Устанавливаю флешку в боковой usb-разъем WDTV, адаптер 3 - в задний usb-разъем WDTV.
Девайс обнаруживает обновление. Я перехожу в режим обновления прошивки и запускаю процесс. Прошивка проходит успешно и девайс окончательно перегружается.
Во-время загрузки в какой-то момент сверху логотипа загружаемой системы указывается IP адрес (если адаптер схватился удачно и настройки были корректно считаны с флешки и применены) . В случае неудачи там будет надпись "IP: No IP".
После перезагрузки именно второй случай имел место.
Попытка использовать другие адаптеры ничего не дал.
Поиск в Интернете вывел меня на еще одну прошивку, основанную на такой же что я использовал: 1.03.01_B-RAD.CC_WDLXTV-0.5.8_ru-eldrako.
По описанию, прошивка более протестированная и кроме того (приятная неожиданность) русифицирована. Нюанс: эта прошивка требует постоянного нахождения флешки с конфигурационными файлами в одном из разъемов usb в WDTV.
После перепрошивки, как ни странно, сеть "схватилась" сразу, как только я вставил адаптер 2. Ни адаптер 1, ни адаптер 3 никакого положительного результата не дали.
Далее я просто опишу необходимые действия для окончательного решения задачи, не в даваясь в подробности поиска вариантов этих действий.
Так как WDTV теперь в сети, осталось только разобраться с подключением сетевых ресурсов, чтобы через стандартный интерфейс WDTV можно было их использовать для проигрывания и просмотра хранящегося в сети медиаконтента.
В "новом" WDTV появилась альтернативный способ управления - telnet.
Первый вход:
telnet xxx.xxx.xxx.xxx
на запрос login отвечаем:
root
пароль по-умолчанию пустой, если необходимо это изменить, то первая команда, которую нужно использовать:
passwd
вводим новый пароль для root и при следующем входе в сеанс telnet придется отвечать не только на запрос "login:" но и "password:".
Вообще, в этом telnet работает большинство команд linux типа ls, можно убедиться в этом:
ls /bin
Но, ближе к делу: монтирование ресурсов.
Все просто, две команды:
# xmount //IP/share_name mount_name cifs user=<username>,pass=<password>
и
# xmount IP:/share_name mount_name nfs
Первая - для монтирования samba-ресурса (или windows-ресурсов) .
Вторая - для монтирования nfs-ресурсов.
НО
сейчас реакция на эти команды будет примерно такой: "module cifs not found" или "module nfs not found".
Это потому, что для правильной обработки этих команд прошивке требуются дополнительные модули. Называются они соответственно samba.app.bin и nfs.app.bin. Скачиваются с упомянутого выше сайта http://b-rad.cc. После скачивания содержимое архивов надо просто скинуть в корень флешки с прошивкой и ее настройками, после чего просто перегружаем устройство. (Кстати, теперь это можно сделать не только физическим отключением от блока питания, но и через telnet, дав команду reboot).
Если после перезагрузки ничего не изменилось, то можно просто повторить перепрошивку, изменив содержимое первой строки файла wdtv.ver на флешке с прошивкой, например, на такую строку "VERSION='1.03.01.WDLXTV-0.5.8'". Это искусственно создаст ситуацию, когда девайс обнаружит "обновление" прошивки и даст возможность повторить перепрошивку.


P.S. При дальнейшей эксплуатации обнаружилось, что, при проигрывании медиаконтента с подключенных шар, аппарат нормально начинает процесс, но при этом полностью отказывается реагировать на какие-либо команды с пульта... Этот период длится около 1,5 минут, после чего можно, к примеру, остановить проигрывание или поставить паузу. Однако, после запуска вновь или снятия с паузы 1,5-минутный "зависон" будет иметь место вновь.
Это пока единственное неприятное последствие вышеописанных действий. И не факт, что так у всех.