Ubuntu 14.04 Картридер PCI Express Realtek Semiconductor Co., Ltd. RTS5227 не работает

Я прочитал некоторые другие сообщения, выпустив эту проблему. Но без решения для точно этой проблемы. Я установил Ubuntu 14.04 на своей Lenovo T440s.

Realtek Semiconductor Co., Ltd. Картридер PCI Express RTS5227 не работает над ним.

После того, как я продвинул SD-карту в слот, ничего не произошло.

# lspci

02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)
    Subsystem: Lenovo Device 220c
    Flags: fast devsel, IRQ 16
    Memory at f0500000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: [40] Power Management version 3
    Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [70] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Device Serial Number 00-00-00-01-00-4c-e0-00
    Capabilities: [150] Latency Tolerance Reporting
    Capabilities: [158] L1 PM Substates

# lshw
    *-pci:0
         Beschreibung: PCI bridge
         Produkt: Lynx Point-LP PCI Express Root Port 6
         Hersteller: Intel Corporation
         Physische ID: 1c
         Bus-Informationen: pci@0000:00:1c.0
         Version: e4
         Breite: 32 bits
         Takt: 33MHz
         Fähigkeiten: pci pciexpress msi pm normal_decode bus_master cap_list
         Konfiguration: driver=pcieport
         Ressourcen: irq:17 memory:f0500000-f05fffff
       *-generic UNGEFORDERT
            Beschreibung: Unassigned class
            Produkt: RTS5227 PCI Express Card Reader
            Hersteller: Realtek Semiconductor Co., Ltd.
            Physische ID: 0
            Bus-Informationen: pci@0000:02:00.0
            Version: 01
            Breite: 32 bits
            Takt: 33MHz
            Fähigkeiten: pm msi pciexpress cap_list
            Konfiguration: latency=0
            Ressourcen: memory:f0500000-f0500fff

приветствует

5
задан 29 May 2014 в 13:49

5 ответов

работа над MSI GE60 у меня есть Realtek Semiconductor Co., Ltd. RTS5227, работающий над окнами, но не в Linux Mint (на основе человечности).

ВНИМАНИЕ / ВАЖНЫЙ:

использование этот метод может возможно побудить устройство не распознавать картридер после перезагрузки. Я еще не понял, что продолжается, но устройство кажется не способным перечислить на шине PCI. Я зафиксировал это "холодной" начальной загрузкой на окнах (с официальным драйвером).

я нашел некоторые учебные руководства для rts5209 и попытался адаптировать их:

https://vidyut.net/realtek-sd-card-reader-working-ubuntu /

http://dainaccio.wordpress.com/2013/07/14/realtek-sd-reader-mounting-problems-under-linux-mintubuntu/#more-836

я взял источники для RTS5229 от realtek веб-сайта (драйвер картридера PCIE RTS5229 для Linux): не больше, чем 2 ссылки в моем сообщении, учебные руководства кажутся более важными-> Google

тогда, я имел, действительно делают немного больше модификации кода, чем в связанных учебных руководствах в rtcx.c для создания без ошибки: прокомментируйте объявление proc_info в rtsx_host_template строке инициализации 206.

(before)
.proc_info = proc_info, 

(after)
//.proc_info = proc_info,

, как только я прохожу через это, я создал драйвер, и попытайтесь пойти с ним, но очевидно ссылка между драйвером и аппаратными средствами не была там.

, Таким образом, я взял название своего устройства и попытки изменить код для имения правильного имени устройства. Войдите в первые строки (55) из rtsx.h и адаптируйте определение имени устройства к Вашей потребности:

(before)
#define CR_DRIVER_NAME "rts5229"

(after)
#define CR_DRIVER_NAME "rts5227"

После того, что я изменил цель Make-файла:

(before)
TARGET_MODULE := rts5229

(after)
TARGET_MODULE := rts5227

после того, что

make clean
make
sudo make install
sudo depmod
sudo modprobe rts5227

проверяют, что Ваше устройство не использует rtsx_pci модуль (lspci-v), если имеет место, что необходимо использовать Dainaccio способ зафиксировать это (около конца второго учебного руководства).

, когда Ваш модуль правильно загружается, ls/dev должен показать Вам новый интерфейс (для меня/dev/sdb): D

На самом деле это не действительно чисто. Вещь должно быть намного больше понимания различия между 2 версиями картридера и намного больше понимания драйвера, чтобы заставить это хорошо работать.

драйвер в основном функционален, можно смонтироваться / раздел размонтирования, записать и читать на карте, вставка и удаление обнаруживаются. Я не протестировал автомонтирование. Но так или иначе lspci-v с работой драйвера покажет Вам, что это решение не является чистым: периферийный класс не распознан так значения других, я думаю. Беглым взглядом в коде я также видел многих ссылка, трудно кодированная к rts5229. они могли быть некоторой работой, которая будет сделана...

так или иначе, хорошего дня!

~~~~~

0
ответ дан 29 May 2014 в 13:49

Восходящий поток rtsx_pci управляет картридером.

Тем не менее Что-то неправильно, поскольку я должен был разгрузиться, затем перезагружают драйвер для него для работы:

# modprobe -r rtsx_pci
# modprobe rtsx_pci

PS: Я еще не сообщил (или даже проверил, что о проблеме уже сообщили) к восходящему потоку. Я надеюсь сделать это скоро, хотя не стесняются бить меня в том (onyl требование состоит в том, чтобы иметь аппаратные средства, которые воспроизводят ошибку).

Здесь на Йоге ThinkPad S1, которые также поставляют это устройство:

# lspci

05:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)
Subsystem: Lenovo Device 2217
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 75
Region 0: Memory at f0400000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 3
    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Address: 00000000fee0f00c  Data: 41e2
Capabilities: [70] Express (v2) Endpoint, MSI 00
    DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
        MaxPayload 128 bytes, MaxReadReq 512 bytes
    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
    LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us
        ClockPM+ Surprise- LLActRep- BwNot-
    LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk-
        ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
    LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
    DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR+, OBFF Via message/WAKE#
    DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled
    LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
         Compliance De-emphasis: -6dB
    LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [100 v2] Advanced Error Reporting
    UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
    UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
    UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
    CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
    CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
    AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Capabilities: [140 v1] Device Serial Number 00-00-00-01-00-4c-e0-00
Capabilities: [150 v1] Latency Tolerance Reporting
    Max snoop latency: 71680ns
    Max no snoop latency: 71680ns
Capabilities: [158 v1] L1 PM Substates
    L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
          PortCommonModeRestoreTime=60us PortTPowerOnTime=60us
Kernel driver in use: rtsx_pci
2
ответ дан 29 May 2014 в 13:49

Я попробовал выше решения, но оно не делает работавший на моем Помощнике Lenovo T540p и Linux Mint 14.04 LTS. Я изучил источники ядра (заголовок) и не нашел решения. Таким образом, я загрузил стабильное ядро 19.1 с http://www.kernel.org и нашел в /usr/src/linux_19.1/drivers/mfd/ файл называют rts5227.c. Этот файл может быть найден начиная с версии 3.9 ядра и выше.

Я решил скомпилировать новое ядро, включая оригинал .config при помощи

make oldconfig
make menuconfig

Затем я уехал menuconfig после сохранения текущей конфигурации и скомпилированный ядро и модули:

make

Устанавливать модули:

sudo make modules_install

Установить новое ядро и обновить Grub2

sudo make install

То, когда все готово, система перезагрузки (я должен был перезагрузить дважды, потому что первая перезагрузка закончилась в оболочке initramfs (не нашло "dev uuid")),

Теперь необходимо видеть SD-карту, вставленную в слот SD. У меня есть карта PCIe USB 3.0 в слоте PCIe, и она работает теперь.

0
ответ дан 29 May 2014 в 13:49

Можно попробовать следующий код за, включают rtsx_pci модуль на начальной загрузке.

echo "rtsx_pci" | sudo tee -a /etc/modules
0
ответ дан 29 May 2014 в 13:49

это было rts_pstor драйвер в моей системе Debian. взял два rmmod / modprobe циклы, чтобы заставить это работать.

1
ответ дан 29 May 2014 в 13:49
  • 1
    есть ли какая-либо причина, что нормальная человечность невыполнима Вам? – ideaman924 14 December 2015 в 23:39

Другие вопросы по тегам:

Похожие вопросы: