Linux 드라이버에서 MMC 파티션을 나열하려면 어떻게해야합니까?

Nov 17 2020

eMMC에 저장된 U-Boot 환경을 읽으려고하는데 디스크를 나열하는 방법을 알 수 없습니다. 내가 만드는 드라이버는 mmc 장치 드라이버 (/ dev / mmcblk0p1)와 분리되어 있습니다.

이미 파티션 mmcblk0이 struct mmc_card의 struct mmc_part 항목 이라는 것을 알았습니다 . 기본적으로 __mtd_next_device 의 mmc 변형을 찾고 있습니다.


편집 1 :
나는 내가 얻을 수있는 것을 발견 block_device를 통해 구조체를 bdget 하지만 gendisk포인트 NULL.

struct block_device *my_bdevice;
struct gendisk *my_gdisk;
my_bdevice = bdget(179);
my_gdisk = part_to_disk(my_bdevice->bd_part);
if (!my_gdisk) goto end; // Goes to end..

답변

1 Bayou Nov 17 2020 at 18:35

위의 코드에서 my_bdevice = bdget(179);잘못되었습니다.

dev_t devt = blk_lookup_devt("mmcblk0", 0);
my_bdevice = bdget(devt);