Installing a C compiler on the NSLU2
The SlugOS packages include the GNU C and C++ compiler, however it is not
installed by default, but is split into several packages.
You could install "slugos-native". Warning, this is HUGE!!
Getting just the C compiler
As far as I am able to determine you require the following packages:
- gcc
- gcc-symlinks
gcc currently stands for "gnu compiler collection" or "gnu c
compiler" depending on where you look. On it's own it appears to
compile c code. As I understand it cpp is required to handle macros and g++
to compile c++ code.
- libc6-dev
- binutils
Other parts you might need:
- libusb-dev
"libusb" is required to run programs that access the USB ports.
"libusb-dev" is required to compile programs that use USB.
- make
"make" is usually required to build source code that consists
of more than one file.
-
cpp
cpp-symlinks cpp is the c pre-processor. It expands out macros before
the source reaches the actual compiler. As k8055 compiled OK with out cpp
I'm assuming cpp is only needed if macros are found.
g++
g++-symlinks
g++ is the gnu c++ compiler and it functions as an extension to gcc.
Installing the compiler:
We'll start with gcc and gcc-symlinks
root@zebidee:~# ipkg install gcc
Installing gcc (3.4.4-r5) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/gcc_3.4.4-r5_armeb.ipk
Configuring gcc
root@zebidee:~# ipkg install gcc-symlinks
Installing gcc-symlinks (3.4.4-r5) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/gcc-symlinks_3.4.4-r5_armeb.ipk
Configuring gcc-symlinks
root@zebidee:~# |
It's probably worth adding cpp and cpp-symlinks too:
root@zebidee:~# ipkg install cpp
Installing cpp (3.4.4-r5) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/cpp_3.4.4-r5_armeb.ipk
Configuring cpp
root@zebidee:~# ipkg install cpp-symlinks
Installing cpp-symlinks (3.4.4-r5) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/cpp-symlinks_3.4.4-r5_armeb.ipk
Configuring cpp-symlinks
root@zebidee:~#
|
Then libc6-dev. Note the dependencies, this package requires other packages:
- glibc-extra-nss
- libthread-db1
- linux-libc-headers-dev
Dependencies are normally downloaded and installed automatically, unless you
are installing from files in which case you will have to install all the
packages individually.
root@zebidee:~# ipkg install libc6-dev
Installing libc6-dev (2.3.5+cvs20050627-r6) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/libc6-dev_2.3.5+cvs20050627-r6_armeb.ipk
Installing linux-libc-headers-dev (2.6.11.1-r2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/linux-libc-headers-dev_2.6.11.1-r2_armeb.ipk
Installing glibc-extra-nss (2.3.5+cvs20050627-r6) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/glibc-extra-nss_2.3.5+cvs20050627-r6_armeb.ipk
Installing libthread-db1 (2.3.5+cvs20050627-r6) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/libthread-db1_2.3.5+cvs20050627-r6_armeb.ipk
Configuring glibc-extra-nss
Configuring libc6-dev
Configuring libthread-db1
Configuring linux-libc-headers-dev
root@zebidee:~# |
Then binutils. This package contains the assembler that gcc uses to create a
program.
root@zebidee:~# ipkg install binutils
Installing binutils (2.16-r7) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/binutils_2.16-r7_armeb.ipk
Configuring binutils
root@zebidee:~# |
We'll add libusb-dev as we'll need it later:
root@zebidee:~# ipkg install libusb-dev
Installing libusb-dev (0.1.12-r0) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/libusb-dev_0.1.12-r0_armeb.ipk
Installing libusb (0.1.12-r0) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/libusb_0.1.12-r0_armeb.ipk
Installing libstdc++6 (3.4.4-r3) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/libstdc++6_3.4.4-r3_armeb.ipk
Configuring libstdc++6
Configuring libusb
Configuring libusb-dev
root@zebidee:~# |
There's a chain of dependencies here, libusb-dev requires libusb and libusb
requires libstdc++6.
We'll add "make" as you're likely to need it eventually:
root@zebidee:~# ipkg install make
Installing make (3.80-r0) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/slugos-bag
/cross/3.10-beta/make_3.80-r0_armeb.ipk
Configuring make
root@zebidee:~# |
Common problems:
gcc: installation problem, cannot exec `as':
No such file or directory |
"as" is the assembler used to produce a program. It's in the
"binutils" package. This error probably just means that binutils
isn't installed. |