Hi Bernard,

You have a PXE boot kernel and you have a distribution kernel.

The reason behind the SCSI/IDE mess (and yes its a mess), is found in the libata patch. Stock 2.6 kernels and kernels updated with this patch identify SATA drives as SCSI devices. Commercial distros like RH9.0 etc. have different patches on the kernel that identify SATA drives as IDE. If you feel comfortable enough about your kernel configuration and patching skills to maintain your own custom kernel then I suppose you can leave it as SCSI. I have no idea how this would interact with Oscar though, you would probably be ok. I had to use a stock kernel 2.4.24, because I only had bcm5700 kernel patches for it and 2.6.0. Now I needed to add SATA support, and the only way to do that was through the libata patch....

I forgot about the bcm5700 howto before. Here is a quick rundown of what to do in the case of a totally unsupported network driver:

1. Find a patch and kernel source so that you can patch and compile the driver into the PXE boot kernel. Follow the steps for compiling the libata patch. Place the new kernel in /tftpboot/ reference it in /tftpboot/pxelinux.cfg/C etc etc etc. Remember not to add any drivers to as loadable modules, or you will be forced to update either the initrd.img or the boel_binaries.

2.1 If you can patch your distribution kernel, then you are ready to go once you have done this and recompiled the kernel with the driver added in.

2.2 If you cant find a patch for your particular distro and have to use a module, you need to recreate the /lib/modules/<kernel version>/kernel/drivers/net directory tree in your overrides/<imagename> folder. Copy your driver to here, this will ensure that the driver module is placed in the correct place as long as your kernel version remain the same. (There is probably a better way of doing this using steps outlined in systemconfigurator man pages). If your kernel version changes, you will have to update the <kernel version> portion of the overrides directory tree.

3. Now the clients need to know to load the module at boot time. Create the "etc" directory in your overrides/<oscar image> folder. In here create a module.conf file. Edit this file to add the line:
alias eth0 <module name>


4. Easy as that. Took me weeks to figure out though.

Eugene


Bernard Li wrote:
Hey Eugene:

Thanks for this very detailed HOWTO!  I will for sure put it up in the
website later on.

I just took a quick glimpse at it, and just have a simple question...
So do the client nodes end up having the SATA drives as IDE or SCSI?  I
got a little confused why you would partition it as SCSI and then modify
the scripts to IDE, why not just start with IDE?

I assume the answer is after all this is done, the client nodes will
have SCSI (sda) drives (the SATA drives).

Thanks,

Bernard


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of eugene
Sent: Thursday, April 01, 2004 2:30
To: [EMAIL PROTECTED]
Subject: [Oscar-users] Oscar + SATA + bcm5700


Hi all,

Here is a step by step guide on installing Oscar if you have serial ATA drives on your client nodes.

It is very probable that your linux distribution has been patched to treat SATA drives as IDE devices. In fact if it isnt, then this howto wont work out of the box for you. This is not the case however for any of the stock kernels nor for the kernel used by SIS to perform the PXE boot, which with the exception of the 2.6 kernels do not even have native SATA support.

Now there are two routes you can take, both of them include building a custom kernel, but dont dispair this can be much easier than it sounds.

a. If you know how to make initrd images and boel_binaries you probably dont need this howto so I wont say any more about that.

b. If you dont know how to do the above or have other problems that prevent you from using the distribution kernel source, this is for you.

1. First off, install Oscar as normal all the way untill before you boot up your client nodes. The only unexpected step is that you have to configure your drive as a SCSI device, i.e. during "Build OSCAR client Image" choose the sample.disk.scsi (or a variant thereof) file as your disk partition file. It is essential that your SATA partitions are identified as sda*. Now build the client image and define your clients.

2. Secondly, although we will partition our client drive as a scsi device, your distribution linux version has probably been patched to recognise SATA drives as IDE devices. We thus need to ensure that the disk is mounted as an IDE device once the client install is complete. This can be accomplished by changing two files:

2.1 /var/lib/systemimager/scripts/oscarimage.master
Near the end there is a section where fstab for the client node is generated. Replace all instances of sda with hda. This will ensure that your drive partitions are mounted as IDE devices.


2.2
/var/lib/systemimager/images/oscarimage/etc/systemconfig/syste
mconfig.conf
This file determines the boot parameters on your client. The boot device doesnt care what kind of disk it is on, but it has to know where the root partition is going to be. If it thinks the root is on a scsi drive, bootup will fail. Instead of editting this file, we will place an altered copy of it in the overrides folder.


create the following directory structure: etc/systemconfig/ inside the /var/lib/systemimager/overrides/oscarimage/ folder. Copy the systemconfig.conf file to the new directory. Now edit the file and change the value of the ROOTDEV under [BOOT] from /dev/sda<somenumber> to /dev/hda<somenumber>. Do not change the value of BOOTDEV!

3. Now we have to compile a kernel that can recognise SATA devices during the PXE boot phase. Download a stock kernel source from kernel.org. I used kernel 2.4.24, but it is not critical which you use. The exception is 2.6 kernels, they will not work with the default PXE initrd.img produced by the SIS suite. Next download the "libata" patch that corresponds to your stock kernel. It can also be found at kernel.org (I dont recall where exactly, but it is not difficult to find). Patch the kernel with libata.
An excellent step-by-step guide on installing, patching and compiling kernels can be found here: http://www.digitalhermit.com/~kwan/kernel.html


4. cd to /usr/src/<your new kernel source>/ and type "make mrproper"

5. Copy /usr/share/systemimager/boot/i386/standard/config to /usr/src/<your new kernel source>/.config

6. execute "make oldconfig" You can choose the default option at most of the prompts antil the choice about SATA appears. Choose "y" for all the SATA modules. This will compile them into the kernel.

(6.1. Now if you are feeling adventurous, type "make xconfig" allowing you to mess about with the kernel configuration to your heart's content. I disabled all the devices I knew were not essential to the PXE boot, but I do not think this step is strictly necessary. Whatever you do, do NOT enable new loadable modules. If you wish to add something, compile it directly into the kernel. SATA modules can be found under SCSI support->SCSI low level drivers by the way.)

7. type "make dep clean bzImage modules modules_install". Wait till its done. This may take a while if you did not disable a lot of divices in step 6b above.

8. Copy arch/i386/boot/bzImage to /tftpbboot/kernel2424. This is the new kernel we will use to PXE boot. It can be named anything apart from "kernel", which is overwritten by SIS during network boot startup.

9. cd /tftpboot/pxelinux.cfg/
This directory contains a file called default that tells the PXE boot device which files to grab. Copy default to "C". Why will become apparent later. Edit "C" and change the value of KERNEL from kernel to
kernel2424 (or whatever you named your new PXE kernel) Do not include any non alphabetic, non-alphanumeric characters in the new kernel name.
Apparently the interpreter is none to clever.


10. Right, thats it for the configuration. Start up your client machine and enter the BIOS. Enable network boot and change SATA mode to "SATA only" or "Enhanced". "Enhanced" worked for me but this may vary. Continue booting. Everything should run smoothly from here. After installation is complete, shut down the client.

11. Start the client. Enter the BIOS as set SATA mode back to its default. If you enabled LAN boot over HDD boot, set it back. If everything has been done correctly and no weird bugs crept into the mix, you should now be able to boot to a default shell with a login prompt.

(11.1 If you are not the fiddly type, you can probably ignore this. For the rest, remember the BOOTDEV that was left as sda way above. This has now gone and told the boot loader config file that the boot sector is on a scsi drive. You wont notice this however unless you try to run the the
boot loader configurator. To set it to its proper value, edit /etc/lilo.conf or /etc/grub.conf and change the last remaining entry of sda to hda.


12 All done. I dont yet know how this will hold up when a kernel updater is run, but I suspect it will be fine.

If you have any queries I will keep watching the list, also you can e-mail me directly if I dont respond in a timely fashion.

Thanks yet again to the list members,


Eugene


PS. I found the most usefull thing when dealing with problems like these is to believe it can be solved.




------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Oscar-users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/oscar-users








-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Oscar-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/oscar-users

Reply via email to