OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12676|回复: 18

求教mtd分区的方法,已经修改了uboot,但内核源码找不到修改的位置

[复制链接]

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2020-2-12
在线时间
25 小时
发表于 2020-3-24 21:23:12 | 显示全部楼层 |阅读模式
1金钱
如图我增加了一个4M的user分区用来保存用户配置信息,uboot改好了,请问内核源码要修改哪儿?以前修改过2440,6ull平台的找了一圈也没找到
Snipaste_2020-03-24_21-20-20.jpg

最佳答案

查看完整内容[请看2#楼]

你修改mtdparts就可以了,你注意到没,mtdparts它是bootargs参数的一部分,而bootargs参数是传给内核的,所以内核里边的会解析mtdparts得到分区信息然后初始化nand的分区,它这样做就是为了统一U-Boot和内核中的nand分区。在内核的设备树文件中也可以设置nand的分区表,,但是我看官方默认是没有使用设备树对nand进行分区,在nand节点下没有分区表。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

712

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2178
金钱
2178
注册时间
2018-8-27
在线时间
258 小时
发表于 2020-3-24 21:23:13 | 显示全部楼层
你修改mtdparts就可以了,你注意到没,mtdparts它是bootargs参数的一部分,而bootargs参数是传给内核的,所以内核里边的会解析mtdparts得到分区信息然后初始化nand的分区,它这样做就是为了统一U-Boot和内核中的nand分区。在内核的设备树文件中也可以设置nand的分区表,,但是我看官方默认是没有使用设备树对nand进行分区,在nand节点下没有分区表。
森罗万象
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-3-25 00:52:55 | 显示全部楼层
帮顶
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2020-2-12
在线时间
25 小时
 楼主| 发表于 2020-3-25 08:45:53 | 显示全部楼层
或者说内核不用改,改mfgtools?
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2020-2-12
在线时间
25 小时
 楼主| 发表于 2020-3-25 09:16:50 | 显示全部楼层
修改uboot分区后用mfgtools烧写失败,正确的增加分区步骤是什么,要改哪些文件?谢谢
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2020-3-25 10:12:04 | 显示全部楼层
本帖最后由 zuozhongkai 于 2020-3-25 10:14 编辑

1、你这个改好以后进入内核看看有没有5个mtd设备分区,有的话第四个应该就是user的,然后挂载测试一下。
2、至于说烧写失败,那你就要检查mfgtool的烧写算法,也就是那个xml文件,看看是不是你加了一个分区,然后导致其他的烧写位置对不上了

回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2020-2-12
在线时间
25 小时
 楼主| 发表于 2020-3-25 11:53:52 | 显示全部楼层
xiaotaotao 发表于 2020-3-25 08:39
你修改mtdparts就可以了,你注意到没,mtdparts它是bootargs参数的一部分,而bootargs参数是传给内核的,所 ...

我现在也是只修改了mtdparts,但替换了uboot后mfgtools烧写就出错了,是不是mfgtools也要改?
回复

使用道具 举报

2

主题

712

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2178
金钱
2178
注册时间
2018-8-27
在线时间
258 小时
发表于 2020-3-25 15:07:15 | 显示全部楼层
SeraX 发表于 2020-3-25 11:53
我现在也是只修改了mtdparts,但替换了uboot后mfgtools烧写就出错了,是不是mfgtools也要改?

是要改的   因为你的分区变了
森罗万象
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2020-2-12
在线时间
25 小时
 楼主| 发表于 2020-3-25 15:15:04 | 显示全部楼层
xiaotaotao 发表于 2020-3-25 15:07
是要改的   因为你的分区变了

能否请教修改哪里
回复

使用道具 举报

2

主题

712

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2178
金钱
2178
注册时间
2018-8-27
在线时间
258 小时
发表于 2020-3-25 17:42:19 | 显示全部楼层
SeraX 发表于 2020-3-25 15:15
能否请教修改哪里

你可以看下《i.MX6U嵌入式Linux驱动开发指南》第三十九章,里面有介绍mfgtool工具
森罗万象
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2020-2-12
在线时间
25 小时
 楼主| 发表于 2020-3-25 22:48:43 | 显示全部楼层
xiaotaotao 发表于 2020-3-25 17:42
你可以看下《i.MX6U嵌入式Linux驱动开发指南》第三十九章,里面有介绍mfgtool工具

书里并没有讲,最后在NAND补录视频里找到原因了,感谢
回复

使用道具 举报

9

主题

890

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2390
金钱
2390
注册时间
2019-9-25
在线时间
397 小时
发表于 2020-3-26 11:57:44 | 显示全部楼层
SeraX 发表于 2020-3-25 22:48
书里并没有讲,最后在NAND补录视频里找到原因了,感谢

可以写出来分享分享,可能会有的人遇到
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2020-2-12
在线时间
25 小时
 楼主| 发表于 2020-3-29 10:50:25 | 显示全部楼层
本帖最后由 SeraX 于 2020-3-29 10:52 编辑

虽然也不难,还是分享出来,方便有需要的人
1、修改uboot源码
修改对应的mx6ull_***_nand.h注意,rootfs所在分区号变了,所以ubi.mtd也要对应改变

C:\Users\HZM\Desktop\uboiot-1.jgp
C:\Users\HZM\Desktop\uboot-2.jpg
uboiot-1.jpg
uboot-2.jpg
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2020-2-12
在线时间
25 小时
 楼主| 发表于 2020-3-29 10:53:50 | 显示全部楼层
本帖最后由 SeraX 于 2020-3-29 10:55 编辑

2、修改mfgtools工具的mfgtool2-alientek-alpha-nand.vbs,修改rootfs对应的mtd号即可
uboot-3.jpg
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
129
金钱
129
注册时间
2020-2-12
在线时间
25 小时
 楼主| 发表于 2020-3-29 10:59:41 | 显示全部楼层
这样mfgtools烧写的时候会将文件烧写到对应的分区,user分区不会擦出。
系统启动后可以cat /proc/mtd查看分区信息




uboot-4.jpg
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2020-4-30
在线时间
8 小时
发表于 2022-5-1 22:06:00 | 显示全部楼层
SeraX 发表于 2020-3-29 10:50
虽然也不难,还是分享出来,方便有需要的人
1、修改uboot源码
修改对应的mx6ull_***_nand.h注意,rootfs ...

楼主很棒,根据你的办法成功给NAND版的IMX6UL的开发板分区了,感谢
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2020-4-30
在线时间
8 小时
发表于 2022-5-1 22:15:14 | 显示全部楼层
你好楼主,可以根据13楼、14楼您的方法给NAND分区,我实际测试了,那个办法是可以的,就是修改对应的mx6ull_***_nand.h里的两个跟分区有关的地方,然后重新make编译uboot就行,有几点要注意:
①改了uboot的分区,在使用mfgtool工具烧写的时候,要把file和firmware这两个文件夹里的uboot文件都要替换了,不能只替换file文件夹里的uboot,这是我自己亲自测试的,正点原子和米尔的文档里也说过这个;
②另外,还要注意在烧写之前要在uboot里执行nand erase.chip擦除NAND,否则也可能会导致错误出现;
③如果分区的mtd号改了,还要修改.vbs里的对应的mtd号,就跟14楼说的那样。
感谢楼主!!!
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2019-8-8
在线时间
5 小时
发表于 2022-12-31 20:02:56 | 显示全部楼层
mark!!
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2019-1-25
在线时间
3 小时
发表于 2023-3-17 16:05:22 | 显示全部楼层
Nand分区 mark一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 03:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表