Learning the Linux Kernel
LoopyByteloose
Posts: 12,537
In trying to get started with my Cubieboard, I have been finding just two alternatives - use someone else's provided image or make my own.
For starters, working with other people's images is helpful. At least I can verify the hardware arrived in good shape. But the 'best images' seem to be Android and I really want this to work in Ubuntu Linux.
That has led me once again into the rather exotic world of building Linux kernels. But I am pleased to see there is a new website.
kernelnewbies.org
It seems this is intended to help people get involved. And maybe even start out by making their own contributions as 'kernel janitors'.
I am not sure I particularly like the idea of starting out as a janitor, but I certainly like the idea that people can get involved without having to enroll in certification programs and pay hefty tuition.
For starters, working with other people's images is helpful. At least I can verify the hardware arrived in good shape. But the 'best images' seem to be Android and I really want this to work in Ubuntu Linux.
That has led me once again into the rather exotic world of building Linux kernels. But I am pleased to see there is a new website.
kernelnewbies.org
It seems this is intended to help people get involved. And maybe even start out by making their own contributions as 'kernel janitors'.
I am not sure I particularly like the idea of starting out as a janitor, but I certainly like the idea that people can get involved without having to enroll in certification programs and pay hefty tuition.
Comments
http://xkcd.com/456/
I certainly see no reason to compile a kernel for a desktop. But the Beagleboards, the Raspberry Pis, and the Cubieboards are a bit more diverse as embedded systems seem to come up with endless board variations.
Life could be worse without Linux. I have one buddy that loads and breaks and reloads Windows endlessly in pursuit of the right combination of junk hardware and various versions of Windows. He suffers through a lot of down time and reloading Ghost images and such. Occasionally he gets a virus or something. In the meantime, my Ubuntu just keeps puttering away and rejecting Windows viruses that come off the web.
-Edit- and now my helicopter is charged! COOL!
But that was on x86 anyway. From what I read the Linux on ARM world is a lot more complex as there are a lot of ARM architectures and they live in a lot of different SOC's (System On a Chip) with a lot of different peripherals. Many of these custom kernels don't seem to have made it into the official Linux source tree yet.
As an example look at the Debian used for the Raspi. There is the regular ARM Debian but that is slow because it does not support the particular floating point hardware of the Raspi ARM. Then there is Raspian which is Debian Wheezy totally rebuilt from the kernel up to support the Raspi floating point. Binaries are not compatible between these two Debians.
If I were to be getting into compiling kernels for your board I'd want to start with a known good distributions kernel. Debian or Ubuntu or whatever. Start out by seeing if I could recreate it's "known good" kernel from the sources provided.
A good exercise if you want to get into this sort of thing is to build yourself a Linux From Scratch (LFS) using instructions from the LFS project:
http://www.linuxfromscratch.org/
Since I did hat last hey have developed a cross LFS which can be used to build ARM systems.
http://http://trac.cross-lfs.org/
It probably helps to do this for x86 first and then use QEMU for ARM emulation on your PC.
Beware, these are long and complex procedures with much compiling to do.
But, anyhow, that doesn't help you now. I've not played with linux on anything but x86 machines anyhow, but just wanted you to know, at least that much was about as simple as it gets, so providing you're interest is in an area with moderate usage, it shouldn't be difficult to get your systems up and running.
Allwinner A10 seems to provid .img files as binaries and some binaries for hardware. While Emdebian provides very open information.