CEX.io

вторник, 11 сентября 2012 г.

My Book World Edition (MBWE, White light) компиляция модулей ядра + сборка ядра

Компиляцию системных модулей, для My Book World Edition,
можно выполнить из оригинального SDK,
предоставляемого Western Digital,
в виде GPL Open Source исходных кодов.

1. Скачиваем SDK для White Book (support)

v1.02.14 (WD-MyBookWorld-v1.02.14-GPL.zip)
Оригинальные WD firmware файлы,
Файл размещаем в домашней папке "~"
папка с рабочими файлами($MBWE_SDK) будет "~/wd"

2. Извлечем рабочие файлы из архива

$ cd ~
$ echo Extract MyBookWorld SDK ...
$[ ! -d wd ]&&unzip MyBookWorld/WD-MyBookWorld-v1.02.14-GPL.zip -d wd
$ export MBWE_SDK=~/wd
$ cd $MBWE_SDK/kernel/
$ [ ! -d kernel-source ] && tar -xzfv kernel-source.tar.gz
$ cd kernel-source
$ [ ! -d buildroot ] && tar -xjfv buildroot-20080225.tar.bz2
$ [ ! -f buildroot/buildroot.defconfig ] && cp -rf buildroot-patches/* buildroot/

3. Применяем патчи

$ cd buildroot
$ # обратите внимание, что между последними двумя точками,
$ # есть пробелы!
$ ./snapshot.patch . .

> следующий шаг можно пропустить, т.е. можно воспользоватся
готовыми бинарными файлами приложений из архива.

4. Собираем buildroot

$ make defconfig
$ make

5. Развернем glibc

$ cd $MBWE_SDK/glibc
$ [ ! -d glibc-2.5 ] && tar xjfv glibc-2.5.tar.bz2

6. Развернем toolchain

$ cd $MBWE_SDK/toolchain
$ [ ! -d bin ] && tar xzfv gcc-csl-arm-2005q1-glibc-csl-arm.tar.gz

7. Развернем исходные коды ядра (kernel source)

$ cd $MBWE_SDK/kernel
$ [ ! -d kernel-source ] && tar xzfv kernel-source.tar.gz

8. Установим переменные окружения

$ export PATH="$PATH:$MBWE_SDK/toolchain/bin"
$ export CROSS_COMPILE=arm-linux-gnueabi-
$ export INSTALL_MOD_PATH=$MBWE_SDK/
$ [ ! -d $INSTALL_MOD_PATH ] && mkdir -p $INSTALL_MOD_PATH

9. Настроим начальную конфигурацию ядра
    (как в текущей версии firmware)

$ # выполняется только один раз после установки
$ cd $MBWE_SDK/kernel/kernel-source/kernel-0.4.6
$ make oxnas_810_eabi_wd_prod_defconfig

10. Настраиваем дополнительные, требуемые нам параметры

$ make menuconfig

11. Собираем ядро, модули ...

# ядро
$ make zImage

# модули
$ make modules

12. Копируем модули в каталог установки

$ make CROSS_COMPILE=$CROSS_COMPILE \
$           INSTALL_MOD_PATH=$INSTALL_MOD_PATH modules_install

В результате получим, скомпилированные модули,
которые будут скопированы в каталог:

$INSTALL_MOD_PATH/lib/modules/2.6.24.4/kernel/

папку $INSTALL_MOD_PATH/lib можно архивировать и копировать
на устройство в каталог /opt/lib

Загружать выбранный Вами модуль можно,
например, с помощью команды:

insmod /opt/lib/modules/2.6.24.4/kernel/net/9p/9pnet.ko

либо:

modprobe /opt/lib/modules/2.6.24.4/kernel/net/9p/9pnet.ko

Кросс сборка приложений, может выполнятся с помощью команд:

$ export PATH="$PATH:$MBWE_SDK/toolchain/bin"
$ ./configure --host=arm-linux-gnueabi  # ... и. др. опции
$ make


PS:
Оригинальное описание располагается по адресу:
http://mybookworld.wikidot.com/compiling-white-light-modules-from-source

Комментариев нет: