Topic: A little out of my depth here, compiling for infocast 3.5?

I'm still quite new to linux and haven't really had to compile much of anything before, could someone give me a gentle nudge in the right direction for what I'll need?

Here's what uname -a gives me
Linux Infocast 1 2.6.28-chumby #1 PREEMPT Fri Nov 5 18:24:54 PDT 2010 armv5tejl GNU/Linux

From the chumby source page I'm assuming I'll need this
http://files.chumby.com/source/falconwi … 053111.tgz

The above link should be the kernel source right? Or does that contain everything I need?

I'm wanting to compile MPD, I know someone else did this for the C1 so I'm assuming it should be very similar (if not identical) for the 3.5" infocast. The only thing is the other guy said in his post that he cross compiled it with ffshow and talks about compiling it as an input plugin with the ALSA mixer as the output. I understand ALSA deals with sound but I really don't get what he's talking about. Maybe it'll become clearer when I actually get to the compiling stage.

Any help would be greatly appreciated.

TIA

Re: A little out of my depth here, compiling for infocast 3.5?

You should not need the kernel source for most things, such as apps - what you need is the toolchain (compilers, etc).  The kernel source is only useful if you're writing drivers or stuff of that nature.

There are a couple of ways of doing C/C++ development for a Chumby:

1) The cross-development toolchain, see here

2) A Scratchbox environment, see here

3) Doing it on the device itself (good for small things) - just open up a terminal and type "gcc" and it should download and install everything.

In the last case, I've personally built things like python, node, etc., but it's limited, and somewhat slow.  The Scratchbox environment is excellent for certain types of things where cross development is difficult.  However, the build system that Chumby actually uses internally to build firmware is based on the first method.

On the other hand, sometimes C/C++ isn't the best choice - you can use bash or Perl, both of which are built in.  The wiki also has other languages listed that are available.  I tend to use node a lot lately myself.

3 (edited by jphphotography 2012-05-27 21:02:40)

Re: A little out of my depth here, compiling for infocast 3.5?

Thanks for the reply Duane, I was looking on the page you link to for the cross-development toolchains but I wasn't sure which one I needed. They seem to refer to Ironforge and the foo/katamari stuff but since I didn't see silvermoon I wasn't sure. At the bottom of the page there was a link saying sourcecode for the toolchains and libraries were found here so I downloaded the tgz that I mentioned in the first post thinking I'd need to compile the toolchain first smile

My infocast FW is 1.0.3454 so does that mean I would need GCC 4.1.2b which says its for FW's <1.6?

Sorry if these are stupid questions

Would you consider MPD big? When the other guy compiled it with the ffshow stuff he said the binary was around 6MB, would that take forever on the infocast or would that be doable?

Re: A little out of my depth here, compiling for infocast 3.5?

I would not attempt to do that on the Infocast itself.

For toolchains, you want to use the Ironforge/Falconwing ones, *not* the Foo/Katamari ones.  You'll need the later ones for firmware >=1.7, i.e. the gcc 4.3.2 version.

The Infocast 3.5 is a Falconwing-based device, like the C1.  The Infocast 8 is the Silvermoon-based  device, like the C8.  For the purposes of development you should treat them just like the chumby-branded devices.

Re: A little out of my depth here, compiling for infocast 3.5?

Thanks again for the reply Duane

Sorry I had meant falconwing, not silvermoon. The Toolchain page doesn't list Falconwing anywhere, only Ironforge and that was part of what was messing me up.

Now just so I understand you're saying to use the 4.3.2 version, which is meant for FW >1.7, which FW is the >1.7 referring to since mine is showing FW 1.0.3454?

Re: A little out of my depth here, compiling for infocast 3.5?

Ok so another question, I'm wanting to install this toolchain on my linux laptop which is running ubuntu. Are the instructions on the Toolchain page meant for this (ie copying the arm2008 folder to /usr/arm etc and creating all of the symlinks) or are those instructions for installing the toolchain on your chumby device?

I just don't want to get too far along and mess up my laptop.

Sorry for needing the handholding here, some of this stuff is new to me and since the instructions needs be running as root I know if I mess up I could really screw things up smile

Thanks

Re: A little out of my depth here, compiling for infocast 3.5?

jphphotography wrote:

Ok so another question, I'm wanting to install this toolchain on my linux laptop which is running ubuntu. Are the instructions on the Toolchain page meant for this (ie copying the arm2008 folder to /usr/arm etc and creating all of the symlinks) or are those instructions for installing the toolchain on your chumby device?

I just don't want to get too far along and mess up my laptop.

Sorry for needing the handholding here, some of this stuff is new to me and since the instructions needs be running as root I know if I mess up I could really screw things up smile

Thanks

The instructions are for installing on something like ubuntu, not the device itself.  In the past, I've installed the toolchain using the method on the wiki page.

Linux Guy - Occasional Chumby Hacker

Re: A little out of my depth here, compiling for infocast 3.5?

Ok so I finally got around to getting the toolchain installed on my ubuntu laptop. I ran the config for mpd with "./configure --host=arm-linux"

When I go to make the file I get all sorts of errors saying unsafe for cross-compilation

Any ideas?

root@Ubuntu10-Latitude-D810:/home/james/chumby_stuff/mpdsource/mpd-0.16.8# make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
make  all-am
make[1]: Entering directory `/home/james/chumby_stuff/mpdsource/mpd-0.16.8'
arm-linux-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -DNDEBUG -I./src -pthread -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"'        -I/usr/include/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      -I/usr/include            -I/usr/include/libcue-1.4     -I/usr/include    -I/usr/include/alsa       -pthread    -Wall -Wextra -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wcast-qual -Wwrite-strings -pedantic -D_GNU_SOURCE -I/usr/include/libmodplug   -g -O2 -MT src/decoder/libmodplug_decoder_plugin_a-modplug_decoder_plugin.o -MD -MP -MF src/decoder/.deps/libmodplug_decoder_plugin_a-modplug_decoder_plugin.Tpo -c -o src/decoder/libmodplug_decoder_plugin_a-modplug_decoder_plugin.o `test -f 'src/decoder/modplug_decoder_plugin.c' || echo './'`src/decoder/modplug_decoder_plugin.c
cc1: warning: include location "/usr/include/" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/libcue-1.4" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/alsa" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/libmodplug" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/glib-2.0" is unsafe for cross-compilation
mv -f src/decoder/.deps/libmodplug_decoder_plugin_a-modplug_decoder_plugin.Tpo src/decoder/.deps/libmodplug_decoder_plugin_a-modplug_decoder_plugin.Po
rm -f libmodplug_decoder_plugin.a
ar cru libmodplug_decoder_plugin.a src/decoder/libmodplug_decoder_plugin_a-modplug_decoder_plugin.o
arm-linux-ranlib libmodplug_decoder_plugin.a
arm-linux-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -DNDEBUG -I./src -pthread -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"'        -I/usr/include/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      -I/usr/include            -I/usr/include/libcue-1.4     -I/usr/include    -I/usr/include/alsa       -pthread    -Wall -Wextra -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wcast-qual -Wwrite-strings -pedantic -D_GNU_SOURCE -g -O2 -MT src/src_mpd-input_init.o -MD -MP -MF src/.deps/src_mpd-input_init.Tpo -c -o src/src_mpd-input_init.o `test -f 'src/input_init.c' || echo './'`src/input_init.c
cc1: warning: include location "/usr/include/" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/libcue-1.4" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/alsa" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/glib-2.0" is unsafe for cross-compilation
mv -f src/.deps/src_mpd-input_init.Tpo src/.deps/src_mpd-input_init.Po
arm-linux-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -DNDEBUG -I./src -pthread -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"'        -I/usr/include/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      -I/usr/include            -I/usr/include/libcue-1.4     -I/usr/include    -I/usr/include/alsa       -pthread    -Wall -Wextra -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wcast-qual -Wwrite-strings -pedantic -D_GNU_SOURCE -g -O2 -MT src/src_mpd-input_registry.o -MD -MP -MF src/.deps/src_mpd-input_registry.Tpo -c -o src/src_mpd-input_registry.o `test -f 'src/input_registry.c' || echo './'`src/input_registry.c
cc1: warning: include location "/usr/include/" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/libcue-1.4" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/alsa" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/glib-2.0" is unsafe for cross-compilation
mv -f src/.deps/src_mpd-input_registry.Tpo src/.deps/src_mpd-input_registry.Po
arm-linux-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -DNDEBUG -I./src -pthread -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"'        -I/usr/include/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      -I/usr/include            -I/usr/include/libcue-1.4     -I/usr/include    -I/usr/include/alsa       -pthread    -Wall -Wextra -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wcast-qual -Wwrite-strings -pedantic -D_GNU_SOURCE -g -O2 -MT src/src_mpd-input_stream.o -MD -MP -MF src/.deps/src_mpd-input_stream.Tpo -c -o src/src_mpd-input_stream.o `test -f 'src/input_stream.c' || echo './'`src/input_stream.c
cc1: warning: include location "/usr/include/" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/libcue-1.4" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/alsa" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/glib-2.0" is unsafe for cross-compilation
mv -f src/.deps/src_mpd-input_stream.Tpo src/.deps/src_mpd-input_stream.Po
arm-linux-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -DNDEBUG -I./src -pthread -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"'        -I/usr/include/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      -I/usr/include            -I/usr/include/libcue-1.4     -I/usr/include    -I/usr/include/alsa       -pthread    -Wall -Wextra -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wcast-qual -Wwrite-strings -pedantic -D_GNU_SOURCE -g -O2 -MT src/input/src_mpd-rewind_input_plugin.o -MD -MP -MF src/input/.deps/src_mpd-rewind_input_plugin.Tpo -c -o src/input/src_mpd-rewind_input_plugin.o `test -f 'src/input/rewind_input_plugin.c' || echo './'`src/input/rewind_input_plugin.c
cc1: warning: include location "/usr/include/" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/libcue-1.4" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/alsa" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/glib-2.0" is unsafe for cross-compilation
mv -f src/input/.deps/src_mpd-rewind_input_plugin.Tpo src/input/.deps/src_mpd-rewind_input_plugin.Po
arm-linux-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -DNDEBUG -I./src -pthread -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"'        -I/usr/include/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      -I/usr/include            -I/usr/include/libcue-1.4     -I/usr/include    -I/usr/include/alsa       -pthread    -Wall -Wextra -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wcast-qual -Wwrite-strings -pedantic -D_GNU_SOURCE -g -O2 -MT src/input/src_mpd-file_input_plugin.o -MD -MP -MF src/input/.deps/src_mpd-file_input_plugin.Tpo -c -o src/input/src_mpd-file_input_plugin.o `test -f 'src/input/file_input_plugin.c' || echo './'`src/input/file_input_plugin.c
cc1: warning: include location "/usr/include/" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/libcue-1.4" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/alsa" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/glib-2.0" is unsafe for cross-compilation
mv -f src/input/.deps/src_mpd-file_input_plugin.Tpo src/input/.deps/src_mpd-file_input_plugin.Po
arm-linux-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -DNDEBUG -I./src -pthread -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"'        -I/usr/include/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      -I/usr/include            -I/usr/include/libcue-1.4     -I/usr/include    -I/usr/include/alsa       -pthread    -Wall -Wextra -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wcast-qual -Wwrite-strings -pedantic -D_GNU_SOURCE -g -O2 -MT src/input/src_mpd-curl_input_plugin.o -MD -MP -MF src/input/.deps/src_mpd-curl_input_plugin.Tpo -c -o src/input/src_mpd-curl_input_plugin.o `test -f 'src/input/curl_input_plugin.c' || echo './'`src/input/curl_input_plugin.c
cc1: warning: include location "/usr/include/" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/libcue-1.4" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/alsa" is unsafe for cross-compilation
cc1: warning: include location "/usr/include/glib-2.0" is unsafe for cross-compilation
src/input/curl_input_plugin.c: In function 'input_curl_select':
src/input/curl_input_plugin.c:281: error: impossible constraint in 'asm'
src/input/curl_input_plugin.c:282: error: impossible constraint in 'asm'
src/input/curl_input_plugin.c:283: error: impossible constraint in 'asm'
make[1]: *** [src/input/src_mpd-curl_input_plugin.o] Error 1
make[1]: Leaving directory `/home/james/chumby_stuff/mpdsource/mpd-0.16.8'
make: *** [all] Error 2

Re: A little out of my depth here, compiling for infocast 3.5?

It has to do with cross compilation.  Gcc doesn't like including header files from your build machine for binaries that will be created for the host (target) machine.  That is because header files might differ between the two.  (arm vs. x86 or similar)

I believe --prefix=/mnt/usb should work, but depending on mpd's build system, you might have to pass other options like INCDIR or INCLUDEPATH or something.  It will also require that you already built the prerequisite libraries (like alsa, glib, libcue, and whatever else it needs) and already installed to the /mnt/usb location.

When building for the chumbies I typically use /mnt/usb as the prefix because that's where they'll be mounted on the device and if certain things use hard coded paths, they'll be in the correct location when being run.

Linux Guy - Occasional Chumby Hacker

10 (edited by jphphotography 2012-06-05 21:40:50)

Re: A little out of my depth here, compiling for infocast 3.5?

Thanks for the info Materdaddy, I realized later I misread the other guy's post that got MPD working, also being unfamiliar with compiling in Linux I didn't understand what he was saying by "+ffmpeg with ALSA as the output". I was trying to include every library that MPD wanted but it turns out I probably only need ffmpeg. If that's the case then I'm going to try and compile it right on the chumby itself. The chumby should have the ALSA libraries already installed right? If I have to compile some of the other libraries on the Chumby so be it as long as there isn't too many.

I came across a webpage where another guy had compiled his own toolchain and was installing QT so I reached out to him for help too and he seemed to think part of the problem was that MPD's make was passing -I /usr/include to the toolchain. Perhaps this is the include directory option you're talking about? Sorry for my Newbness, I'm trying to learn I swear smile

Re: A little out of my depth here, compiling for infocast 3.5?

Ok so compiling on the Chumby (well infocast actually) seems like its going to be a nightmare. I tried running ./configure for MPD and it tells me I need GLib 2.12, so I download the source for GLib 2.12 and I ./configure it and it tells me I need pkg-config etc and so on. Even if I made all of these I'm not sure where I'm supposed to be putting them.

@Materdaddy, here's MPD's make --help output

Make

Usage: make [options] [target] ...
Options:
  -b, -m                      Ignored for compatibility.
  -B, --always-make           Unconditionally make all targets.
  -C DIRECTORY, --directory=DIRECTORY
                              Change to DIRECTORY before doing anything.
  -d                          Print lots of debugging information.
  --debug[=FLAGS]             Print various types of debugging information.
  -e, --environment-overrides
                              Environment variables override makefiles.
  -f FILE, --file=FILE, --makefile=FILE
                              Read FILE as a makefile.
  -h, --help                  Print this message and exit.
  -i, --ignore-errors         Ignore errors from commands.
  -I DIRECTORY, --include-dir=DIRECTORY
                              Search DIRECTORY for included makefiles.
  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no arg.
  -k, --keep-going            Keep going when some targets can't be made.
  -l [N], --load-average[=N], --max-load[=N]
                              Don't start multiple jobs unless load is below N.
  -L, --check-symlink-times   Use the latest mtime between symlinks and target.
  -n, --just-print, --dry-run, --recon
                              Don't actually run any commands; just print them.
  -o FILE, --old-file=FILE, --assume-old=FILE
                              Consider FILE to be very old and don't remake it.
  -p, --print-data-base       Print make's internal database.
  -q, --question              Run no commands; exit status says if up to date.
  -r, --no-builtin-rules      Disable the built-in implicit rules.
  -R, --no-builtin-variables  Disable the built-in variable settings.
  -s, --silent, --quiet       Don't echo commands.
  -S, --no-keep-going, --stop
                              Turns off -k.
  -t, --touch                 Touch targets instead of remaking them.
  -v, --version               Print the version number of make and exit.
  -w, --print-directory       Print the current directory.
  --no-print-directory        Turn off -w, even if it was turned on implicitly.
  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
                              Consider FILE to be infinitely new.
  --warn-undefined-variables  Warn when an undefined variable is referenced.

So for now I'm going back to cross-compiling on my ubuntu machine but I still have tons of newb questions. For starters how would I tell the make or configuration scripts to ignore the x86 libraries I have installed on my ubuntu machine? Shouldn't the whole --host=arm-linux thing already be taking care of that or am I wrong?

Re: A little out of my depth here, compiling for infocast 3.5?

My chumby dev environment is on a new machine at home.  I'll try taking a look tonight and see if I can help you out.

Linux Guy - Occasional Chumby Hacker

Re: A little out of my depth here, compiling for infocast 3.5?

If you don't intend to use the chumby Flash player for anything, it is relatively easy to get mpd running on the infocast 3.5 using a custom openembedded build.  One of the default recipes in guyc's github repo even includes mpd by default.   

mpd is the backend music player for the custom Google Music client I've been working on, but the frontend isn't written in Flash (it is written in Go), so I just do a custom OE-based rootfs build with the software I'm using (including mpd).

However -- while getting OE builds up on the Infocast 3.5 is relatively easy, the first build takes a long time (literally close to a day in most cases).

Re: A little out of my depth here, compiling for infocast 3.5?

gmcbay I'm really new to all of this so I didn't know about the whole openembedded thing. I'll have to look into it because if there is already a recipe that sounds a lot easier.

I was just going to talk to it directly or try to use this widget that someone else had made and point it to the MPD running on the Chumby so that should hopefully work.

I'm learning lots by doing all of this lol, hitting snags everywhere I turn but learning lots smile

Re: A little out of my depth here, compiling for infocast 3.5?

@ gmcbay
I apologize for being a newb here but is OE essentially building a new FW for me that would replace the existing Chumby one? Also, since part of my thread deals with compiling on the device itself I just want to clarify, OE would be installed on a separate device and configured for whatever processor etc that I'm trying to develop for correct?

Right now I'm trying to get Scratchbox configured, Duane you mentioned this earlier. Using this guy's blog post I've installed SB1 and created a profile, then I get to the part about setting up which arm version and the compiler and I'm lost.

This is the part I need help with:

Finally, setup an armv7 target (you can have multiple targets inside scratchbox):
/opt/scratchbox/tools/bin/sb-conf setup armv7 --force --compiler="cs2007q3-glibc2.5-arm7" --devkits="qemu" --cputransp="qemu-arm-sb"
/opt/scratchbox/tools/bin/sb-conf select armv7
/opt/scratchbox/tools/bin/sb-conf install armv7 --clibrary --devkits --fakeroot --etc

[EDIT]
Nevermind Duane sorry, thanks to google I just found this, I swear I'd looked for this before but maybe I searched for Scratchbox Infocast instead of Chumby. I'm running Ubuntu 10.10 so hopefully this guide still works.

Re: A little out of my depth here, compiling for infocast 3.5?

Ok, so on cross compilation.  I tried getting mpd working, the other night, but since I was unsuccessful I never ended up posting.  I haven't had time to revisit it which I planned on doing before posting.  That being said, I'll post what I have and where my roadblocks were.

I started by downloading/extracting mpd:

wget "http://sourceforge.net/projects/musicpd/files/mpd/0.16.8/mpd-0.16.8.tar.bz2/download" -O mpd-0.6.18.tar.bz2
tar xjpvf mpd-0.6.18.tar.bz2
cd mpd-0.6.18

Then configured it looking for a failure:

./configure --host=arm-linux --prefix=/mnt/usb

The error:

checking for GLIB... no
configure: error: GLib 2.12 is required

Then I went to go get glib configured/built:

cd ..
wget http://ftp.gnome.org/pub/gnome/sources/glib/2.32/glib-2.32.3.tar.xz
xz -d glib-2.32.3.tar.xz
tar xpvf glib-2.32.3.tar
cd glib-2.32.3
./configure --host=arm-linux --prefix=/mnt/usb

This yields in error:

configure: error: 
*** You must have either have gettext support in your C library, or use the
*** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html

I have not been able to get past this error, even if I compile GNU's gettext and set PKG_CONFIG_PATH and friends... I'm not sure where to go from here.  Most packages I've cross compiled before simply required me to grab a couple dependencies set up first, then everything works, but this one has me a little bit stumped.

Linux Guy - Occasional Chumby Hacker

17 (edited by jphphotography 2012-06-10 17:03:48)

Re: A little out of my depth here, compiling for infocast 3.5?

Ok I may be able to help with that. I ran into the same thing when compiling right on my Chumby, I downloaded gettext and compiled it on my infocast which enabled me to get glib2.12 made and installed. The gettext source is huge (well huge for a chumby anyway) because it seems to include tons of examples etc but if you're doing it on a "real" computer then it shouldn't be an issue.

I'm still setting up scratchbox at the moment but my progress for compiling on the infocast hit a brick wall with trying to compile ffmpeg which is not a simple program.

I've got a lengthy comment thread going with Doug on his post about cross-compiling for the C1 over here  where he's been incredibly helpful with his detailed replies.

If I ever get this to work I'm going to try and write up a nice "newb friendly" tutorial for others like me. I also plan on posting a binary somewhere so that others don't have to go through all of this grief, although you do learn a lot along the way:)

Re: A little out of my depth here, compiling for infocast 3.5?

Unfortunately that doesn't help.  I mentioned in my other thing that even if I compile GNU's gettext, install it correctly and set appropriate (or at least what I believe to be appropriate) PKG_CONFIG_PATH, PKG_CONFIG_LIBDIR, ACLOCAL_FLAGS, etc. I cannot get glib to recognize the gettext I have compiled for my build.  I'm stuck!

Linux Guy - Occasional Chumby Hacker

Re: A little out of my depth here, compiling for infocast 3.5?

Now like I said I'm a bit of a newb but Doug at the blog I'd mentioned earlier suggested this

export PKG_CONFIG_LIBDIR=/mnt/usb/lib/pkgconfig

and

export CFLAGS=-I/mnt/usb/include
export LDFLAGS=-L/mnt/usb/lib

Not sure at all if that will help but I figured I might as well mention it.

If you haven't already you might want to check out everything Doug told me on that blog
http://www.downtowndougbrown.com/2011/0 … mment-9397

I appreciate the help, hopefully we can get this figured out.

Re: A little out of my depth here, compiling for infocast 3.5?

I guess I should have included my attempted configure for glib (after having installed gettext to /mnt/usb):

./configure --host=arm-linux --prefix=/mnt/usb CFLAGS=-I/mnt/usb/include LDFLAGS=-L/mnt/usb/lib ACLOCAL_FLAGS=-I/mnt/usb/share/aclocal/ PKG_CONFIG_PATH=/mnt/usb/lib/pkgconfig

I did click through to your link and started reading it.  First, it's a great article, and second, the discussion is great too.

Linux Guy - Occasional Chumby Hacker

Re: A little out of my depth here, compiling for infocast 3.5?

Maybe we'll luck out and some guru will come along and help us smile I should have named the topic compiling for Chumby One and posted it under the Chumby instead of the infocast since its essentially the same, maybe more people would be reading it. Who am I kidding actually, everyone probably skims all of the new topics anyway.

Are you using Scratchbox for this or just the toolchain?

Also, since I did manage to get GLib 2.12 compiled right on the device could I simply copy the files and send them to you so that you don't need to compile it?

Re: A little out of my depth here, compiling for infocast 3.5?

I got past glib woes:
My configure line ended up:

./configure --host=arm-linux --prefix=/mnt/usb --cache-file=arm_cache.conf

I had to create an initial arm_cache.conf with the following 3 lines:

ac_cv_func_posix_getpwuid_r=yes
glib_cv_stack_grows=no
glib_cv_uscore=yes

After the build, the arm_cache.conf file is full of all the configure options that were done.

Next up will be huge piles of other dependencies for mpd.

Linux Guy - Occasional Chumby Hacker

Re: A little out of my depth here, compiling for infocast 3.5?

If you wind up getting further than me we'll want ffmpeg included and alsa for the output (does the chumby already have alsa?) There were other things that I wasn't sure if we'd need like libcurl etc for streaming. Worst case I guess if we manage to get something compiled we can try it and see what happens smile

Thanks again for the help, I really appreciate it Materdaddy!

Re: A little out of my depth here, compiling for infocast 3.5?

jphphotography, sorry I haven't had more time to help you with this.  Unfortunately I've been very busy and this isn't really on my list of wants.  I wish you the best, and if you have specific questions, please post up!

Linux Guy - Occasional Chumby Hacker

Re: A little out of my depth here, compiling for infocast 3.5?

No worries Materdaddy, my life has been insane lately (finding a care home for my folks and having to get their house ready for sale etc) and I haven't had a chance to do anything more with this myself either.

A few months down the road once stuff settles down a bit more I'll get back to this, hopefully these forums are still around and full of active members smile