배경
나는 "SD-C02G JAPAN"이라고 라벨이 붙어 있고 "2GB microSD" 로고 아래에 있는 동일한 모양의 2GB microSD 카드 2개를 가지고 있습니다.
내 문제는 오래된 장치를 제외한 어떤 장치에서도 이 중 하나를 읽을 수 없다는 것입니다. 노키아 5310 '익스프레스 뮤직'. 휴대폰이 죽어가고 있습니다. 즉, 작동하기 어렵다는 뜻입니다(키가 제대로 작동하지 않고 디스플레이가 이상합니다). 하지만 카드를 읽고 쓸 수 있다는 사실을 보면 카드가 손상되지 않았다고 믿게 됩니다(그게 무슨 뜻이든). .
(나는 이 카드가 죽었다고 믿고 쓰레기통에 버리고 싶지만, 그렇다면 왜 오래된 Nokia가 아직도 그것을 읽을 수 있는가?라는 질문을 안고 살아야 할 것입니다.)
또한 이전에 Nokia 휴대폰의 일부 기술을 사용하여 카드가 암호화되었을 수도 있다는 점을 언급해야 합니다(동일한 기기가 아니라 현재는 존재하지 않는 동일한 모델의 다른 부분). (집에 더 많은 카드가 있고 그 중 하나가 암호화되어 있고 다른 모든 카드가 여기저기서 작동하고 있기 때문에 "아마"라고 가정합니다.)
방법/출력
이제 저는 이 두 카드를 사용하여 다른 작업을 시도했습니다(주로 "나쁜" 카드 동작에 대해 설명하겠습니다).
(A) 두 개의 서로 다른 Android 휴대폰, 둘 다 그래픽 카드가 전혀 연결되어 있지 않아 포맷 옵션을 제공하지 않습니다.
(B) 소형 Kingston USB 스틱 크기의 microSD 카드 리더기를 사용하는 Ubuntu 12.04 LTS(커널 3.2.0-37-일반, x86_64)가 설치된 컴퓨터
Debian Wheezy(커널 3.0.0.1-amd64)를 사용하는 노트북
(C) (B)와 동일한 방법은 다음과 같습니다.
Bus 001 Device 005: ID 14cd:121c Super Top microSD card reader
(D) 내장형, 즉 PCI SD 카드 리더기(카드 리더기에 충분히 작은 슬롯이 없기 때문에 microSD-SD 어댑터 사용) lspci는 다음과 같이 말합니다.
15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)
(A)는 나에게 어떤 유용한 정보도 제공하지 않으며, 내가 아는 한 (B)와 (C)는 동일하게 행동합니다. 그래서 (C)와 (D)를 "좋은" 카드와 "나쁜" 카드로 비교했습니다.
mkdosfs
방법 (C)와 "불량" 카드의 경우 mkdosfs는 다음과 같이 말합니다 /dev/sdb: No medium found
. 나는 방법 (D)를 시도하지 않았습니다. 장치 파일이 존재하지 않기 때문에 의미가 없다는 것을 알았습니다. 그리고 데이터를 잃어버릴까봐 "좋은" 카드를 사용하려고 하지도 않았는데...
디스크 드라이브
"불량" 카드가 장착되면 (C)
sudo fdisk -l /dev/sdb
또는 (D)는sudo fdisk -l /dev/mmcblk0
아무것도 반환하지 않습니다. 후자의 경우 /dev/mmcblk0이 존재하지 않습니다."양호한" 카드의 경우 카드 자동 마운트 후 두 출력이 모두 예상한 대로 됩니다.
커널 로그
방법 (C)와 "불량" 카드:
usb 1-1: new high speed USB device number 7 using ehci_hcd usb 1-1: New USB device found, idVendor=14cd, idProduct=121c usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=2 usb 1-1: Product: Mass Storage Device usb 1-1: Manufacturer: Generic usb 1-1: SerialNumber: 812320090519 scsi9 : usb-storage 1-1:1.0 scsi 9:0:0:0: Direct-Access USB Mass Storage Device PQ: 0 ANSI: 0 CCS sd 9:0:0:0: Attached scsi generic sg2 type 0 sd 9:0:0:0: [sdb] Attached SCSI removable disk
방법 (C) 및 "좋은" 카드:
usb 1-1: new high speed USB device number 8 using ehci_hcd usb 1-1: New USB device found, idVendor=14cd, idProduct=121c usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=2 usb 1-1: Product: Mass Storage Device usb 1-1: Manufacturer: Generic usb 1-1: SerialNumber: 812320090519 scsi10 : usb-storage 1-1:1.0 scsi 10:0:0:0: Direct-Access USB Mass Storage Device PQ: 0 ANSI: 0 CCS sd 10:0:0:0: Attached scsi generic sg2 type 0 sd 10:0:0:0: [sdb] 3842048 512-byte logical blocks: (1.96 GB/1.83 GiB) sd 10:0:0:0: [sdb] Write Protect is off sd 10:0:0:0: [sdb] Mode Sense: 03 00 00 00 sd 10:0:0:0: [sdb] No Caching mode page present sd 10:0:0:0: [sdb] Assuming drive cache: write through sd 10:0:0:0: [sdb] No Caching mode page present sd 10:0:0:0: [sdb] Assuming drive cache: write through sdb: sd 10:0:0:0: [sdb] No Caching mode page present sd 10:0:0:0: [sdb] Assuming drive cache: write through sd 10:0:0:0: [sdb] Attached SCSI removable disk FAT-fs (sdb): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
방법 (D) 및 "불량" 카드:
mmc0: error -110 whilst initialising SD card [...10 secs later...] mmc0: Timeout waiting for hardware interrupt. sdhci: =========== REGISTER DUMP (mmc0)=========== sdhci: Sys addr: 0x00000000 | Version: 0x00000400 sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000 sdhci: Argument: 0x00000000 | Trn mode: 0x00000000 sdhci: Present: 0x01ff0001 | Host ctl: 0x00000001 sdhci: Power: 0x00000000 | Blk gap: 0x00000000 sdhci: Wake-up: 0x00000000 | Clock: 0x00000000 sdhci: Timeout: 0x00000009 | Int stat: 0x00000000 sdhci: Int enab: 0x00ff00c3 | Sig enab: 0x00ff00c3 sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000 sdhci: Caps: 0x01e021a1 | Caps_1: 0x00000000 sdhci: Cmd: 0x00000102 | Max curr: 0x00000040 sdhci: Host ctl2: 0x00000000 sdhci: =========================================== mmc0: Got command interrupt 0x00030000 even though no command operation was in progress. sdhci: =========== REGISTER DUMP (mmc0)=========== sdhci: Sys addr: 0x00000000 | Version: 0x00000400 sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000 sdhci: Argument: 0x00000000 | Trn mode: 0x00000000 sdhci: Present: 0x01ff0000 | Host ctl: 0x00000001 sdhci: Power: 0x00000000 | Blk gap: 0x00000000 sdhci: Wake-up: 0x00000000 | Clock: 0x00000000 sdhci: Timeout: 0x00000009 | Int stat: 0x00000000 sdhci: Int enab: 0x00ff00c3 | Sig enab: 0x00ff00c3 sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000 sdhci: Caps: 0x01e021a1 | Caps_1: 0x00000000 sdhci: Cmd: 0x00000102 | Max curr: 0x00000040 sdhci: Host ctl2: 0x00000000 sdhci: ===========================================
이 과정을 4번 반복합니다(10초 지연 포함).
방법 (D) 및 "좋은" 카드:
mmc0: new high speed SD card at address ef87 mmcblk0: mmc0:ef87 SD02G 1.83 GiB mmcblk0: FAT-fs (mmcblk0): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
질문
이 카드에 무슨 문제가 있는지 설명해줄 수 있는 사람 있나요? 아니면 적어도 kern.log가 보여주는 것은 무엇입니까?
암호화하면 카드가 손상되나요? 그렇다면 단순히 다시 포맷할 수는 없나요? (폭발 내용에 동의합니다.)
아니면 어떤 다른 디버깅 방법을 권장하시나요?
답변1
짧은 답변
카드는 비밀번호로 보호되어 있습니다. (@derobert의 추측이 정확합니다.) 그리고 커널 모듈은 이에 대한 유용한 포인터를 제공하지 않습니다.
간단히 말해서:
의심스럽기는 하지만 이것이 SD 전용 하드웨어 기능인지는 모르겠습니다. 제 생각엔 Nokia가 파티션을 암호화한 것 같은데 그런 식으로 문제를 해결할 수 있을 것 같습니다 mkdosfs /dev/sdb
.
너무 끔찍해:
현재 Linux 모듈은 이 기능을 광범위하게 지원하지 않는 것 같습니다(유용한 오류를 제공하는 정도까지는 아님). 아마도 이것은 언급한 것처럼 Android에도 적용됩니다.
전화거부하다카드 포맷그리고비밀번호를 삭제하세요. 비밀번호를 삭제할 수 있으나, 기존 비밀번호를 알고 있어야 하며,또는카드를 포맷해도 비밀번호는 제거되지 않습니다.
따라서 다른 펌웨어에는 완전히 지울 수 있는 옵션이 있을 수 있지만 이는 다른 포럼에 대한 또 다른 질문입니다.
흥미로운 배경 설명:
위의 데이터를 수집하는 동안 나의 할아버지(휴대폰/카드 사용자, 45년생)가 옛날 방식으로 "죽은" 휴대폰을 천과 에탄올로 닦아서 문제를 해결했습니다!
마법으로 봉인된 이 컴퓨터 구동 장치 나이: 0 우리 아빠: 1 ;-D
요점은 이제 비밀번호가 설정되었는지 확인할 수 있다는 것입니다(그리고 이를 "좋은" 카드와 비교할 수 있습니다). 누가 그랬으며 어떻게 했는지는 미스터리로 남을 것입니다.
답변2
나는 MicroSD 카드에 대해 많은 나쁜 경험을 했습니다. 그들은 매우 민감한 것 같습니다. Navigon 라우팅 장치에서 읽을 수 있는 것이 있습니다. 하지만 내 Thinkpad X40의 내장 카드 리더기(SD 카드와 microSD 어댑터 포함)에는 없습니다.
나는 카드의 접점을 청소해 본 적이 없습니다(하지만 해야 합니다). 아마도 이것이 도움이 될 것입니다. 적어도 하나의 나쁜 접점이 있다고 생각합니다. 카드는 [sdb] Attached SCSI removable disk
최소한 보편적인 방식으로 인식됩니다( ). 에 더 이상 항목이 없다고 가정하겠습니다 /proc/partitions
. 그렇죠?
검색해보시면 mmc error 110
이 문제에 대한 많은 논의가 나올 것입니다. 해결책을 찾을 수 없습니다. 하지만 이 방향으로 다시 검색하여 여기에 결과를 게시할 수도 있습니다.