# DELL XPS 15: 9-in-1 card reader and kernel options [SOLVED]

## Yczo

Hello to everyone. I'm a newbie compiling my own linux kernels.

I have a laptop with a single  9-in-1 card reader that supports  SD, SDIO, SDXC, SDHC, MS, MS Pro, MMC, MSXC, xD, SDIO, SDXC, SDHC, MS, MS Pro, MMC, MSXC, xD.

I would like use it with my linux. The problem is that i don't have idea about the correct choices in the kernel and why i must select them.

i could not find a solution in google.

Please can anyone help me? Thanks forward.

Regards.Last edited by Yczo on Thu Jan 19, 2012 10:33 am; edited 2 times in total

----------

## Gusar

Well, first we need to know what hardware you have. So post the output of lspci -nn and lsusb.

----------

## Yczo

Well is an integrated card reader, but here are the answers

#lspci -nn

00:00.0 Host bridge [0600]: Intel Corporation Core Processor DMI [8086:d132] (rev 11)

00:03.0 PCI bridge [0604]: Intel Corporation Core Processor PCI Express Root Port 1 [8086:d138] (rev 11)

00:08.0 System peripheral [0880]: Intel Corporation Core Processor System Management Registers [8086:d155] (rev 11)

00:08.1 System peripheral [0880]: Intel Corporation Core Processor Semaphore and Scratchpad Registers [8086:d156] (rev 11)

00:08.2 System peripheral [0880]: Intel Corporation Core Processor System Control and Status Registers [8086:d157] (rev 11)

00:08.3 System peripheral [0880]: Intel Corporation Core Processor Miscellaneous Registers [8086:d158] (rev 11)

00:10.0 System peripheral [0880]: Intel Corporation Core Processor QPI Link [8086:d150] (rev 11)

00:10.1 System peripheral [0880]: Intel Corporation Core Processor QPI Routing and Protocol Registers [8086:d151] (rev 11)

00:16.0 Communication controller [0780]: Intel Corporation 5 Series/3400 Series Chipset HECI Controller [8086:3b64] (rev 06)

00:1a.0 USB Controller [0c03]: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller [8086:3b3c] (rev 06)

00:1b.0 Audio device [0403]: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio [8086:3b56] (rev 06)

00:1c.0 PCI bridge [0604]: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 [8086:3b42] (rev 06)

00:1c.1 PCI bridge [0604]: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 [8086:3b44] (rev 06)

00:1c.3 PCI bridge [0604]: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 [8086:3b48] (rev 06)

00:1c.4 PCI bridge [0604]: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 5 [8086:3b4a] (rev 06)

00:1c.5 PCI bridge [0604]: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 [8086:3b4c] (rev 06)

00:1d.0 USB Controller [0c03]: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller [8086:3b34] (rev 06)

00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev a6)

00:1f.0 ISA bridge [0601]: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller [8086:3b0b] (rev 06)

00:1f.2 SATA controller [0106]: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller [8086:3b2f] (rev 06)

00:1f.3 SMBus [0c05]: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller [8086:3b30] (rev 06)

00:1f.6 Signal processing controller [1180]: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem [8086:3b32] (rev 06)

02:00.0 VGA compatible controller [0300]: nVidia Corporation Device [10de:0df2] (rev a1)

02:00.1 Audio device [0403]: nVidia Corporation Device [10de:0bea] (rev a1)

04:00.0 Network controller [0280]: Intel Corporation WiFi Link 1000 Series [8086:0083]

05:00.0 USB Controller [0c03]: NEC Corporation Device [1033:0194] (rev 03)

09:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 06)

ff:00.0 Host bridge [0600]: Intel Corporation Core Processor QuickPath Architecture Generic Non-Core Registers [8086:2c52] (rev 04)

ff:00.1 Host bridge [0600]: Intel Corporation Core Processor QuickPath Architecture System Address Decoder [8086:2c81] (rev 04)

ff:02.0 Host bridge [0600]: Intel Corporation Core Processor QPI Link 0 [8086:2c90] (rev 04)

ff:02.1 Host bridge [0600]: Intel Corporation Core Processor QPI Physical 0 [8086:2c91] (rev 04)

ff:03.0 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller [8086:2c98] (rev 04)

ff:03.1 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Target Address Decoder [8086:2c99] (rev 04)

ff:03.4 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Test Registers [8086:2c9c] (rev 04)

ff:04.0 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Channel 0 Control Registers [8086:2ca0] (rev 04)

ff:04.1 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Channel 0 Address Registers [8086:2ca1] (rev 04)

ff:04.2 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Channel 0 Rank Registers [8086:2ca2] (rev 04)

ff:04.3 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Channel 0 Thermal Control Registers [8086:2ca3] (rev 04)

ff:05.0 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Channel 1 Control Registers [8086:2ca8] (rev 04)

ff:05.1 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Channel 1 Address Registers [8086:2ca9] (rev 04)

ff:05.2 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Channel 1 Rank Registers [8086:2caa] (rev 04)

ff:05.3 Host bridge [0600]: Intel Corporation Core Processor Integrated Memory Controller Channel 1 Thermal Control Registers [8086:2cab] (rev 04)

# lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub

Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub

Bus 001 Device 003: ID 0408:2fb1 Quanta Computer, Inc. 

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 003 Device 002: ID ffc0:0040

I can't identify here the card reader by myshelf

----------

## boerKrelis

You need the "Probe multiple LUNs" thingy.

```

CONFIG_SCSI_MULTI_LUN=y

```

----------

## NeddySeagoon

Yczo,

It will appear as a single SCSI device with multiple Logical Units.

You need SCSI disk, which you should have already, SCSI Generic, to support the SCSI protocol over random bus types. and Probe All Logical Unit Numbers. (LUNs)

If your device it attached to the USB bus, you also need usb-storage

----------

## Yczo

[edit: NeddySeagoon, the bellow message was wrote before your post . Pardon me and thanks... I will follow your indications Regards] 

boerKrelis, tank you for your help, but sadly I had already activated and I can not work yet. Must be missing some piece to the puzzle.

On windows could i see the next information for device:

 JMB38x SD/MMC/XD 

JMCR SCSI disk device JMicron device tecnology

And the result of lshw is:

#lshw

-generic:0 UNCLAIMED

                description: System peripheral

                product: SD/MMC Host Controller

                vendor: JMicron Technology Corp.

                physical id: 0

                bus info: pci@0000:07:00.0

                version: 30

                width: 32 bits

                clock: 33MHz

                capabilities: pm pciexpress msi bus_master cap_list

                configuration: latency=0

                resources: memory:f0700000-f07000ff

           *-generic:1 UNCLAIMED

                description: SD Host controller

                product: Standard SD Host Controller

                vendor: JMicron Technology Corp.

                physical id: 0.2

                bus info: pci@0000:07:00.2

                version: 30

                width: 32 bits

                clock: 33MHz

                capabilities: pm pciexpress msi bus_master cap_list

                configuration: latency=0

                resources: memory:f0700400-f07004ff

           *-generic:2 UNCLAIMED

                description: System peripheral

                product: MS Host Controller

                vendor: JMicron Technology Corp.

                physical id: 0.3

                bus info: pci@0000:07:00.3

                version: 30

                width: 32 bits

                clock: 33MHz

                capabilities: pm pciexpress msi bus_master cap_list

                configuration: latency=0

                resources: memory:f0700800-f07008ff

           *-generic:3 UNCLAIMED

                description: System peripheral

                product: xD Host Controller

                vendor: JMicron Technology Corp.

                physical id: 0.4

                bus info: pci@0000:07:00.4

                version: 30

                width: 32 bits

                clock: 33MHz

                capabilities: pm pciexpress msi bus_master cap_list

                configuration: latency=0

                resources: memory:f0700c00-f0700cff

i will try serch in this directionLast edited by Yczo on Thu Jan 19, 2012 10:27 am; edited 1 time in total

----------

## Gusar

JMB38x is a pretty much standard card reader. My netbook has it. But why doesn't it show up in lscpi??

You can try the tricks I have to use on my netbook to get the thing working, but no guarantee of success. First, add "pcie_ports=native" to the kernel line in the grub config. Then compile pciehp (pci-e hotplugging) in your kernel as a module and have it loaded automatically by adding this to /etc/conf.d/modules

```
modules="pciehp"

module_pciehp_args="pciehp_force=1"
```

And just to make sure, do you have sdhci_pci, mmc and mmc_block support in your kernel?

----------

## Yczo

Thank you very much for your help Gusar.

Well I found another solution more. Setting the following choices for the kernel:

Device Drivers  --->

  <*> MMC/SD/SDIO card support  --->

    <*>   MMC block device driver

    <*>   Secure Digital Host Controller Interface support

    <M>     SDHCI support on PCI bus

  <*> Sony MemoryStick card support (EXPERIMENTAL)  --->

    <*>   MemoryStick Pro block device driver

    <M>   JMicron JMB38X MemoryStick interface support (EXPERIMENTAL)

[EDIT]: WARNING:  The card must be inserted before boot time!!!! Or will not work, at least you will execute like root: 

  #echo 1 > /sys/bus/pci/rescan     //Rescan devices from PCI bus

[end of EDIT]

hopefully this post will also serve to someone else. Greetings to all and especially to those who helped me. 

see you soon!

----------

