У меня есть карта micro SD, SanDisk Ultra 16 ГБ, Ultra High Speed, отформатированная FAT, в адаптере SD и Macbook pro 8,1 под управлением Ubuntu 20.10.
SD-карта не работает во внутреннем устройстве чтения SD-карт: на дисках она отображается как 16 ГБ неизвестно.
Эта же SD-карта работает через внешний USB-кардридер.
Она также работает в том же внутреннем кардридере того же Mac после перезагрузки с Mac OS.
Поскольку карта и считыватель работают, я подозреваю, что Ubuntu что-то упускает.
После переформатирования (снова FAT) карта, похоже, работает (отображается как 16 ГБ FAT на дисках), но при попытке скопировать в него файл путем перетаскивания с рабочего стола стрелка курсора превращается в руку, и Ubuntu зависает. Я могу восстановить его, перезапустив, но после этого SD-карта отображается как раньше на Дисках: 16 ГБ неизвестно.
Я попробовал другую карту SDXC 128 ГБ ExFAT, с теми же результатами (за исключением, возможно, переформатирования, которое я не пробовал, потому что у меня полезные данные на карте).
Есть ли предложения по обеспечению нормальной работы внутреннего устройства чтения SD-карт с Ubuntu?
(после комментария mook765.)
Когда SD-карта вставлена в Macbook pro внутренний кардридер SD, он почти никогда не монтируется, на дисках отображается как неизвестный. dmesg
вывод:
[29944.127784] mmc0: new ultra high speed SDR104 SDHC card at address e624
[29944.129766] mmcblk0: mmc0:e624 SC16G 14.8 GiB
[29954.151831] mmc0: Timeout waiting for hardware interrupt.
[29954.151847] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[29954.151927] mmc0: sdhci: Sys addr: 0x000010c8 | Version: 0x00001502
[29954.151940] mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000000
[29954.151976] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x0000003b
[29954.151981] mmc0: sdhci: Present: 0x1fff0000 | Host ctl: 0x0000001f
[29954.151987] mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[29954.151992] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[29954.151998] mmc0: sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[29954.152004] mmc0: sdhci: Int enab: 0x03ff008b | Sig enab: 0x03ff008b
[29954.152009] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[29954.152014] mmc0: sdhci: Caps: 0x176ec8b0 | Caps_1: 0x03002177
[29954.152019] mmc0: sdhci: Cmd: 0x0000123a | Max curr: 0x00000000
[29954.152023] mmc0: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0x00000900
[29954.152028] mmc0: sdhci: Resp[2]: 0x00000900 | Resp[3]: 0x00000900
[29954.152031] mmc0: sdhci: Host ctl2: 0x0000804b
[29954.152037] mmc0: sdhci: ADMA Err: 0x00000001 | ADMA Ptr: 0x000000045bfcd204
[29954.152039] mmc0: sdhci: ============================================
[29954.152111] mmc0: Unexpected interrupt 0x04000000.
[29954.152112] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[29954.152118] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00001502
[29954.152123] mmc0: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000000
[29954.152129] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x00000033
[29954.152135] mmc0: sdhci: Present: 0x1fff0001 | Host ctl: 0x0000001f
[29954.152141] mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[29954.152146] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[29954.152151] mmc0: sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[29954.152156] mmc0: sdhci: Int enab: 0x03ff008b | Sig enab: 0x03ff008b
[29954.152161] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[29954.152167] mmc0: sdhci: Caps: 0x176ec8b0 | Caps_1: 0x03002177
[29954.152172] mmc0: sdhci: Cmd: 0x00000c1a | Max curr: 0x00000000
[29954.152177] mmc0: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0x00000900
[29954.152182] mmc0: sdhci: Resp[2]: 0x00000900 | Resp[3]: 0x00000900
[29954.152185] mmc0: sdhci: Host ctl2: 0x0000800b
[29954.152192] mmc0: sdhci: ADMA Err: 0x00000001 | ADMA Ptr: 0x000000045bfcd204
[29954.152193] mmc0: sdhci: ============================================
[29960.352164] mmc0: card e624 removed
dmesg
вывод при успешном монтировании:
[ 104.086813] mmc0: Skipping voltage switch
[ 105.010489] mmc0: new high speed SDHC card at address e624
[ 105.011082] mmcblk0: mmc0:e624 SC16G 14.8 GiB
[ 139.106588] mmcblk0:
Обратите внимание на корреляцию:
Попытка монтирования вручную:
% sudo mount -v -t vfat /dev/mmcblk0 /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/mmcblk0, missing codepage or helper program, or other error.
Тем не менее, тест Disks работает. Средняя скорость чтения 50 МБ / с (ограничена внутренним USB 2), средняя скорость записи 1 МБ / с (это низкая производительность оборудования Apple).
Форматирование на дисках часто не выполняется с
Error formatting volume Error after formatting with type vfat: Timed-out waiting for object (udisk-error-quark 0)
Ручное форматирование может работать:
% sudo mkfs.vfat -v -F 32 -n LUMIX -I /dev/mmcblk0
mkfs.fat 4.1 (2017-01-24)
attribute "partition" not found
/dev/mmcblk0 has 4 heads and 16 sectors per track,
hidden sectors 0x0000;
logical sector size is 512,
using 0xf8 media descriptor, with 31116288 sectors;
drive number 0x80;
filesystem has 2 32-bit FATs and 16 sectors per cluster.
FAT size is 15184 sectors, and provides 1942868 clusters.
There are 32 reserved sectors.
Volume ID is 01436e04, volume label LUMIX .
Однажды SD-карта устанавливается автоматически. У меня было как минимум 30 неудач подряд. Успех часто происходит сразу после переформатирования.
После того, как карта была смонтирована и остается вставленной, перемонтировать всегда удается.
Внутренний считыватель SD-карт может быть неисправен. Поскольку то же оборудование отлично работает с Mac OS, я полагаю, что Apple нашла обходной путь, который Ubuntu игнорирует.
Свойства внутреннего устройства чтения SD-карт:
% sudo lspci -s 02:00.1 -v
02:00.1 SD Host controller: Broadcom Inc. and subsidiaries BCM57765/57785 SDXC/MMC Card Reader (rev 10) (prog-if 01)
Subsystem: Broadcom Inc. and subsidiaries BCM57765/57785 SDXC/MMC Card Reader
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at a0420000 (64-bit, prefetchable) [size=64K]
Capabilities: [48] Power Management version 3
Capabilities: [58] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [ac] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [150] Power Budgeting <?>
Capabilities: [160] Virtual Channel
Kernel driver in use: sdhci-pci
Kernel modules: sdhci_pci
% /sbin/modinfo sdhci-pci
filename: /lib/modules/5.8.0-31-generic/kernel/drivers/mmc/host/sdhci-pci.
ko
license: GPL
description: Secure Digital Host Controller Interface PCI driver
author: Pierre Ossman <pierre@ossman.eu>
% uname -a
Linux mac2011-linux 5.8.0-31-generic #33-Ubuntu SMP Mon Nov 23 18:44:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
У меня были другие проблемы с SD-картой несколько недель назад, до ноября 23, и я не заметил существующей проблемы, поэтому держу пари, что sdhci был затронут в последней версии ядра.
Внутренний картридер действительно имеет недостаток: он не всегда распознает сверхвысокие скорость, но этот недостаток имеет положительный побочный эффект: позволяет монтировать как можно большую скорость.
SD-карта всегда может быть установлена как высокоскоростная вместо сверхвысокоскоростной следующим образом:
% sudo rmmod sdhci_pci sdhci
% sudo modprobe sdhci debug_quirks2=4
% sudo modprobe sdhci_pci
(Это изменение не является постоянным.)
Результаты тестов дисков:
Чтение хуже, чем сверхвысокая скорость, но, к счастью, запись намного быстрее! Было бы здорово иметь скорость чтения 50 МБ/с и записи 10 МБ/с.
Проблема может быть решена путем передачи
debug_quirks2=0x4
в модуль ядра sdhci.