找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 7868|回复: 20

编译8M的固件,为什么还是按照4M的来分区?

[复制链接]
修改了MTD的分区结构,在openwrt的wiki上看了很久,和那里的教程说的也一样,论坛也搜索了也是按照论坛中说的办法修改的,为什么还是不行?内核启动日志还是按照4M在分区,机器dir-615,求解
上些具体信息看看
回复

使用道具 举报

 楼主| | 显示全部楼层
2# xll
编辑这个文件mach-dir-615-c1中到MTD分区信息为

static struct mtd_partition dir_615c1_partitions[] = {
        {
                .name                = "u-boot",
                .offset                = 0,
                .size                = 0x020000,
                .mask_flags        = MTD_WRITEABLE,
        }, {
                .name                = "config",
                .offset                = 0x020000,
                .size                = 0x010000,
        }, {
                .name                = "kernel",
                .offset                = 0x030000,
                .size                = 0x0d0000,
        }, {
                .name                = "rootfs",
                .offset                = 0x100000,
                .size                = 0x6f0000,
        }, {
                .name                = "art",
                .offset                = 0x7f0000,
                .size                = 0x010000,
                .mask_flags        = MTD_WRITEABLE,
        }, {
                .name                = "firmware",
                .offset                = 0x030000,
                .size                = 0x7c0000,
        }
};
#endif /* CONFIG_MTD_PARTITIONS */
但实际上在编译好了,刷机后看内核到日志,还是按照4M的来分区到,这个位置完全没有起到作用
回复

使用道具 举报

是全新编译还是修改后重编译?
重编译建议清下.a和.o文件。
回复

使用道具 举报

 楼主| | 显示全部楼层
4# xll

第一次编译 就是修改了这个文件后编译到,每次编译前都make clean 和make defconfig了,刚刚又编译来一下,得到了一个支持USB的最新到固件,刷机也成功了,但是分区还是没改过来,而且对比网上网友提供到启动日子,在内核日志中确实可以看到系统是识别到了8M的FLASH的,个人认为是不需要改UBOOT就可以支持8M的,但是就是不能修改分区信息,求解释,谢谢
回复

使用道具 举报

也不排除uboot限制的可能,因为编译uboot时也是要选择flash大小的,什么芯片的如果是ra的我可以帮你编译
回复

使用道具 举报

 楼主| | 显示全部楼层
6# xll


我就是了解到可能uboot也存在限制,现在想尝试U-BOOT引导内核的时候不是要传提参数给内核么,我怎么修改可以自己指定参数给内核呢,下到了DIR-615的GPL源码包,但是还没搞清楚怎么编译,以及不确定里面是否有带UBOOT的代码。
也确实是AR的芯片,
D-LINK DIR-615
Revisions C1/C2:

Architecture: MIPS
Bootloader: U-Boot
System-On-Chip: Atheros AR9130
CPU Speed: 400 Mhz
Flash-Chip: W25x32vf1g
Flash size: 4 MiB
RAM-Chip: Winbond W9425G6EH-5
RAM size: 32 MiB (4M x 4 x 16bit)
Wireless: AR9102 802.11n Radio
Ethernet: AR8216 6-port switch
USB: 1x header on PCB, unpopulated
Serial: Yes
JTAG: Yes
Circuit: Dir615C1
回复

使用道具 举报

make clean
回复

使用道具 举报

 楼主| | 显示全部楼层
8# 729650915


每次编译都clean了
回复

使用道具 举报

那make dirclean试试
回复

使用道具 举报

虽然都是MIPS架构,但是AR的Uboot还没有编译过,只编译了RA的。
回复

使用道具 举报

lz你的数据错了,用这个就好了:
         {
                 .name           = "u-boot",
                 .offset         = 0,
                 .size           = 0x020000,
                 .mask_flags     = MTD_WRITEABLE,
         }, {
                 .name           = "kernel",
                 .offset         = 0x020000,
                 .size           = 0x140000,
         }, {
                 .name           = "rootfs",
                 .offset         = 0x160000,
                 .size           = 0x690000,
         }, {
                 .name           = "art",
                 .offset         = 0x7f0000,
                 .size           = 0x010000,
                 .mask_flags     = MTD_WRITEABLE,
         }, {
                 .name           = "firmware",
                 .offset         = 0x020000,
                 .size           = 0x7d0000,
         }
回复

使用道具 举报

 楼主| | 显示全部楼层
12# Grelon
你好,我是看到原mach-dir-615-c1 文件中存在config分区才在原基础上改的,去掉这个,就可以来么?为什么呢?
回复

使用道具 举报

没有64K的config分区? 表示怀疑
回复

使用道具 举报

 楼主| | 显示全部楼层
14# xll

我研究下,确定是U-BOOT传递参数给内核的时候覆盖来原内核中的分区参数,默认的是U-BOOT传递的cmdline的优先级高于内核内的,所以即便是修改了配置文件也不行,我尝试着去修改了内核的配置,自己写cmdline并不接受来自U-BOOT的参数,但编译看来,路由不能启动,但感觉应该还是内核获取的参数出了问题。现在就是找不到dlin dir 615路由的UBOOT源码,很是头疼,对linux的内核也不是很了解,不知到MTD分区到底是怎么进行的。
回复

使用道具 举报

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

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-16 14:35

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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