社区
Linux_Kernel
帖子详情
在操作系统启动后, 如何修改u-boot的参数区?
clickchen2003
2010-07-27 04:27:19
有没有什么数据结构记录了u-boot args的信息, 并提供回写的方式?
...全文
1410
18
打赏
收藏
在操作系统启动后, 如何修改u-boot的参数区?
有没有什么数据结构记录了u-boot args的信息, 并提供回写的方式?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happy1357
2012-06-13
打赏
举报
回复
請問请问内核怎么对flash做写入的动作,要怎么额外弄一块flash分区来保存内核需要的command_line?
glacierful
2010-07-28
打赏
举报
回复
学习。
jiura
2010-07-28
打赏
举报
回复
顺便请教下14楼朋友 :
command_line 具体是怎么样从 uboot config 读到 ram..或者说kenerl读取uboot env config 后是怎么样放到ram 中..具体又是放在哪个位置??
我看到 _prom_argv = (unsigned long *) (fw_arg1 | 0x80000000);
能帮忙解释下嘛 ??
deep_pro
2010-07-28
打赏
举报
回复
有种简单的方法,绕过uboot的编码压缩
直接在内核中 init/main.c 里的 setup_arch(&command_line);
之前,将command_line 修改掉
需要额外弄一块flash分区来保存内核需要的command_line
clickchen2003
2010-07-28
打赏
举报
回复
多谢各位, 搞定了给大家结贴。
Wenxy1
2010-07-28
打赏
举报
回复
[Quote=引用 4 楼 clickchen2003 的回复:]
有多个rootfs,需要根据不同的情况进行加载,怎么做比较合适些? 谢谢 。
[/Quote]
改bootcmd这个环境变量。
充电宝111
2010-07-27
打赏
举报
回复
顺着这个思路:
1.uboot引导linux的参数都是写在flash上的,具体哪个地址看uboot的CFG_ENV_ADDR,具体格式uboot下有个setup.h文件(linux下也有个一模一样的文件,限ARM平台)
2.在linux上写一个简单的驱动,去写这个地址的flash
jiura
2010-07-27
打赏
举报
回复
理论上说几句哈:
uboot config 文件是存放在flash中。。kernle 起来后会从ram中读取uboot env 。这个就是setup过程。。一般kernle起来后。。uboot env 的值在当前运行中是不会被改变了。。
如果需要在当前运行中更改uboot env config值。。那就需要直接写flash。 这个env config 在uboot放入flash前是有做过编码压缩的。。所以如果在操作系统读取。需要解压读取。这个可以看uboot code。做个相反的过程就可以了。
deep_pro
2010-07-27
打赏
举报
回复
[Quote=引用 7 楼 clickchen2003 的回复:]
所以需要在linux启动后, 修改u-boot bootargs 启动不同的rootfs。
[/Quote]
你这么非主流的需求,自然linux是不会有支持的
只能自己写程序读写存放uboot env的flash吧
voice_shen
2010-07-27
打赏
举报
回复
可以用chroot来切换根文件系统!
clickchen2003
2010-07-27
打赏
举报
回复
补充一句, 是需要重启动的。
clickchen2003
2010-07-27
打赏
举报
回复
所以需要在linux启动后, 修改u-boot bootargs 启动不同的rootfs。
deep_pro
2010-07-27
打赏
举报
回复
http://hi.baidu.com/deep_pro/blog/item/220df2dddac6e3d28d1029dd.html
根文件系统重定向只在pc上见过,如非必要,还是不要这么弄了
deep_pro
2010-07-27
打赏
举报
回复
一般自然是在uboot里就决定了根文件系统
难道你要在Linux里进行判断啊,真得要那那样的话,可以使用根文件系统重定向
clickchen2003
2010-07-27
打赏
举报
回复
有多个rootfs,需要根据不同的情况进行加载,怎么做比较合适些? 谢谢 。
deep_pro
2010-07-27
打赏
举报
回复
这个,既然Linux都起来了,改uboot的bootargs也没有太大意义了,因为setup已经完成了
除非你的驱动做成了module,Linux启动一段时间后才加载的,可能需要用到这些参数
/proc/cmdline 记录了这些信息,我不知道修改这个是否会对linux造成影响,但是肯定不会修改uboot的bootargs的,那个只能由uboot的setenv、saveenv修改
有些模块参数可以在运行时更改
echo -n ${value} > /sys/module/${modulename}/parameters/${parm}
clickchen2003
2010-07-27
打赏
举报
回复
不是在u-boot里面, 而是linux启动后。
wwwunix
2010-07-27
打赏
举报
回复
用setenv bootargs设置
用writebdr回写
U-Boot
工程
U-Boot
(全称 Das
U-Boot
)是一款开源的引导加载程序,广泛应用于嵌入式系统中。它支持多种处理器架构,包括 ARM、MIPS、PowerPC、x86 和 RISC-V 等,并且可以从多种存储介质(如 Flash、eMMC、SD 卡、USB 等)
启动
操作系统
。作为 Linux 系统的首选引导工具,
U-Boot
还支持其他嵌入式
操作系统
,如 Android 和 ChromeOS,使其成为嵌入式设备开发中的关键组件。
修改
p1020
u-boot
中的
启动
必要
参数
根据我们创建的单板,
修改
u-boot
p1020ndae的相关配置 时钟和ddr是运行
操作系统
最基本的条件,必须有。
修改
时钟频率 #if defined(CONFIG_P2020RDB) #define CONFIG_SYS_CLK_FREQ 100000000 #else #define CONFIG_SYS_CLK_FREQ 100000000 #endif #define CONF...
U-boot
启动
流程[一]
1.2 Atf与
U-boot
组合方式
启动
save_boot_params保存上一级镜像传入的
参数
,该函数由平台自行定义若支持pie则检查代码段是否为4k对齐(因为由于指令集中操作数长度的限制,adr等类型指令的寻址范围是需要4k对齐的)pie_fixup为pie重定位全局地址相关的.rela.dyn段内容reset_sctrl根据配置确定是否重设sctlr寄存器为uboot设置异常向量表。spl和uboot异常向量表设置有以下不同: (1)若当前从cpu为spin table
启动
方式,且当前执行
U-Boot
移植教程之一:
U-Boot
分析与
启动
过程
一、Bootloader的引出 当系统上电时,并不是直接进入Linux系统的,而是需要先执行一段程序来把单片机的硬件外围初始化好,比如:看门狗、单片机时钟、存储控制器等。如果这段程序能将
操作系统
内核复制到内存中运行,无论是从本地(比如Flash)还是从远端(比如网络)就称这段程序位Bootloader。 简单地说,Bootloader就是上电时就开始执行,初始化硬件设备为
操作系统
准备好执行环境,最后调用
操作系统
内核。 Bootloader还可以具有通过串...
Linux
U-Boot
启动
流程详解
Linux
U-Boot
的
启动
流程是一个复杂但又非常重要的过程,它涉及到硬件初始化、软件加载和控制权传递等多个环节。通过深入理解
U-Boot
的
启动
流程,开发人员可以更好地进行嵌入式系统的开发和调试工作,解决在
启动
过程中可能遇到的各种问题。同时,对于不同的硬件平台和应用需求,开发人员还可以对
U-Boot
进行定制和优化,以满足系统的特定要求。
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章