Ubuntu 14.04 O Realtek Semiconductor Co., Ltd. O Leitor de Cartão PCI Express RTS5227 não está funcionando

5

Li algumas outras mensagens que emitiram este problema. Mas sem uma solução para exatamente esse problema. Eu instalei o Ubuntu 14.04 no meu Lenovo T440s.

Realtek Semiconductor Co., Ltd. O leitor de cartão PCI Express RTS5227 não está funcionando.

Depois de empurrar um cartão SD para o slot, nada aconteceu.

# 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

greetz

    
por user286440 29.05.2014 / 11:49

5 respostas

2

trabalhando na MSI GE60 Eu tenho um Realtek Semiconductor Co., Ltd. RTS5227 trabalhando no windows mas não no linux mint (baseado no Ubuntu).

ATENÇÃO / IMPORTANTE:

use este método para induzir o dispositivo a não reconhecer o leitor de cartão após a reinicialização. Eu não entendi ainda o que está acontecendo, mas o dispositivo parece não ser capaz de enumerar no barramento PCI. Eu consertei isso por inicialização a frio no windows (com driver oficial).

Eu encontrei alguns tutoriais para o rts5209 e tentei adaptá-los:

link

link

Eu levei as fontes para RTS5229 do site realtek (PCIE RTS5229 driver leitor de cartão para Linux): não mais de 2 links na minha mensagem, tutoriais parece mais importante - > google

então eu fiz um pouco mais de modificação de código do que nos tutoriais linkados em rtcx.c para construir sem erro: comente a declaração de proc_info na linha de inicialização rtsx_host_template 206.

(before)
.proc_info = proc_info, 

(after)
//.proc_info = proc_info,

uma vez que eu passei por isso eu construí o driver e tentei ir com ele, mas obviamente o link entre driver e hardware não estava lá.

Então peguei o nome do meu dispositivo e tentei modificar o código para ter o nome do dispositivo correto. Entre nas primeiras linhas (55) do rtsx.h e adapte a definição do nome do dispositivo à sua necessidade:

(before)
#define CR_DRIVER_NAME "rts5229"

(after)
#define CR_DRIVER_NAME "rts5227"

Depois do que modifiquei o alvo do Makefile:

(before)
TARGET_MODULE := rts5229

(after)
TARGET_MODULE := rts5227

depois do que

make clean
make
sudo make install
sudo depmod
sudo modprobe rts5227

verifique se o seu dispositivo não está usando o módulo rtsx_pci (lspci -v) se for necessário usar o modo Dainaccio para corrigir isso (perto do final do segundo tutorial).

quando seu módulo é carregado corretamente, um ls / dev deve mostrar uma nova interface (para mim / dev / sdb): D

Na verdade, isso não é realmente limpo. O problema é que deve haver muito mais compreensão da diferença entre a versão do leitor de 2 cartões e muito mais entendimento do driver para fazer com que isso funcione bem.

O driver é basicamente funcional, você pode montar / desmontar partição, escrever e ler no cartão, inserção e remoção é detectada. Eu não testei o automount. Mas, de qualquer forma, um lspci -v com o driver funcionando mostrará a você que essa solução não está limpa: a classe periférica não é reconhecida para que os outros valores sejam considerados. Por um breve olhar no código eu também vi muitas referências embutidas no código rts5229. eles poderiam ser algum trabalho a ser feito ...

de qualquer forma, tenha um bom dia!

~~~~~

    
por T. Delizy 28.06.2014 / 00:31
2

O upstream rtsx_pci gerencia o leitor de cartões.

Ainda Algo está errado como eu tive que descarregar, em seguida, recarregar o driver para que ele funcione:

# modprobe -r rtsx_pci
# modprobe rtsx_pci

PS: Eu ainda não relatei (ou verifiquei o problema já foi relatado) para o upstream. Espero fazê-lo em breve, mas sinta-se à vontade para me vencer (o requisito onyl é ter hardware que reproduza o bug).

Aqui no Thinkpad Yoga S1, que também envia este dispositivo:

# 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
    
por Alban Browaeys 02.10.2014 / 16:11
1

foi o driver rts_pstor no meu sistema Debian. levou dois rmmod / modprobe ciclos para fazê-lo funcionar.

    
por jcomeau_ictx 09.07.2017 / 00:15
0

Eu tentei acima da solução, mas não funcionou no meu Lenovo T540p e Linux Mint Mate 14.04 LTS. Eu estudei as fontes do kernel (cabeçalho) e não encontrei nenhuma solução. Então baixei o kernel estável 19.1 do link e encontrei em /usr/src/linux_19.1/drivers/mfd/ um arquivo chamado rts5227.c . Este arquivo pode ser encontrado desde a versão 3.9 do kernel e acima.

Eu decidi compilar o novo kernel incl. o .config original usando

make oldconfig
make menuconfig

Em seguida, deixei o menuconfig após salvar a configuração atual e compilei o kernel e os módulos:

make

Para instalar módulos:

sudo make modules_install

Para instalar o novo kernel e atualizar o Grub2

sudo make install

Quando tudo estiver pronto, reinicialize o sistema (tive que reinicializar duas vezes, porque a primeira reinicialização acabou no shell do initramfs (não encontrei "dev by uuid"))

Agora você deve ver seu cartão SD inserido no slot SD. Eu tenho uma placa PCIe USB 3.0 no slot PCIe e está funcionando agora.

    
por Robert Müller 09.03.2015 / 14:40
-1

Você pode tentar o seguinte código para ativar o módulo rtsx_pci na inicialização.

echo "rtsx_pci" | sudo tee -a /etc/modules
    
por Butterfly 02.11.2014 / 16:42