Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 8 of 8
  1. #1
    Senior Member erland's Avatar
    Join Date
    Dec 2005
    Location
    Sweden
    Posts
    10,317

    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 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.

  2. #2
    Senior Member
    Join Date
    Apr 2005
    Posts
    6,932

    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


  3. #3
    Senior 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

  4. #4
    Senior Member
    Join Date
    Apr 2005
    Posts
    6,932

    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)


  5. #5
    Senior Member erland's Avatar
    Join Date
    Dec 2005
    Location
    Sweden
    Posts
    10,317
    Quote Originally Posted by Triode View Post
    Try setting up poky and then "bitbake meta-toolchain" to build the
    appropriate toolchain for the selected platform.
    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:
    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.
    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.

    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.

  6. #6
    Senior Member erland's Avatar
    Join Date
    Dec 2005
    Location
    Sweden
    Posts
    10,317
    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.

  7. #7
    Senior 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

  8. #8
    Senior Member erland's Avatar
    Join Date
    Dec 2005
    Location
    Sweden
    Posts
    10,317
    Quote Originally Posted by fragfutter View Post
    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.
    Thanks, I got some help from Triode via mail, so I've got everything to compile successfully, I added zlib exactly as you describe and that seems to work.
    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •