Originally Posted by jonathan_s
I've been trying to build different kernels in the hope of getting USB OTG or hostmode to work. I did manage to build and install a slightly modified version of the stock irex kernel by replacing the kernel.bin with the new zImage and rootfs.bin with a new jffs2 file in System/updates. The DR800 then went through its firmware upgrade process as normal, and booted up with the new kernel. Strangely though it didn't install the new root filesystem. Maybe I built it with the wrong arguments (?)
Anyway so far so good. Then I made some more ambitious changes to the kernel, went through the same procedure and found that it wouldn't boot. I even tried building a bleeding edge 3.0.0 kernel, with the same result. It would be good to get a bootlog from doing this to see if I can work out where in the boot process it is crashing. Modifying /etc/syslog.conf allows a syslog to be created. But logging to a file on the SD card is no good because the DR800 crashes before mounting the SD card. And logging to the internal flash memory is no good because it gets erased when I reflash. (OK slight contradiction, if I could reliably replicate the scenario where the kernel gets reflashed but the root filesystem doesn't it might just work, but I've not been able to make this happen).
So having got this far I thought I'd put the question out there whether anyone else has experimented along these lines or has any other information about the boot loader.
I haven't tried any of this, but I was planning on making a small change to the kernel in the future, so it's good to know the device can always be reflashed in case of a bad kernel.
I don't know anything about the bootloader except that it's a RedBoot loader and is stored in /dev/mtdblock0 and 2 (see /proc/mtd). I tried mounting these manually but didn't succeed.
Concerning the syslog, perhaps you could try outputting to a file in /home/root? /dev/mtdblock7 is mounted there, though I don't know if it's mounted directly at boot. This won't be overwritten on a firmware update. But be aware that this partition is only 4MB big!
Edit: scrap that last remark. /home/root is not in fstab, so probably not mounted directly on boot. Or perhaps you could add it?