It didn't find the partitions. Try to enable partition in your kernel config.
YH
-----Original Message----- From: Myles Watson [mailto:myles@mouselemur.cs.byu.edu] Sent: Friday, October 13, 2006 1:29 PM To: Lu, Yinghai; linuxbios@linuxbios.org Subject: RE: [LinuxBIOS] Tyan s2892 the OLPC way
Boot log?
Attached. Sorry it took so long. I needed to change the console to the serial port.
Myles
I think the error is something different. I can mount my USB key
that I
formatted ext2, but when I try /dev/hda1 instead of /dev/sda1, it
says
Unknown error 6, which is "no such device or address".
Forgive if you have done this already Just trying to cover all the simple fixes first. Have you verified that you really have IDE devices enabled in your kernel?
No problem, I appreciate the help
I have CONFIG_IDE CONFIG_BLK_DEV_IDE CONFIG_IDE_GENERIC
All enabled. I couldn't find any others that made sense to me.
Myles
I think the error is something different. I can mount my USB key
that I
formatted ext2, but when I try /dev/hda1 instead of /dev/sda1, it
says
Unknown error 6, which is "no such device or address".
Forgive if you have done this already Just trying to cover all the simple fixes first. Have you verified that you really have IDE devices enabled in your kernel?
No problem, I appreciate the help
I have CONFIG_IDE CONFIG_BLK_DEV_IDE CONFIG_IDE_GENERIC
All enabled. I couldn't find any others that made sense to me.
I was missing CONFIG_BLK_DEV_IDEDISK
The disks were recognized in the IDE driver, but the disk enumeration functions were never called.
Thanks again for your help. It mounts and kexecs.
Myles
A quick writeup to the list of what you ended up doing would be great!
thanks
ron
A quick writeup to the list of what you ended up doing would be great! thanks ron
Here it is. Feel free to ask for clarifications. Myles
Purpose: Customize the system to allow me to play with memory mappings and large devices. I wanted to minimize intermediate steps from LinuxBIOS to Linux to minimize the areas of expertise I needed to develop. I also wanted to be able to use the SATA drives as my boot drives.
Disclaimer: There are several places where my solutions are not as elegant as I wished them to be. Suggestions are welcome.
Current set up: Tyan s2892 LinuxBIOS with Linux 2.6.18-tiny as a payload
I started by installing LinuxBIOS on the system and using FILO and Etherboot to boot to a kernel. This allowed me to try the different payloads without flashing every time.
Next I downloaded the OLPC buildrom
git clone git://dev.laptop.org/users/jcrouse/buildrom
I built it on my 32-bit system for convenience building the kernel.
I modified the Config.mk to include pciutils from
http://buildroot.uclibc.org/cgi-bin/viewcvs.cgi/trunk/buildroot/package/
and took out the graphical boot menu. I also modified buildrom/skeleton/devices.txt to add lines for my hard drives. I just copied the lines for sda and sda1 and made had hda1 hda2 and sda2. The important thing is to make sure that the major and minor numbers are correct.
I modified buildrom/skeleton/linuxrc so that the device files were created earlier, /dev/null didn't become a text file, and my drives got mounted.
I then modified buildrom/skeleton/bin/boot.functions so that doboot() called my script on the hard drive for the kexec. That's nice to avoid flashing the BIOS for booting different kernels.
I downloaded Linux 2.6.18.1 (2.6.18-rc4 had some problems with SATA) and patched it with the tiny patches that came with OLPC. 12-tiny-tiny-crc.patch fails, but was easy to apply by hand.
I configured the kernel to include support for ext2 and ext3, SATA, and IDE.
I ran make and copied the payloads from the buildrom/deploy directory to my s2892 to be used. olpc-payload.elf.lzma (732K) is used for booting directly from LinuxBIOS, and olpc-payload-uncompressed.elf (1.7M) was useful for testing it with FILO and Etherboot.
I'd like to go one step further and use a 64-bit kernel so that any changes I make to the kernel only need to be made once. Looking at mkelfimage, it looks like the 64-bit file format is not supported. It might be a simple change, but I don't know how to do it.
Since I couldn't figure out how to make LinuxBIOS do without the Fallback image, I configured it to have a zero size payload.
Now I have normal/linuxbios.strip (128K) fallback/linuxbios.strip (128K) normal/payload (732K) fallback/payload (0K) s2892vBIOS.bin (36K)
If I could get rid of the fallback it would make room for the 64-bit kernel (50K bigger than the 32-bit kernel). Then I'd just need to modify mkelfimage and I'd be almost there :) I guess I could take out pciutils to make up most of the difference (44K), but I like having them there for debug.
-----------------------Config.lb----------------------
# Sample config file for # the Tyan s2892 # This will make a target directory of ./s2892
target s2892 mainboard tyan/s2892
option ROM_SIZE =0xf7000
option CONFIG_ROM_STREAM=1
option CONFIG_CONSOLE_SERIAL8250=1 option CONFIG_CONSOLE_VGA=1 option FALLBACK_SIZE =0x20000 option ROM_IMAGE_SIZE=0x20000
# Tyan s2892 romimage "normal" option CONFIG_COMPRESSED_ROM_STREAM_LZMA=1 option CONFIG_PRECOMPRESSED_ROM_STREAM=1 option USE_FALLBACK_IMAGE=0 option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Normal" payload ../olpc-payload.elf.lzma end
romimage "fallback" option CONFIG_COMPRESSED_ROM_STREAM_LZMA=0 option CONFIG_PRECOMPRESSED_ROM_STREAM=0 option USE_FALLBACK_IMAGE=1 option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Fallback" payload ../payload.zero end
buildrom ./linuxbios.rom ROM_SIZE "normal" "fallback"
* Myles Watson myles@pel.cs.byu.edu [061017 17:35]:
A quick writeup to the list of what you ended up doing would be great! thanks ron
Here it is. Feel free to ask for clarifications. Myles
Thank you very much! I added it to the build tutorial section of the Documentation page in the wiki. I'll do some formatting to it now.
Purpose: Customize the system to allow me to play with memory mappings and large devices. I wanted to minimize intermediate steps from LinuxBIOS to Linux to minimize the areas of expertise I needed to develop. I also wanted to be able to use the SATA drives as my boot drives.
Disclaimer: There are several places where my solutions are not as elegant as I wished them to be. Suggestions are welcome.
Current set up: Tyan s2892 LinuxBIOS with Linux 2.6.18-tiny as a payload
I started by installing LinuxBIOS on the system and using FILO and Etherboot to boot to a kernel. This allowed me to try the different payloads without flashing every time.
Next I downloaded the OLPC buildrom
git clone git://dev.laptop.org/users/jcrouse/buildrom
I built it on my 32-bit system for convenience building the kernel.
I modified the Config.mk to include pciutils from
http://buildroot.uclibc.org/cgi-bin/viewcvs.cgi/trunk/buildroot/package/
and took out the graphical boot menu. I also modified buildrom/skeleton/devices.txt to add lines for my hard drives. I just copied the lines for sda and sda1 and made had hda1 hda2 and sda2. The important thing is to make sure that the major and minor numbers are correct.
I modified buildrom/skeleton/linuxrc so that the device files were created earlier, /dev/null didn't become a text file, and my drives got mounted.
I then modified buildrom/skeleton/bin/boot.functions so that doboot() called my script on the hard drive for the kexec. That's nice to avoid flashing the BIOS for booting different kernels.
I downloaded Linux 2.6.18.1 (2.6.18-rc4 had some problems with SATA) and patched it with the tiny patches that came with OLPC. 12-tiny-tiny-crc.patch fails, but was easy to apply by hand.
I configured the kernel to include support for ext2 and ext3, SATA, and IDE.
I ran make and copied the payloads from the buildrom/deploy directory to my s2892 to be used. olpc-payload.elf.lzma (732K) is used for booting directly from LinuxBIOS, and olpc-payload-uncompressed.elf (1.7M) was useful for testing it with FILO and Etherboot.
I'd like to go one step further and use a 64-bit kernel so that any changes I make to the kernel only need to be made once. Looking at mkelfimage, it looks like the 64-bit file format is not supported. It might be a simple change, but I don't know how to do it.
Since I couldn't figure out how to make LinuxBIOS do without the Fallback image, I configured it to have a zero size payload.
Now I have normal/linuxbios.strip (128K) fallback/linuxbios.strip (128K) normal/payload (732K) fallback/payload (0K) s2892vBIOS.bin (36K)
If I could get rid of the fallback it would make room for the 64-bit kernel (50K bigger than the 32-bit kernel). Then I'd just need to modify mkelfimage and I'd be almost there :) I guess I could take out pciutils to make up most of the difference (44K), but I like having them there for debug.
-----------------------Config.lb----------------------
# Sample config file for # the Tyan s2892 # This will make a target directory of ./s2892
target s2892 mainboard tyan/s2892
option ROM_SIZE =0xf7000
option CONFIG_ROM_STREAM=1
option CONFIG_CONSOLE_SERIAL8250=1 option CONFIG_CONSOLE_VGA=1 option FALLBACK_SIZE =0x20000 option ROM_IMAGE_SIZE=0x20000
# Tyan s2892 romimage "normal" option CONFIG_COMPRESSED_ROM_STREAM_LZMA=1 option CONFIG_PRECOMPRESSED_ROM_STREAM=1 option USE_FALLBACK_IMAGE=0 option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Normal" payload ../olpc-payload.elf.lzma end
romimage "fallback" option CONFIG_COMPRESSED_ROM_STREAM_LZMA=0 option CONFIG_PRECOMPRESSED_ROM_STREAM=0 option USE_FALLBACK_IMAGE=1 option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Fallback" payload ../payload.zero end
buildrom ./linuxbios.rom ROM_SIZE "normal" "fallback"
-- linuxbios mailing list linuxbios@linuxbios.org http://www.openbios.org/mailman/listinfo/linuxbios
Also try to reduce ROM_IMAGE_SIZE to get more space
target s2892 mainboard tyan/s2892
option ROM_SIZE =0xf7000
option CONFIG_ROM_STREAM=1
option CONFIG_CONSOLE_SERIAL8250=1 option CONFIG_CONSOLE_VGA=1 option FALLBACK_SIZE =0xf7000 option ROM_IMAGE_SIZE=0x20000
# Tyan s2892 romimage "fallback" option CONFIG_COMPRESSED_ROM_STREAM_LZMA=0 option CONFIG_PRECOMPRESSED_ROM_STREAM=0 option USE_FALLBACK_IMAGE=1 option LINUXBIOS_EXTRA_VERSION="$(shell cat ../../VERSION)_Fallback" payload ../olpc-payload.elf.lzma end
buildrom ./linuxbios.rom ROM_SIZE "fallback"