sestdiena, 2011. gada 8. oktobris

Как собрать ядро Digiline


Принципе Lovec47 уже описал, но напишу более подробно как делал я, но не говорю что этот единственный правильный вариант.
Делал на 32 bit Ubuntu 11.04.


1. Перед сборкой устанавливал gcc, build-essential, smake, и может еще что то надо (при сборке если спросит установите). Все пакеты устанавливается с sudo apt-get install <package> кроме smake. По моему я скачал исходники smake и установить по инструкций там, но если не выходит спросите у google.
2. Скачиваем исходники kernel linux-2.6.12 от http://www.kernel.org (к сожалению на этот момент не работает по этому ищем зеркала), и распакуем на пример в домашнем каталоге.
3. Скачиваем linux-2.6.12-brcm-5.1.patch на пример здесь, и распакуем рядом с исходниками линукс в домашнем каталоге.
4. Переименованием папку исходников linux-2.6.12 в stblinux-2.6.12-5.1.
5. Идём в домашную паку и пачим исходники:
cd ~/
patch -p0 < linux-2.6.12-brcm-5.1.patch

По сколько http://www.kernel.org не этот момент не работает можем пропачений линукс для dreambox взять здесь и пропустить шагов 2-5. Минус в том, что не известно от кого это собрано но судя по Makefile kernel -2.6.12.2 и главное работает.

6. Пример конфигурации для нашего процессора находится в arc/mips/configs/bcm97401c0_defconfig. Но там надо добавить CONFIG_POSIX_MQUEUE=y и поддержку USB по этому прикрепил свой для /dev/hda1. Переименуйте файл конфигурации в .config и разместите в корень папки с исходникам linux (~/stblinux-2.6.12-5.1). В этом файле можем назначить что надо добавить в ядро при компиляции и где будет root.
7. Меняем в файле drivers/net/brcmint7038/bcmemac.c #define FLASH_MACADDR_ADDR 0xBFFFFF94.
8. Чтобы запустились существующие модули в ресивере меняем в Makefile kernel version 5.1-brcmstb на 4.2-brcmstb.
9. Скачиваем crosstools_sf-linux-2.6.12.0_gcc-3.4.6-20_uclibc-0.9.28-20050817-20070131.tar.gz, и распакуем на пример в домашнем каталоге.
10. Идём в паку linux, назначаем PATH на crosscompiler, указываем платформу и запускаем smake:
cd ~/stblinux-2.6.12-5.1
PATH=$PATH:"~/crosstools_sf-linux-2.6.12.0_gcc-3.4.6-20_uclibc-0.9.28-20050817-20070131/bin"
alias smake="make ARCH=mips CROSS_COMPILE=mipsel-linux-"
smake
11. После компиляции должен в ~/stblinux-2.6.12-5.1 появится vmlinux в котором удаляем лишние силки для уменьшения размера:
mipsel-linux-uclibc-strip -s vmlinux

Вот и собрали vmlinux для root на /dev/hda1.
Для USB надо наверно в .config указать root=/dev/sda1, найти подходящий пач, перед сборкой пропачитъ исходники и может что то изменить, или добавить в .config.

Download: hda1.config  gisclub.tv hda1.config

Original: http://gisclub.tv/index.php?topic=4565.msg59521#msg59521

Nav komentāru:

Ierakstīt komentāru