PCIe card reader на ноутбуке HP ProBook 450s G0

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

PCIe card reader на ноутбуке HP ProBook 450s G0

Nikita Kipriyanov
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
Не помогло.

Не сталкивался ли кто-то с подобным поведением? Что это происходит и как
это лечить?


Reply | Threaded
Open this post in threaded view
|

Re: PCIe card reader на ноутбуке HP ProBook 450s G0

Sergey Popov
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


signature.asc (567 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: PCIe card reader на ноутбуке HP ProBook 450s G0

Nikita Kipriyanov
Sergey Popov писал 2014-03-01 15:27:

>> Касательно этого устройства в 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
>
> Все необходимые опции[1] включены? Какая версия ядра?
>
> [1] - https://lists.debian.org/debian-kernel/2013/03/msg00026.html

MEMSTICK_REALTEK_PCI - это для Sony MemoryStick карт. Такой поддержки в
этом ноутбуке нет, поэтому этого драйвера в системе нет. Попробовал его
собрать - ничего не изменилось. Он просто бесполезен в этой системе.
Остальные собраны в ядро, хотя пробовал модулями - то же самое.

Да кард-ридер работает, из чего делаю вывод, что все необходимые
драйверы есть. Но почему-то он не присутствует в системе, если на момент
опроса PCI-шины в нём не была вставлена карточка.

Мне непонятно, почему ядро само не узнаёт, что появилось новое
устройство. Ну и вообще почему устройства нет как такового, если грузить
машину без карточки. То есть, почему вывод lspci вообще зависит от того,
вставлена карточка в момент загрузки системы (ну или rescan) или нет, и
как это исправить - ну или хотя бы как сделать так, чтобы при вставке
карточки ядро само делало рескан.


Reply | Threaded
Open this post in threaded view
|

Re: [gentoo-user-ru] PCIe card reader на ноутбуке HP ProBook 450s G0

Nikita Tropin



2 марта 2014 г., 21:16 пользователь Никита Киприянов <[hidden email]> написал:
Sergey Popov писал 2014-03-01 15:27:
Касательно этого устройства в 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
...
<a href="tel:%5B%20%20%20%203.101202" value="+13101202" target="_blank">[ 3.101202] rtsx_pci 0000:02:00.0: irq 46 for MSI/MSI-X
<a href="tel:%5B%20%20%20%203.101215" value="+13101215" target="_blank">[ 3.101215] rtsx_pci 0000:02:00.0: rtsx_pci_acquire_irq: pcr->msi_en
= 1, pci->irq = 46

Все необходимые опции[1] включены? Какая версия ядра?

[1] - https://lists.debian.org/debian-kernel/2013/03/msg00026.html

MEMSTICK_REALTEK_PCI - это для Sony MemoryStick карт. Такой поддержки в этом ноутбуке нет, поэтому этого драйвера в системе нет. Попробовал его собрать - ничего не изменилось. Он просто бесполезен в этой системе.
Остальные собраны в ядро, хотя пробовал модулями - то же самое.

Да кард-ридер работает, из чего делаю вывод, что все необходимые драйверы есть. Но почему-то он не присутствует в системе, если на момент опроса PCI-шины в нём не была вставлена карточка.

Мне непонятно, почему ядро само не узнаёт, что появилось новое устройство. Ну и вообще почему устройства нет как такового, если грузить машину без карточки. То есть, почему вывод lspci вообще зависит от того, вставлена карточка в момент загрузки системы (ну или rescan) или нет, и как это исправить - ну или хотя бы как сделать так, чтобы при вставке карточки ядро само делало рескан.


Костыль, конечно, и возможно я ошибаюсь, но можно попробовать создать правило udev для event'a, которое генерирует это устройство. Для просмотра event'ов:
$ udevadm monitor (можно не от рута)
Далее man udev секция RULES FILES

--
Regards,
Nikita
Reply | Threaded
Open this post in threaded view
|

Re: [gentoo-user-ru] Re: [gentoo-user-ru] PCIe card reader на ноутбуке HP ProBook 450s G0

Azamat Hackimov
Вот этот пакет попробуйте sys-block/rts5229.


3 марта 2014 г., 2:48 пользователь Nikita Tropin <[hidden email]> написал:



2 марта 2014 г., 21:16 пользователь Никита Киприянов <[hidden email]> написал:

Sergey Popov писал 2014-03-01 15:27:
Касательно этого устройства в 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
...
<a href="tel:%5B%20%20%20%203.101202" value="+13101202" target="_blank">[ 3.101202] rtsx_pci 0000:02:00.0: irq 46 for MSI/MSI-X
<a href="tel:%5B%20%20%20%203.101215" value="+13101215" target="_blank">[ 3.101215] rtsx_pci 0000:02:00.0: rtsx_pci_acquire_irq: pcr->msi_en
= 1, pci->irq = 46

Все необходимые опции[1] включены? Какая версия ядра?

[1] - https://lists.debian.org/debian-kernel/2013/03/msg00026.html

MEMSTICK_REALTEK_PCI - это для Sony MemoryStick карт. Такой поддержки в этом ноутбуке нет, поэтому этого драйвера в системе нет. Попробовал его собрать - ничего не изменилось. Он просто бесполезен в этой системе.
Остальные собраны в ядро, хотя пробовал модулями - то же самое.

Да кард-ридер работает, из чего делаю вывод, что все необходимые драйверы есть. Но почему-то он не присутствует в системе, если на момент опроса PCI-шины в нём не была вставлена карточка.

Мне непонятно, почему ядро само не узнаёт, что появилось новое устройство. Ну и вообще почему устройства нет как такового, если грузить машину без карточки. То есть, почему вывод lspci вообще зависит от того, вставлена карточка в момент загрузки системы (ну или rescan) или нет, и как это исправить - ну или хотя бы как сделать так, чтобы при вставке карточки ядро само делало рескан.


Костыль, конечно, и возможно я ошибаюсь, но можно попробовать создать правило udev для event'a, которое генерирует это устройство. Для просмотра event'ов:
$ udevadm monitor (можно не от рута)
Далее man udev секция RULES FILES

--
Regards,
Nikita



--
From Siberia with Love!
Reply | Threaded
Open this post in threaded view
|

Re: [gentoo-user-ru] Re: [gentoo-user-ru] PCIe card reader на ноутбуке HP ProBook 450s G0

Nikita Kipriyanov
Azamat Hackimov писал 2014-03-03 05:22:
> Вот этот пакет попробуйте sys-block/rts5229.

>> Касательно этого устройства в 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 [1]] rtsx_pci 0000:02:00.0: irq 46 for MSI/MSI-X
>> [ 3.101215 [2]] rtsx_pci 0000:02:00.0: rtsx_pci_acquire_irq:
>> pcr->msi_en
>> = 1, pci->irq = 46

Этот драйвер - альтернатива ядерному rtsc. То есть, сейчас вот загружен
он, а ядро пересобрано вообще без встроенной поддержки этого кардридера.
Ну, всё работает и с ним, выглядит чуть-чуть по-другому (не
/dev/mmcчто-то-там, а /dev/sdb), dmesg чуть-чуть другой. Это всё не
принципиально.

С точки зрения пользователя не изменилось ничего: как не было устройства
в lspci при загрузке системы (и модуля), так его и нет; как нет никаких
уведомлений при вставке карточки, так и нет их (то есть, бесполезно
ловить eventы udevом - их нет). Точно так же устройство и карточка
мгновенно обнаруживаются при рескане pci-шины со вставленнной карточкой
и потом уже никуда не деваются при любых ресканах, даже если выгрузить
модуль.

Осталось предположение, что что-то возможно с управлением питанием. Куда
тут копать, может кто подскажет?