Please feel free to update, cleanup or correct this page
What is this? This document shows how to build the D-LINK DNS-323 GPL toolchain, kernel and u-boot loader
Things you will need first
mkdir GPL
mkdir GPL/zips
cd GPLtar xzf build_dns323.tgz
./wget_GPL
Fix the bug in the script build_uclibc: on line 24, replace .tar.gz with .tgz (obviously the extension of the tarballs changed)
The path to the gcc sources has changed, so we need to fix it:
tar xzf zips/uclibc-toolchain-src-20040609.tgz
edit the file: uclibc-toolchain-src-20040609/gcc-3.3.x/make/gcc-uclibc-3.3.mk Change the so that the path defined on line 23 reads:
GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/gcc-$(GCC_VERSION)
Now, since we have already uncompressed the tar file, we comment out lines 23 and 24 of build_uclibc by adding a # to that start of each line.
Save the modified file, then run the script:
./build_uclibc
And now you must fix your symlinks. cd to $GPL/uclibc-toolchain-src-20040609/gcc-3.3.x/toolchain_arm/arm-linux-uclibc/lib and fix all broken links:
for lib in crypt dl m nsl pthread resolv rt thread_db util; do ln -sf lib${lib}-* lib${lib}.so; done ln -sf libuClibc-0.9.28.so libc.so
Note For each build script below - extract the corresponding file from the zips directory. Example:
tar xzf zips/linux-2.6.12.6.tgz
This creates a directory called linux-2.6.12.6 that build_kernel knows about.
fix bug in script build_kernel: on line 5, replace linux-2.6.6 by linux-2.6.12.6
./build_kernel
./build_u-boot
The script needs a change; add line export CC=arm-linux-gcc, then execute.
./build_busybox
./build_at
Notes:
The ./build_uclibc script creates a script called setpath that can be used to compile other ARM uclibc programs later on.
Many of the remaining D-LINK sources have not been configured for being cross-compiled. In fact, the “Readme.txt” file they supply with the GPL sources has instruction that are just plain wrong.