Debian on the Ionics Stratus plug computer
I've acquired a couple Ionics Stratus plug computers, which are variants of the Sheeva plug. They come installed Debian 6 with a 2.6.x series kernel, and I'm attempting to get a Debian 7 release working on them.
Most of my information so far comes from Martin Michlmayr's website. I gather he's no longer doing ARM development, and the Ionics Stratus isn't currently supported. So I asking here for advice on achieving this and contributing the result back.
I have the Ionics development CD with the source code and tools on it. So far I have built the kernel and U-Boot binaries from the supplied sources and patches. I have also managed to upgrade the U-Boot source to the current testing branch from git (2012.04.01), applied the Ionic patches, and flashed it. The plug managed to boot into the supplied Debian distribution with it.
What I'm currently grappling with is building a stock debian kernel and booting from that. The Ionics documents procedure is (IIRC):
cd $kerneldir
patch -p1 <$ionicspatch
make mrproper
make clean
make ARCH=arm ionics_defconfig
make uImage modules initrd
However, my attempt to follow the recipe here failed:
https://wiki.debian.org/HowToRebuildAnOfficialDebianKernelPackage
To summarise:
cd $kerneldir
svn export svn://svn.debian.org/svn/kernel/dists/wheezy/linux/debian # NOTE s/trunk/wheezy/
make -f debian/rules clean
make -f debian/rules source-all
...this gets me a make error, "No rule to make target `source-all'. Stop." Even running it multiple times.
So my current working procedure to build a debian kernel comes from here:
http://baldric.net/how-to-build-a-ubuntu-or-debian-kernel-package-the-debian-way/
Specifically:
cd $kerneldir
make mrproper
make-kpkg clean
make ARCH=arm ionics_defconfig
fakeroot make-kpkg --initrd --append-to-version=+ionicsstrat --arch=arm --cross-compile=arm-linux-gneabi- --bzImage kernel-image kernel-headers
>From the resulting .deb package I can get a kernel and the modules.tar.gz I assume is just the ./libs directory extracted. However I can't find an initrd, which I am guessing I still need.
Given a compiled stock kernel I am hoping that I may be able to boot the plug from it, just without support for Ionics specifics. I can then try and get the specifics working.
My attempts so far, including patching u-boot are here:
https://github.com/wu-lee/ionics-stratus-debian
The kernel patch is applied here:
https://github.com/wu-lee/ionics-stratus-debian/commit/b1b996f3abb37ff37bca063abd341177beaaac3b
>From a quick look the included kernel patch consists of:
- a kernel config (ionics_defconfig)
- modifications to sheevaplug-setup.c for the Stratus (gpio pins etc.)
- addition of the libertas_uap wireless access point module
- what looks like a bugfix for the UBI filesystem driver
Are there any short cuts I am not aware of? Perhaps the xilka.com sheeva kernels might work?
Does Debian Wheezy have support for the libertas_uap device? If not, advice on how to add it is sought.
Advice on porting the remainder of the patch to the 3.2 kernel also solicited! Despite having some experience working with an embedded ARM GNU/Linux distribution and micro-controllers, it was a proprietary one, and I am not very familiar with the kernel internals or the Debian packaging system.
Thanks!
Nick
Reply to: