Linux Kernel-3.4.0 on TS-7250
Grabbing the sources, extracted them, cp the .config from my 2.6.34.7 branch, make menuconfig (with the TS supplied cross toolchain) and finally make ended with compile errors. Googling quite some time for the errors had the result gcc to old and I need a new toolchain. Searching for one to no vain brought me to crosstool-ng. I had to build it for myself which was straight forward. You can grab the toolchain and my environment setting here.
Finally making the kernel (config is here) was OK and I gave it a try using nfs boot. And to my surprise it worked !!!
I did not yet change anything on the flash so I boot into the stock kernel 2.4 and use the bootloader module from TS. Next I was giving it a try with mounting the rootfs from USB. And that was when the trouble started (Works flawless with Linux-2.6.34.7):
This happens only when trying to mount the usb thumb drive as rootfs. As non rootfs there is no problem at all. And this time I googled in vain. Some guys had similar problems, there was also a blog entry from 2009 describing the same behaviour. But no solution....
I did not yet change anything on the flash so I boot into the stock kernel 2.4 and use the bootloader module from TS. Next I was giving it a try with mounting the rootfs from USB. And that was when the trouble started (Works flawless with Linux-2.6.34.7):
- Kernel Loading with rootdelay=10
- .....
- mounting rootfs
- usb 1-1: reset full speed USB device using ep93xx-ohci ...
This happens only when trying to mount the usb thumb drive as rootfs. As non rootfs there is no problem at all. And this time I googled in vain. Some guys had similar problems, there was also a blog entry from 2009 describing the same behaviour. But no solution....
initramfs to the help
I really do not have any clue on how the USB subsystem in LINUX works and as of now have other priorities. So the idea was booting with a small rootfs (initramfs) and hopefully switch_root to the USB thumb drive. I did learn a lot on reading on the internet about initramfs (especially here and here and here) and finally managed to build and use one
The init works like this:
- mounting proc and sysfs
- mknode and mdev -s
- mount the "real" rootfs
- check /init
- unmount proc and sys
- switchroot to the "real" rootfs on the USB thumb drive
- and again : usb 1-1: reset full speed USB device using ep93xx-ohci ...
And then I was very lucky: Somehow I thought of mounting the "real" rootfs in the initramfs read only and the magic happend: switch-root to the rootfs on the USB thumb drive worked !
Here is my initramfs.cpio.gz as of now.
Why it does work this way is still a mystery for me, but I am sure the community will know.
What has to be done:
The Booting is still not fully automatic. There is a problem with the init in initramfs, that alwas drops me to a shell. Then I can mount the "real" rootfs ro and switch-root to the USB thumb drive.
No comments:
Post a Comment