Четверг, 28.03.2024, 16:22
Вы вошли как
Приветствую Вас ГостьRSS
Меню
Категории раздела
Инструкции [11]
Прочее [3]
Облако тегов
HDD playon!hd playonhd btpd 100 peers video 200 peers optware прошивка Realtek mipsel wifi rtorrent Firmware web Woxter i-Cube 750 ruTorrent Mede8er lighttpd digest Samba workgroup peers Port podware Compilation gcc Native hostname bmp bmp2rt felics rt2bmp ipkg ipkg-cl libexif libsigc++ Screen vsftpd transmission htop MC Nano rdate datasheet RTD1073
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Главная » Статьи » Инструкции, руководства » Прочее

Optware на плеере - быть или не быть?
Итак, настал час X. Во все последние официальные прошивки, начиная с 2901, добавлена защита от использования дополнительного софта. Смысл ее очень прост - при форматировании флешь-памяти при переустановке прошивки корневой раздел создается таким образом, что в нем не остается свободного места даже для создания линка на папку /tmp/hdd/root/opt. В результате в процессе подготовки плеера под использование optware получаем ошибку вида:
Code
/ # ln -s /tmp/hdd/root/opt opt
ln: opt: Cannot allocate memory

Теперь, выскажу свои предположения относительно того, почему это было сделано. Если пробежаться по страницам официального форума, несложно увидеть, что большинство вопросов крутятся вокруг двух глобальных тем: баги оф. прошивок и использование дополнительного софта. Вы скажете: какая связь? А связь есть, на мой взгляд. Любой дополнительный софт использует ресурсы процессора и операционной системы. И в случае с optware использует их неправильно. Почему? Все дело в использовании библиотек uClibc или glibc, при сборке которых необходимо учитывать специфику ядра Linux. Эти библиотеки являются базовыми для любых дополнительных пакетов и именно в них реализована интеграция с ядром операционной системы. Некорректные обращения к модулям ядра в большинстве случаев не критичны, они обрабатываются через специальные прерывания и не нарушают функционирования системы в целом. Но при большом их количестве система может просто не справиться и выпасть в осадок с сообщением "core dumped". Это аналог синего экрана смерти (BSOD) в виндах. Правда, в этом отношении никсы более стабильны и система может продолжить работу, выгрузив/перезагрузив аварийные модули или программы. А какое же это имеет отношение к багам прошивки?

Прежде чем высказать своё ИМХО по этому вопросу, отвлекусь на некоторые юридические аспекты. Речь пойдет о GPL. Для тех, кто не в курсе, что это такое, объясню в нескольких словах. GPL (GNU General Public License) - это соглашение, по которому можно копировать, модифицировать и распространять программы, созданные под этой лицензией. Наиболее важной частью этого соглашения является обязанность передачи аналогичных прав пользователям всех производных программ. Иными словами - запрещается создавать на основе свободной программы под GPL другой проект, не предоставляя его исходники пользователям.
Как же выполняется это соглашение в случае с плеером?
В отношении ядра всё почти честно - предоставлены все исходники. Это стандартная заготовка от Realtek. Однако, попытки пересобрать ядро и получить бинарные файлы один в один обречены на провал - файлы конфигурации надо править самим, а количество настроек там - жуть...
Прошивки от DSP-процессоров - коммерческая собственность Realtek'а. Официально исходников на них не будет. Да пока и не очень то и хочется wink
GUI плеера (файл DvdPlayer) - это "лицо" каждой модели на процессоре от Realtek. Исходные коды от него поставляются в составе SDK. Каждый производитель плеера модифицирует коды так, что бы придать экранным меню индивидуальный вид. Поскольку под лицензию GPL эта часть не попадает, свободного доступа к исходникам ждать не приходится. Однако, в сеть уже начинают просачиваться реалтековские заготовки для предыдущих процессоров, поэтому общая идея построения GUI примерна ясна.
Ну и остались дополнительные пакеты.
samba - исходники есть, требования GPL соблюдены
unicgi - исходников нет, так как программа написана Realtek'ом с нуля
btpd - вот тут была применена юридическая хитрость. С одной стороны, были переписаны исходники, распространяемые автором свободно. А выложили только собранный пакет, исходники не положили. Вроде налицо нарушение лизензии... Ан нет, автор btpd забыл или не пожелал указать, под какой лицензией он распространяет свою программу. Нет лицензии - нет и нарушения.

Вернусь к багам прошивок. Не буду рассматривать те, которые может исправить только сам Realtek. То, что ошибки бывают у всех программистов, наверно, никого не удивит. Прошивко-писатели AC.Ryan - не исключение. Но ребята стараются, пытаются довести плеер до "кондиции". Размер GUI плеера растет от прошивки к прошивке, соответственно, требования к ресурсам повышаются. А ресурсы процессора от Realtek, несмотря на всю его мощь, не безграничны. Уже наступил момент, когда баги стали не просто описками в тексте программ, а неправильным распределением ресурсов между процессами. Для их преодоления нужна оптимизация, грамотное распределения приоритетов. Естественно, никакой речи о дополнительном софте быть не может. Почему? Апельсинам и своих забот хватает, а для правильной сборки стороннего софта нужно представлять себе всю картину системы в деталях, которой без исходников GUI просто не увидеть. Исходниками они делиться не будут, так как лицензия для них не GPL, а от Realtek, и наверняка, в ней черным по белому прописана фраза о нераспространении. Результат - при использовании optware внутренняя жизнь плеера превращается в войну процессов за ресурсы.

Явно запретить использование дополнительного софта на плеере они не могут, но прибегнуть к некоторым "хитростям" им удается. Первым шагом было удаление/перемещение с оф.форума топиков о "хакнутых" прошивках. Не удивлюсь, если в ближайшем будущем "куда то исчезнет" доступ к плееру через telnet. Пересобрать busybox без телнета - как два пальца...

Но жить без дополнительных наворотов к плееру как то скучно. Многие уже привыкли к удобному торрент клиенту, веб-серверу и прочим приятным мелочам. Какой же есть выход из создавшейся ситуации?

Начну с optware. Как показали проведенные эксперименты, последние прошивки "упорно" сопротивляются любым коррекциям корневого раздела. Выход только один - полная пересборка прошивки. Но эта операция возможна только при наличии полноценного линукса, следовательно доступна немногим. Конечно, найдутся энтузиасты, которые будут "хакать" каждую новую прошивку и выкладывать ее в сеть. Но правильное ли это решение?

Второй вариант я начал реализовывать еще пол-года назад. Его основной конценцией было "невмешательство" в прошивку и использование uClibc библиотек плеера. Также предполагалось, что сборка дополнительного софта будет реализована с учетом особенностей родного ядра плеера. Преимуществами этого варианта были: экономия оперативной памяти + большая совместимость со штатными процессами плеера. К сожалению, эта идея не получила должной поддержки, и была благополучно заброшена. Тем не менее, с десяток пакетов собрать удалось и даже организовать мини-репозиторий на базе этого сайта. Существенным недостатком, из-за которого идея и зачахла, является большая трудоемкость этого процесса и отсутствие единомышленников. Если учесть, что в сборке оптварных пакетов принимают участие десятки энтузиастов, становится понятным, почему я не смог выполнить свои планы в одиночку. Были попытки найти поддержку как на российских форумах, так и на зарубежных, но увы...

Кстати, по моим подсчетам, 60% оптварных пакетов требуют допила для использования на плеере, и затраты времени на эти доделки сопоставимы с временем на самостоятельную сборку пакета. А учитывая тот факт, что каждую новую версию пакета приходится допиливать заново - пакеты собственной сборки становятся чуть экономичнее.

Собственно, я никого не уговариваю в этой статье. Это всего лишь рассуждения вслух. Наверняка есть и другие варианты "облагородить" плеер. Я всего лишь изложил свое видение проблемы. Но, как говорится, пол головы хорошо, а полторы - лучше wink В первую очередь нужно конструктивное обсуждение, к которому я готов.

Категория: Прочее | Добавил: Lossless (31.01.2010)
Просмотров: 8679 | Комментарии: 2 | Теги: optware | Рейтинг: 0.0/0
Всего комментариев: 2
2 BOBKA  
0
Как жить, если нам отключат telnet и постоянно изменять busybox в будущих прошивках будет некому...
Я думаю, что если отказаться от использования btpd и unicgi, можно использовать штатную возможность установки этих пакетов для установки своего optware. Паковать их в инсталляции со штатными названиями файлов (сейчас - btpd_0.0.1_mipsel.ipk/unicgi_0.0.1_mipsel.ipk) и ставить через меню плеера.
С этим нужно, конечно, разбираться и пробовать. Но такая "дырка" для установки в плеере чего-угодно есть.

1 BOBKA  
0
Мне импонирует подход "невмешательства" в прошивку плеера. Модификацию его функциональности выполнять впоследствии, путем выполнения последовательности команд с помощью подключения через telnet. Причем, эти действия можно автоматизировать интерактивной программой на шелле. Вероятно, придется и разделы на винчестере пересоздавать для увеличения, например, раздела optware.
Это одна сторона медали.
Вторая - наличие самого дополнительного ПО, которое и является нашей основной целью.
Большинству владельцев плеера нужно, ведь, немного - наличие удобного (быстрого/стабильного) торрент-клиента, которым нас не может порадовать штатный btpd.
Думаю, это и есть задача-минимум.
Мои пол-головы думают в этом направлении.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]