If I want to setup a cross compiling environment to build binaries for Touch/Radio/Controller, is the easiest way to follow these instructions ?
http://wiki.slimdevices.com/index.ph...d_Instructions
I don't plan to build complete SqueezeOS images, I just plan to build some binary modules to be included with an applet.
Is it still easiest to install a complete SqueezeOS build environment according to the above instructions in a virtual machine ?
Or is there an easier way I can accomplish the same on a standard Ubuntu machine without to much struggling ?
Is it easiest to use the old svn repositories (which are referred to on the page) or is there a modified instruction available for the git repositories already ?
Results 1 to 8 of 8
-
2012-07-11, 10:19 #1
Building binary applets for Touch/Radio/Controller ?
Erland Isaksson (My homepage)
(Developer of many plugins/applets (both free and commercial).
If you like to encourage future presence on this forum and/or third party plugin/applet development, consider purchasing some plugins)
You may also want to try my Android apps Squeeze Display and RSS Photo Show
Interested in the future of music streaming ? ickStream - A world of music at your fingertips.
-
2012-07-11, 12:10 #2Senior Member
- Join Date
- Apr 2005
- Posts
- 6,930
Building binary applets for Touch/Radio/Controller?
I use poky to build the toolchain and then use that manually (via make)
build binaries. You can run arm5t binaries on arm6, so you probably only
need the toolchain from baby to target both baby and touch unless you need
optimal performance?
I'd use the subversion checkout, there haven't been any relevant changes
since then. You should be able to get it to build the toolchain without
trying to build a full image - I can't remember if there is a special recipe
for this though.
(I use a normal ubuntu machine for the above)
-----Original Message-----
From: erland
Sent: Wednesday, July 11, 2012 6:19 PM
To: developers (AT) lists (DOT) slimdevices.com
Subject: [Developers] Building binary applets for Touch/Radio/Controller ?
If I want to setup a cross compiling environment to build binaries for
Touch/Radio/Controller, is the easiest way to follow these instructions
?
http://wiki.slimdevices.com/index.ph...d_Instructions
I don't plan to build complete SqueezeOS images, I just plan to build
some binary modules to be included with an applet.
Is it still easiest to install a complete SqueezeOS build environment
according to the above instructions in a virtual machine ?
Or is there an easier way I can accomplish the same on a standard Ubuntu
machine without to much struggling ?
Is it easiest to use the old svn repositories (which are referred to on
the page) or is there a modified instruction available for the git
repositories already ?
------------------------------------------------------------------------
erland's Profile: http://forums.slimdevices.com/member.php?userid=3124
View this thread: http://forums.slimdevices.com/showthread.php?t=95783
-
2012-07-11, 12:25 #3Senior Member
- Join Date
- Dec 2009
- Location
- Germany
- Posts
- 304
i haven't checked the toolchain inside the squeezeboxes (if it is eglibc, glibc, ulibc). But if you don't need a lot of libraries you could get away with a toolchain and crosscompiling.
Build your own chain (not that hard, just takes some time to complete the canadian cross) or download one (e.g. code sourcery http://www.codesourcery.com/sgpp/lit...bscription3057)sent from a computer using a keyboard
-
2012-07-11, 14:15 #4Senior Member
- Join Date
- Apr 2005
- Posts
- 6,930
Building binary applets for Touch/Radio/Controller?
Try setting up poky and then "bitbake meta-toolchain" to build the
appropriate toolchain for the selected platform.
-----Original Message-----
From: Triode
Sent: Wednesday, July 11, 2012 8:10 PM
To: Slim Devices Developers
Subject: Re: [Developers] Building binary applets for
Touch/Radio/Controller?
I use poky to build the toolchain and then use that manually (via make)
build binaries. You can run arm5t binaries on arm6, so you probably only
need the toolchain from baby to target both baby and touch unless you need
optimal performance?
I'd use the subversion checkout, there haven't been any relevant changes
since then. You should be able to get it to build the toolchain without
trying to build a full image - I can't remember if there is a special recipe
for this though.
(I use a normal ubuntu machine for the above)
-
2012-07-12, 00:59 #5
I tried this and executed "bitbake meta-toolchain" instead of "bitbake squeezeos-image" as specified on the wiki page.
But it failed in the xproto part.
The following is from the /usr/src/poky/build/tmp-jive/work/i686-armv5te-sdk-none-linux-gnueabi/xproto-sdk-1_7.0.14-r1/xproto-7.0.14/config.log file:
I've started a bitbake squeezeos-image just to see if that works better, but in case someone can see what's wrong with the above, please let me know.Code:configure:2432: checking for i686-linux-gcc configure:2459: result: gcc --sysroot=/usr/src/poky/build/tmp-jive/staging/i686-linux-sdk configure:2737: checking for C compiler version configure:2744: gcc --sysroot=/usr/src/poky/build/tmp-jive/staging/i686-linux-sdk --version >&5 gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3 Copyright (C) 2009 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:2747: $? = 0 configure:2754: gcc --sysroot=/usr/src/poky/build/tmp-jive/staging/i686-linux-sdk -v >&5 Using built-in specs. Target: i486-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5.1' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu Thread model: posix gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) configure:2757: $? = 0 configure:2764: gcc --sysroot=/usr/src/poky/build/tmp-jive/staging/i686-linux-sdk -V >&5 gcc: '-V' must come at the start of the command line configure:2767: $? = 1 configure:2790: checking for C compiler default output file name configure:2817: gcc --sysroot=/usr/src/poky/build/tmp-jive/staging/i686-linux-sdk -isystem/usr/src/poky/build/tmp-jive/staging/i686-linux-sdk/usr/include -O2 -isystem/usr/src/poky/build/tmp-jive/staging/i686-linux-sdk/usr/include -L/usr/src/poky/build/tmp-jive/staging/i686-linux-sdk/usr/lib -Wl,-rpath-link,/usr/src/poky/build/tmp-jive/staging/i686-linux-sdk/usr/lib -Wl,-rpath,/usr/local/squeezeos/external-csl2010q1-glibc/arm/lib -Wl,-O1 conftest.c >&5 /usr/bin/ld: this linker was not configured to use sysroots collect2: ld returned 1 exit status configure:2820: $? = 1 configure:2858: result: configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME "Xproto" | #define PACKAGE_TARNAME "xproto" | #define PACKAGE_VERSION "7.0.14" | #define PACKAGE_STRING "Xproto 7.0.14" | #define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" | #define PACKAGE "xproto" | #define VERSION "7.0.14" | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:2865: error: C compiler cannot create executables See `config.log' for more details.
This row in the log looked a bit suspected:
/usr/bin/ld: this linker was not configured to use sysroots
I'm using Ubuntu Server 10.04.4 LTS
it's a minimal installation where i've installed all the packages described on the wiki plus "build-essential" and some other non related packages which aren't related to development.
Do I need anything special to specify if it should build/install toolchain for Radio or Touch, or will it build/install both when running the bitbake meta-toolchain command ?Erland Isaksson (My homepage)
(Developer of many plugins/applets (both free and commercial).
If you like to encourage future presence on this forum and/or third party plugin/applet development, consider purchasing some plugins)
You may also want to try my Android apps Squeeze Display and RSS Photo Show
Interested in the future of music streaming ? ickStream - A world of music at your fingertips.
-
2012-07-12, 11:51 #6
Sorry if this is a bit stupid questions, I can probably figure out some way to get this to work but I'll ask anyway so I hopefully can do it the easiest way.
The "bitbake squeezeos-image" seems to have worked successfully, haven't actually tried it but the /usr/src/poky/build/tmp-jive/deploy/images/ directory seems to contain some binaries and the build doesn't seem to produce any error messages at the end.
I found some files in:
/usr/src/poky/build/tmp-jive/cross/armv5te/bin/
For example:
arm-none-linux-gnueabi-gcc
And compiling a Hello World program from the command line using that creates a nice little program that I can execute both on Radio and Touch.
Now, I want to do something a little bit more advanced, should I setup some environment variables or similar things to make sure the compiler and linker uses the ARM binaries/libraries/include files and not the i386 ones provided by Ubuntu by default ? Or does that happen automatically if I use the /usr/src/poky/build/tmp-jive/cross/armv5te/bin/arm-none-linux-gnueabi-gcc compiler to compile things ?
Just for reference, when I build my project on Linux, I need to add zlib during linking, except for that it doesn't have any outside dependencies.
Since it looks like I already have zlib in /usr/src/poky/build/tmp-jive/work/armv5te-none-linux-gnueabi/zlib-1.2.3-r7 I'm guessing I'll somehow be able to point the linker to that when building ?Erland Isaksson (My homepage)
(Developer of many plugins/applets (both free and commercial).
If you like to encourage future presence on this forum and/or third party plugin/applet development, consider purchasing some plugins)
You may also want to try my Android apps Squeeze Display and RSS Photo Show
Interested in the future of music streaming ? ickStream - A world of music at your fingertips.
-
2012-07-13, 13:51 #7Senior Member
- Join Date
- Dec 2009
- Location
- Germany
- Posts
- 304
if you simply use make (no autconf, etc) it is enough to add directory of zlib to the compiler. (-L/usr/src/poky/build/tmp-jive/work/armv5te-none-linux-gnueabi/zlib-1.2.3-r7). Don't worry if your cross compilers builtin system paths include /usr/lib. It will skip any zlib it finds there for incompatibility reasons.
sent from a computer using a keyboard
-
2012-07-13, 15:00 #8Erland Isaksson (My homepage)
(Developer of many plugins/applets (both free and commercial).
If you like to encourage future presence on this forum and/or third party plugin/applet development, consider purchasing some plugins)
You may also want to try my Android apps Squeeze Display and RSS Photo Show
Interested in the future of music streaming ? ickStream - A world of music at your fingertips.

Reply With Quote

