[fedora-arm] Kernels for common arm devices

Andy Green andy at warmcat.com
Wed Jul 21 21:07:24 UTC 2010


On 07/21/10 21:18, Somebody in the thread at some point said:

Hi -

>> What're you thinking about there in terms of "cooperation with the
>> bootloader and boot device"?
>
> the normal sequence is kernel rpm =>  grubby =>  bootable kernel on
> device, but on ARM platforms there are multiple bootloaders and they
> support different device to boot from

Yes the bootloader is the guy who chooses where the kernel image is to 
come from and what name it'll have, and it'd be a loser on arm platforms 
to make assumptions about that; it's not like just having grub in all 
cases and /boot/grub/grub.conf.  Unfortunately the bootloader doesn't 
publish a path where it got the kernel from to the kernel itself.

The physical platform, based on what bootloader / bootloader state it 
can be expected to have, is in control of where the kernel image needs 
to be dropped in the filesystem, even if it's a common SoC shared with 
other platforms.

> I think we need to divide the devices first - there are developer
> devices like *Plug or BeagleBoard and then there are commercial devices
> like QNAP NAS etc. The commercial ones can be based on development
> boards, but their configuration capabilities are limited.

Well real devices will have special peripherals and stuff that need 
specific support, I guess often it can be modularized fine but not always.

>> A related issue I found is that the package name "kernel" seems to be
>> magic.  I tried making my xxx-kernel package Provides: kernel-2.6.blah,
>> but it wasn't enough.  If it isn't fixed (possibly already, this was in
>> F12 time), that might get a bit messy with a bunch of
>> identically-named-and-arched binary packages for the different board
>> kernels.
>
> If I remember correctly then Debian provides one kernel per SOC and we
> should do the same, have per-SOC subpackages built from one kernel
> source package. If they can be integrated with the primary kernel
> package, I can't tell.

Sounds good but I mentioned it because yum could not solve the initial 
packageset if the base name for the kernel package was anything other 
than "kernel".  What's the plan for tagging these binary kernel packages 
with SoC names in a reliable way, ie, what will those package names look 
like then if they all have "kernel" basename?

> Also having a relatively tiny kernel and the rest in initramfs (dracut
> is an invaluable tool for ARM) helps to include as many devices and boot
> styles as possible.

It makes sense from a distro POV.

IIRC there's some kconfig business where you can bind an initramfs to 
the kernel image itself.  If you don't take that approach, you are into 
requiring the bootloader knows where the initramfs is according to the 
bootloader's partition scheme and to pull it in and tell the kernel to 
use it; some bootloaders might not be that configurable or capable.  It 
seems especially dodgy if "grubby" is going to sed the U-Boot 
environment or whatever.   (Even then the crazy U-Boot environment 
scheme usually has a hardcoded image size given in there, eg, it only 
pulls the first 2MB of a kernel and drops dead if the kernel is any bigger).

-Andy


More information about the arm mailing list