Инструкция для тех, кому требуется самостоятельно пересобирать toolchain Энтузиастов.
Сборка производилась в Debian 6.0.1 Для других версий Линукса слегка будет отличаться только процесс установки нужного софта.
1. Устанавливаем нужный софт:
sudo apt-get install autoconf automake bash bison bzip2 wget gnutar gnu-find unzip file flex g++ gawk groff libncurses-dev libtool libslang2 make mc patch perl sed subversion tar texinfo zlib1g zlib1g-dev
для версий системы X64 нужно доустановить gcc-4.4-multilib, иначе возможны проблемы с некорректной сборкой пакетов.
2. Подготовка исходников прошивки:
svn checkout http://wl500g.googlecode.com/svn/trunk/ /home/user/broadcom/src/1.9.2.7-rtn
mkdir /home/user/broadcom/src/linux
cd /home/user/broadcom/src/linux
wget http://asus.vectormm.net/compiled%20tools/linux-2.6.22.19.tar.bz2
tar -C ./ -jxvf ./linux-2.6.22.19.tar.bz2
mv ./linux-2.6.22.19 ./linux-2.6
cd /home/user/broadcom/src/1.9.2.7-rtn
make kernel
make
Первым делом, нам следует из-под root создать каталог /opt и дать на него полные права всем пользователям! Если в каталоге /opt уже находится подкаталог brcm, то его следует переименовать или удалить. Пользователь, под которым мы собираемся собирать toolchain, не должен обладать правами root.
1. В домашнем каталоге пользователя создаем каталог toolchain, все дальнейшие действия производим в нем
2. В каталоге, созданном в п.1 создаем каталог temp
3. Получаем исходники toolchain из svn в каталог src:
cd /home/toolchain/
удаляем все содержимое каталога, кроме папочки /temp с ценными архивами.
svn checkout http://wl500g.googlecode.com/svn/toolchain src
4. Заходим в каталог src и копируем файл конфигурации: cp defconfig .config
5. редактируем .config следующим образом:
CONFIG_EXTERNAL_KERNEL_TREE="/home/asus/broadcom/src/linux/linux-2.6" – путь к каталогу с исходниками ядра linux
CONFIG_DOWNLOAD_FOLDER="/home/toolchain/temp" – каталог для скачиваемых архивов (чтобы не скачивать их дважды…)
CONFIG_GCC_VERSION="4.4.6".
Редактируем пререквизиты, чтобы из-под рута собиралось.
8. Собираем версию toolchain c gcc 4.4.6:
cd /home/toolchain/src/
make clean
make dirclean
make V=99
готовый toolchain будет в каталоге /opt/brcm/hndtools-mipsel-uclibc-4.4.6-K26
cd /opt/brcm
tar -cvjf hndtools-mipsel-uclibc-4.4.6-K26-x64.tar.bz2 ./hndtools-mipsel-uclibc-4.4.6-K26
Из-под пользователя root создаем каталог /opt и даем на него полные права всем пользователям.
Если в каталоге /opt уже находится подкаталог /brcm, то его следует переименовать или удалить. Пользователь, под которым мы собираемся собирать toolchain, не должен обладать правами root.
В домашнем каталоге пользователя user создаем каталог toolchain, все дальнейшие действия производим в нем.
3. Получаем исходники toolchain из svn:
cd /home/user/toolchain/
удаляем все содержимое каталога, если собирали toolchain ранее.
svn checkout http://wl500g.googlecode.com/svn/toolchain /home/user/toolchain/src
Заходим в каталог src
cd /home/user/toolchain/src
и копируем файл конфигурации:
cp defconfig .config
Редактируем .config следующим образом:
CONFIG_EXTERNAL_KERNEL_TREE="/home/user/broadcom/src/linux/linux-2.6" – путь к каталогу с исходниками ядра linux
4. Собираем toolchain:
cd /home/user/toolchain/src/
make clean #если ранее собирали toolchain
make dirclean #если ранее собирали toolchain
make V=99
готовый toolchain будет в каталоге /opt/brcm/hndtools-mipsel-uclibc-4.4.6-K26 или /opt/brcm/hndtools-mipsel-uclibc-4.5.3-K26
Если нужно поделиться с кем-нибудь скомпиленным, то архивируем:
cd /opt/brcm
tar -cvjf hndtools-mipsel-uclibc-4.4.6-K26-x64.tar.bz2 ./hndtools-mipsel-uclibc-4.4.6-K26
или
tar -cvjf hndtools-mipsel-uclibc-4.5.3-K26-x64.tar.bz2 ./hndtools-mipsel-uclibc-4.5.3-K26
Разархивация после переноса в конечную систему:
tar -C /opt/brcm -jxvf ./hndtools-mipsel-uclibc-4.4.6-K26-x64.tar.bz2
или
tar -C /opt/brcm -jxvf ./hndtools-mipsel-uclibc-4.5.3-K26-x64.tar.bz2
5. Проверяем собираемость прошивок. Все.