how determine all possible drivers for my system

Oleg subbsd at gmail.com
Fri Oct 17 14:09:48 PDT 2008


Hello maillist of my favorite Wortstation&Server OS

May i asking: how i can determine all drivers of existing devices, but who  is 
not present in GENERIC kernel.

For definition of all devices useful to me I have written the following a 
little stupid script: 
----------
#!/bin/sh
MODLIST=`find /boot/kernel -type f -name *.ko -print`
LOGFILE="/var/tmp/kldlog.txt"
# ignore for kldload module
IGNORE_MODLIST="/boot/kernel/kernel.ko /boot/kernel/tom.ko /boot/kernel/iw_cxgb.ko"
# (comment: tom.ko and iw_cwbg.ko after loading make "kernel panic" on my 
system)

REPORTS="/var/tmp/reports.txt"

FINAL_FILTER="(already exist)|(File exist)|(Unsupported file type)|\
(already present)|(failed to register)|(Exec format error)|\
(symbol [aA-zZ]++ undefin)|(Weak symbols not supported)|\
(already registered)|(unable to register)"

# not know another easy way for fopen("/dev/klog")
/etc/rc.d/syslogd stop
echo "kern.*    ${LOGFILE}" > /var/tmp/syslogd.conf
syslogd -f /var/tmp/syslogd.conf
#

truncate -s0 ${LOGFILE}

for MOD in ${MODLIST}; do
ignore=0
    for IGNORE_MOD in $IGNORE_MODLIST; do

    if [ "${IGNORE_MOD}" = "${MOD}" ]; then
    ignore=1
    fi
    done

    if [ $ignore -eq 1 ]; then
    echo "Skipping ${MOD}..." >> ${LOGFILE}
    else
    echo "Try Loading ${MOD}..." >> ${LOGFILE}
    sync;
    kldload ${MOD} >> ${LOGFILE} 2>&1
    fi

done

/etc/rc.d/syslogd start
egrep -Eiv "\"${FINAL_FILTER}\"" ${LOGFILE} |tee ${REPORTS}
---------

Result  working off that scripts is the file reports.txt: {
Oct 17 23:51:11  kernel: acpi_aiboost0: <ASUStek AIBOOSTER> on acpi0
Oct 17 23:51:11  kernel: ppc0: cannot reserve I/O port range
Oct 17 23:51:12  kernel: acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 
ascq=0x00 sks=0x48 0x00 0x01
Oct 17 23:51:12  kernel: cd0 at ata3 bus 0 target 0 lun 0
Oct 17 23:51:12  kernel: cd0: <PIONEER DVD-RW  DVR-212D 1.09> Removable CD-ROM 
SCSI-0 device
Oct 17 23:51:12  kernel: cd0: 3.300MB/s transfers
Oct 17 23:51:12  kernel: cd0: Attempt to query device size failed: NOT READY, 
Medium not present
Oct 17 23:51:12  kernel: cryptosoft0: <software crypto> on motherboard
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: KLD dtrace.ko: depends on cyclic - not available
Oct 17 23:51:13  kernel: KLD dtmalloc.ko: depends on dtrace - not available
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: KLD dtrace.ko: depends on cyclic - not available
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: KLD profile.ko: depends on cyclic - not available
Oct 17 23:51:13  kernel: KLD dtraceall.ko: depends on profile - not available
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: KLD profile.ko: depends on cyclic - not available
Oct 17 23:51:13  kernel: KLD dtraceall.ko: depends on profile - not available
Oct 17 23:51:13  kernel: KLD dtrace_test.ko: depends on dtraceall - not 
available
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: KLD profile.ko: depends on cyclic - not available
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: KLD dtrace.ko: depends on cyclic - not available
Oct 17 23:51:13  kernel: KLD prototype.ko: depends on dtrace - not available
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: KLD dtrace.ko: depends on cyclic - not available
Oct 17 23:51:13  kernel: KLD sdt.ko: depends on dtrace - not available
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: KLD dtrace.ko: depends on cyclic - not available
Oct 17 23:51:13  kernel: KLD systrace.ko: depends on dtrace - not available
Oct 17 23:51:13  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:13  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:13  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:13  kernel: KLD dtrace.ko: depends on cyclic - not available
Oct 17 23:51:13  kernel: KLD fbt.ko: depends on dtrace - not available
Oct 17 23:51:13  kernel: KLD if_en.ko: depends on utopia - not available
Oct 17 23:51:13  kernel: KLD if_fatm.ko: depends on utopia - not available
Oct 17 23:51:15  kernel: KLD if_hatm.ko: depends on atm - not available
Oct 17 23:51:15  kernel: module_register_init: MOD_LOAD (hwpmc, 
0xffffffff804f2440, 0xffffffff80fffce0) error 78
Oct 17 23:51:15  kernel: ichsmb0: <SMBus controller> port 
0x2900-0x293f,0x2d00-0x2d3f,0x2e00-0x2e3f irq 21 at device 10.1 on pci0
Oct 17 23:51:15  kernel: ichsmb0: [ITHREAD]
Oct 17 23:51:15  kernel: smbus0: <System Management Bus> on ichsmb0
Oct 17 23:51:16  kernel: smb0: <SMBus generic I/O> on smbus0
Oct 17 23:51:16  kernel: ichwd module loaded
Oct 17 23:51:16  kernel: ppc0: cannot reserve I/O port range
Oct 17 23:51:16  kernel: nfe1f0: Ethernet address: 00:22:15:20:66:1b
Oct 17 23:51:16  kernel: nfe1f1: Ethernet address: 00:22:15:20:66:1b
Oct 17 23:51:16  kernel: nfe1f2: Ethernet address: 00:22:15:20:66:1b
Oct 17 23:51:16  kernel: nfe1f3: Ethernet address: 00:22:15:20:66:1b
Oct 17 23:51:16  kernel: nfe0f0: Ethernet address: 00:22:15:20:63:bc
Oct 17 23:51:16  kernel: nfe0f1: Ethernet address: 00:22:15:20:63:bc
Oct 17 23:51:16  kernel: nfe0f2: Ethernet address: 00:22:15:20:63:bc
Oct 17 23:51:16  kernel: nfe0f3: Ethernet address: 00:22:15:20:63:bc
Oct 17 23:51:16  kernel: IP Filter: v4.1.28 initialized.  Default = pass all, 
Logging = enabled
Oct 17 23:51:16  kernel: ppc0: cannot reserve I/O port range
Oct 17 23:51:17  kernel: module_register_init: MOD_LOAD (ipw_bss_fw, 
0xffffffff810a7000, 0) error 1
Oct 17 23:51:17  kernel: module_register_init: MOD_LOAD (ipw_ibss_fw, 
0xffffffff810db000, 0) error 1
Oct 17 23:51:17  kernel: module_register_init: MOD_LOAD (ipw_monitor_fw, 
0xffffffff8110d000, 0) error 1
Oct 17 23:51:17  kernel: registered firmware set <isp_1040>
Oct 17 23:51:17  kernel: registered firmware set <isp_1040_it>
Oct 17 23:51:17  kernel: registered firmware set <isp_1080>
Oct 17 23:51:17  kernel: registered firmware set <isp_1080_it>
Oct 17 23:51:17  kernel: registered firmware set <isp_12160>
Oct 17 23:51:17  kernel: registered firmware set <isp_12160_it>
Oct 17 23:51:17  kernel: registered firmware set <isp_2100>
Oct 17 23:51:17  kernel: registered firmware set <isp_2200>
Oct 17 23:51:17  kernel: registered firmware set <isp_2300>
Oct 17 23:51:17  kernel: registered firmware set <isp_2322>
Oct 17 23:51:17  kernel: registered firmware set <isp_2400>
Oct 17 23:51:17  kernel: unable to register firmware 'isp_1040'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_1040_it'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_1080'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_1080_it'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_12160'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_12160_it'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_2100'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_2200'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_2300'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_2322'
Oct 17 23:51:17  kernel: unable to register firmware 'isp_2400'
Oct 17 23:51:17  kernel: module_register_init: MOD_LOAD (iwnfw_fw, 
0xffffffff812d4000, 0) error 1
Oct 17 23:51:17  kernel: ppc0: cannot reserve I/O port range
Oct 17 23:51:18  kernel: KLD mac_biba.ko: depends on kernel_mac_support - not 
available
Oct 17 23:51:18  kernel: KLD mac_bsdextended.ko: depends on 
kernel_mac_support - not available
Oct 17 23:51:18  kernel: KLD mac_ifoff.ko: depends on kernel_mac_support - not 
available
Oct 17 23:51:18  kernel: KLD mac_lomac.ko: depends on kernel_mac_support - not 
available
Oct 17 23:51:18  kernel: KLD mac_mls.ko: depends on kernel_mac_support - not 
available
Oct 17 23:51:18  kernel: KLD mac_none.ko: depends on kernel_mac_support - not 
available
Oct 17 23:51:18  kernel: KLD mac_partition.ko: depends on kernel_mac_support - 
not available
Oct 17 23:51:18  kernel: KLD mac_portacl.ko: depends on kernel_mac_support - 
not available
Oct 17 23:51:18  kernel: KLD mac_seeotheruids.ko: depends on 
kernel_mac_support - not available
Oct 17 23:51:18  kernel: KLD mac_stub.ko: depends on kernel_mac_support - not 
available
Oct 17 23:51:18  kernel: KLD mac_test.ko: depends on kernel_mac_support - not 
available
Oct 17 23:51:18  kernel: KLD if_malo.ko: depends on malofw_fw - not available
Oct 17 23:51:18  kernel: ppc0: cannot reserve I/O port range
Oct 17 23:51:19  kernel: WARNING: attempt to net_add_domain(bluetooth) after 
domainfinalize()
Oct 17 23:51:19  kernel: WARNING: attempt to net_add_domain(netgraph) after 
domainfinalize()
Oct 17 23:51:20  kernel: This module (opensolaris) contains code covered by 
the
Oct 17 23:51:20  kernel: Common Development and Distribution License (CDDL)
Oct 17 23:51:20  kernel: see 
http://opensolaris.org/os/licensing/opensolaris_license/
Oct 17 23:51:20  kernel: KLD if_patm.ko: depends on atm - not available
Oct 17 23:51:20  kernel: ppc0: cannot reserve I/O port range
Oct 17 23:51:21  kernel: netsmb_dev: loaded
Oct 17 23:51:21  kernel: ppc0: cannot reserve I/O port range
Oct 17 23:51:22  last message repeated 2 times
Oct 17 23:51:22  kernel: hdac0: <NVidia MCP55 High Definition Audio 
Controller> mem 0xf9ef0000-0xf9ef3fff irq 21 at device 15.1 on pci0
Oct 17 23:51:22  kernel: hdac0: <HDA Driver Revision: 20081013_0113>
Oct 17 23:51:22  kernel: hdac0: [ITHREAD]
Oct 17 23:51:22  kernel: hdac0: <HDA Codec #0: Analog Devices AD1988B>
Oct 17 23:51:22  kernel: pcm0: <HDA codec #0 Analog Devices AD1988B PCM #0> on 
hdac0
Oct 17 23:51:22  kernel: pcm1: <HDA codec #0 Analog Devices AD1988B PCM #1> on 
hdac0
Oct 17 23:51:22  kernel: pcm2: <HDA codec #0 Analog Devices AD1988B PCM #2> on 
hdac0
Oct 17 23:51:24  kernel: ppc0: cannot reserve I/O port range
Oct 17 23:51:24  last message repeated 2 times
Oct 17 23:51:25  kernel: dragon_saver: the console does not support 
M_VGA_CG320
Oct 17 23:51:25  kernel: module_register_init: MOD_LOAD (dragon_saver, 
0xffffffff81637140, 0) error 19
Oct 17 23:51:25  kernel: fire_saver: the console does not support M_VGA_CG320
Oct 17 23:51:25  kernel: module_register_init: MOD_LOAD (fire_saver, 
0xffffffff81639000, 0) error 19
Oct 17 23:51:25  kernel: logo_saver: the console does not support M_VGA_CG320
Oct 17 23:51:25  kernel: module_register_init: MOD_LOAD (logo_saver, 
0xffffffff8163b010, 0) error 19
Oct 17 23:51:25  kernel: rain_saver: the console does not support M_VGA_CG320
Oct 17 23:51:25  kernel: module_register_init: MOD_LOAD (rain_saver, 
0xffffffff8163e010, 0) error 19
Oct 17 23:51:25  kernel: warp_saver: the console does not support M_VGA_CG320
Oct 17 23:51:25  kernel: module_register_init: MOD_LOAD (warp_saver, 
0xffffffff81641270, 0) error 19
Oct 17 23:51:26  kernel: KLD if_upgt.ko: depends on upgtfw_fw - not available
Oct 17 23:51:26  kernel: wlan: mac acl policy registered
}

from which I get following useful and working devices for generate my custom 
kernels:
--

device ichwd
device smb
device smbus
device ichsmb
device cd
device acpi_aiboost
device crypto
device cryptodev

--

My question: what the "official" FreeBSD-way for the approach similar 
operations?




More information about the freebsd-questions mailing list