Неофициальный клуб пользователей HD видео плеера WD TV


»Юзер: »Пароль:   Запомнить? 
WDTV Forum / Форум про WD TV Live / Полезная информация / Разборка и сборка прошивки WDTV Live
Написано:  03 Окт 2010 00:47   Отредактировано: Dima777_
Думаю пора и на этом форуме об этом поговорить
По совету одного форумчанина создаю данную тему(сказал,что её еще нет)

Важно!!!
Помните,что тема создана в исключительно ознакомительных целях и не заставляет никого ей следовать,т.к. не могу отвечать за вашу деятельность с фалами прошивки и дальнейшую успешную работу плеера.Не советую экспериментировать просто от желания попробовать как это делается)

Вся информация была найдена на этом сайте,так что всем там спасибо за неё.

Итак приступим.
Разобрать и собрать прошивку можно как под виндой,так и под линуксом,но уже из личного опыта скажу,что под виндой либо я что-то не так делаю,либо винда выпендривается,а нормально собрать и разобрать прошивку под ней мне не удавалась.Поэтому советую устанавливать на виртуалку или как вторую систему Ubuntu или ей подобное(так как с нею у меня все стабильно выходит).Хочу отметить,что я не программист и на все возможные вопросы не отвечу)

Что же потребуется:
1) Программки для работы с прошивками.Для линукса качать здесь,для винды - здесь(хранится будут 30 дней,так что потом делитесь)
2) Представление о командной строке или терминале в линуксе(кто не знает,лучше и не вникать или начинать с чего-то более простого)
3) Сама прошивка(разобрать удавалось официальную,б-радовскую,да в принципе все)
4) Прямые руки

Если всё в наличие,то создаем папку,где будем работать и запускаем командную строку в винде или терминал в линуксе(т.к. команды для работы одинаковы и там,и там,разница лишь в встроенных возможностях,то дальнейшее описание продолжу на примере для линукса).
Для разборки прошивки:
Код:

1) dd if=wdtvlive.bin of=unpacked.img bs=32 skip=1c
2) cramfsck -v -x wdtlive unpacked.img

,где wdtvlive.bin - сама прошивка,
dd - команда под линукс(прога из архива под виндой)
во всторой строчке cramfsck - программка из скачанного архива,
wdtlive - папка,куда распаковываем(любое ваше название латиницей).
Первая команда удаляет md5 сумму из прошивки,вторая - определяет куда распаковывать.
Если всё прошло без ошибок,то в папке wdtlive мы обнаружим распакованную прошивку.Если нет,то ищем возможные ошибки в написании команд(иного я не знаю).

После внесения изменений собираем:
Код:

1) mkcramfs wdtvhd wdtv2.cram
2) cat wdtv2.cram magic > wdtv2.cramfs
3) md5sum wdtv2.cramfs | dd bs=32 count=1 > wdtv2.md5
4) cat wdtv2.md5 wdtv2.cramfs > wdtv2.bin

,где 1) mkcramfs - прога из архива,
wdtvhd - папка с прошивкой,
wdtv2.cram - новый созданный файл,
2) cat - команда под линукс(прога из архива под виндой)
magic -
Цитата:
насчет магик нужно создать файлик с таким именем,скопирова последние 16 байт из оф прошивки,иначе вд
не увидит прошивку
,может меня из знатоков кто-то поправит,но я это сделал по своему и всё нормально работает
Код:

cat wdtv2.cram > wdtv2.cramfs

упустил magic,
3) md5sum - команда под линукс(прога из архива под виндой)
dd - команда под линукс(прога из архива под виндой)
wdtv2.md5 - md5 сумма(откройте и проверьте на наличие одной записи цифр и букв,не должно быть никаких символов в начале или в конце(в винде блокнотом),
4) wdtv2.bin - наша новая прошивка.

В первой команде мы собираем папку в один файл,во второй - грубо говоря меняем расширение,в третьей - определяем md5 сумму новой прошивки,в четвертой - добавляем md5 сумму и получаем новую прошивку.После чего можно удалить unpacked.img,wdtv2.cram,wdtv2.cramfs,wdtv2.md5.

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

Решение возможных ошибок:
1) Плеер не видит прошивку.
-проверить файл с версией прошивки
-убедится в правильном выполнении 3 и 4 команды сборки
-возможен случай со 2 командой сборки(мне не попадался)
-не знаю(может где-то напортачили в прошивке)
2) Дальше вступительного логотипа дело не идет.
-берем предыдущую рабочую прошивку(та что стояла),кидаем на флешку и вставляем в плеер,дальше в течение минуты продолжится процесс прошивки(меня всегда выручает;встречалось только под работой из винды)
3) Бесконечный процесс прошивки.
-во время очередного рестарта меняем флешку аналогично 2-му случаю(было один раз)
4) Других вариантов со мной не было)

Почему я всё это делал?
Так как я хотел настроить iptv прямо на плеере и избавиться от вечной воткнутой флешки,то пришлось найти всю эту информацию.В результате всё замечательно работает,флешка и комп свободны(UDP-TO-HTTP прокси занимается роутер).
Я собрал на основе б-радовской 0.4.2.6,поменял только OSD,русский,обоину и вставили  конфигурацию iptv,систему не трогал.

P.S.Программистам меня не пинать,я просто обычный юзверь)
P.P.S.Если что-то ещё вспомню,то допишу ниже.Если есть что исправить или добавить - отписываемся.
Всем удачи.Надеюсь,что кому-то это понадобится.
Написано:  03 Окт 2010 00:58
Dima777 просто красава
давно искал инфу на эту тему
пасиб
__________________
WD TV Live (1.02.21-WDLXTV-Live-0.4.7.3)
Написано:  03 Окт 2010 01:08   Отредактировано: Dima777_
Пожалуйста)Будут вопросы - задавайте.В силу своих возможностей и знаний постараюсь отвечать.
Написано:  03 Окт 2010 02:06   Отредактировано: weder
в первой строке ошибка
mkcramfs wdtvhd wdtv2.cram
а должно быть
mkcramfs wdtlive wdtv2.cram
а так все пашет
еще раз пасиб
а ты не знаешь как выставить время на плеере (для медиатеки очень удобно)
Да я все проделал под виндой
__________________
WD TV Live (1.02.21-WDLXTV-Live-0.4.7.3)
Написано:  03 Окт 2010 09:14   Отредактировано: alukard
хы да это просто была строка копия с моего поста а я разбирал для ген2,но это роли не играет можно и лайв прошивку так обозвать (вообщем кому как удобнее)
насчет бесконечной перепрошивки также если что-то не так с файлами сделали или если заменили файлы ,а мд5 суммы не удалили.Для винды magic нужен иначе тоже бесконечная перепрошивка, хотя прошивка конечно соберется и даже возможно увидится.

да и еще для сбора пропустили 5 строку
rm wdtv2.cram wdtv2.cramfs wdtv2.md5 удаляет лишние ненужные файлы
__________________
Sharp LC-32X20RU + WDTV Gen2 + WDTV Live (если понравилось 41001352107159 яндекс)
Написано:  03 Окт 2010 12:14
alukad
Я умышленно пропустил эту строку,т.к. выделить и удалить для меня быстрее,чем вводить команды и что надо удалить я написал)

weder
Как выставить время не знаю.На прошлой неделе впервые познакомился с линуксом и скриптами,поэтому вряд ли что-то смогу написать для прошивки.
Что же касается моей опечатки,то это мелочи)Я вообще всё называю покороче,чтоб меньше тратить время)
Написано:  03 Окт 2010 12:33
ну я раньше тоже сам удалял,потом наткнулся на такую строчку, гораздо удобнее,1 клик на бантик и ждешь готовый файлик
__________________
Sharp LC-32X20RU + WDTV Gen2 + WDTV Live (если понравилось 41001352107159 яндекс)
Написано:  03 Окт 2010 15:07
Цитата:
Разобрать и собрать прошивку можно как под виндой,так и под линуксом
разобрать удавалось официальную,б-радовскую

Под виндой брадовскую прошивку для WDTVLIVE не получится разобрать

Цитата:
dd if=wdtvlive.bin of=unpacked.img bs=32 skip=1c

Символ C в конце - лишний.
Желательно вырезать не только 32 байта в начале, но и 16 байт в конце - чтобы не было сообщения о выходе за пределы образа

Цитата:
может меня из знатоков кто-то поправит,но я это сделал по своему и всё нормально работает
cat wdtv2.cram > wdtv2.cramfs
упустил magic,

Не может оно нормально работать если не подписать меджиком.
Который, кстати, надо вычислять самому, а не копировать из оригинальной прошивки.
__________________
Написано:  03 Окт 2010 15:36   Отредактировано: alukard
эх опять я уже писал какую брадовскую я разбирал на винде,и у меня успешно работает магик (Который, кстати, надо вычислять самому, а не копировать из оригинальной прошивки.)
что я помегахитрому делаю ?!
__________________
Sharp LC-32X20RU + WDTV Gen2 + WDTV Live (если понравилось 41001352107159 яндекс)
Написано:  03 Окт 2010 16:06
Для Ген2 - может быть.
А для лив - невозможно.

Насчет меджика - не понял
__________________
Написано:  03 Окт 2010 18:24
alkiev
Цитата:
Символ C в конце - лишний.

Точно,совсем забыл.
Так верней
Код:

dd if=wdtvlive.bin of=unpacked.img bs=32 skip=1


Цитата:
Желательно вырезать не только 32 байта в начале, но и 16 байт в конце - чтобы не было сообщения о выходе за пределы образа.
Не может оно нормально работать если не подписать меджиком.

Ну не знаю,сейчас стоит на плеере пересобранная прошивка и пока не жалуюсь.

Цитата:
Который, кстати, надо вычислять самому, а не копировать из оригинальной прошивки.

Опишите по возможности как это сделать.Потому что с этим я толком не разобрался,а т.к. всё получилось,то и не стал вникать.
Написано:  03 Окт 2010 18:40
Цитата:
Опишите по возможности как это сделать

cramfs for Win
__________________
Написано:  03 Окт 2010 18:54   Отредактировано: Dima777_
Не совсем то,этот архив есть.
Имею в виду,как самому посчитать последние 16 байт для magic?
Написано:  03 Окт 2010 18:57
Цитата:
как самому посчитать последние 16 байт для magic?

http://forum.ixbt.com/topic.cgi?id=62:16661:1173#1173
__________________
Написано:  03 Окт 2010 19:08   Отредактировано: Dima777_
Это я видел,но оно не совсем для меня доступно.

Цитата:
3. Меджик. Размер=8.
CE FA BE BA 02 00 00 00

4. Размер образа. Размер=4. Записано в самом образе, 2-е слово.
dd if=image.tmp of=size.tmp bs=4 count=1 skip=1

5. Нули. Размер=4. Проще всего взять из образа, 4-е слово.
dd if=image.tmp of=zero.tmp bs=4 count=1 skip=3

CE FA BE BA 02 00 00 00 - как это определить?Вырезки из комментов не дают полного представления.
2-е и 4-е слово из образа - чем смотреть и как правильно?Hex-редактором что ли?
Написано:  03 Окт 2010 20:37
Цитата:
CE FA BE BA 02 00 00 00 - как это определить?

Это просто константа. Заранее подготовленный файл длиной 8 байт

Цитата:
2-е и 4-е слово из образа - чем смотреть и как правильно?Hex-редактором что ли?

Сесно. Открой имидж в хекс-редакторе и убедись, что 2-е и 4-е слово (тетрада) - как раз то, что нужно.

Сигнатуру в принципе можно брать и из оригинального бинарника, но только в том случае, если есть уверенность, что размер образа не меняется
__________________
Написано:  03 Окт 2010 20:47
ну у меня например размер образа постоянно в большею сторону меняется и взятый из оригинальной нормально пашет )
__________________
Sharp LC-32X20RU + WDTV Gen2 + WDTV Live (если понравилось 41001352107159 яндекс)
Написано:  03 Окт 2010 21:06
Цитата:
ну у меня например размер образа постоянно в большею сторону меняется и взятый из оригинальной нормально пашет

Ну, раз пашет - я рад за тебя. Но не исключаю возможности того, что ты прошиваешь не весь образ, а только его большую часть (старый размер).
Трудно дописать 2-3 строчки в sh-файле - прошивайся каструбатыми прошивками, хозяин-барин
__________________
Написано:  03 Окт 2010 21:11   Отредактировано: alukard
ну без загрузчика работают нормально,каких-либо глюков не замечал

вот доберемся до возможностей добавлять больше возможностей в прошивку,тогда и подумаем насчет этих строк )
__________________
Sharp LC-32X20RU + WDTV Gen2 + WDTV Live (если понравилось 41001352107159 яндекс)
Написано:  04 Окт 2010 08:42   Отредактировано: alukard
ну у меня тогда ворпос насчет этой строчки copy /b md5.tmp+image.tmp+magic.bin+size.tmp+zero.tmp wdtvlive.new

магик должен уже быть в папке отдельно(CE FA BE BA 02 00 00 0 эти 8 байт засунутые в бин )  ??

сам же себе и отвечу да так и надо было
__________________
Sharp LC-32X20RU + WDTV Gen2 + WDTV Live (если понравилось 41001352107159 яндекс)
Написано:  06 Окт 2010 10:57
А в разобранной прошивке нет ничего такого связанного с определением "своих" же жестких дисков?
__________________
PANASONIC VIERA LR32S25 + WDTV Live HD
Написано:  06 Окт 2010 23:11
2 Dima777_
А не могли бы вы еще просвятить, как подправить руссификацию? Ну типа, чем редактировать ru.po, как из него скомпилить ru.mo и т.д..., пошагово. Хочу сделать аффторский перевод
Написано:  07 Окт 2010 16:02
cravcha

Под виндой вроде можно в блокноте или wordpad.А чем скомпилить в ru.mo не знаю.
Предлагаю воспользоваться уже готовыми авторским переводом от Trainer(мне очень даже нравится).
P.S.Спасибо Trainer'у за перевод.Надеюсь,что выложив ссылку с его переводом не нарушил его авторских прав и ему не жалко для народа)
Написано:  07 Окт 2010 16:29
avkiev
С меджиком разобрался.А вот со 2 и 4 словом нет.Если не трудно,то можешь выложить архив с этими двумя файлами size.tmp и zero.tmp для примера.Хочу посмотреть как они выглядят,и что на этом скрине - 2 и 4-е слова(прошу отметить красным,если вообще правильно понял)?
Написано:  07 Окт 2010 20:03   Отредактировано: cravcha
Цитата:
Под виндой вроде можно в блокноте или wordpad.А чем скомпилить в ru.mo не знаю


Интенсивно покурил инет, и это принесло определенные плоды Вот здесь avkiev писал, как получить .mo из .po. Но у меня этот способ не прокатил, msgfmt из ru.po, подправленного в AkelPadе, тупо нифига не делает. Видимо, всякие блокноты под Win не канают. А может, с кодировками косяк...
Заморачиваться не стал, двинулся другим путем. Отсюда стянул Poedit - "кросс-платформенный инструмент редактирования каталогов локализации для библиотеки интернационализации gettext" (с)wiki Он позволяет править .po и компилировать .mo. Правда, открыв poedit'ом ru.po из свежераспакованной прошивки, вместо кириллицы увидел Этот файл с. Опять в кодировке тараканы? Пришлось пребивать весь перевод. В правленом ru.po кириллица сохраняется и видится нормально.
Уже почти закончил
Написано:  08 Окт 2010 09:20
Коллеги, может немного не в тему, а существует ли на данный момент нормальный эмулятор OSD для Live?
Написано:  08 Окт 2010 09:48
как я понял находили эмулятор на америкоском форуме,а других-то и нет(либо его попробуйте подправить)
__________________
Sharp LC-32X20RU + WDTV Gen2 + WDTV Live (если понравилось 41001352107159 яндекс)
Написано:  08 Окт 2010 11:12
Цитата:
Хочу посмотреть как они выглядят,и что на этом скрине  - 2 и 4-е слова(прошу отметить красным,если вообще правильно понял)?

В твоем файле:
2-е слово (size) начинается с байта 04 - 00 80 9A 01
4-е слово (zero) начинается с байта 0C - 00 00 00 00
__________________
Написано:  08 Окт 2010 11:20
Редактировать po-файлы можно любым редактором, который понимает юникод.
Ну, или юзать poedit.
В файле должна быть правильно установлена кодировка:
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
__________________
Написано:  08 Окт 2010 13:28
alkiev
Спасибо большое)

Поделитесь со своими друзьями в соцсетях:

WDTV Forum / Форум про WD TV Live / Полезная информация / Разборка и сборка прошивки WDTV Live