LinuxQuestions.org
LinuxAnswers - the LQ Linux tutorial section.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices

Reply
 
Search this Thread
Old 12-28-2012, 07:47 AM   #1
puntino
Member
 
Registered: Sep 2006
Location: Italy
Distribution: Suse 10.1
Posts: 71

Rep: Reputation: 15
disk driver


Hello,
I would like to know which kernel module is the hard disk driver.
the command lsmod list the following kernel modules:
Code:
Module                  Size  Used by
pcspkr                  4352  0 
snd_ens1371            24448  0 
snd_rawmidi            26176  1 snd_ens1371
snd_seq_device          9876  1 snd_rawmidi
snd_ac97_codec         99920  1 snd_ens1371
snd_pcm                79532  2 snd_ens1371,snd_ac97_codec
snd_timer              25116  1 snd_pcm
snd                    55972  6 snd_ens1371,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm,snd_timer
snd_page_alloc         11784  1 snd_pcm
pcnet32                35716  0 
ac97_bus                3712  1 snd_ac97_codec
i2c_piix4              10508  0 
intel_agp              25876  1 
agpgart                36000  1 intel_agp
tg3                   118940  0 
e1000                 126048  0 
reiserfs              234048  0 
raid10                 25104  0 
raid456               127784  0 
async_memcpy            4096  1 raid456
async_xor               5248  1 raid456
xor                    10120  2 raid456,async_xor
async_tx               10308  3 raid456,async_memcpy,async_xor
raid1                  26000  0 
raid0                   9344  0 
md_mod                 81716  4 raid10,raid456,raid1,raid0
sbp2                   26008  0 
ohci_hcd               23060  0 
uhci_hcd               25752  0 
ehci_hcd               32788  0 
lpfc                  235216  0 
qla2xxx               180980  0 
megaraid_sas           31024  0 
megaraid_mbox          33864  0 
megaraid_mm            12588  1 megaraid_mbox
megaraid               41320  0 
aacraid                71204  0 
sx8                    20380  0 
DAC960                 74184  0 
cciss                  62756  0 
cpqarray               23268  0 
3w_9xxx                34852  0 
3w_xxxx                28320  0 
mptsas                 41320  0 
scsi_transport_sas     35088  1 mptsas
mptfc                  20916  0 
atp870u                32128  0 
dc395x                 36108  0 
sim710                  6404  0 
53c700                 29348  1 sim710
qla1280               119948  0 
imm                    14352  0 
parport                39912  1 imm
dmx3191d               14856  0 
sym53c8xx              78100  0 
qlogicfas408            8704  0 
aha152x                41552  0 
aha1740                 9472  0 
advansys               86272  0 
initio                 20452  0 
BusLogic               73076  0 
arcmsr                 25984  0 
pdc_adma               12036  0 
sata_inic162x          13316  0 
sata_qstor             12036  0 
sata_vsc               10372  0 
sata_uli                8964  0 
sata_sis               10244  0 
sata_sx4               14724  0 
sata_svw                9348  0 
sata_sil24             17924  0 
sata_promise           15492  0 
scsi_wait_scan          2432  0 
pata_cs5535             7680  0 
pata_cs5530             9728  0 
pata_cs5520            10240  0 
pata_via               12804  0 
pata_jmicron            7424  0 
pata_sis               15364  1 sata_sis
pata_netcell            7044  0 
pata_sc1200             8064  0 
pata_pdc202xx_old       9472  0 
pata_triflex            8580  0 
pata_atiixp             9216  0 
pata_opti               8452  0 
pata_ali               12032  0 
pata_it8213             9348  0 
pata_isapnp             6656  0 
pata_pcmcia            15104  0 
pcmcia                 43532  1 pata_pcmcia
pcmcia_core            42516  2 pata_pcmcia,pcmcia
pata_ns87415            8708  0 
pata_ns87410            8320  0 
pata_serverworks       10880  0 
pata_cypress            8192  0 
pata_oldpiix            8964  0 
pata_artop             10756  0 
pata_it821x            12292  0 
pata_optidma           10504  0 
pata_hpt3x2n           10752  0 
pata_hpt3x3             9476  0 
pata_hpt37x            16896  0 
pata_hpt366            10368  0 
pata_cmd64x            10112  0 
pata_efar               9348  0 
pata_rz1000             7556  0 
pata_sil680            11140  0 
pata_radisys            8452  0 
pata_pdc2027x          13316  0 
pata_mpiix              8580  0
while the command lspci:
Code:
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:07.7 System peripheral: VMware Inc Device 0740 (rev 10)
00:0f.0 VGA compatible controller: VMware Inc [VMware SVGA II] PCI Display Adapter
00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
00:11.0 PCI bridge: VMware Inc Device 0790 (rev 02)
00:15.0 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:15.1 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:15.2 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:15.3 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:15.4 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:15.5 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:15.6 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:15.7 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:16.0 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:16.1 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:16.2 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:16.3 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:16.4 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:16.5 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:16.6 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:16.7 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:17.0 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:17.1 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:17.2 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:17.3 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:17.4 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:17.5 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:17.6 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:17.7 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:18.0 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:18.1 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:18.2 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:18.3 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:18.4 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:18.5 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:18.6 PCI bridge: VMware Inc Device 07a0 (rev 01)
00:18.7 PCI bridge: VMware Inc Device 07a0 (rev 01)
02:00.0 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB
02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
02:02.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)
02:03.0 USB Controller: VMware Inc Device 0770
According to the lspci output the driver should be
SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-
but what is the relative kernel module?
Thank you in advance
 
Old 12-28-2012, 09:42 AM   #2
smallpond
Senior Member
 
Registered: Feb 2011
Location: Massachusetts, USA
Distribution: Fedora
Posts: 1,380

Rep: Reputation: 326Reputation: 326Reputation: 326Reputation: 326
If it was a separate module, how would the kernel load it from disk?

Code:
grep BLK_DEV_SD /boot/config-`uname -r`
This is 'y' showing it is compiled into the kernel, not a separate module.
 
Old 12-28-2012, 06:49 PM   #3
jpollard
Senior Member
 
Registered: Dec 2012
Location: Washington DC area
Distribution: Fedora, CentOS, Slackware
Posts: 2,025

Rep: Reputation: 519Reputation: 519Reputation: 519Reputation: 519Reputation: 519Reputation: 519
Usually such required drivers would be loaded from the initrd file which is a mini-root filesystem containing the initial drivers. This is loaded into memory as part of the inital boot (via grub/lilo/...) which in turn is loaded by the BIOS/EFI rom.

So modules for the physical disks are loaded from disk, but not necessarily by the operating system.

I have had to modify the initrd file for VMs that didn't have the VM disk driver installed - once added the module to the initrd, booting the system worked just fine.

In my case, your command returns "CONFIG_BLK_DEV_SD=y", but that is only supporting block interface to drivers (in this case, the generic SCSI layer. The actual disk driver depends on the hardware interface for the SATA drives (which I believe is the pata_it821 module).

In one of my VMs for testing, the same CONFIG_BLK_DEV_SD is used, but the actual driver is the virtual I/O subsystem that defines the vda devices, but that was not in the initrd by default.

Last edited by jpollard; 12-28-2012 at 07:09 PM.
 
Old 12-28-2012, 07:15 PM   #4
Chris E
LQ Newbie
 
Registered: Jun 2008
Location: Berkshire, UK.
Distribution: CentOS
Posts: 21

Rep: Reputation: 1
The driver/module in use is mptsas as confirmed by lspci:

00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
 
Old 12-30-2012, 04:37 AM   #5
puntino
Member
 
Registered: Sep 2006
Location: Italy
Distribution: Suse 10.1
Posts: 71

Original Poster
Rep: Reputation: 15
Guys, thank you all.
I have some doubts about the actual disk driver.
As you can see from the output of the lspci command I get an IDE interface:
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
If I check out kernel configuration (Device Drivers -> ATA/ATAPI/MFM/RLL support")
there is an Intel PIIXn chipsets support.
Also, the interface of /dev/hda is IDE.
Thus, the driver should be the one provided by Intel.
Yet, the command dmesg | egrep -i --color 'disk'
Code:
hda VMWare Virtual IDE Hard driver, ATA Disk driver
I suppose that the code of the driver is complied in
the Linux kernel. The code of the disk driver should be (nm -l -n output):
Code:
c031c750 t sectors_to_MB	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:433
c031c7b0 t idedisk_capacity	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:551
c031c7d0 t set_lba_addressing	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:811
c031c840 t idedisk_getgeo	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:1102
c031c870 t idedisk_media_changed	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:1161
c031c8a0 t proc_idedisk_read_capacity	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:603
c031c910 t proc_idedisk_read_cache	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:589
c031c9a0 t get_smart_data	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:571
c031ca50 t proc_idedisk_read_smart_values	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:632
c031cb10 t proc_idedisk_read_smart_thresholds	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:613
c031cbd0 t ide_cacheflush_p	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:949
c031cc70 t ide_device_shutdown	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:997
c031ccc0 t idedisk_check_hpa	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:469
c031d200 t init_idedisk_capacity	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:524
c031d3b0 t ide_disk_resume	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:991
c031d3e0 t ide_disk_put	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:77
c031d410 t idedisk_release	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:1076
c031d4b0 t ide_disk_remove	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:958
c031d500 t ide_disk_release	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:972
c031d530 t idedisk_ioctl	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:1114
c031d650 t write_cache	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:747
c031d790 t set_nowerr	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:699
c031d7f0 t set_multcount	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:682
c031d880 t ide_disk_probe	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:1194
c031df60 t ide_do_rw_disk	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:282
c031e3c0 t idedisk_prepare_flush	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:660
c031e450 t set_acoustic	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:786
c031e4d0 t idedisk_open	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:1045
c031e5a0 t idedisk_revalidate_disk	/usr/src/linux-2.6.24-FNM_v2.1/drivers/ide/ide-disk.c:1175

Anyway, I'm confused because if that code includes (in somehow)
the disk driver, what is mptsas for?
Thank you in advance,
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
driver disk problem shpandya Red Hat 1 03-13-2009 12:54 AM
driver disk question shpandya Red Hat 1 03-12-2009 06:02 PM
Driver disk tstuart Linux - Newbie 3 09-16-2006 11:28 PM
RHL driver disk hangover Red Hat 0 11-13-2003 07:28 AM
installation driver disk ry Linux - General 1 04-30-2002 05:56 PM


All times are GMT -5. The time now is 02:24 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration