28.02.2014 19:36, Никита Киприянов пишет: > Hi! > > Ставлю дженту на эту машину. В машине имеется встроенный кардридер > SD/MMC, который в lspci по идее видится как Realtek Semiconductor Co., > Ltd. RTS5229 PCI Express Card Reader (rev 01) > > > Странность в том, что если грузить машину с вставленной карточкой, то он > видится. Вынимание и вставление карточки обнаруживается ядром, udisks и > т. д.. lspci в таком случае выглядит так: > > 00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM > Controller (rev 09) > 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core > processor Graphics Controller (rev 09) > 00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset > Family USB xHCI Host Controller (rev 04) > 00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series > Chipset Family MEI Controller #1 (rev 04) > 00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset > Family USB Enhanced Host Controller #2 (rev 04) > 00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset > Family High Definition Audio Controller (rev 04) > 00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset > Family PCI Express Root Port 1 (rev c4) > 00:1c.2 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset > Family PCI Express Root Port 3 (rev c4) > 00:1c.3 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset > Family PCI Express Root Port 4 (rev c4) > 00:1c.5 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset > Family PCI Express Root Port 6 (rev c4) > 00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset > Family USB Enhanced Host Controller #1 (rev 04) > 00:1f.0 ISA bridge: Intel Corporation HM76 Express Chipset LPC > Controller (rev 04) > 00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family > 6-port SATA Controller [AHCI mode] (rev 04) > 02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 > PCI Express Card Reader (rev 01) > 03:00.0 Network controller: Ralink corp. RT3290 Wireless 802.11n 1T/1R PCIe > 03:00.1 Bluetooth: Ralink corp. RT3290 Bluetooth > 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. > RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c) > > Касательно этого устройства в dmesg имеются такие строки: > [ 1.671078] pci 0000:02:00.0: [10ec:5229] type 00 class 0xff0000 > [ 1.671103] pci 0000:02:00.0: reg 10: [mem 0xd0700000-0xd0700fff] > [ 1.671272] pci 0000:02:00.0: supports D1 D2 > [ 1.671273] pci 0000:02:00.0: PME# supported from D1 D2 D3hot > ... > [ 1.854614] pci 0000:02:00.0: Signaling PME through PCIe PME interrupt > ... > [ 3.101202] rtsx_pci 0000:02:00.0: irq 46 for MSI/MSI-X > [ 3.101215] rtsx_pci 0000:02:00.0: rtsx_pci_acquire_irq: pcr->msi_en > = 1, pci->irq = 46 > > > В то же время, если машину загрузить без карточки в кардридере, строки > 02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 > PCI Express Card Reader (rev 01) > в lspci не будет, и в dmesg про это устройство тоже ничего не будет. > Можно сколько угодно тыкать карточки - система их не видит и никаких > уведомлений нет. Но если со вставленной карточкой теперь сделать echo > "1" > /sys/bus/pci/rescan - немедленно появляется сообщение "нашёл > карточку", кардридер проявляется в lspci, а в dmesg появляются такие > сообщения: > [ 532.090303] pci 0000:02:00.0: [10ec:5229] type 00 class 0xff0000 > [ 532.090337] pci 0000:02:00.0: reg 10: [mem 0x00000000-0x00000fff] > [ 532.090531] pci 0000:02:00.0: supports D1 D2 > [ 532.090533] pci 0000:02:00.0: PME# supported from D1 D2 D3hot > [ 532.092283] pci 0000:02:00.0: BAR 0: assigned [mem > 0xd0700000-0xd0700fff] > [ 532.092349] rtsx_pci 0000:02:00.0: enabling device (0000 -> 0002) > [ 532.092464] rtsx_pci 0000:02:00.0: irq 50 for MSI/MSI-X > [ 532.092483] rtsx_pci 0000:02:00.0: rtsx_pci_acquire_irq: pcr->msi_en > = 1, pci->irq = 50 > > (rtsx_pci - это, очевидно, драйвер кардридера) > > С этого момента устройство работает как положено. Если оно уже нашлось, > рескан без карточки его не отключает и оно никуда не девается. > > Вначале думал на PCI hotplug (он был у меня отключен - нет смысла, > expresscard-слотов в ноутбуке нет, так что хотплажить нечего). > Пересобрал ядро со всевозможными (как я думаю) хотплагами: > CONFIG_HOTPLUG_PCI_PCIE=y > CONFIG_PCI_IOAPIC=y > CONFIG_HOTPLUG_PCI=y > CONFIG_HOTPLUG_PCI_ACPI=y > Не помогло. > > Не сталкивался ли кто-то с подобным поведением? Что это происходит и как > это лечить? > > Все необходимые опции[1] включены? Какая версия ядра? [1] - https://lists.debian.org/debian-kernel/2013/03/msg00026.html -- Best regards, Sergey Popov Gentoo developer Gentoo Desktop-effects project lead Gentoo Qt project lead Gentoo Proxy maintainers project lead