JMicronカードリーダーを搭載したHP EliteBook 8460pがあります。
rolf@deb:/sys$ sudo lshw |grep JMicron -B 3 -A 8
*-firewire
description: FireWire (IEEE 1394)
product: IEEE 1394 Host Controller
vendor: JMicron Technology Corp.
physical id: 0
bus info: pci@0000:23:00.0
version: 30
width: 32 bits
clock: 33MHz
capabilities: pm pciexpress msi ohci bus_master cap_list
configuration: driver=firewire_ohci latency=0
resources: irq:18 memory:d4600000-d46007ff memory:d4605000-d46050ff
*-generic:0
description: System peripheral
product: SD/MMC Host Controller
vendor: JMicron Technology Corp.
physical id: 0.1
bus info: pci@0000:23:00.1
version: 30
width: 32 bits
clock: 33MHz
capabilities: pm pciexpress msi bus_master cap_list rom
configuration: driver=sdhci-pci latency=0
resources: irq:18 memory:d4604000-d46040ff memory:d4608000-d460ffff
*-generic:1 UNCLAIMED
description: SD Host controller
product: Standard SD Host Controller
vendor: JMicron Technology Corp.
physical id: 0.2
bus info: pci@0000:23:00.2
version: 30
width: 32 bits
clock: 33MHz
capabilities: pm pciexpress msi cap_list
configuration: latency=0
resources: memory:d4603000-d46030ff
rolf@deb:/sys$ uname -a && lsb_release -a
Linux deb 4.15.0-2-amd64 #1 SMP Debian 4.15.11-1 (2018-03-20) x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux testing (buster)
Release: testing
Codename: buster
読み出し速度は約10MB/sです。 Windows 10では、速度は常に80 MB / sです。
次の抜粋がdmesg
関連する可能性があります。
[ 1.988810] sdhci: Secure Digital Host Controller Interface driver
[ 1.988811] sdhci: Copyright(c) Pierre Ossman
[ 1.989507] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.989530] sdhci-pci 0000:23:00.1: SDHCI controller found [197b:2392] (rev 30)
[ 1.989647] mmc0 bounce up to 128 segments into one, max segment size 65536 bytes
[ 1.990042] ehci-pci: EHCI PCI platform driver
[ 1.990144] mmc0: SDHCI controller on PCI [0000:23:00.1] using DMA
[ 1.990174] sdhci-pci 0000:23:00.2: SDHCI controller found [197b:2391] (rev 30)
[ 1.994928] SCSI subsystem initialized
[ 1.996413] sdhci-pci 0000:23:00.2: Refusing to bind to secondary interface.
[ 1.999440] libata version 3.00 loaded.
[ 2.002040] AVX version of gcm_enc/dec engaged.
[ 2.002041] AES CTR mode by8 optimization enabled
[ 2.004339] xhci_hcd 0000:25:00.0: xHCI Host Controller
[ 2.004347] xhci_hcd 0000:25:00.0: new USB bus registered, assigned bus number 1
[ 2.004556] xhci_hcd 0000:25:00.0: hcc params 0x014042cb hci version 0x96 quirks 0x00000004
[ 2.264222] mmc0: new SDXC card at address 59b4
[ 2.267942] mmcblk0: mmc0:59b4 SDU1 59.1 GiB
[ 2.269284] mmcblk0: p1
出力に宣言されていない「SDホストコントローラ」が表示されますlshw
。関係ありますか?
私は見ました/sys/kernel/debug/mmc0/ios
clock: 25000000 Hz
actual clock: 25000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 0 (legacy)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
私のカードリーダーが最も遅いモードに設定されているようです。
高速モードには低電圧信号(1.8V)があり、インターネットの他の場所で「タイマー仕様」に「SD高速」と表示されていることを見たことがあります。
それでは、なぜこれが起こるのか、そしてSDカードリーダーをより速いモードに強制するにはどうすればよいですか?
ベストアンサー1
これは答えの一部にすぎません。
クロック速度を倍増し、性能を約19MB/sに向上させました。
以下では、「sd high-speed」のようなより興味深い値に設定できると思いますが、timing spec
これまでは運がありませんでした。
rolf@deb:~$ sudo cat /sys/kernel/debug/mmc0/ios
[sudo] password for rolf:
clock: 25000000 Hz
actual clock: 25000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 0 (legacy)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
rolf@deb:~$ sudo cat /sys/kernel/debug/mmc0/clock
25000000
rolf@deb:~$ sudo dd if=/dev/mmcblk0 of=/dev/null bs=512
^C73953+0 records in
73952+0 records out
37863424 bytes (38 MB, 36 MiB) copied, 3.55635 s, 10.6 MB/s
rolf@deb:~$ echo 50000000 | sudo tee /sys/kernel/debug/mmc0/clock
50000000
rolf@deb:~$ sudo cat /sys/kernel/debug/mmc0/ios
clock: 50000000 Hz
actual clock: 50000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 0 (legacy)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
rolf@deb:~$ sudo dd if=/dev/mmcblk0 of=/dev/null bs=512
^C225761+0 records in
225760+0 records out
115589120 bytes (96 MB, 92 MiB) copied, 4.94934 s, 19.4 MB/s
私のカードはクラス10 UHS-Iグレードです。
コントローラは、25MHz、3.3V信号、12.5MB /秒の最も遅く最も古い(したがって最も互換性のある)SDレートモードに設定されているようです。
手動で周波数を50MHzに増やして「高速」モード(25MB/秒、仕様1.10)に設定しました。
Windowsでは、UHS-I、SDR104モード(104MB /秒)で実行されます。 SDR104モードの周波数は208MHz、信号電圧は1.8Vです。
周波数をさらに上げるのに必要なバスモードまたは電圧を手動で設定する方法が見つかりませんでした。