2014-10-07 6 views
1

SD 카드의 CSD (카드 특정 데이터) 레지스터에 액세스하려고합니다. 필자가 알고있는 유일한 방법은 리눅스 시스템에서이를 mmc 장치 (멀티 미디어 카드)로 인식하도록하는 것입니다 (예 :/dev/mmcblk0). 현재 장치는 scsi 디스크로 표시됩니다 (예 :/dev/sda).mmcblk가 CSD 레지스터에 액세스 할 때 sd 카드 용 Linux 장치 노드

is가 scsi 디스크로 마운트되어있을 때 CSD Register (카드 특정 데이터)에 액세스 할 수있는 방법이 있습니까?

커널에서 장치를 mmc로 인식하도록 할 수있는 방법이 있습니까?

감사합니다.

+1

카드는 컴퓨터에 어떻게 연결되어 있습니까? 많은 내장 카드 슬롯이 실제로 USB를 통해 프록시됩니다. 원시 MMC 수준의 작업이 USB SD/MMC 판독기 칩을 통해 지원된다면 사실을 알 수 없지만 자주 사용하지 않는다고 의심합니다. 드문 경우이거나 고속 액세스가 필요하지 않은 경우 로컬 버스 포트 (사용 가능한 경우)에서 카드를 비트 bing하거나 USB 사용 가능 마이크로 컨트롤러를 기반으로하는 사용자 정의 어댑터를 사용할 수 있습니다. –

+0

@ChrisStratton USB 카드 판독기는 USB 대용량 저장소 표준을 사용하며 일반적으로 "원시"SD/MMC 작업을 수행하기위한 인터페이스를 제공하지 않습니다. – duskwuff

+0

감사합니다. USB 어댑터가 있습니다. 내가 가지고있는 하나의 어댑터는 내 바탕 화면에 "내장"되어 있지만 #lspci 명령과 함께 표시되지 않으며 #lsusb와 함께 표시되는 것처럼 보입니다. 직렬 또는 PCI를 통해 연결되는 하드웨어를 찾는 것이 도움이 될 것이라고 생각하십니까? – ChrisVollo

답변

1

적어도/sys/block/diskX 디렉토리에 있어야하는 CSD 정보 중 일부.

예 : USB 스틱에 연결된 내 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 
+0

감사합니다. 흥미 롭습니다 ... 나는 이것을 더보고 싶습니다. 등록부에 글을 쓸 수 있다고 생각합니까? 내가하고 싶은 일은 임시 쓰기 보호를 가능하게하는 것입니다. – ChrisVollo

+0

그래서 내가 원하는 것은 TMP_WRITE_PROTECT (CMD 27) 비트를 설정하는 것입니다.? 내가 틀렸을 수도 있지만 당신이 이 레지스터에 액세스하는 쓰기 커널 드라이버 없이는 할 수 없다고 생각합니다. (sys 인터페이스가 허용하지 않는 것 같습니다). 또한 명령의 일부는 SD 카드의 특정 상태에서만 실행할 수 있다는 점을 감안해야합니다. SD 사양 문서의 https://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf 을 자세히 읽으십시오. – RaFD

+0

예. 이게 내가 원하는거야, TMP_WRITE_PROTECT 비트. sd 카드가 mmcblk 장치 노드 인 경우이를 변경하는 방법이 있다고 생각합니다. 내가 틀렸을 수도있다. 나는 sdtool이라는 명령 행 도구를 사용하여 나의 라즈베리 파이에서했습니다. – ChrisVollo