Analytics

Friday, May 26, 2006

Shark, nfsroot and how to waste your time

I have been struggling most of the day to get one my Sharks running. It is served by the NSLu2 (OpenSlug) which provides a network block device for swap and NFS for root. The Linux 2.6.17rc? kernel booted nicely got the IP address thanks to the ip=both CMDLINE specified in the OpenFirmware and wonderfully mounted the nfs and freed the init memory. And then nothing happened, nothing, just nothing. Well you can imagine how much pleasure you have in that case. I have experimented with tcp,udp,v3,v4,rsize,wsize... and all combinations, different rootfile systems. After a small chat and a common joke "Did you compile ELF support into the kernel" I decided to try another floating point emulation and then it worked! Well, I wasted some hours but now my Shark is finally booting, once again.

Thursday, May 25, 2006

BitBake, graphviz and other stuff

Before I stop blogging once again here is a small status update.

BitBake now features a '-g' option. bitbake -g world will generate a couple of directed graphs. Currently only depends.dot is complete. The above command will generate a complete dependency (build-time as in DEPENDS) graph for the world target. I have no image linked here as the dot is still generating the graph. In the future we will also generate a rdepends.dot and alldepends.dot graph. Both are pretty straight forward now that we can generate one sort of dependency graph. Sadly this feature is not too useful ATM due the OpenEmbedded base.bbclass as each package will depend on quilt-native, virtual/libc and the dependecies of them. This means we will have a lot of edges from nodes to the base dependencies. The solution currently in my mind is to add another option to inform BitBake to stop at a list of dependencies to avoid this situation.
The next step could involve tuning the output to hint dot to generate better graphs. Well we will see how this is evolving.

On the OpenEmbedded front, I won't comment on the familiar split-up, I have added the NetworkBlockDevice (nbd) package. I deploy a nbd-server on my NSLu2 and have a nbd-client on my SHARK to add swap to the machine. I have finally cleaned up my desk a bit and moved the SHARK, NSLu2 and the PowerPC board, thanks again, away. They are now all plugged together and the NSlu2 will serve NFS to them. Obviously all these machines use OpenEmbedded to some degree or will use it in the future. They are all part of my secret QA plan.


On a private note I'm planning on getting a new desktop machine as mine is getting slower and slower. My currently preferred system is an Athlon X2 based one but I'm still considering if I ask for donations once again...

Tuesday, May 16, 2006

OpenEmbedded and Wink

I invested my spare time in working with that crappy proprietary wink. I think it should be relabled to hog to make it obvious it is a memory hog. And like with any proprietary software you have not been granted the right to fix it for them. Anyway besides the memory issue wink feels really nice but if you can not generate the flash movie in the end this all doesn't count. I'm currently waiting for the killall -9 wink to be executed so I can use my desktop again... fun.

My gcc patch works nicely with versions 3.4.4, 4.0.0, 4.0.2, 4.1.0 and 4.2.0 snapshot. This will greatly help finding issues with gcc when cross-compiling. A really bad error is when you compile for another endian and another libc and include headers of the host system. It is even worse if you run configure tests you are basicly configuring for your host system and not for your target. A lot of can go wrong if that happens, and since people use AMD64 to compile OpenEmbedded we see bugs coming up.

Oh and my favorite gcc option for now is -isystem, I will probably hack a -lsystem together to help OpenEmbedded. I have now at least two gcc hacks I should consider bringing into a submitable state as they are making gcc a better cross compiler.



Current Impressions:

  • Will FSF leave the Google Summer of Code? Or will they trade Freedom for Money?

  • Easily installing software into an ARM qemu image to test software quickly

Monday, May 15, 2006

OpenEmbedded Documentation

One of the weak points of OpenEmbedded is the documentation, or to be accurate the lack of any documentation. OpenEmbedded is by the far the most flexible system out there but documentation has really suffered. This means you can use OpenEmbedded for many many days but are still unaware of certain features. To overcome this situation Koen and me have started creating a documentation. This documentation is written using DocBook and will be task orientated. It will illustrate how to achieve the common use-cases easily. Typical for OpenEmbedded everything is already available in our SCM system, once it features some more text I will point you to the xhtml,pdf and html versions of it.


Part of the documentation is also to provide some kind of tutorials. These tutorial are getting more and more popular. After having looked at istanbul, I have decided to give wink a try. Wink features editing capabilities, this means I can show and hide balloons with some information, and make the user interact with the demonstration. The only issue with wink is, it is a memory hog and I made it go Out Of Memory twice already. This means after you have recorded your screencast and hit the Finish button it will just freeze your machine and you will have to start over again. Obviously this pretty much sucks. As a workaround you can record steps of your tutorial seperately and copy them into one big tutorial afterwards, I hope this approach will work out right.

To use wink I have used Xephyr to start on DISPLAY=:1 in 800x640 and started a gnome session in there. This is quite nice but I have already fallen victim of Xephyr. First it has issues with my keymap, I'm unable to use curly braces in Xephyr and the second issue was hitting CapsLock and it didn't go away... pretty bad.


Hacking the Gnu Compiler Collection. I have hacked cpp to error out when including host includes from. This can hopefully uncover certain issues in the future. While hacking gcc I'm in between wow that is neat and the feeling that gcc is really really old software. I think I like it though, well it is using a sort of lambda calculus which makes it sexy.

Restart of the Blog

Once again I try to regulary blog about my experiences... welcome once more