Re: Debian kernel package for linkstation pro
Ryan Tandy wrote:
You may remember that a while back I tried to use your kernel package,
but that my u-boot (from the original lspro firmware) didn't load the
initrd properly when I removed the initrd= boot parameter. Today I
updated the bootloader to 1.10 using the Buffalo updater, installed a
fresh deboostrap of Sid, and installed your kernel package. This time
it works fine. So, I'd suggest updating your README to mention that
updating the bootloader is definitely a hard requirement for the Debian
initramfs to be loaded properly.
Thanks Ryan. Just for the record, can you tell me what firmware version
you now have in flash?
Martin: Just to clarify, what I believe is going on here is:
. Early Buffalo uboots don't pass through the location of the initrd to
the kernel (via the in-memory boot info data structure). As a result,
Buffalo supplied an initrd=xyz argument to the kernel - this works OK
with initrds, but with initramfs, the current code chokes (because the
size they pass in is too big).
. Later Buffalo uboots do successfully pass-through the initrd location
and size correctly via the in-memory boot info data structure, and the
initrd= argument is not required (can be deleted from the nvram settings
So the situation is:
Buffalo kernels and initrds (uses old-style initrd):
. Work with older firmwares (with initrd=xyz parameter), and newer
firmwares (with, or without initrd=xyz parameter).
The kernel which I packaged (uses initramfs):
. Does not work with older firmwares, but works with newer firmwares
(with, or without initrd=xyz parameter), because I included a patch to
ignore buffalo's initrd= parameter.
Mainline kernel / stock Debian kernel when booting with initramfs:
. Does not work with older firmwares, but works with newer firmwares but
only if you remove the initrd=xyz parameter from nvram.
Moving forward, the possibilities are, as I see it:
. Patch the mainline initramfs code in a nice way, so that it'll work
with any lspro firmware version - and hope the kernel maintainers accept
the patch (which they might, as the current code is arguably a bit broken).
. Patch/shim Debian kernel to work with any lspro firmware version.
. Upgrade firmware + remove initrd= parameter before using a stock kernel.