Topic: Where to begin?

Hi all --

Just asked for (and received!) a chumby for my birthday.  I like the functionality, but I enjoy futzing with Linux and want to add a couple bits to 'finish it off' for myself.

So, I have a few questions that don't seem to be answered in the Wiki (I always have trouble finding answers in wiki's so if this is addressed elsewhere, please point me that direction.)

(1) Are all the bits available to the general public to build a production 'firmware' (I have trouble thinking of Linux as firmware...) which can thus be flashed to the system as a replacement? I'm guessing the answer is 'no' as folks have asked for source for a few modules and they don't seem to have been answered.

(2) If the answer to the above is 'yes', how do I begin? I've got the arm gnu tool chain downloaded and I have also downloaded all the bits from the 'source code' page.  How do I build a cohesive image? In fact, how do I build a given package? I see the instructions for building the kernel, but that's not the end-all be-all of a functional device (and, to be honest, I'm not really interested in compling a kernel if I don't need to.)

(3) I'm wanting to modify the module that plays music from a usb drive so that it can find the music files on my Sansa Clip (stored in a FAT?? formatted flash on the device under \MUSIC).  I'm guessing this is the control panel.  Do I need to generate a playlist for it? Is there a simple configuration file I can add to to make it recognize my \MUSIC directory as ... well, music to play?

(4) I'm wanting to, also, run the chumby as a windows file server (samba) -- sharing a large 200gb usb drive -- has anyone done this already?

(5) Finally, how far can I go and still be able re-flash the bugger without having to remove the cover and muck around with jtag?

Thanks for any and all information you can provide!

= m =

Re: Where to begin?

It is not possible to build a production firmware image from scratch because the Flash Player is closed source, however, pretty much the rest of the system is Open.

We've posted the source for everything that's GPL, and if there's something that's GPL for which we *haven't* provided source, please let us know, and we'll get it up there.  The source repositories don't contain most of the shell scripts because you already have the source on the device itself.

What most people do when creating a modification of the firmware is to dd the root file system to a file, then mount it as a cramfs system on a different machine, copy it to a writeable file system, modify it, then restore it to cramfs, then build a dongle to reflash the system.  Note that you are not free to distribute a firmware image that includes the Flash Lite Player without a distribution license from Adobe.

Some of the source tarballs have our Makefiles - they're probably not too useful without our full production build system, which is substantial, but you can certainly see how we cross-compile most of them.  Some of the examples on the wiki (for instance, the instructions for building lighttpd or JamVM) show the typical process for cross-compiling for ARM.  Some packages are trickier than others.

One thing to keep in mind is that we are *not* a Linux distro company, so our *official* support for anything at the Linux level doesn't extend beyond providing the source as required by the license.  However, we do frequently provide unofficial support for folks wanting help playing with the system, but if you brick your device, then you're officially on your own.

Re: Where to begin?

Duane wrote:

but if you brick your device, then you're officially on your own.

um, how likely is it that I would be able to brick it doing the things we've talked about?

I've read about someone mucking about with the bootloader which is hard to get to ... is that something I'm likely going to get to doing what you've discussed above?

And yes, I understand you're about 'the product' and meeting the needs of the license.

Its nice to know you guys are around, tho, helping out when/where you can. smile

Re: Where to begin?

Some folks have bricked their devices - usually this happens if you try to alter the boot loader, or reflash *both* the normal and "special options" partition.  It's also possible to brick the device with poor management of NAND bad blocks (ie mark all of the blocks bad).

Everything you've talked about doesn't actually require reflashing anything - you do all this running software from a USB dongle with the documented "debugchumby" mechanisms.

Re: Where to begin?

I also am a newbie to chumby development.  I have been working all semester on this project tinkering with source code, thinking that I was right on track.  Because I had corrupted gz files which still yielded some files using unix tools for windows, I convinced myself that I would be able to get it all working, basically hacking it, when the time came.  However, I find that I cannot even run the Makefile due to "arm-linux-gcc file not found" (I'm on a different system.  I haven't figured out how to get my dialup modem working on Kubuntu.

Any help would certainly be appreciated!

Re: Where to begin?

Since you're apparently on Windows, I'd suggest that you obtain a copy of VMWare Player (it's free!) and run a Kubuntu image in a virtual machine - that way you're running a system the tools are configured for.

Re: Where to begin?

Thanks.  I will look into vmware as well, maybe for developing while in Windows.  However, I have a Kubuntu Linux setup for Chumby development.  It has been so long since I've been on Linux or Unix much that I don't recall how to set everything up.  Not like falling off of a bicycle, I guess.

Re: Where to begin?

BTW, I don't plan to include the Flash Lite player.  This is a custom application of the Chumby, where the touch screen and the USB would be used for now, with maybe the Wi-Fi used later.  As I see it, it would probably be beating my head against the wall to try to get the Widgets to use Flash Lite Player to talk directly to USB.

Re: Where to begin?

sorry for all of the posts.  GNU Toolchain is now working as it should after installing as I should have.