Linux для Dbox2 - как собрать "свой" имидж

Статус
В этой теме нельзя размещать новые ответы.

vic

Профи в Сат-ТВ
Автор kuka_v
Я уже давно занят идеей собрать имидж с поддержкой pppd для Дбокса. Задавал вопросы в разных форумах и пришел к выводу что если сам не сделаешь,то никто в этом тебе не поможет. Разработчики все на Западе и там вопросы модемов для бокса у них не стоит. Посему поддержку в ядре они при сборке не включают.

Что делать?
Собрать новое ядро в Линухе задача довольно тривиальная. И более того хорошо документированная для Линуза вообще в том числе и на русском языке.

http://www.opennet.ru/filebase.shtml

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

Вопрос был у меня, я как шагнуть далее и из линуховых файликов собрать то что заливается во флеш на дбоксе.

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

Чтобы засорять форум, я задаю вопрос:
Тема как собирать и видоизменять файлики и образ в целом кому либо интересна в форуме? Имеет смысл рассказывать что у меня уже получилось?

Скажу сразу ни одного образа еще не собрал, только собрал и настроил для этого среду.
Но есть путь описанный немецкими коллегами и он похож на правду....

http://viaccessfree.com/showthread.php?t=7871&page=13

здесь я описал как "воевать" со свишованным разделом.
Это собственно похоже на финальную сборку образа, отчасти...

Проверил комплект на работоспособность.
Могу смело заявить вся среда работоспособна.
То есть сборка "дерева" файлов прошла успешно от начала и до конца.
Время в пути около 4 часов, да-да, запускал я под эмулятором линукса из-под винды. Да еще я на это машинке ковырялся немного.

Что делаем:
Качаем coLinuz-0.6.2.exe и ставим его по дефолтному пути
C:\Program Files\colinux
Запоминать не надо – он сам его предложит, а Вы с этим соглашайтесь.
Далее ручками сносим все он там в свою директорию (colinux) положил и распаковываем туда содержимое файл-архива coLinux_C_program_file.rar
Здесь же создаем директорию debian и в нее выкладываем файлы
debian из архива Debian.part??.rar
и fs_2048Mb из одноименного архива.
Далее просто стартуем CoLinux...

НО: То что предложил PT1 у меня до конца не заработало.
То ли что то я упустил, то ли сетевых интерфейсов у меня зашкалило, но виртуальная машинка сеть у меня так и не увидела.
Если кто то разберется в чем петрушка, напишите – буду очень признателен.

Выход я нашел:
Я проинсталлировал VmWare – это тоже виртуальная машинка под Винды
И проинсталлировал в нее дистрибутив Debian 3.1, причем ставить можно самый минимальный набор, лишь бы грузилась.
Сетевое соединение bridge у меня заработало влет.

Грузимся, логинимся root-ом.
Проверяем сетку и выход в инет, типа ping www.ru.
Если пингуется, все хорошо идем дальше.

На винду ставим FTP-сервер – для связи с нашей виртуальной машикой.
Я поставил Cerberus (CerberusInstall.zip)
Это чтоб файлики по простому в нашу виртуальную машинку закачать.

Продолжение следует....
 

vic

Профи в Сат-ТВ
Сам перечитал еще раз, не очень понятно написал.
Начну на пол шага назад.
Собственно что необходимо для успешной сборки имиджа,
Да настроенный компилятор С++, библиотеки и утилиты к нему, ну и исходные тексты.
Так вот для получения и распространения исходных текстов используем сервер
Http://cvs.tuxbox.org на нем лежат исходные тексты нашего ресивера.
Для получения текстов необходим cvs клиент, это раз (доступ анонимный)
Сам компилятор и библиотеки вешь довольно тонкая, потому как он постоянно развивается, и если Вы разбалансируете комплект (библиотеки-компилятор-утилиты), то получится каша, и Вы будете получать ошибки на ровном месте.
О чем собственно и предупреждают разработчики.
Весь настроенный комплект компилятора, библиотек, утилит лежит в файле debian.
(вскоре появится линк на файлы, уже договорились, где они будут лежать)
Этот файл образ диска который использует coLinux при загрузке. И если бы заработал выход в сеть из под coLinux-а то и желать ничего не надо.
У меня не заработало...
Собственно поэтому и все извращения далее.
Я смонтировал этот файл из под другого эмулятора VmWare который у меня нормально заработал с сетью.
Поэтому путей два, первый победить colinux и добиться его «мостования» в инет.
Зачем в инет? При сборке файлов – компилятор постоянно роется в инете выкачивая недостающие элементы. Объем я не посмотрел сколько, но более 50 мег точно...
Вариант два пройти моим путем.

Что делаем
- ставим vmware
- создаем новую виртуальную машину (по экранам)
- typical - Linux - имя & место - use bridged network
В списке появится новое имя, встаем на него и говорим правая кнопка мыши и settings, удаляем виртуальный диск SCSI 0:0 и заново его добавляем указав новый размер в 6 мегабайе, встаем на цд-ром и проверяем буковку (авто убрать), ставим галочку на рау доступ, сохраняем, после чего давим Power On в верхнем меню
Загрузка в маленьком окне напоминает старт компьтера,
так оно и есть - это новый компик.
Пихаем инсталляционный цд-ром и начинается полноценнная инсталляция системы. В момент разметки диска размечается виртуальный диск, так что не паниковать.
Ставим Linux, кто не разу не ставил есть шанс потренироваться. Все безопасно, всегда можно начать заново. При этом наши винды остануться в целости и сохранности
Ставить можно самый минимальный комплект, этого достаточно, сеть только не забудьте.
Перегружаемся и оказываемся в командной строке,
логинимся root-ом и начинаем проверять.
ifconfig - должен показать вам настройку сетевого интерфейса
route - таблицу маршрутизации
ping - соединение наружу

соединяемся по фтп с виндой и выкачиваем в каталог
/tmp файл debian
монтируем этот файл на каталог /mnt
mkdir /usr/src/pt1
mount -o loop /tmp/debian /mnt
идем в него
cd /mnt
говорим
find . - depth|cpio -admvp /usr/src/pt1
cd /
umount /mnt
rm /tmp/debian
теперь весь материал у нас лежит локально в /usr/src/pt1. вот только пока не работает
начинаем оживлять
cd /usr/src/pt1
и меняем в эту точку root каатлог
chroot /usr/src/pt1 /bin/sh
проверяем
pwd
нам отвечают /
ок!
говорим
login
ответ pt1
passwd
ответ root
все мы стали пользователем pt1 в сконфигуренном
комплекте о чем говорит знак $ в конце приглашения.

Ну что приступим:
mkdir dbox2
mkdir tuxbox
cd tuxbox
export CVS_RSH=ssh
cvs [email protected]/cvs/tuxbox -z3 co -P .
(точку в конце не забывать!!!!)
cd cdk
./autogen.sh
./configure --enable-maintainer-mode --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox
make all

все пошла компиляция, отдыхам!
 

vic

Профи в Сат-ТВ
пока только просто наблюдение. В момент сборки постоянно конфигурит разные пакеты и локаль проскакивала десятки раз.
Бралась она из окружения, так что правильно натроенная локаль на девелоперской машине...
Мэй би?

Про сырцы RuDBox-а - вероятно что в открытой части инета их нет.
Дальнет или как их там скорее всего имеет патчи и накладывает их поверх cvs-а.
Могу только предположить, я бы так поступил.

По немецким имиджам - вроде там все решается заменой локали и фонтов.
У меня не осталось ощущения что там что то не получилось. Меня только файловая система тогда не устроила, там squashfs был продвинутой версии, а у меня паковалки не оказалось. Вот и стер ее.

Ну и полная интрукция по сборке имиджей:

Для создания cramfs или squashfs имиджей, необходимо выполнить следующую последовательность шагов:

1. Создадим каталог для CVS-дерева:
mkdir /home/pt1/tuxbox-cvs

2. Смонтируем на него нашу дополнительную файловую систему.
mount –t ext3 /dev/cobd2 /home/pt1/tuxbox-cvs

(файл fs_2048Mb содержит поврежденную структуру, исправить это можно заново отформатировав его командой
mkfs –t ext3 /dev/cobd2)

3. Пропишем ее для постоянного монтирования в файле
/etc/fstab



строчка начинающаяся /dev/cobd2/
Теперь всякий раз при загрузке системы мы будем иметь ее подмонтированную.

4. А теперь заходим пользователем pt1
Login: pt1
Password: root
Далее все делаем от его имени.

5. Забираем дерево CVS, для это перейдем в каталог CVS:

cd $HOME/tuxbox-cvs

И стартуем клиента:

set CVS_RSH=ssh && cvs -d [email protected]:/cvs/tuxbox -z3 co -PA .

(ВНИМАНИЕ! Точка в конце строки обязательна, сам на это в начале напоролся.)

6. Проверьте так же есть ли все необходимые инструментальные средства на Вашем компьютере. Их перечень Вы сможете найти в файле:

cat $HOME/tuxbox-cvs/cdk/doc/INSTALL.en | more

Кроме того Вам потребуются mkcramfs, mksquashfs и fakeroot.

7. Дополнительно создаем целевую директорию, это куда все потом сложится:
mkdir $HOME/dbox2

8. А затем пошли в каталог с tuxbox-cvs/cdk:
cd $HOME/tuxbox-cvs/cdk

9. И запустили атогенерацию служебных файлов:
./autogen.sh

10. Все конфигурим указывая пути до целевой директории, cvs-дерева и пр:

./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --disable-libcrypto --with-targetruleset=flash

В этот момент проверяются не достающие библиотеки, если Вы используете root_fs файл debian из этой конфы то Вам особо заморачиваться не стоит, все уже согласовано.

11. Компиляция имиджей;
если Вам нужен cramfs имидж заменяйте везде squashfs на cramfs. Сам не проверял, но автор (немец) утверждает именно так.
Ну и для того чтоб создать 1х и 2х, нейтрину и энигму имиджи говорим:

make flash-squashfsimages

Если только neutrino-squashfs-image (1x und 2x) то тогда так:

make flash-squashfsneutrinoimages

(enigma соответственно)

Если только squashfs-root-партицию для neutrino и engima то:

make flash-squashfs

Что бы сделать нейтрину squashfs-root:

make $HOME/dbox2/cdkflash/root-squashfs-neutrino.img

(enigma соответственно)

Для построения полного имиджа нейтрино squashfs с собственными дополнениями:

- make $HOME/dbox2/cdkflash/.flash-roneutrinoroot
(flash read only neutrino root)

- Теперь вносим изменения в cdkflash/root

- make flash-squashfsroot

- Созданный нами root-squashfs.img окажется в $HOME/dbox2/cdkflash

- И затем создадим из root-squashfs-neutrino.img загрузочный имидж
- make flash-squashfsneutrinoimages


12. После успешного завершения компиляции новые имиджи Вы найдете в каталоге $HOME/dbox2/cdkflash (cramfsjffs2*.img и squashfsjffs2*.img).
Они готовы к загрузке на Ваш Dbox.

Кстати можно использовать дистрибутив Debian 3.1, чтобы не качать 400 мегов, и все поставить для сборки Linux образа.
Я местами немного повторюсь, но лучше все по порядку:

Ставим базовый комплект Linux Debian 3.1 (он есть на пиратских дисках на лотках в вашем городе) и после перезагрузки говорим что выбираем пакеты вручную (это пункт меню такой - :)))...)
И дополнительно установим с дистрибутива Debian 3.1:

autoconf - 2.59
automake - 1.8.5
bison :1.875d
bunzip2 - 1.0.2
cvs - 1.12.9
flex - 2.5.31
g++ - 3.3.5
gcc - 3.3.5
gettext - 0.14.4
gunzip - 1.3.5
infocmp - 5.4.20040208
libtool - 1.5.6
make - 3.80
makeinfo(texinfo) - 4.7
patch - 2.5.9
pkg-config :0.17.2
python – 2.3.5
tar :1.14
yacc : bison 1.875d
wget – 1.9.1

Все это есть в дистрибутиве. И этого достаточно!
Что не вошло но необходимо:

mkfs.jffs2 - 1.39
mksquashfs - 2.1
(Они в аттаче - линукс версия)

Это мы все проделали пользователем root

Теперь логинимся пользователем user1
и от его имени:

mkdir ~/tuxbox-cvs
cd ~/tuxbox-cvs
set CVS_RSH=ssh && cvs -d [email protected]:/cvs/tuxbox -z3 co -PA .
Внимание не пропустите точку в конце строки - она нужна!

и чуть чуть от имени пользователя root:

cp /home/user1/tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin
chmod 755 /usr/bin/mklibs.py

и снова пользователем user1:

mkdir ~/dbox2
cd ~/tuxbox-cvs/cdk
./autogen.sh
./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode
--disable-libcrypto --with-targetruleset=flash

Кое что поменяем в файликах...,
(об этом чуть позже) и:

make flash-squashfsneutrinoimages

или

make flash-squashfsenigmaimages

результат обнаружите в
$HOME/dbox2/cdkflash

Вот и все! Прикольно, да?
 

vic

Профи в Сат-ТВ
Да в списке устанавливаемых продуктов Debian 3.1
я пропустил:
ssh - 3.8.1p1
его тоже надо - он в дистрибутиве есть.

Там где я пометил - можно поправить файлики, можно делать сл:

cd cdk/root/etc
vi ./profile
я здесь timezone правил на свое

cd network
vi interfaces
здесь пусть за диезиками но свой IP адрес

cp /tmp/cables.xml $HOME/tuxbox-cvs/apps/dvb/config
cp /tmp/satelites/xml $HOME/tuxbox-cvs/apps/dvb/config

Исходники для Dbox2 имиджа лежат в инете - это
cvs.tuxbox.org.
Лежат они проиндексированные в cvs-репозитарии.
Это софт такой для согласования действий группы разработчиков.
Забирать исходники правильнее cvs клиентом.
Что мы и делаем командой
set CVS_RSH=ssh && cvs -d anoncvs@Поcvs.tuxbox.org:/cvs/tuxbox -z3 co -PA .

После того как она отработает на Вашем компе окажется полная версия исходников. (текущее состояние).

А вот для того чтоб их скопилировать Вам и потребуется тот комплект что я описал (Linux Debian 3.1)

Можно и просто эксплорером cvs.tuxbox.org посмотреть...

Если кто добился нормальной русификации на имиджах
от Sportster поделитесь опытом. Какой NLS правильный?

В настройках ядра до сборки есть место где поправить.
../tuxbox-cvs/cdk/Patches/linux-2.4.32....config
этот файл ложится в исходники ядра при сборке.
Я уже добился включения PPP протокола в ядро таким способом.

Вторая бяка - это размер /var его конечно надо изменять,
слишком мал. Если хочется (конечно хочется) и ppp и несколько cam-ов то 300 с небольшим К это слишком мало. Можно резать за счет root-а и лежит это в u-boot-config. Пока не проверил на сборке, но похоже что это так.
Вообще каждый имидж я смотрю эту раскладку делает по своему
 

vic

Профи в Сат-ТВ
Где то рядом с локалью собака и порылась...
Если взять финскую локаль, то там появляются (в отличиии от анг-нем и пр европы) сл строчки:
....
filesystem.is.utf8 tiedostojärjestelmä
filesystem.is.utf8.option.iso8859.1 ISO-8859-1
filesystem.is.utf8.option.utf8 UTF-8
.....

смысл пока не до конца понятен

Если смотреть фонты то в UTF секции русский есть но он расположен дальше.

Я пробовал переместить русский блок в фонтах и подсунуть их. Русский появляется но не везде.
То есть информация о программе становится русской но наименование каналов нет. Да фонт при этом по интервалам разбегается - некрасивенько.

Кроме того в конфиге Linux ядра есть секция настройки NLS. И понятно что немцы собирают ядра без поддержки русского языка. Но надеюсь с поддержкой UTF-8 хотя я уже и в этом не уверен.

Пробегая по форумам, где то зацепил внятное объяснение - "А что такое CVS?"

A. CVS - Concurrent Versions System

Это система совместной разработки OpenSource ПО.
"Совместной" означает, что над проектом одновременно работают несколько
программистов а CVS позволяет синхронизировать их действия.
В CVS хранятся все версии исходного кода - с информацией когда, кем и что
именно было изменено в исходном коде.

На том же принципе примерно построена WIKIpedia.

И офицальные и "не только" имиджи компилируются из одной и той же
CVS http://cvs.tuxbox.org/ (TuxBox - в приближенном переводе - "Пингвин в боксе").

Небольшие ремарки:
- http://cvs.tuxbox.org/ одна для Dreambox & Dbox2.
Она изначально dbox2 - там и драйвера и GUI для этого бокса.
В дримбоксе используется только GUI (Enigma & Neutrino).
Драйвера и ядро dreambox офф. разработчики берут из неведанного нам места
или сами компилируют, но из закрытого для нас кода.;
- CVS отображает то, что войдет ( или уже вошло, в зависимости от текущего состояния )
в офф. имидж. Альтернативные разработчики берут за основу исходный код с CVS и
вносят свои изменения, которые как правило в ней не отображаются.
За некоторыми приятными исключениями
- CVS иемеет ряд веток кода ( называются они TAG ), на момент выпуска офф. имиджа
код на CVS фиксируется и ему присваивается метка с версией релиза
( например dr_img_rel108 ), если скомпилировать код с такой меткой,
то enigma получиться один к одному, как в офф. имидже данной версии,
наиболее новый код с CVS имеет TAG: HEAD, это как правило текущий код с которым
работают разработчики.

P.S. часть dbox2 полностью разрабатывается добрыми людьми.
Dreambox - тоже не менее добрыми, которые тем не менее имеют отношение к ДММ.
Но поскольку ПО открытое - очень много правок и помощи исходит от программистов,
никак не связанных с ДММ. Это люди, разрабатывающие и поддерживающие "альтернативные"
официальному имиджи.

Из этого следует только одно что и ветки с dreambox-ом тоже полезно смотреть. Из одной ягодки они растут...

Ура!
Теперь есть возможность показать для любопытствующих - а что может получиться если я все это соберу.

Вот смотрите - это Энигма из CVS только лого и ю-кодес туда положил.

http://www.ibdesk.com/kuka/20060125_enigma.rar

долго хранить там не буду - в скором времени заменю на следующую.
 

vic

Профи в Сат-ТВ
в имидже ядро 2.4.32 - поясни что интересного добавит 2.6.х ядро
собрано ядро с поддержкой ppp то есть драйвер виден
для отладки собрал кермит - это терминальная программа и буду пробовать подключенный телефон, но пока ручками то есть набрать номер определить наличие несущей и пр.
Чтой то злые языки пугают меня что COM в DBox-е не стандартный.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху