It has been a while since I wrote my last post. To be more structured, the toobo version 1.0 roadmap has been released. Check out the page at http://code.google.com/p/toobo/wiki/RoadMapVersionLaika .
Named after the 1st ever space dog, toobo’s first version Laika will have the following features -
- Linux 2.6 Kernel
- MP3 audio decoding capability using the STA015 chip.
- Port of the 2.4 Graphic LCD driver to 2.6
- USB wireless connectivity.
For the project timeframe, check out the toobo project page mentioned above.
I finally managed to get the 2.6 kernel up and running on the TS7250 target. I noticed that the kernel size grew from roughly 670k to 1.4M when moving to the new kernel from 2.4. I need to figure out why the difference is so huge and turn of un-necessary components using menuconfig. If anybody is sailing in a similar boat, the following page from embedded arm provides complete instructions to build the 2.6 kernel.
http://www.embeddedarm.com/software/arm-linux-26-ts72xx.php
Remember to download the correct cross-toolchain for the 2.6 kernel compilation. I managed to load the kernel using redboot and tftp and run it. Also, I used redboot to help me nfs mount the debian distro 3.1 Sarge after battling with RPC issues.
Make sure you have your portmap added in /etc/hosts.allow and portmap is running. Ethereal (wireshark) did come in handy when debugging this issue. One painful issue that I ran into is that the all will go according to plan and the root file system would get mounted properly and all the initrd scripts would execute normally until I would get the following error…
Configuring network interfaces…RPC: sendmsg returned error 101
and nothing would work from that point. All that I would see is a bunch of errors.
RPC: sendmsg returned error 101
nfs: RPC call returned error 101
After reading through tons of posts and almost giving up, one of the posts pointed out that the init script could be changing the ip address and guess what?? this is exactly what was happening. ifup -a was being called when I had already configured the network with static ip address. And the /etc/network/interfaces file was re-assigning my ip address and messing up the connection to the root file system.
Fixing that let me boot all the way into the shell. I still see some errors while booting which needs to be cleaned up… Once I have the kernel compiled and the distro setup to my satisfaction, I plan to jam it to the on-board flash. Until then, I don’t want to waste any write cycles in the on-board flash. NFS will probably be good enough for development now.
I didn’t realize that one cannot directly boot from the usb device unless you load a primary kernel say the 2.4 kernel, install the usb drivers and later load the 2.6 kernel from the usb. Else, I would have preferred usb boot instead of nfs boot. Some boards which have Compact Flash card support are able to boot directly from them. Most likely because they use the ATA command set ‘natively’… I still need to investigate booting directly from usb. Will keep you posted.
Download the compressed kernel here –> zimage-linux-26.21-ts
One step closer…

by Mark Roy
16 Jul 2008 at 09:22
Nice website that you have here. I find that you’re very closely aligned to my personal interests and projects, if you have a look at my website stellarcore.com
I’ve been working on my own mp3player for a while (not much recently, but I’ll be getting to it soon he he he). I started off with the STA013 but could never get it to work with the long configuration patch that you have to send it. I’ve recently switched to the STA015 and will be designing a board for it soon. I find that with something like this it is very difficult to get working on the breadboard so I’m just going to build the PCB myself and hope for the best.
I’m also interested in your SBC project. I’ve used a couple SBCs in the past and even worked on some driver stuff on a couple SBCs that I were developed at the company I inten for, but it is a very ambitious project to build your own from scratch. I will follow yours closely and maybe one day design my own.
I was curious though, why did you decide to use the STA015 decoder for decoding MP3s when you’re building an SBC? Wouldnt it be really easy (almost trivial) to decode MP3s using freely available software that runs on your board and send it directly to some PCM sound chip? With the STA015 you will need to write your own custom driver to send it the MP3 data which then sends it to the DAC. If you just interfaced the DAC directly and wrote a generic sound driver (or even used a DAC that has one already written) you could also play other sound with ALSA or whatever else.
Also, any plans on a VGA LCD module instead of just a graphic? It would be a good plan to be able to extend your board to include that. You could try and design your board so that you can plug in several types of LCDs and just populate the one you’re going to use at the time.
Anyways, Good luck!
Maybe we can cross-post on eachothers website’s or something sometime.
by Vijay
20 Jul 2008 at 23:29
Thanks for the comments Mark. I chose the STA015 just for the sole reason that I had the component at hand. I had previously planned to use it with a PIC micro 18F252 (2 years back) but that project didn’t get good traction.
Also, with the SBC I have, I didn’t have all the pins brought out to the jumpers. I wanted to use I2S for audio xfer but those pins were left ‘NC’ in the SBC. So, it was difficult for me to interface directly to a DAC. But with the STA in between the SBC and the DAC, I can achieve that quite easily.
I still have a long ways to go as far as the VGA LCD module goes. I did get a cool TFT LCD display from sparkfun a few months back. It is still sitting in the box due to lack of extreme soldering skills ;)
I will put a link back to your blog/website on mine so people will find it useful.
Thanks for the comment.
-Vijay