我想訪問SD卡上的CSD(卡特定數據)寄存器。我知道這樣做的唯一方法是讓Linux系統將其識別爲mmc設備(多媒體卡?)(例如/ dev/mmcblk0)。現在設備顯示爲一個scsi磁盤(例如/ dev/sda)。Linux設備節點的SD卡爲mmcblk訪問CSD寄存器
有什麼方法可以訪問CSD寄存器(卡特定數據),當它被作爲scsi磁盤掛載時?
有沒有什麼辦法讓我的內核可以將設備識別爲mmc?
謝謝。
我想訪問SD卡上的CSD(卡特定數據)寄存器。我知道這樣做的唯一方法是讓Linux系統將其識別爲mmc設備(多媒體卡?)(例如/ dev/mmcblk0)。現在設備顯示爲一個scsi磁盤(例如/ dev/sda)。Linux設備節點的SD卡爲mmcblk訪問CSD寄存器
有什麼方法可以訪問CSD寄存器(卡特定數據),當它被作爲scsi磁盤掛載時?
有沒有什麼辦法讓我的內核可以將設備識別爲mmc?
謝謝。
您至少應該在/ sys/block/diskX目錄中獲得一些CSD信息。
例如: 我的連接到U盤的SD卡被系統發現爲/ dev/sdc。
ls -l /sys/block/sdc/queue/
total 0
-rw-r--r-- 1 root root 4096 Oct 7 22:25 add_random
-r--r--r-- 1 root root 4096 Oct 7 22:25 discard_granularity
-r--r--r-- 1 root root 4096 Oct 7 22:25 discard_max_bytes
-r--r--r-- 1 root root 4096 Oct 7 22:25 discard_zeroes_data
-r--r--r-- 1 root root 4096 Oct 7 22:25 hw_sector_size
drwxr-xr-x 2 root root 0 Oct 7 22:24 iosched
-rw-r--r-- 1 root root 4096 Oct 7 22:24 iostats
-r--r--r-- 1 root root 4096 Oct 7 22:25 logical_block_size
-r--r--r-- 1 root root 4096 Oct 7 22:24 max_hw_sectors_kb
-r--r--r-- 1 root root 4096 Oct 7 22:24 max_integrity_segments
-rw-r--r-- 1 root root 4096 Oct 7 22:24 max_sectors_kb
-r--r--r-- 1 root root 4096 Oct 7 22:24 max_segment_size
-r--r--r-- 1 root root 4096 Oct 7 22:24 max_segments
-r--r--r-- 1 root root 4096 Oct 7 22:24 minimum_io_size
-rw-r--r-- 1 root root 4096 Oct 7 22:25 nomerges
-rw-r--r-- 1 root root 4096 Oct 7 22:25 nr_requests
-r--r--r-- 1 root root 4096 Oct 7 22:25 optimal_io_size
-r--r--r-- 1 root root 4096 Oct 7 22:23 physical_block_size
-rw-r--r-- 1 root root 4096 Oct 7 22:25 read_ahead_kb
-rw-r--r-- 1 root root 4096 Oct 7 22:25 rotational
-rw-r--r-- 1 root root 4096 Oct 7 22:25 rq_affinity
-rw-r--r-- 1 root root 4096 Oct 7 22:25 scheduler
謝謝。有趣...我想更多地瞭解這一點。你認爲可以寫入寄存器嗎?我想要做的是啓用臨時寫保護。 – ChrisVollo 2014-10-07 21:36:40
所以我想你想要的是設置TMP_WRITE_PROTECT(CMD 27)位。我可能是錯的,但我認爲如果沒有寫入內核驅動程序來訪問這個寄存器(似乎sys接口不允許它),你將無法做到這一點。 你也必須考慮到一些命令只能在SD卡的特定狀態下執行。 請在這裏閱讀更多: https://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf SD規格文件。 – RaFD 2014-10-07 22:20:19
是的。這是我想要的,TMP_WRITE_PROTECT位。如果SD卡是mmcblk設備節點,我相信有一種方法可以改變它。我可能是錯的。我使用名爲sdtool的命令行工具在我的Raspberry pi上完成了它。 – ChrisVollo 2014-10-07 22:26:27
卡是如何連接到電腦的?許多內置卡插槽實際上通過USB進行代理。我*不知道事實*如果通過USB SD/MMC讀卡器芯片支持原始MMC級別的操作,但我懷疑他們通常不是。如果這種情況不常見,或者您不需要高速訪問,則可以考慮從本地總線端口(如果可用)或使用基於具有USB功能的微控制器的自定義適配器對卡進行位反轉。 – 2014-10-07 18:16:50
@ChrisStratton USB讀卡器使用USB大容量存儲標準,通常不提供任何接口來執行「原始」SD/MMC操作。 – duskwuff 2014-10-07 18:17:51
謝謝。我有USB適配器。我擁有的一個適配器是「內置於」我的桌面,但它似乎沒有顯示#lspci命令,並且確實顯示爲帶#lsusb。 您認爲我可以通過查找通過串行或PCI連接的硬件來獲益嗎? – ChrisVollo 2014-10-07 18:21:49