首页 > 解决方案 > 如何在 Linux 驱动程序中列出 MMC 分区?

问题描述

我正在尝试读取存储在 eMMC 上的 U-Boot 环境,但我不知道如何列出磁盘。我正在创建的驱动程序与 mmc 设备驱动程序 (/dev/mmcblk0p1) 是分开的。

我已经发现 struct mmc_card 的分区mmcblk0struct mmc_part条目。基本上我正在寻找__mtd_next_device的 mmc 变体。


编辑 1:
我发现我可以通过bdget获得一个block_device结构,但指向.gendiskNULL

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..

标签: clinux-device-driver

解决方案


在我上面的代码中,my_bdevice = bdget(179);是错误的:

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

推荐阅读