0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

linux驱动开发_文件系统本地挂载

DS小龙哥-嵌入式技术 2022-09-17 15:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

【摘要】 介绍Linux开发根文件系统挂载、NFS文件系统配置,UBOOT环境变量配置,完成文件系统启动。

数码相册功能:

1.​支持两种格式图片显示: bmp、jpg

区分两种图片格式,通过后缀名称区分。

2.​支持触摸屏、按键方式翻页(支持前后翻页)

建立双向链表,调用读取目录的函数(opendir),将目录下所有符合要求的图片加入到链表里。

3.​支持三轴加速度计,实现姿态感应。根据三轴加速度的姿态,调整图片的显示方向。

4.​支持图片的自适应: 居中显示,超大尺寸的图片需要自动缩小到屏幕能够显示的大小。

5.​居中显示。

6.​数码相册需要有状态栏: 当前系统的时间信息,当前图片的名称、数量。

任务1: 产品发布(本地挂载)

1.​在红帽子系统上将根文件系统进行压缩打包。(PC机上操作)

[root@wbyq work]# tar cvf rootfs.tar rootfs/*

pYYBAGMlOaKANPlHAACUo7y2ANE955.png

2.​将打包之后的压缩文件,移动到rootfs目录下,方便在开发板上进行访问(PC机上操作)

[root@wbyq work]# mv rootfs.tar rootfs/

3.​将SD卡上内核、UBOOT等一些代码拷贝到EMMC里面,(接下来就可以通过EMMC启动)

讲解MMC命令:

开发板: 从SD卡启动的

mmc read addr blk# cnt

mmc write addr blk# cnt

mmc read 0 0x40000000 1 5

mmc write 1 0x40000000 1 5

​一次性将SD卡上所有需要的数据拷贝到EMMC里: BL1BL2 UBOOT.bin 签名文件 内核

movi r f 0 40008000;emmc open 1;movi w z f 1 40008000;emmc close 1;

movi r b 0 40008000;emmc open 1;movi w z b 1 40008000;emmc close 1;

movi r u 0 40008000;emmc open 1;movi w z u 1 40008000;emmc close 1;

movi r t 0 40008000;emmc open 1;movi w z t 1 40008000;emmc close 1;

movi r k 0 40008000;movi w k 1 40008000;

命令执行成功之后,将SD卡拔出,开发板开关拨到EMMC启动,复位开发板,重新进入到UBOOT命令行。

4.​对EMMC进行分区 (UBOOT命令行里执行)

TINY4412 # fdisk -c 0 2000 1000 1000

TINY4412 # fdisk -p 0

partion # size(MB) block start # block count partition_Id

1 3301 8359120 6761931 0x0C

2 2004 134343 4104925 0x83

3 1005 4239268 2059926 0x83

4 1005 6299194 2059926 0x83

5.​对分区进入格式化,安装文件系统(UBOOT命令行里执行)

TINY4412 # ext3format mmc 0:1

TINY4412 # ext3format mmc 0:2

TINY4412 # ext3format mmc 0:3

TINY4412 # ext3format mmc 0:4

将设备0(EMMC设备)的第2个分区格式化陈EXT3文件系统格式。

6.​设置UBOOT环境变量,让内核使用网络方式挂载根文件系统(NFS)。(UBOOT命令行里执行)

TINY4412 # set bootargs root=/dev/nfs nfsroot=192.168.10.11:/work/rootfs ip=192.168.10.123:192.168.10.11:192.168.10.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200 lcd=s702

TINY4412 # save //保存环境变量

Saving Environment to SMDK bootable device...

Done

TINY4412 # reset //重启开发板,进行网络文件系统挂载

7.​挂载EMMC的2号分区

将EMMC的第2个分区挂载到/mnt目录下。

[root@tiny4412 ]#rm /dev/mmcblk* //将dev目录下原来的mmc设备节点删除掉

[root@tiny4412 ]#mdev -s //重新生成设备节点

[root@tiny4412 ]#ls /dev/mmcblk0* -l //查看生成之后的EMMC设备节点

brw-rw---- 1 root root 179, 0 Dec 10 2018 /dev/mmcblk0

brw-rw---- 1 root root 179, 8 Dec 10 2018 /dev/mmcblk0boot0

brw-rw---- 1 root root 179, 16 Dec 10 2018 /dev/mmcblk0boot1

brw-rw---- 1 root root 179, 1 Dec 10 2018 /dev/mmcblk0p1

brw-rw---- 1 root root 179, 2 Dec 10 2018 /dev/mmcblk0p2

brw-rw---- 1 root root 179, 3 Dec 10 2018 /dev/mmcblk0p3

brw-rw---- 1 root root 179, 4 Dec 10 2018 /dev/mmcblk0p4

[root@tiny4412 ]#mount /dev/mmcblk0p2 /mnt/ //将EMMC的第2个分区挂载到/mnt目录下

[ 19.635000] EXT2-fs (mmcblk0p2): warning: mounting ext3 filesystem as ext2

[ 19.635000] EXT2-fs (mmcblk0p2): warning: checktime reached, running e2fsck is recommended

[root@tiny4412 ]#cd /mnt/

[root@tiny4412 mnt]#ls //查看挂载目录

lost+found

8.​将之前打包的文件系统压缩包解压到挂载目录下

[root@tiny4412 mnt]#pwd

/mnt

[root@tiny4412 mnt]#ls

lost+found

[root@tiny4412 mnt]#tar xvf /rootfs.tar //将之前打包的rootfs文件压缩包解压到/mnt目录下

[root@tiny4412 mnt]#mv rootfs/* ./ //将解压出来的rootfs目录下所有文件,移动到/mnt顶层目录下

[root@tiny4412 mnt]#ls //移出来之后目录下的文件

bin etc linuxrc proc sys var

code home lost+found rootfs tmp work

dev lib mnt sbin usr

[root@tiny4412 mnt]#cd / //回到根目录下

[root@tiny4412 ]#umount /mnt/ //取消目录挂载

9.​重启开发板,进入到UBOOT命令行,重新设置环境变量为本地挂载

TINY4412 # set bootargs root=/dev/mmcblk0p2 rootfstype=ext3 init=/linuxrc console=ttySAC0,115200 lcd=s702 coherent_pool=2M //设置环境变量

TINY4412 # save //重启开发板

Saving Environment to SMDK bootable device...

done

TINY4412 # reset //复位开发板

正常没有问题的情况下,开发板文件已经挂载成功。

poYBAGMlOaKAKVLDAAEsk4iffvo210.png

10.​ 开发板文件系统与PC通信的方法

(1)​可以通过SD卡、U盘等方式给开发板拷贝文件。

(2)​可以通过NFS文件系统进行远程挂载: 将NFS文件服务器的目录挂载到本地。

​开发板NFS网络文件系统挂载

1.​修改PC机上NFS文件系统共享的目录

[root@wbyq /]# mkdir /code //在根目录下创建一个code目录

[root@wbyq /]# gedit /etc/exports //打开NFS服务器配置文件

pYYBAGMlOaKAbhBKAAC4f-azORc770.png

2.​重启NFS服务器 (运行之前编写好的脚本文件)

poYBAGMlOaKADtVyAAHBUtRIPbA827.png

3.​设置开发板上的网卡IP地址 (开发板终端上进行操作)

[root@tiny4412 ]#ifconfig eth0 192.168.10.123

4.​挂载NFS服务器共享的目录(开发板终端上进行操作)

[root@tiny4412 ]#mount -t nfs -o nolock 192.168.10.11:/code /mnt/

5.​为了方便后续使用,可以编写一个脚本。

[root@tiny4412 ]#ifconfig eth0 192.168.10.123

[root@tiny4412 ]#echo "ifconfig eth0 192.168.10.123" >nfs_start.sh

[root@tiny4412 ]#echo "mount -t nfs -o nolock 192.168.10.11:/code /mnt" >>nfs_st

art.sh

[root@tiny4412 ]#cat nfs_start.sh //查看脚本文件里的内容

ifconfig eth0 192.168.10.123

mount -t nfs -o nolock 192.168.10.11:/code /mnt

[root@tiny4412 ]#chmod 777 nfs_start.sh //修改脚本权限

任务2: 360WIFI驱动(与相关的无线管理工具安装)

购买的360WIFI: 2代。小度WIFI(百度)。 小米WIFI(小米)。

​学习无线WIFI驱动: 完整的WIFI驱动

1.​如何下载官网提供的驱动源码,进行编译、配置、安装: ARM

2.​学习WIFI相关的无线管理工具。

3.​学习网卡自动分配IP地址,才可以访问公网: 必须保证连接的热点可以上网

uboot环境变量设置:

set bootargs root=/dev/nfs nfsroot=192.168.18.3:/work/rootfs ip=192.168.18.123:192.168.18.3:192.168.18.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200 lcd=s70 coherent_pool=2M
set bootargs noinitrd root=/dev/mmcblk0p3 rootfstype=ext3 console=ttySAC0,115200 init=/linuxrc ctp=2 lcd=S70 coherent_pool=2M
set bootargs noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 console=ttySAC0,115200 init=/linuxrc ctp=2 lcd=S70 coherent_pool=2M
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 文件系统
    +关注

    关注

    0

    文章

    301

    浏览量

    20811
  • Uboot
    +关注

    关注

    4

    文章

    129

    浏览量

    29787
  • NFS
    NFS
    +关注

    关注

    1

    文章

    56

    浏览量

    26865
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    明晚8点|睿擎文件系统实战:从开发到发布全流程解析

    文件操作到镜像发布,一次直播掌握完整开发流程!在嵌入式系统开发中,文件系统是数据存储、配置管理和资源访问的核心基础。然而在实际开发中,
    的头像 发表于 11-11 11:53 376次阅读
    明晚8点|睿擎<b class='flag-5'>文件系统</b>实战:从<b class='flag-5'>开发</b>到发布全流程解析

    【直播预告】下周三晚8点|睿擎文件系统实战:从开发到发布全流程解析

    文件操作到镜像发布,一次直播掌握完整开发流程!在嵌入式系统开发中,文件系统是数据存储、配置管理和资源访问的核心基础。然而在实际开发中,
    的头像 发表于 11-06 18:05 1679次阅读
    【直播预告】下周三晚8点|睿擎<b class='flag-5'>文件系统</b>实战:从<b class='flag-5'>开发</b>到发布全流程解析

    睿擎派文件系统指南:从开发到发布全流程实践 | 技术解析

    在嵌入式系统开发中,文件系统扮演着至关重要的角色,它负责数据的持久化存储、配置文件管理和资源访问等核心功能。睿擎平台提供了一套完整的文件系统解决方案,从
    的头像 发表于 11-05 18:13 7697次阅读
    睿擎派<b class='flag-5'>文件系统</b>指南:从<b class='flag-5'>开发</b>到发布全流程实践 | 技术解析

    挂载sramfs文件系统到外挂sdram ,挂载时返回错误码为-1,怎么解决?

    挂载sramfs文件系统到外挂sdram ,挂载时返回错误码为-1。求大神指点。谢谢各位大佬。
    发表于 09-16 06:41

    挂载elm文件系统到sd卡上时灵时不灵如何解决?

    使用野火开发板的gd32h759,将elm文件系统挂载到sd卡上,使用的是sdio接口,发现时灵时不灵,sd卡格式化几次还是不行,请教一下各位大神,如何解决?
    发表于 09-12 06:18

    技术贴|【RK3588】ELF 2开发板如何添加exFAT和NTFS文件系统格式

    基于RK3588设计的ELF2开发板在搭载Desktop22.04系统时,对TF卡的文件系统支持存在以下限制:不支持exFAT格式;支持NTFS格式,但需手动挂载;针对上述兼容性问题,
    的头像 发表于 08-27 17:21 3206次阅读
    技术贴|【RK3588】ELF 2<b class='flag-5'>开发</b>板如何添加exFAT和NTFS<b class='flag-5'>文件系统</b>格式

    Linux三大主流文件系统解析

    还在为选择哪个文件系统而纠结?作为一名摸爬滚打多年的运维老鸟,我将用最接地气的方式,带你彻底搞懂 Linux 三大主流文件系统的奥秘。
    的头像 发表于 08-05 17:37 1043次阅读

    飞凌嵌入式ElfBoard ELF 1板卡-文件系统简介

    /服务器上Linux文件系统是一样的,只是嵌入式Linux文件系统根据产品功能进行过裁剪,在内容多少和体积大小上不同。进行嵌入式Linux
    发表于 06-19 17:22

    服务器数据恢复—ocfs2文件系统被格式化为Ext4文件系统的数据恢复案例

    服务器存储数据恢复环境&故障: 人为误操作将Ext4文件系统误装入一台服务器存储上的Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式化为Ext4文件系统
    的头像 发表于 06-10 12:03 563次阅读
    服务器数据恢复—ocfs2<b class='flag-5'>文件系统</b>被格式化为Ext4<b class='flag-5'>文件系统</b>的数据恢复案例

    Linux文件系统打包及镜像制作,触觉智能RK3562开发板演示

    本文介绍Linux开发文件系统打包及镜像制作的方法,演示Linux文件系统打包及镜像制作,适用于想将配置好的
    的头像 发表于 04-28 16:45 766次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>文件系统</b>打包及镜像制作,触觉智能RK3562<b class='flag-5'>开发</b>板演示

    基于RK3576开发板的NFS服务搭建与挂载

    NFS就是Network File System的缩写,即网络文件系统,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 它允许网络中的计算机之间通过
    的头像 发表于 04-21 17:23 632次阅读
    基于RK3576<b class='flag-5'>开发</b>板的NFS服务搭建与<b class='flag-5'>挂载</b>

    如何正确选择嵌入式文件系统

    Linux嵌入式系统中,文件系统和缓存机制常导致数据存储稳定性问题。本文通过案例分析原因,对比不同文件系统特性,为开发者提供优化建议,助力提
    的头像 发表于 03-17 11:35 863次阅读
    如何正确选择嵌入式<b class='flag-5'>文件系统</b>?

    NFS网络文件系统深度解析

    NFS:Network File System 网络文件系统,基于内核的文件系统。Sun 公司开发,通过使用 NFS,用户和程序可以像访问本地文件
    的头像 发表于 03-01 14:15 1169次阅读

    防止根文件系统破坏,OverlayRootfs 让你的设备更安全

    多个文件系统层合并成一个单一的视图,在Linux系统中广泛应用。使用OverlayRootfs的设备可以很轻松的实现:根文件系统写保护、恢复出厂设置功能。根
    的头像 发表于 01-08 16:33 2456次阅读
    防止根<b class='flag-5'>文件系统</b>破坏,OverlayRootfs 让你的设备更安全

    Linux系统挂载exfat格式U盘教程,触觉智能RK3562开发板演示

    本文介绍Linux系统(Ubuntu/Debian通用)挂载exfat格式U盘的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力
    的头像 发表于 12-10 10:10 1130次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>系统</b><b class='flag-5'>挂载</b>exfat格式U盘教程,触觉智能RK3562<b class='flag-5'>开发</b>板演示