ThinkPad E470にArch Linuxをインストールしましたが、SDカードリーダーに問題があります。
カードから読み書きできますが、カードを使用するとランダムな遅延が発生し、コンピュータが1〜2秒間停止します。
現時点では Google ではヘルプを提供していません。これはカーネルが数分ごとに話すことです。カードは他の(以前の)コンピュータで問題なくうまく機能します。
[ 3819.841392] mmc0: card 59b4 removed
[ 3820.984122] mmc0: Tuning timeout, falling back to fixed sampling clock
[ 3820.984290] mmc0: new ultra high speed SDR104 SDXC card at address 59b4
[ 3820.984418] mmcblk0: mmc0:59b4 SD000 120 GiB
[ 3831.241070] mmc0: Timeout waiting for hardware interrupt.
[ 3831.241075] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 3831.241080] mmc0: sdhci: Sys addr: 0x00000008 | Version: 0x00000603
[ 3831.241084] mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000008
[ 3831.241089] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x0000003b
[ 3831.241093] mmc0: sdhci: Present: 0x01ff0000 | Host ctl: 0x00000017
[ 3831.241098] mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 3831.241102] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 3831.241107] mmc0: sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 3831.241111] mmc0: sdhci: Int enab: 0x02ff008b | Sig enab: 0x02ff008b
[ 3831.241115] mmc0: sdhci: AC12 err: 0x00000004 | Slot int: 0x00000000
[ 3831.241120] mmc0: sdhci: Caps: 0x25f8c8bf | Caps_1: 0x00002077
[ 3831.241124] mmc0: sdhci: Cmd: 0x0000123a | Max curr: 0x005800c8
[ 3831.241129] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[ 3831.241133] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000800
[ 3831.241136] mmc0: sdhci: Host ctl2: 0x0000800b
[ 3831.241140] mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x37400208
[ 3831.241141] mmc0: sdhci: ============================================
[ 3831.241744] mmcblk0: error -84 sending status command, retrying
[ 3831.292067] mmc0: Tuning timeout, falling back to fixed sampling clock
[ 3831.292287] mmcblk0: error -84 sending status command, retrying
[ 3831.343034] mmc0: Tuning timeout, falling back to fixed sampling clock
[ 3831.343229] mmcblk0: error -110 sending stop command, original cmd response 0x0, card status 0x900
[ 3831.343231] mmcblk0: error -110 transferring data, sector 0, nr 8, cmd response 0x0, card status 0x0
[ 3831.917030] mmc0: Tuning timeout, falling back to fixed sampling clock
[ 3841.992991] mmc0: Timeout waiting for hardware interrupt.
[ 3841.992994] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 3841.992999] mmc0: sdhci: Sys addr: 0x00000008 | Version: 0x00000603
[ 3841.993004] mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000008
[ 3841.993008] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x0000003b
[ 3841.993013] mmc0: sdhci: Present: 0x01ff0000 | Host ctl: 0x00000017
[ 3841.993017] mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 3841.993021] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 3841.993026] mmc0: sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 3841.993030] mmc0: sdhci: Int enab: 0x02ff008b | Sig enab: 0x02ff008b
[ 3841.993035] mmc0: sdhci: AC12 err: 0x00000004 | Slot int: 0x00000000
[ 3841.993039] mmc0: sdhci: Caps: 0x25f8c8bf | Caps_1: 0x00002077
[ 3841.993044] mmc0: sdhci: Cmd: 0x0000123a | Max curr: 0x005800c8
[ 3841.993048] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[ 3841.993052] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000800
[ 3841.993055] mmc0: sdhci: Host ctl2: 0x0000800b
[ 3841.993059] mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x37400208
[ 3841.993060] mmc0: sdhci: ============================================
[ 3841.993209] mmcblk0: error -84 sending status command, retrying
[ 3842.044004] mmc0: Tuning timeout, falling back to fixed sampling clock
[ 3842.044201] mmcblk0: error -110 sending stop command, original cmd response 0x0, card status 0x900
[ 3842.044203] mmcblk0: error -110 transferring data, sector 0, nr 8, cmd response 0x0, card status 0x0
[ 3842.044208] mmcblk0: retrying using single block read
[ 3842.056999] mmcblk0: p1
[ 3934.384760] mmc0: card 59b4 removed
編集する:
[user@e470-arch ~]$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 5986:2109 Acer, Inc
Bus 001 Device 002: ID 0cf3:e500 Qualcomm Atheros Communications
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[user@e470-arch ~]$ lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
00:1d.2 PCI bridge: Intel Corporation Device 9d1a (rev f1)
00:1d.3 PCI bridge: Intel Corporation Device 9d1b (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
02:00.0 SD Host controller: O2 Micro, Inc. SD/MMC Card Reader Controller (rev 01)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
05:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)
これ:
[ 0.686312] sdhci-pci 0000:02:00.0: SDHCI controller found [1217:8621] (rev 1)
[ 0.686405] sdhci-pci 0000:02:00.0: enabling device (0000 -> 0002)
[ 0.687346] mmc0: Unknown controller version (3). You may experience problems.
答え1
これを偶然発見した人にとっては、これが私にとって効果的でした。
Xubuntu 18.04を実行しているThinkpad E480では、「エラー-84 /チューニングタイムアウト」の問題があります。ドライバコードを調べた後、クロックチューニングに関連するモジュール奇妙なフラグ(SDHCI_QUIRK2_TUNING_WORK_AROUND)を試しました。
sdhciとsdhci_pciをrmmodして再ロードしましたが、カードがエラーなく表示されました。
sudo modprobe sdhci "debug_quirks2=0x1000"; sudo modprobe sdhci_pci
FWIWより多くのクロック/待機時間関連フラグがあります。 sdhci.hで完全なリストを見ることができます(行ごとにコメントされています)。
答え2
この問題が発生する理由の1つは、sdhciドライバが「高速すぎる」ためです。デバイスクロック()を有効にしたsdhci_enable_clk
後にわずかな遅延を挿入すると、一部のカードを「修正」することができます。
最新のカーネルでは、この問題の回避策をarasanホストコントローラのデバイスツリーで有効にできます。バラよりhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=26c312281336b55eba01ea1e7b85740d383076c6