Topic: OpenEmbedded for Silvermoon devices

We have a beta release of OpenEmbedded available.  It is a small overlay that adds chumby-specific files to the master OE branch.  Instructions on how to set it up and build it are available on the wiki.

OpenEmbedded is an open-source package-based build system for embedded devices that can be used for creating entire root filesystems or individual packages, along with the bootloader and other necessary files.  Basically, it's an easy way to get arbitrary software onto an embedded system.

This particular release only supports Silvermoon-based devices such as the Infocast 8", and support is only preliminary, but it's good enough that I've managed to build software ranging from Opie to X11 to Doom.  It produces a file that can be written directly onto an SD card, without needing to worry about manually constructing disk images by hand.

It's also still a bit rough around the edges.  The touchscreen module doesn't autoload, for example.  If you fix something, a patch would be nice.  I'd like to eventually get some of this into OE trunk, because that's where it seems like it should go.

2 (edited by zdw 2010-11-23 12:01:06)

Re: OpenEmbedded for Silvermoon devices

Went through the instructions, everything worked up until running bitbake:

$ bitbake console-image
ERROR: Please set the 'PERSISTENT_DIR' or 'CACHE' variable.

Any pointers?  I tried added a CACHE = ~/cache to chumby/conf/local.conf (after creating that directory) but it didn't help.

Running Ubuntu 10.04 LTS, did all the other OpenEmbedded prep.

Re: OpenEmbedded for Silvermoon devices

Two things I can suggest you check:

  1. Did you source setup-chumby.sh instead of running it?  It needs to export some variables, so you need to run "source setup-chumby.sh"

  2. Is your oe directory on the same filesystem, and not symlinked anywhere?

Re: OpenEmbedded for Silvermoon devices

That did it. 

I also then realized that all the openembedded stuff should be in a subfolder of ~/oe, not in that folder directly  (I'm used to supplying a path to the local directory with git as frequently I don't use the upstream repo name as the directory name).

Just to clarify, for anyone who does this in the future, here's the command list that should get them a working setup, once they've done the steps #1/#2 on the wiki (prepping their system and installing bitbake).   FYI for those with Ubuntu 10.04 (and probably later), bitbake is apt-gettable.

mkdir ~/oe

cd ~/oe

git clone git://git.openembedded.org/openembedded openembedded

wget http://files.chumby.com/hacks/chumby-oe-1.2.zip

unzip chumby-oe-1.2.zip

At this point, your ~/oe directory should have 3 items - two directories, named "openembedded"  and "chumby" and one script,  setup-chumby.sh .     Now proceed with the "Building with OpenEmbedded" section of the wiki.

Hope this helps someone.  Happily compiling here smile

Re: OpenEmbedded for Silvermoon devices

Got an x11-image running.   A few things that I noticed:

- boots much faster after the initial boot.
- touchscreen, after modprobe silvermoon-ts appears to be inverted
- x11 cursor goes away after the initial login screen.

I couldn't get an opie-image built as bitbake had some trouble fetching the sources.

If it helps anyone, I put the 1.2 release in a git repo here:

https://github.com/zdw/chumby-oe

Re: OpenEmbedded for Silvermoon devices

I'm having trouble building recipes due to refused connections, broken links, and so on...Is there anything we can do to fix this? Sounds like previous poster had this problem too. Trying to build xfce now.

Re: OpenEmbedded for Silvermoon devices

Ah - this would explain things: http://handhelds.org/ is undergoing renovation, which is causing most all of my builds to fail...

8 (edited by zdw 2010-12-05 19:30:14)

Re: OpenEmbedded for Silvermoon devices

I had the same problem.  Open Embedded runs a source mirror here, for items you can't pull from the upstream source:

http://wiki.openembedded.org/index.php/Sources_mirror

From what I can tell, it should work automatically, but in my case it didn't.

The code you probably need is: ipkg-utils_anoncvs.handhelds.org__20050930.tar.gz

Which you can get at this link:

http://sources.openembedded.org/ipkg-ut … 930.tar.gz

Download this and put it into the "sources" directory, and bitbake will use it.

(I figured this out with the help of some really nice people on the #oe IRC channel)

Re: OpenEmbedded for Silvermoon devices

Thanks for the tip! It could be that you're using the version posted on the wiki - they said only the dev version uses the mirrors. I haven't tried installing the newer .10 version yet but it may help.

That packaged fixed the build of console-image and I'm trying X11, but I'm still getting errors with XFCE that I don't think are related to bad sources...I just  get:

ERROR: '/stuff/openembedded/recipes/libffi/libffi-native_2.0+gcc4.3.2.bb' failed
ERROR: '/stuff/openembedded/recipes/xfce-base/xfce-utils_4.4.2.bb' failed

I was running it with the -k option to download as much as I could while waiting for bad sources to come back up, so it's possible I missed the more extensive error message. I'll see if I can get OPIE, but I really want XFCE or preferably Openbox, I'll see if I can compile that for X11...

Re: OpenEmbedded for Silvermoon devices

To download everything at first, run "bitbake [image-name] -c fetchall".

I've gotten XFCE to build in the past.  Try putting your build log on somewhere like pastebin and posting the URL?

Re: OpenEmbedded for Silvermoon devices

Thanks, I'll try that when I have time. Right now I'm just trying to get any image to load at all! Sorry if this is a real newb question, but I was under the impression that a Chumby will autoboot off of SD and USB? At least I used Ken's Browser and that's what seemed to happen. But on my image files (and yes I am not doing a partition, i'm using dd for the whole device) it just goes straight to the stock os. Is there some step I'm missing? I'd really rather not replace the internal ROM or open it up, because it seems like it should be able to boot without that given what I've seen...what am I doing wrong?

Re: OpenEmbedded for Silvermoon devices

It only boots off of SD.  In the stock OS, there are hooks to get it to run certain startup hooks off USB devices plugged in, but Open Embedded creates full ROM images for the SD card.

13 (edited by violetdream 2010-12-06 00:00:34)

Re: OpenEmbedded for Silvermoon devices

SD meaning the external slot or some crazy internal thing? I just noticed some bizarre behavior that happened with your dd snippet with both the USB and the SD card:

sudo dd if=rom-chumby-silvermoon-x11-image.img of=/dev/sdc bs=8M
45+1 records in
45+1 records out
385419264 bytes (385 MB) copied, 36.2196 s, 10.6 MB/s

and then running df...
/dev/sdc3               178745     73233     96512  44% /media/disk
/dev/sdc2               178745     73233     96512  44% /media/disk_

They both have the exact same files on them..

That doesn't look right  hmm

edit: and gparted crashes if I run it while it's inserted yikes

Re: OpenEmbedded for Silvermoon devices

Correct, both have the exact same files.  It's... kind of a holdover from how chumby does things, where there are two identical copies of the root filesystem.

And it's a crazy internal thing.  On the mainboard near the headphone port, there's a micro-SD card that contains the root filesystem.  You can pull that card out, put it in your build server, and dd the rom-chumby-silvermoon-x11 image onto it.

15

Re: OpenEmbedded for Silvermoon devices

Re: taking the Infocast apart, there's this post:

http://forum.chumby.com/viewtopic.php?id=5376

Which links to this flickr set of disassembly pictures:

http://www.flickr.com/photos/chankster/ … 959686258/

There's a clip above the two rear USB ports that needs to be unlatched by pushing in the plastic above the USB ports.

The micro-SD (transflash) card is then accessible - you can easily unlatch it with a spudger.

Re: building XFCE:

I had trouble building xfce too, but my errors were with it complaining that two different packages provided xfce. To this end, there's an xfce26-image to bitbake, but I couldn't get that to build either (I forget what the error is).

I'll give it another shot later today.

Re: OpenEmbedded for Silvermoon devices

Ahh, thanks so much for the clarification!

Is there a place to get an image of the original OS somewhere in case of a catastrophe or do I need to make an Image of what's on there? Is it possible at all to brick the device, or not since it's always reflashable being a removable card? Also I can't tell from the pictures: is taking it apart rather messy? As in would it be readily apparent if I had to ahem, return the thing? *shifty eyes* Not planning to do any damage, but I'm still trying to figure out if I *want* this thing...

Another question given that post by Bunnie (http://www.bunniestudios.com/blog/?cat=2) What does he mean when he says there's a build with a web browser of your choosing?

17

Re: OpenEmbedded for Silvermoon devices

Screws are under the anti-skid rubber pads at the bottom.  Getting the pads off was the main pain in getting mine apart.

I saved my original card, and didn't try to change it, just in case. 

4GB micro-SD cards run <$8 - see here: http://www.amazon.com/gp/product/B000SM … ss_product

I got a few of these and they work great.

Re: OpenEmbedded for Silvermoon devices

Awesome, thanks for the link! I snagged one with 2 day shipping. Good thing it includes the adapter too, since the only way I have to access microsds is to put them in my MiniSD adapter, put that in my Nokia N810, and mount the filesystem as an external USB drive on my main computer yikes

Also great tip about keeping the original. Did not even cross my mind. You all have been so much help - update when I get the card on Thurs, maybe by then we will have more info on the XFCE problem. I didn't get the log yet but now that you mention that problem I believe that my errors were the same.

Re: OpenEmbedded for Silvermoon devices

Bleh I ended up overwriting the master card anyway after ordering the extra sd card tongue does anyone know where to get the main kernel or am I screwed? I guess I won't be using it anyway since my x11 build seems to work.

For the cursor problem I fixed it with the suggestion here:

http://www.at91.com/forum/viewtopic.php/f,9/t,18912/

I tried do modprobe silvermoon-ts as mentioned only in this post, but the touchscreen is messed up. It will move the mouse to a specified position of the screen always and register click events, but no movement events. I can't run the calibration software. Running xtscal in the terminal results in "xcalibrate extension missing resource temporarily unavailable"...

Help??

I am going to try another image...Opie maybe

Re: OpenEmbedded for Silvermoon devices

Try running "modprobe silvermoon-tsb".  Make sure you include tslib-calibrate in your image, then calibrate the screen by running "ts_calibrate".

Re: OpenEmbedded for Silvermoon devices

Ahh, thank you! I have a question though, sorry if it is too beginner - I have just been building images but I don't know how to add extra packages to the build. Do I have to edit the image.bb file or can I add something to the bitbake call?

Re: OpenEmbedded for Silvermoon devices

Generally, I create a new image under "chumby/recipes/images/" (which needs to be created in the current version of the overlay) and fill it with something describing an image.

For example, I'm doing experiments right now with PyGame and PyOpenGL (though Mesa is terribly slow).  I've named the image "python-test-image.bb", and it contains:

inherit image

IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp"
DISTRO_SSH_DAEMON ?= "dropbear"

ANGSTROM_EXTRA_INSTALL ?= ""


PREFERRED_PROVIDER_virtual/libgl = "mesa-xlib"

ZZAPSPLASH = ' ${@base_contains("MACHINE_FEATURES", "screen", "psplash-zap", "",d)}'

DEPENDS = "task-base \
           task-base-extended \
           task-x11 \
           libdbix-simple-perl libdbd-sqlite-perl \
           ${SPLASH} \
           ${ZZAPSPLASH} \
           "

IMAGE_INSTALL = "task-base \
           task-base-extended \
           task-x11 \
           task-sdk-native bash vim ${DISTRO_SSH_DAEMON} git subversion file \
           python-pyopengl python-pygame python-stringold python-ctypes \
           python-compile python-core python-dev python-distutils \
           python-netclient python-numeric python-numpy python-readline \
           python-shell python-textutils python-threading python-unittest \
           python-pprint python-fcntl libgl libglu \
           xserver-xorg-extension-glx \
           networkmanager cnetworkmanager wpa-supplicant python-netclient \
           tslib tslib-calibrate tslib-conf \
           bash \
           ${ANGSTROM_EXTRA_INSTALL} \
           ${SPLASH} \
           ${ZZAPSPLASH} \
           "

IMAGE_LINGUAS = ""


export IMAGE_BASENAME = "python-test-image"

Then I run "bitbake python-test-image", and burn ~/oe/output/deploy/eglibc/images/chumby-silvermoon/rom-chumby-silvermoon-python-test-image.img to an SD card.

Re: OpenEmbedded for Silvermoon devices

Any Falconwing love coming any time soon?

24 (edited by dafunktyfunk 2010-12-29 10:55:42)

Re: OpenEmbedded for Silvermoon devices

Wow! GREAT WORK!

Hey guys, been lurking for some time and trying to learn as much as possible. Total newbie here, apologize in advance...

I do not have linux on a computer to be able to burn these images. Are there any other ways to get this done?

My hopes would be to download a zip somewhere of this build to add to a card, like I did with the debug Web Hack. Would anyone be willing to help out with this? The goal is to get linux running on this Infocenter 8" from best buy. There is a native linux app that I am trying to run on it. It is very small program which I am sure will do well on this platform.

THanks in advance for the help.

BTW, I did read the wikis but they seem like you have to have linux to be able to do any "compiling."

Re: OpenEmbedded for Silvermoon devices

The device already runs Linux, and for small programs, it's pretty easy to compile and run them on the device itself - just SSH into the device and type "gcc", and it will install the toolchain.

You can also run Linux on your Windows computer using a virtual machine.