# Which drivers am I missing?

## ONEEYEMAN

Hi, ALL,

I have this DELL laptop for a long time.

However, very recently I had to do some investigation and found out that not all hardware has an appropriate driver.

Here is the output:

```

IgorsGentooOnNetwork for_work_project # lspci -k

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)

   Subsystem: Dell Device 01bd

   Kernel driver in use: agpgart-intel

00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)

   Subsystem: Dell Device 01bd

   Kernel driver in use: i915

00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)

   Subsystem: Dell Device 01bd

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)

   Subsystem: Dell Device 01bd

   Kernel driver in use: HDA Intel

   Kernel modules: snd-hda-intel

00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)

00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)

00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)

   Subsystem: Dell Device 01bd

   Kernel driver in use: uhci_hcd

00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)

   Subsystem: Dell Device 01bd

   Kernel driver in use: uhci_hcd

00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)

   Subsystem: Dell Device 01bd

   Kernel driver in use: uhci_hcd

00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01)

   Subsystem: Dell Device 01bd

   Kernel driver in use: uhci_hcd

00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)

   Subsystem: Dell Device 01bd

   Kernel driver in use: ehci_hcd

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)

00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)

   Subsystem: Dell Device 01bd

00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 01)

   Subsystem: Dell Device 01bd

   Kernel driver in use: ata_piix

00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)

   Subsystem: Dell Device 01bd

   Kernel driver in use: i801_smbus

03:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)

   Subsystem: Dell Inspiron 6400

   Kernel driver in use: b44

03:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller

   Subsystem: Dell Device 01bd

   Kernel driver in use: firewire_ohci

03:01.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)

   Subsystem: Dell Device 01bd

03:01.2 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev 01)

   Subsystem: Dell Device 01bd

03:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)

   Subsystem: Dell Device 01bd

03:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)

   Subsystem: Dell Device 01bd

0b:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)

   Subsystem: Dell Wireless 1390 WLAN Mini-Card

   Kernel driver in use: b43-pci-bridge

```

It looks like I'm missing the driver for an SD card reader, display controller and some bridges.

Can someone figure out what I need? Do I have to have drivers for all bridges?

Thank you.

----------

## cach0rr0

the only one there id pay attention to is the SD card reader

the bridges, display, etc, doesnt rely on their own unique driver

can you post your lspci -n? easy enough to tell you which MMC features to enable. You probably just need sdhci-pci, but we'll see

----------

## ONEEYEMAN

cach0rr0,

Sure thing.

```

IgorsGentooOnNetwork linux # lspci -n

00:00.0 0600: 8086:27a0 (rev 03)

00:02.0 0300: 8086:27a2 (rev 03)

00:02.1 0380: 8086:27a6 (rev 03)

00:1b.0 0403: 8086:27d8 (rev 01)

00:1c.0 0604: 8086:27d0 (rev 01)

00:1c.3 0604: 8086:27d6 (rev 01)

00:1d.0 0c03: 8086:27c8 (rev 01)

00:1d.1 0c03: 8086:27c9 (rev 01)

00:1d.2 0c03: 8086:27ca (rev 01)

00:1d.3 0c03: 8086:27cb (rev 01)

00:1d.7 0c03: 8086:27cc (rev 01)

00:1e.0 0604: 8086:2448 (rev e1)

00:1f.0 0601: 8086:27b9 (rev 01)

00:1f.2 0101: 8086:27c4 (rev 01)

00:1f.3 0c05: 8086:27da (rev 01)

03:00.0 0200: 14e4:170c (rev 02)

03:01.0 0c00: 1180:0832

03:01.1 0805: 1180:0822 (rev 19)

03:01.2 0880: 1180:0843 (rev 01)

03:01.3 0880: 1180:0592 (rev 0a)

03:01.4 0880: 1180:0852 (rev 05)

0b:00.0 0280: 14e4:4311 (rev 01)

```

And thank you for explanation.

----------

## cach0rr0

right, so, you need to go into menuconfig, hit forward slash (the / ) to search, find and enable:

```

CONFIG_MMC_SDHCI=m

CONFIG_MMC_SDHCI_PCI=m

```

and from what i can glean, you also need this (found grepping through kernel source)

```

mtd/nand/r852.c:        { PCI_VDEVICE(RICOH, 0x0852), },

```

which appears to be this:

```

 CONFIG_MTD_NAND_RICOH:

  │

  │ Enable support for Ricoh R5C852 xD card reader

  │ You also need to enable ether

  │ NAND SSFDC (SmartMedia) read only translation layer' or new

  │ expermental, readwrite

  │ 'SmartMedia/xD new translation layer'

  │

  │ Symbol: MTD_NAND_RICOH [=m]

  │ Type  : tristate

  │ Prompt: Ricoh xD card reader

  │   Defined at drivers/mtd/nand/Kconfig:128

  │   Depends on: MTD [=m] && MTD_NAND [=m] && PCI [=y]

  │   Location:

  │     -> Device Drivers

  │       -> Memory Technology Device (MTD) support (MTD [=m])

  │         -> NAND Device Support (MTD_NAND [=m])

  │   Selects: MTD_SM_COMMON [=n]

```

This one was not as easy to find, but well, found it! 

Read the comments above too, where it tells you to select a translation layer (these are both found under NAND Device Support - one does read-only, one does read-write but is experimental; i have no idea which you should choose, but if you want to write to this xD card, go with experimental and pray!)

That should be it.

----------

## ONEEYEMAN

cach0rr0,

Do they have to be compiled as a modules?

Thank you.

----------

## cach0rr0

 *ONEEYEMAN wrote:*   

> cach0rr0,
> 
> Do they have to be compiled as a modules?
> 
> Thank you.

 

for this kind of thing, my own personal preference would be modules

smaller kernel, only load these modules when needed (and theyll likely be loaded automatically as needed). 

either way should work, but I tend to do all modules except for things absolutely critical to boot (unless it's a server, then i do exclusively built-ins)

----------

