2025年6月20日 嵌入式Linux学习笔记
- 平台:QEMU 模拟器(目标板:imx6ull)
- 主题:LED字符设备驱动 + I2C设备测试(AT24C02 EEPROM)
一、LED字符设备驱动测试流程
//1.驱动加载
cd led_driver_qemu
insmod 100ask_led.ko
//2.用户态测试程序调用
./ledtest /dev/100ask_led0 off
- insmod 加载驱动模块到内核 .ko文件表示 编译后的驱动模块
2.ledtest是可执行文件,不是目录,不可以用cd ledtest进入 ./ledtest执行文件`./程序名 [空格] 参数1 [空格] 参数2 ...
Linux 挂载与镜像文件学习笔记
一、什么是挂载
挂载的定义
在 Linux 中,挂载是将一个存储设备或镜像文件与文件系统中的某个目录关联起来的过程。一旦挂载成功,用户就可以通过该目录访问设备/镜像的内容。
示例
假设有一个 ext4 格式的 rootfs.img 镜像文件
sudo mount -o loop rootfs.img /mnt/rootfs
| 部分 | 含义 |
|---|---|
mount |
挂载命令 |
-o loop |
表示将普通文件视为 block 设备 |
rootfs.img |
镜像文件 |
/mnt/rootfs |
挂载目录 |
二、挂载点
- 挂载点是一个空的目录,用来连接实际存储或虚拟镜像
- 一个目录只能挂载一个内容,重复挂载会隐藏之前的内容
推荐使用
/mnt/rootfs进行挂载,避免/mnt被其他虚拟文件系统使用(如 VMware hgfs)
三、什么是镜像文件
定义
镜像文件是一个完整的文件系统扒包文件,即一个虚拟磁盘,可以被挂载成 Linux 文件系统。
| 类型 | 示例 | 说明 |
|---|---|---|
| 根文件系统 | rootfs.img |
包含 /bin、/lib、/etc |
| 磁盘镜像 | sdcard.img |
模拟硬盘/SD卡 |
| 启动镜像 | zImage |
内核镜像 |
判断镜像类型
file rootfs.img
- 如果显示
ext4 filesystem data表示可挂载 - 如果显示
data表示不是标准格式
四、正确挂载镜像文件
sudo mkdir -p /mnt/rootfs
sudo mount -o loop rootfs.img /mnt/rootfs
如果失败,用 losetup 手动挂载:
sudo losetup -fP rootfs.img
sudo mount /dev/loop0 /mnt/rootfs
五、卸载挂载点
修改完 rootfs.img 后需要卸载:
sudo umount /mnt/rootfs
六、常见错误与解决方案
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
failed to setup loop device |
文件不存在/格式不对 | 确认文件存在,格式正确 |
/mnt busy |
目录被占用(hgfs 或其他挂载点) | 使用 /mnt/rootfs 等新目录 |
not a block device |
镜像文件格式错误 | 使用 losetup 切换设备 |
七、实践建议
| 场景 | 操作 |
|---|---|
| 修改根文件系统 | 挂载 rootfs.img,复制/修改文件后 umount |
| 调试程序 | 将编译好的扩展文件操作进入挂载目录 |
| 启动自动挂载 | 写入自启动脚本进行 mount |
总结
镜像文件是虚拟磁盘,挂载是把它变成“可访问目录”的过程,只有挂载后才能读写它的内容。
浙公网安备 33010602011771号