SD-карта не подключается к устройству чтения карт Broadcom BCM57765 / 57785 (Macbook pro)

У меня есть карта 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 был затронут в последней версии ядра.

2
задан 4 December 2020 в 14:12

1 ответ

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

SD-карта всегда может быть установлена ​​как высокоскоростная вместо сверхвысокоскоростной следующим образом:

% sudo rmmod sdhci_pci sdhci
% sudo modprobe sdhci debug_quirks2=4
% sudo modprobe sdhci_pci

(Это изменение не является постоянным.)

Результаты тестов дисков:

  • чтение: 24 МБ/с,
  • запись: 9 МБ/с.

Чтение хуже, чем сверхвысокая скорость, но, к счастью, запись намного быстрее! Было бы здорово иметь скорость чтения 50 МБ/с и записи 10 МБ/с.

Аналогичный отчет по Debian

Предлагаемое решение

Проблема может быть решена путем передачи debug_quirks2=0x4 в модуль ядра sdhci.

Известная ошибка в ядре Linux

3
ответ дан 3 December 2020 в 23:51

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

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