By Bill » Sunday, January 17 2010, 17:10
If I live to be 100, I'll never understand why Linux programmers think the way they do...
Since obtaining my Micro2440 board, I've been using OpenEmbedded to create kernels and root filesystems for u-boot. I don't understand why there is a need for 5 million tiny files called recipes. I mean, I understand what they are trying to do, but having to load almost 8000 tiny files each time you go to build something is incredibly STUPID. It's the same with Portage in Gentoo. Zillions of tiny little files that have to be synced up when you update portage. It's crazy retard thinking. I personally don't like the idea of having millions of files like that on the system, but if I were to do something like that, I'd build a master index of them basically compiling them in to a large database that can be easily accessed and then when it needs updating, you run a program to rebuild that index.
For what I do, I don't have a need to rebuild that stupid cache and read all those files in each time I want to compile a single thing in to an ipkg file. I'm not modifying the the .bb recipes so theres no need. People who do that a lot, well they should have to manually rebuild a cache or index each time.
Bitbake is crap, however... So far Openembedded and Bitbake are the only things that have produced runnable images for me. My attempts to use Buildroot have so far failed with strange compiling errors and missing files. Now Openembedded is missing a lot of things too. Try building maemo, or a maemo image. Go ahead. The recipes are there, so you assume it will work, right? Nope. Missing packages. And nobody at all on the net seems to talk about it or care. Try building the Gnome task. More missing packages.
Without going off on a total rant, I just want to make it known that I'm not a total newbie to Linux. I've been using Linux since the early 90s. I've used it heavily in my business reselling servers and setting up web hosting. So I've been around the block when it comes to Linux. And it's been my experience over the years that most things that have anything to do with Linux are half done, mostly broken, and largely disappointing. You get your hopes up about something just to have a bunch of dimwitted teenage programmers who seem to run the Linux community, crush your hopes. And not being a C programmer myself, I can't fix or even contribute. It pains me!
I hope to soon write some documentation on here about Openembedded but currently I'm in a testing phase with it. I'm having some odd results. I can build a base console image and flash it and it works. But I can build the same image 2 or 3 times and try to flash it, and each time it'll either work or it wont. The problem centers around the root filesystem not being recognized. I get errors about Magic something or other not found at the right spot. I thought it was my eraseblock size and I corrected that (Which I will later document) in the openembedded code for the mini2440 since it's assuming we all have 512byte page size and 16k eraseblock (sector size as reported by u-boot). But it's still randomly working. My current attempt was to ditch 64bit Debian and move to i386 to see if that makes a difference. I know that GCC can be extremely fragile. But I'm also investigating the possibility that U-Boot could be the culprit as I'm also having trouble with kernels. Some kernels will work, some are being reported as Invalid format for bootm.
I'll be posting more here soon about my results.