Hi courtjester
Thank you very much for your very detailed instruction, it helped me a lot in better understanding what needs to be done.
It looks like you were able to compile the modules. Those are the files with the .ko extension. The next step is to extract piCore3611a.gz and replace the module files in piCore3611a.gz with the modules from your compile kernel. Here is what I did.
I wanted to try the new fiq_split version that gsh have been working on. It was release a day ago, and should have improved the USB issue a lot. After compiling it shows up as 3.8.12+
In short I fetched the files from github like this:
mkdir linux-rpi-fig.split
cd linux-rpi-fig.split
git init
git fetch git://github.com/raspberry/linux.git fiq_split:refs/remotes/origin/fiq_split
git checkout fiq_split
This seemed to work, it fetched all the files and they were OK on my Debian Cross compile computer
Next I did
make mrproper
Then I copied the .config file from the running tinycore 3.6.11 to linux-rpi-fig.split
Then I did:
make ARCH=arm -j 3
And the I responded to the questions the best I could (new options etc) and then it started compiling
And I found the arch/arm/boot/Image and renamed it to kernel3611a.img (so that I did not need to change anything in the config.txt fil)
NEXT the modules:
1. Grab a copy of piCore3611a.gz and place it in a working folder
2. In the working folder, execute the following commands (I am assuming your new initramfs is called piCore3611m.ga)
mkdir piCore3611m
cd piCore3611m
zcat ../piCore3611a.gz | sudo cpio -i -H newc -d
Now you will have the extracted piCore3611a. The modules will be found in lib/modules/3.6.11-piCore. You can see which ones are include by executing
find . -name '*ko'. You will need to replace those files with the modules from your compiled kernel. In fact, all the files in lib/modules need to come from you newly compiled kernel. The folder name in lib/modules/ needs to match the version number of your new kernel. In my case it was 3.8.11-piCore.
Once you have replace the appropriate files, you then need to create a new initramfs. You do this with the following set of commands:
From the folder containing your extracted files execute the following:
sudo find | sudo cpio -o -H newc | gzip -2 > ../piCore3611m.gz
cd ..
advdef -z4 piCore3611m.gz
You new initramfs will be called piCore3611m.gz. You need to get the size of this file in hex but that is needed for cmdline.txt. You can get it with the following command
printf '0x%x\n' $(stat -c%s piCore3611m.gz )
Copy piCore3811m.gz to your USB image, and edit cmdline.txt replacing the second hex number in initrd=0xa00000,0x3c02a7 with the number obtained above. Also edit config.txt and change kernel= and ramfsfile= as appropriate.
Thanks I build the modules and found then in root/modules/lib/modules. Here was a directory called 3.8.12+-picore with a subdirectory called kernel which contained the following directories
-arch
-crypto
-drivers
-fs
-lib
-net
-sound
And the ko files were present in these directories.
So I untarred the old picore3611a and deleted the directory lib/modules/3.6.11-piCore and placed the 3.8.12+-piCore here instead. Then:
sudo find | sudo cpio -o -H newc | gzip -2 > ../piCore3611m.gz
cd ..
advdef -z4 piCore3611m.gz
And copied this to the SD-card
I also copied new bootcode.bin, fixup.dat, fixup_cd.dat, fixup_x.dat, start.elf, start_cd.elf and start_x.elf to the card. Obtained from here:
https://github.com/raspberrypi/firmware/tree/fiq_split/bootI changed the size of the new piCore3611m.gz in the config.txt file
BUT when I boot on the new card it results in kernel panic:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown block (1,0)
unwind_backtrace+0x0/0xf0) from [>c0525d38>9 mount_block_root+0x21c/0x280)
and 4 more lines
and then:
PANIC VFS: Unable to mount root fs on unknown block (1,0)
Entering kdb (current=0xcd82ac80, pid 1) due to Keyboard Entry
Kdb>
So do you see where I do something wrong?
Steen