參考資訊:
https://github.com/ipwndev/DSLinux
步驟如下:
$ cd
$ wget https://github.com/steward-fu/website/releases/download/nds/bin_dslinux-toolchain-2008-01-24-i686.tbz
$ tar xvf bin_dslinux-toolchain-2008-01-24-i686.tbz
$ sudo mv dslinux-toolchain-2008-01-24-i686 /opt/dslinux/
$ export PATH=$PATH:/opt/dslinux/bin/
$ git clone https://github.com/ipwndev/DSLinux
$ cd DSLinux
$ vim Makefile +297
linux%_only:
$ make menuconfig
$ ARCH=arm CROSS_COMPILE=arm-linux-elf- make -C linux-2.6.x/ vmlinux
make: Entering directory 'DSLinux/linux-2.6.x'
CHK include/linux/version.h
UPD include/linux/version.h
DSLinux/linux-2.6.x/Makefile:450: *** mixed implicit and normal rules: deprecated syntax
make[1]: *** No rule to make target 'silentoldconfig'. Stop.
make: *** [Makefile:495: include/linux/autoconf.h] Error 2
make: Leaving directory 'DSLinux/linux-2.6.x'
$ vim linux-2.6.x/Makefile +450
%config: scripts_basic outputmakefile FORCE
$ ARCH=arm CROSS_COMPILE=arm-linux-elf- make -C linux-2.6.x/ vmlinux
$ cd linux-2.6.x
$ ln -s vmlinux linux
$ cd ..
$ make
could not open nls.texi: No such file or directory
make[6]: *** [Makefile:836: ABOUT-NLS] Error 1
make[6]: Leaving directory 'DSLinux/lib/gettext/src/gettext-runtime'
$ touch lib/gettext/src/gettext-runtime/nls.texi
$ make
../../libtool: line 747: : warning: cannot infer operation mode without MODE-ARGS: command not found
../../libtool: line 5325: : you must specify a MODE: command not found
../../libtool: line 5326: Try ` --help' for more information.: command not found
$ vim lib/Makefile +114
#dir_$(CONFIG_LIB_AUDIOFILE) += audiofile
#dir_$(CONFIG_LIB_AUDIOFILE_FORCE) += audiofile
$ make
/opt/dslinux/bin/../lib/gcc/arm-linux-elf/4.0.4/../../../../arm-linux-elf/bin/ld.real: cannot find -lTinyGLU
$ rm -rf user/TinySDGL/lib
$ mkdir -p user/TinySDGL/lib/
$ make
make[3]: Entering directory 'DSLinux/user/cmatrix/src'
cd . && DSLinux/user/cmatrix/src/missing aclocal-1.4
WARNING: `aclocal-1.4' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the `README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing `aclocal-1.4' program.
make[3]: *** [Makefile:126: aclocal.m4] Error 1
make[3]: Leaving directory 'DSLinux/user/cmatrix/src'
make[2]: *** [Makefile:8: .compiled] Error 2
make[2]: Leaving directory 'DSLinux/user/cmatrix'
make[1]: *** [Makefile:450: cmatrix] Error 2
make[1]: Leaving directory 'DSLinux/user'
make: *** [Makefile:311: subdirs] Error 1
$ vim user/cmatrix/src/Makefile +43
ACLOCAL = DSLinux/user/cmatrix/src/missing aclocal
AUTOCONF = autoconf
AUTOMAKE = DSLinux/user/cmatrix/src/missing automake
$ make
coreutils.texi:12127: @itemx must follow @item
coreutils.texi:12141: @itemx must follow @item
coreutils.texi:4183: warning: node next `comm invocation' in menu `ptx invocation' and in sectioning `tsort invocation' differ
coreutils.texi:4226: warning: node prev `tsort invocation' in menu `ptx invocation' and in sectioning `comm invocation' differ
coreutils.texi:4342: warning: node `ptx invocation' is next for `tsort background' in sectioning but not in menu
coreutils.texi:4380: warning: node `tsort invocation' is next for `ptx invocation' in menu but not in sectioning
coreutils.texi:4380: warning: node prev `ptx invocation' in menu `comm invocation' and in sectioning `tsort background' differ
coreutils.texi:8677: warning: node next `chown invocation' in menu `touch invocation' and in sectioning `chgrp invocation' differ
coreutils.texi:8677: warning: node `chmod invocation' is prev for `chown invocation' in menu but not in sectioning
coreutils.texi:8890: warning: node `chown invocation' is prev for `chgrp invocation' in sectioning but not in menu
coreutils.texi:9008: warning: node next `chmod invocation' in menu `chown invocation' and in sectioning `touch invocation' differ
coreutils.texi:9107: warning: node prev `touch invocation' in menu `chown invocation' and in sectioning `chmod invocation' differ
make[4]: *** [Makefile:449: coreutils.info] Error 1
make[4]: Leaving directory 'DSLinux/user/coreutils/src/doc'
make[3]: *** [Makefile:493: all-recursive] Error 1
make[3]: Leaving directory 'DSLinux/user/coreutils/src'
make[2]: *** [Makefile:15: .compiled] Error 2
make[2]: Leaving directory 'DSLinux/user/coreutils'
make[1]: *** [Makefile:450: coreutils] Error 2
make[1]: Leaving directory 'DSLinux/user'
make: *** [Makefile:311: subdirs] Error 1
$ mv user/coreutils/src/doc/coreutils.texi /tmp
$ touch user/coreutils/src/doc/coreutils.texi
$ make
/opt/dslinux/bin/../lib/gcc/arm-linux-elf/4.0.4/../../../../arm-linux-elf/bin/ld.real: cannot find -laudiofile
collect2: ld returned 1 exit status
make[5]: *** [Makefile:604: esdcat] Error 1
make[5]: Leaving directory 'DSLinux/user/esd/src'
make[4]: *** [Makefile:832: all-recursive] Error 1
make[4]: Leaving directory 'DSLinux/user/esd/src'
make[3]: *** [Makefile:450: all] Error 2
make[3]: Leaving directory 'DSLinux/user/esd/src'
make[2]: *** [Makefile:19: .compiled] Error 2
make[2]: Leaving directory 'DSLinux/user/esd'
make[1]: *** [Makefile:450: esd] Error 2
make[1]: Leaving directory 'DSLinux/user'
make: *** [Makefile:311: subdirs] Error 1
$ vim user/Makefile
118 #dir_$(CONFIG_USER_ESD) += esd
204 #dir_$(CONFIG_USER_LINKS_LINKS) += links
276 #dir_$(CONFIG_USER_PIXIL) += pixil
281 #dir_$(CONFIG_USER_PLAYTZX_PLAYTZX) += playtzx
411 #dir_$(CONFIG_USER_TMSNC) += tmsnc
429 #dir_$(CONFIG_USER_WARP) += warp
$ make
P.S. images/dslinux.nds