determining the appropriate sata driver

2009-03-10 Thread Ken Teh
How does a system determine the appropriate sata driver?  Specifically, how 
does anaconda figure out to write


alias scsi_hostadapter ata_piix

in my modprobe.conf and to bind it into my initrd image?

I took apart boot.iso but didnt find anything "readable" that indicated how 
this was determined.


Thanks!

Ken


Re: determining the appropriate sata driver

2009-03-10 Thread Mark Stodola
I believe most of anaconda's "magic" comes from probing the PCI and USB 
bus for vendor and device IDs.  If you dig into a driver (for example, 
e1000e), you will find a pcitable listing all of the IDs the driver 
supports.  If you look in /lib/modules// you will find a 
modules.pcimap and modules.usbmap among other bus types.


Hope that helps.

Cheers,
Mark

Ken Teh wrote:
How does a system determine the appropriate sata driver?  
Specifically, how does anaconda figure out to write


alias scsi_hostadapter ata_piix

in my modprobe.conf and to bind it into my initrd image?

I took apart boot.iso but didnt find anything "readable" that 
indicated how this was determined.


Thanks!

Ken




--
Mr. Mark V. Stodola
Digital Systems Engineer

National Electrostatics Corp.
P.O. Box 620310
Middleton, WI 53562-0310 USA
Phone: (608) 831-7600
Fax: (608) 831-9591


Re: determining the appropriate sata driver

2009-03-11 Thread Troy Dawson

Mark Stodola wrote:
I believe most of anaconda's "magic" comes from probing the PCI and USB 
bus for vendor and device IDs.  If you dig into a driver (for example, 
e1000e), you will find a pcitable listing all of the IDs the driver 
supports.  If you look in /lib/modules// you will find a 
modules.pcimap and modules.usbmap among other bus types.


Hope that helps.

Cheers,
Mark

Ken Teh wrote:
How does a system determine the appropriate sata driver?  
Specifically, how does anaconda figure out to write


alias scsi_hostadapter ata_piix

in my modprobe.conf and to bind it into my initrd image?

I took apart boot.iso but didnt find anything "readable" that 
indicated how this was determined.


Thanks!

Ken






Hi Ken,
On SL 5, alot of that data comes from hwdata, which is in the
/usr/share/hwdata directory.
The main ones people and programs look at is
pci.ids and usb.ids
But there are other files in there.
Troy
--
__
Troy Dawson  daw...@fnal.gov  (630)840-6468
Fermilab  ComputingDivision/LCSI/CSI LMSS Group
__


Re: determining the appropriate sata driver

2009-03-11 Thread Ken Teh

Hi Troy,

I'm looking for something more basic.  I'm trying to craft an init script 
for an initrd image to load appropriate drivers.  Nothing fancy.  Just the 
basics.  Like what sort of hard drives are on the system.  SATA or IDE?  The 
SATA issue confuses me since there is a plethora of SATA drivers.  Does the 
init script have to try each one to see if it finds a match or is there 
something in /proc or /sys that provides some identification?


The only tool I have in my initrd image is busybox and it doesnt have an 
lspci equivalent.  The /proc system contains a subdirectory that lists all 
devices on PCI but as bus.device files.  I tried cat'ing the files but they 
are not ascii.  I'm guessing it's possible to walk these files to extract 
the information I need.  I can dig deeper but to save time, I'd ask if 
someone already knows the answer.


Ken




Troy Dawson wrote:

Mark Stodola wrote:
I believe most of anaconda's "magic" comes from probing the PCI and 
USB bus for vendor and device IDs.  If you dig into a driver (for 
example, e1000e), you will find a pcitable listing all of the IDs the 
driver supports.  If you look in /lib/modules// you will find 
a modules.pcimap and modules.usbmap among other bus types.


Hope that helps.

Cheers,
Mark

Ken Teh wrote:
How does a system determine the appropriate sata driver?  
Specifically, how does anaconda figure out to write


alias scsi_hostadapter ata_piix

in my modprobe.conf and to bind it into my initrd image?

I took apart boot.iso but didnt find anything "readable" that 
indicated how this was determined.


Thanks!

Ken






Hi Ken,
On SL 5, alot of that data comes from hwdata, which is in the
/usr/share/hwdata directory.
The main ones people and programs look at is
pci.ids and usb.ids
But there are other files in there.
Troy


Re: determining the appropriate sata driver

2009-03-11 Thread Mark Stodola

Ken,

/proc/pci contains much of the info provided by lspci.  For an initrd 
script, you might want to consider looking at the linux-live scripts 
used to build many of the livecds you find online (include the SL flavor 
made by Urs).  I believe if you look at Urs's livecd-trunk, you will 
find linux-live.sl/initrd/liblinuxlive.  This file has procedures for 
probing all common modules for a certain type of support (e.g. 
modprobe_usb_sata_modules).  Brute force seems the standard way to go.  
I've made livecds in several ways, and have not run into a situation 
where I had to manually identify and probe modules for a specific IDE or 
SATA controller.


Are you doing something drastically different from the norm?

Cheers,
Mark

Ken Teh wrote:

Hi Troy,

I'm looking for something more basic.  I'm trying to craft an init 
script for an initrd image to load appropriate drivers.  Nothing 
fancy.  Just the basics.  Like what sort of hard drives are on the 
system.  SATA or IDE?  The SATA issue confuses me since there is a 
plethora of SATA drivers.  Does the init script have to try each one 
to see if it finds a match or is there something in /proc or /sys that 
provides some identification?


The only tool I have in my initrd image is busybox and it doesnt have 
an lspci equivalent.  The /proc system contains a subdirectory that 
lists all devices on PCI but as bus.device files.  I tried cat'ing the 
files but they are not ascii.  I'm guessing it's possible to walk 
these files to extract the information I need.  I can dig deeper but 
to save time, I'd ask if someone already knows the answer.


Ken




Troy Dawson wrote:

Mark Stodola wrote:
I believe most of anaconda's "magic" comes from probing the PCI and 
USB bus for vendor and device IDs.  If you dig into a driver (for 
example, e1000e), you will find a pcitable listing all of the IDs 
the driver supports.  If you look in /lib/modules// you will 
find a modules.pcimap and modules.usbmap among other bus types.


Hope that helps.

Cheers,
Mark

Ken Teh wrote:
How does a system determine the appropriate sata driver?  
Specifically, how does anaconda figure out to write


alias scsi_hostadapter ata_piix

in my modprobe.conf and to bind it into my initrd image?

I took apart boot.iso but didnt find anything "readable" that 
indicated how this was determined.


Thanks!

Ken






Hi Ken,
On SL 5, alot of that data comes from hwdata, which is in the
/usr/share/hwdata directory.
The main ones people and programs look at is
pci.ids and usb.ids
But there are other files in there.
Troy





--
Mr. Mark V. Stodola
Digital Systems Engineer

National Electrostatics Corp.
P.O. Box 620310
Middleton, WI 53562-0310 USA
Phone: (608) 831-7600
Fax: (608) 831-9591


Re: determining the appropriate sata driver

2009-03-11 Thread Alan Bartlett
On 10/03/2009, Ken Teh  wrote:
> How does a system determine the appropriate sata driver?  Specifically, how
> does anaconda figure out to write
>
>  alias scsi_hostadapter ata_piix
>
>  in my modprobe.conf and to bind it into my initrd image?
>
>  I took apart boot.iso but didnt find anything "readable" that indicated how
> this was determined.

Ken,

I wonder if the "helper script", get-driver.sh, referenced on p61 of
"Linux Kernel in a Nutshell" by Greg Kroah-Hartman and available to
download from the publisher's web-site [1] will be any use to you?

Regards,
Alan.

[1] http://examples.oreilly.com/9780596100797/examples.tar.gz


Re: determining the appropriate sata driver

2009-03-11 Thread Urs Beyerle
Hi Ken,

In the LiveCD initrd I probe for modules needed to access CD/DVD ROMS
(IDE, SATA), USB disks/sticks and network cards (in case of a diskless
client).
https://svn.iac.ethz.ch/pub/livecd/trunk/linux-live.sl/initrd/linuxrc
https://svn.iac.ethz.ch/pub/livecd/trunk/linux-live.sl/initrd/liblinuxlive

The SATA part is very simple, I just load libata, ata_piix, ahci,
sata_nv, sata_svw, sg, ... This seems to be good enough for most DVD/CD
ROMS connected over SATA. Of course I would be interested in a more
"intelligent" way to load the sata modules.

Concerning the detection of the network card. I did it on older LiveCDs
with a statically compiled lspci (running under busybox) and some grep
commands looking in the file pcitable for the correct module. The static
lspci is still available in
https://svn.iac.ethz.ch/pub/livecd/trunk/linux-live.sl/initrd/static-binaries/

However, pcitable was always out of date and the modules could support
more cards than listed in pcitable. Therefore I decided to do it with
brute force. Now, I load a network module, check if I see an active
link. If not, I unload the module again and load the next network module
... and so on. This is fast and works nicely.


Cheers,

Urs




Mark Stodola wrote:
> Ken,
>
> /proc/pci contains much of the info provided by lspci.  For an initrd
> script, you might want to consider looking at the linux-live scripts
> used to build many of the livecds you find online (include the SL
> flavor made by Urs).  I believe if you look at Urs's livecd-trunk, you
> will find linux-live.sl/initrd/liblinuxlive.  This file has procedures
> for probing all common modules for a certain type of support (e.g.
> modprobe_usb_sata_modules).  Brute force seems the standard way to
> go.  I've made livecds in several ways, and have not run into a
> situation where I had to manually identify and probe modules for a
> specific IDE or SATA controller.
>
> Are you doing something drastically different from the norm?
>
> Cheers,
> Mark
>
> Ken Teh wrote:
>> Hi Troy,
>>
>> I'm looking for something more basic.  I'm trying to craft an init
>> script for an initrd image to load appropriate drivers.  Nothing
>> fancy.  Just the basics.  Like what sort of hard drives are on the
>> system.  SATA or IDE?  The SATA issue confuses me since there is a
>> plethora of SATA drivers.  Does the init script have to try each one
>> to see if it finds a match or is there something in /proc or /sys
>> that provides some identification?
>>
>> The only tool I have in my initrd image is busybox and it doesnt have
>> an lspci equivalent.  The /proc system contains a subdirectory that
>> lists all devices on PCI but as bus.device files.  I tried cat'ing
>> the files but they are not ascii.  I'm guessing it's possible to walk
>> these files to extract the information I need.  I can dig deeper but
>> to save time, I'd ask if someone already knows the answer.
>>
>> Ken
>>
>>
>>
>>
>> Troy Dawson wrote:
>>> Mark Stodola wrote:
 I believe most of anaconda's "magic" comes from probing the PCI and
 USB bus for vendor and device IDs.  If you dig into a driver (for
 example, e1000e), you will find a pcitable listing all of the IDs
 the driver supports.  If you look in /lib/modules// you
 will find a modules.pcimap and modules.usbmap among other bus types.

 Hope that helps.

 Cheers,
 Mark

 Ken Teh wrote:
> How does a system determine the appropriate sata driver? 
> Specifically, how does anaconda figure out to write
>
> alias scsi_hostadapter ata_piix
>
> in my modprobe.conf and to bind it into my initrd image?
>
> I took apart boot.iso but didnt find anything "readable" that
> indicated how this was determined.
>
> Thanks!
>
> Ken
>


>>>
>>> Hi Ken,
>>> On SL 5, alot of that data comes from hwdata, which is in the
>>> /usr/share/hwdata directory.
>>> The main ones people and programs look at is
>>> pci.ids and usb.ids
>>> But there are other files in there.
>>> Troy
>>
>
>