Making Debian-compatible kernel for the Ben NanoNote OK, here we go... The standard OpenWRT NanoNote kernel doesn't work with a Debian image like this: http://mister-muffin.de/nanonote/debian-sid.ubi (thanks to josch) There are two reasons (thanks to emdete for the hints): 1. Debian is compiled with FPU support required. Our processor doesn't have any. Luckily, Linux can emulate it in software. Unluckily, this is very slow, and even more unluckily, it is disabled in OpenWRT by default (to save a few kilobytes). But enabling it again is easy. 2. OpenWRT uses a data partition, the Debian image above doesn't. Unluckily again, this must be hardcoded in the Linux kernel (currently, at least), so we have to change it. So be sure to have a openwrt-xburst git checkout with a working cross-compilation toolset. Then apply the patch at the bottom of this file. Force a repatch with: $ make target/clean Then build with: $ make target/compile $ make target/install Install the modules using: $ make package/kernel/install (Thanks to larsc for the help...) If you are curious what it's doing, you can add a "V=99" at the end of each line. There are certainly more things you can change in your kernel configuration (boot splash screen, console font, etc.), so feel free to run a "make kernel_menuconfig". Now it's time to harvest: You will find your bootable Linux image in: build_dir/linux-xburst_qi_lb60/linux-2.6.32.10/arch/mips/boot/uImage Your modules are located in: build_dir/target-mipsel_uClibc-0.9.30.1/root-xburst/lib/modules/ Hope this helps Soeren While I do not grant any warranty that the method above works, please ask me if it doesn't work for you: soeren.d.schulze _AT_ gmx.de, sdschulze on FreeNode -- patch until EOF -- diff --git a/target/linux/generic-2.6/config-2.6.32 b/target/linux/generic-2.6/config-2.6.32 index b869c9a..ea4456e 100644 --- a/target/linux/generic-2.6/config-2.6.32 +++ b/target/linux/generic-2.6/config-2.6.32 @@ -1222,7 +1222,7 @@ CONFIG_MII=y CONFIG_MINI_FO=y # CONFIG_MINIX_FS is not set # CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_MIPS_FPU_EMU is not set +CONFIG_MIPS_FPU_EMU=y CONFIG_MISC_DEVICES=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_MISDN_AVMFRITZ is not set diff --git a/target/linux/xburst/files-2.6.32/arch/mips/jz4740/board-qi_lb60.c b/target/linux/xburst/files-2.6.32/arch/mips/jz4740/board-qi_ index 617c755..9254aca 100644 --- a/target/linux/xburst/files-2.6.32/arch/mips/jz4740/board-qi_lb60.c +++ b/target/linux/xburst/files-2.6.32/arch/mips/jz4740/board-qi_lb60.c @@ -94,12 +94,8 @@ static struct mtd_partition qi_lb60_partitions_2gb[] = { }, { .name = "NAND ROOTFS partition", .offset = 8 * 0x100000, - .size = 256 * 0x100000, + .size = (256 + 1784) * 0x100000, }, - { .name = "NAND DATA partition", - .offset = 264 * 0x100000, - .size = 1784 * 0x100000, - }, }; static void qi_lb60_nand_ident(struct platform_device *pdev,