基于openwrt的ext4盘overlay挂载

本文介绍了在imx6d emmc版本的板子上,如何解决openwrt的overlayfs挂载问题。通过分析openwrt的fstools代码,发现其主要针对mtd驱动。为解决这个问题,作者编写了mmc.c,模仿mtd.c和ubi.c,直接写死需要挂载的盘符,并提出可以通过uboot参数动态获取rootfs_data信息的思路,最终成功实现了overlay功能。
摘要由CSDN通过智能技术生成

        手上的板子是imx6d的emmc版本,移植openwrt后,发现openwrt的overlayfs未能挂载,研究openwrt的fstools代码后,发现里面代码主要是针对nand、nor flash等基于mtd驱动的挂载,mount_root一开始会通过volume_find获取rootfs_data的盘符以及类型相关的信息,一般openwrt的flash是uboot、uboot_env,kernel+rootfs(firmware),rootfs_data,art等,所以只有找到rootfs_data才能继续往下走。

 

        思路是这样的,首先通过增加mmc.c,将需要的信息挂载到volume结构里,然后,代码就能够按照流程走下去了。

        mmc.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>

#include "libfstools.h"
#include "volume.h"

/* fit for MMC_MAX_VOLUME_NAME and sysfs path lengths */
#define BUFLEN		128

/* could use libubi-tiny instead, but already had the code directly reading
 * from sysfs */
const char *const mmc_dir_name = "/";

struct mmc_volume {
	struct volume v;
	int		mmc_num;
	int		mmc_volid;
};

static struct driver mmc_d
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
OpenWrt系统中,挂载设备可以通过以下步骤进行操作。首先,将`insert_sd.sh`和`rc.local`文件放置在`/etc`文件夹中。编译后,这些文件会被放在`/etc`文件夹内。\[1\]接下来,可以使用`lsblk`命令来判断未挂载设备的文件系统格式,并使用`mount`命令来挂载设备并带上`filetype`参数。如果挂载时不带上`filetype`参数,系统会尝试不同的文件系统直到成功挂载,这可能会导致一些输出信息。为了解决在OpenWrt下中文文件名或内容乱码的问题,可以在挂载时加上`iocharset=utf8`参数。\[2\]这样可以确保中文文件名和内容能够正确显示。另外,还可以通过修改配置文件和源代码来进行更多的软件改动。\[3\] #### 引用[.reference_title] - *1* [openwrt 设置自动挂载SD卡](https://blog.csdn.net/x13163303344/article/details/72857344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [openwrt下U自动挂载](https://blog.csdn.net/liangalei123/article/details/129295655)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

supeng37037857

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值