(二)嵌入式:通过MTD设备为只读文件系统修改登陆用户和密码

Lesson 6-通过MTD设备为只读文件系统修改登陆用户和密码

1.实现mtd驱动
1.1
首先进入目录linux-2.4.x/drivers/mtd/maps ,然后修改配置文件Config.in,在末尾添加语句,如图1-1所示:
在这里插入图片描述
图1-1 修改配置文件
然后添加驱动文件–myflash.c文件,如图1-2所示:
在这里插入图片描述
图1-2 添加驱动文件(见附录二)
接着还要修改Makefile,如图1-3所示:
在这里插入图片描述
图1-3 修改Makefile文件
分析:在做linux驱动时需要将自己写的驱动程序编译到内核总要修改Config.in文件,,其 中dep_tristate表示要依赖某些选项去定义一个选项。
这个语句表示定义了一个选项CFI Flash device mapped on myboard_flash ,只要 CONFIG_MTD_CFI被定义为y或m ,那么在mtd/maps分类下就会出现该选项,它对 应了CONFIG_MTD_MYFLASH 的定义。
然后修改makefile添加对应obj- ( C O N F I G M T D M Y F L A S H ) + = m y f l a s h . o , 对 应 m y f l a s h . c 文 件 。 (CONFIG_MTD_MYFLASH) += myflash.o ,对应 myflash.c文件。 (CONFIGMTDMYFLASH)+=myflash.omyflash.c(CONFIG_MTD_MYFLASH)的值对应CFI Flash device mapped on myboard_flash的值为y或者m,那么Makefile会根据obj-m和obj-y编译并连接对应的 源码。

1.2
然后退出到目录linux-2.4.x/include/linux/mtd/mtd.h ,
修改#define MTD_BLOCK_MAJOR 31 为 #define MTD_BLOCK_MAJOR 30
修改 #define MAX_MTD_DEVICES 16 为define MAX_MTD_DEVICES 3 。如图1-4所示:
在这里插入图片描述
图1-4 修改头文件mtd.h

还要修改文件Marvell/Firefox/Makefile ,添加如下的命令,如图1-5所示:
在这里插入图片描述
图1-5 修改Makefile文件
1.3
修改完成后,进行配置内核,输入make xconfig,开始配置MTD,如图1-6所示:
在这里插入图片描述
图1-6 配置内核
然后编译通过,连接开发板,通过TFTP下载内核和根文件系统到开发板。出现如图1-7所示的错误:
在这里插入图片描述
图1-7 下载内核和根文件系统到开发板出现错误
通过查找和对比,最终发现是内核映像溢出。对比前后两次的下载的内核大小,可以发现已经过大,如图1-8所示:
在这里插入图片描述
在这里插入图片描述
图1-8 前后两次对比内核的大小
所以,重新配置内核, make xconfig. 删除之前做的NFS,portmap等配置,然后重新下载内核,如图1-9所示:
在这里插入图片描述
图1-9 重新配置后内核的大小
这时候可以发现,启动成功。输入原始设置的账号和密码:123456(密码一样),进入shell。如图1-10所示:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值