如何修改bootargs参数使u-boot从网络引导内核

uboot 中的bootargs 如何 修改 内核的 cmdline和 linux 内核如何生成 /proc/cmdline 总结:在U-Boot中,可以通过修改环境变量 “bootargs” 来修改内核的启动参数(cmdline)。因此,/proc/cmdline文件中的内容是由引导加载程序或启动参数配置文件传递给内核的命令行参数生成的。在Linux内核启动时,内核会根据引导加载程序(如GRUB)或启动参数配置文件(如U-Boot中的环境变量)等信息生成/proc/cmdline文件。在<新的启动参数>中,可以指定要传递给内核的任何启动参数,如rootfs的位置、调试选项、内核参数等。找到名为 “bootargs” 的变量。 阅读详情

如何修改bootargs参数使u-boot从网络引导内核?
开发板上电运行u-boot后,不按下空格键,将会自动从flash引导内核。但现在我想从通过通过网络自动从TFTP SERVER下载并启动内核,而不是从flash启动内核。在网上搜了很长时间,知道是修改bootargs参数。但是怎么样修改,网上确实鲜有资料。
修改bootargs参数应该就是修改hhbf.h中的
#define CONFIG_BOOTARGS "root=/dev/mtdblock0 rw lpj=5931008" /
                   " mem=32m console=ttyS0,115200n8" /
              " hdb=noprobe ide0=noprobe"
应该怎么修改CONFIG_BOOTARGS,才能使u-boot自动从TFTP下载并启动内核Image呢?即:tftp;bootm,echo(即环境变量中的tftp_boot)呢?

1楼:>>参与讨论
hardfire
哦,错啦,应该是bootcmd
bootcmd=nand read 30008000 100000 100000;go 30003000

2楼:>>参与讨论
cramkl
应该是修改CONFIG_BOOTCOMMAND吧?
我修改
#define CONFIG_BOOTCOMMAND    "run linuxrun"    /* XXX: For autoboot */
为
#define CONFIG_BOOTCOMMAND    "run tftp_boot"
但仍然从flash引导Image了,我想还应该修改其它地方吧?

在#define    CONFIG_EXTRA_ENV_SETTINGS                    /
    "netdev=eth0/0"                            /
    "netretry=yes/0"                        /
    "uboot=0x20000000/0"                        /
    "linux=0x20040000/0"                        /
    "loadaddr=0x01000000/0"                        /
    "bootfile=zImage.bin/0"                        /
    "linuxrun=bootm 0x20040000;echo/0"                /
    "tftp_boot=tftp;bootm;echo/0"                    /
    "serial_boot=loadb;bootm;echo/0"                /
    "menucmd=tftp;bootm;echo/0"                    /
    "autoload=yes/0"                        /
    "autostart=no/0"                        /
    ""
中定义了linuxrun,为从FLASH启动,所以run linuxrun从flash引导Image,
定义了tftp_boot,所以照道理开说run tftp_boot应该从网络启动,但实际上为什么改过后仍然从flash引导了呢?

3楼:>>参与讨论
hardfire
bootcmd是env的参数
应该是不需要修改u-boot源代码的,修改了也没用。
应该是在u-boot命令行下面用setenv bootcmd xxx
这样来设置后,saveenv写入env扇区才能生效的。
若直接修改代码,也不会影响到env扇区,除非env扇区是空的。

4楼:>>参与讨论
cramkl
成功了!!
谢谢hardfile,
原来以为要修改U-BOOT代码,修改了好久也没成功。
原来只要setenv bootcmd tftp_boot,然后saveenv,重启,u-boot就可以自动从网络下载引导内核了。
 

嵌入式开发实战:U-Boot bootargs修改与内核cmdline调试技巧(附常见问题排查) 本文深入探讨了嵌入式Linux系统中U-Boot bootargs的修改与内核cmdline的调试技巧。通过解析U-Boot环境变量存储机制、bootargs语法规则,并结合树莓派、i.MX6ULL等平台实战案例,详细阐述了参数从U-Boot传递至内核并最终体现在/proc/cmdline中的完整链路。文章还提供了串口输出异常、根文件系统挂载失败等常见问题的系统化排查方法,帮助开发者高效解决启动参数配置难题。 阅读详情

相关推荐

嵌入式Linux网络启动详解:从U-Boot的bootcmd/bootargs到根文件系统挂载全流程

本文详细解析了嵌入式Linux网络启动的全流程,从U-Boot的bootcmd/bootargs配置到根文件系统挂载。通过TFTP协议快速下载内核镜像(zImage)和设备树文件,利用NFS协议远程挂载根文件系统,实现高效的开发调试环境。文章提供了关键环境变量配置、服务器端服务设置及常见问题排查方法,帮助开发者掌握网络启动的核心技术。

weixin_30800987的博客 630

uboot默认环境变量修改

U-BOOT通过修改源码来修改环境变量

qq_39525606的博客 8165

U-Boot实战指南:从命令行到内核引导的完整流程解析

本文详细解析了U-Boot从命令行操作到内核引导的完整流程,涵盖环境搭建、信息查询、文件操作、内核引导及故障排查等实战技巧。通过具体命令示例和常见问题解决方案,帮助开发者高效掌握U-Boot的核心功能,提升嵌入式系统开发效率。

weixin_30542079的博客 407

bootcmd 和 和 bootargs 环境变量 启动Linux

bootcmd 和 和 bootargs 环境变量 启动Linux

qq_24330911的博客 3548

嵌入式Linux系统root密码重置实战:从U-Boot引导到文件系统修改

在Linux系统管理中,用户认证的核心机制依赖于/etc/shadow文件存储的加密密码哈希。当密码遗忘时,常规登录途径被阻断,此时需要从系统引导层面寻找突破口。其技术原理在于通过修改Linux内核的启动参数,将默认的init进程替换为/bin/sh等shell,从而在启动初期直接获得root权限的交互环境,绕过了完整的认证流程。这一方法在服务器运维和嵌入式设备维护中具有重要价值,尤其适用于设备回收、系统调试和紧急恢复等场景。本文聚焦于嵌入式Linux环境,针对U-Boot引导、只读文件系统等典型挑战,提供

weixin_30788239的博客 369

嵌入式Linux启动全解析:U-Boot、内核与根文件系统的三级火箭模型

在嵌入式Linux系统开发中,系统启动是一个从底层硬件初始化到完整操作系统运行的精妙过程。其核心原理遵循经典的“三级火箭”模型:第一级Bootloader(如U-Boot)负责硬件初始化和环境搭建;第二级Linux内核进行全面的硬件驱动加载与核心子系统初始化;第三级根文件系统(rootfs)则提供用户态运行环境。这一流程的技术价值在于实现了硬件抽象与软件分层的解耦,使得嵌入式设备能够从裸机状态可靠地启动至复杂的应用生态。在实际应用场景中,开发者常需处理如**U-Boot SPL阶段DDR初始化失败**、**

weixin_34034261的博客 614

uboot的配置文件介绍

u-boot 支持很多开发板, 而开发板外设不同, 所以给每个开发板都会有一个自己的配置头文件, 这个文件是 include\configs\板名.h,u-boot 中使用到所有宏定义都应该在定义在这个文件中, 这个文件有两类宏定义, 一种 CFG_开头, 一种是 CONFIG_开头的。 CONFIG_开头的宏一般使用来定义芯片级的功能, CFG_开头的宏一般 是用来定义板级功能。头文件中定义的宏...

仗劍走天涯 5039

U-BOOT必知必备的一些知识(常用部分)

1.首先u-boot的是干啥的? 启动linux系统的,要想启动linux系统,必须初始化跑linux的DDR (一般linux镜像存储在外置存储flash位置) 2.u-boot从哪里获取? uboot官网有,但是支持少,可以从soc厂商定制版的uboot,然后修改他们的uboot适应自己的板子 3.u-boot有源码了怎么编译 建议直接在u-boot顶层makefile里面修改arch和cross_compile这两个变量来使用编译器编译 4.u-boot命令重点必知必背 ping命令:

weixin_41040351的博客 681

Bootargs 参数

bootargs 的参数还有以下一些。

Jarvis的博客 1479

linux启动minicom、u-boot的常用命令、网络命令tftp、nfs/根文件系统、u-boot的bootargs环境变量

既然u-boot可以使用tftp来下载任意文件,那么就可以使用tftp下载编译好的linux内核文件到mini2440中,并让mini2440引导linux系统。这里的根文件系统其实指的是一个文件夹,这个文件夹其实就是linux的系统根目录。NFS(Network File System)是一种用于分布式文件系统的协议,它允许计算机用户或者操作系统通过网络以NFS客户端形式访问远程服务器上的文件。因为我们需要通过该协议从电脑上下载linux内核程序,但是要使用tftp,就需要我们配置好网络相关的环境变量。

m0_61988812的博客 518

高等数学第五章---定积分(§5.3定积分的计算方法)

这篇博客详细讲解定积分的计算方法,包括直接法、凑微分法、变量代换法和分部积分法。通过典型例题演示如何运用这些技巧计算定积分,特别强调换元必换限的原则和奇偶函数的简化处理。内容涵盖代数变形、三角代换、分段函数积分等常见题型,并附有详细的解题步骤和常见错误分析。适合微积分学习者系统掌握定积分计算技巧,提升解题效率。文中还包含积分等式证明和变限积分函数求导等进阶内容,帮助读者深入理解定积分的应用。

2302_77045867的博客 4334

U-Boot详解:嵌入式系统的引导加载程序

本文介绍了嵌入式系统引导加载程序U-Boot的核心概念和使用方法。主要内容包括:U-Boot的功能特性及重要性;如何获取官方或厂商提供的U-Boot源码;交叉编译工具链的安装和U-Boot编译步骤;通过厂商工具、TFTP网络或USB烧写U-Boot到设备的方法;以及U-Boot常用命令详解,如环境变量操作、内存操作和存储设备操作等。文章为嵌入式开发人员提供了U-Boot从获取到使用的完整指南,帮助开发者掌握这一关键的嵌入式系统组件。

2301_80672443的博客 1125

JS+H5打字练习器

实现功能 1.导入.TXT文件到打字练习内容(部分浏览器可能出于安全问题限制了这一步操作) 2.输入文本到打字练习内(弹出输入框,将要练习的内容输入至输入框) 3. 开始练习,并根据正误在打字练习内容文本上修改颜色(某个字正确显示绿色,某个字错误,显示红色,某个字没有打显示灰色) 4.开始练习、结束练习,全部输入完成后自动结束练习,也可提前手动结束练习,结束练习后弹窗用显示时和正确率。(区别在于一个全部输入完成且全部正确,一个提前结束无其他条件) 效果图 分析 HTML 结构解析 根元素:<!DO

w11111xxxl的博客 1414

嵌入式Linux INITRD配置与启动实战:从内核配置到U-Boot引导

在嵌入式Linux系统开发中,根文件系统的挂载是系统启动的关键环节。其核心原理在于,内核启动后需要访问一个包含基本工具和驱动的文件系统,才能完成硬件初始化并挂载最终的根文件系统。这一技术对于资源受限或启动环境不稳定的嵌入式平台具有重要价值,它能确保系统从“能启动”到“稳定启动”。INITRD(Initial RAM Disk)正是实现这一目标的核心技术之一,它作为一个临时的、内存中的根文件系统,为内核提供了必要的运行环境。在嵌入式开发中,尤其是在类似MPC8220这类老牌平台上,INITRD常与U-Boot

weixin_30780649的博客 389

Java 开发 修改【冒险岛 079 私服】完整学习流程

第 1-2 天:环境搭建 + 运行原版 079 服务端,能正常登录游戏;第 3-4 天:纯配置文件修改,掌握倍率、属性、怪物、道具的修改,改出第一个「百倍经验私服」;第 5-10 天:Java 代码基础修改,掌握 Player/Skill/Monster 核心类的修改,实现技能无冷却、一刀秒怪、升级满属性;第 11-20 天:Java 代码进阶修改,掌握业务逻辑修改,实现死亡不掉经验、自动捡物、装备强化无失败;第 21-30 天。

萧曳丶 3895

跟着团子学SAP EPPM:项目管理常见的集成场景(PPM\PS\MS Project)

在SAP的EPPM解决方案中,针对企业战略级别的投资组合管理首先是定义合适的投资组合的层级结构,在投资组合下可以通过不同维度去定义投资篮(Portofolio Bucket)进行层层拆分,在最下层级的投资篮下可以分配明细的投资项(Portofolio Item),投资项可以是独立的一个一个具体执行的项目,也可以是单纯的一次服务等等。 今天主要聚焦在投资项的维度展开讲一下在SAP中投资项常见的几种集成模式: 集成场景1:使用PPM中的Project Management进行项目管理 第一个场景是在创建投资项

Lucas1211的博客 4139

U-Boot移植实战:从PowerPC HPC II平台硬件初始化到Linux内核引导

引导加载程序(Bootloader)是嵌入式系统上电后首先执行的底层软件,负责初始化硬件、建立运行环境并加载操作系统。其核心原理在于与特定硬件平台进行精确对话,通过配置内存控制器、外设寄存器等完成从存储介质到内存的代码重定位。在嵌入式开发中,Bootloader的移植与适配具有极高的技术价值,它直接决定了系统能否正常启动,是连接硬件与操作系统的关键桥梁。常见的应用场景包括工业控制、网络设备、消费电子等嵌入式设备开发。本文以U-Boot在Freescale HPC II评估平台(基于PowerPC MPC74

weixin_30908941的博客 391

Unity 2022.3.3 LTS + Visual Studio 2022:手把手教你复刻《吸血鬼幸存者》核心战斗(附完整项目源码)

本文详细介绍了如何使用Unity 2022.3.3 LTS和Visual Studio 2022从零构建《吸血鬼幸存者》式战斗系统。通过图文开发教程,涵盖对象池优化、ECS架构雏形、2D物理碰撞控制等关键技术,帮助开发者高效复刻这款热门游戏的自动攻击与海量刷怪机制。

weixin_30721077的博客 458

U-Boot 环境变量:启动失败时,先确认它到底加载了什么

U-Boot 环境变量是嵌入式 Linux 启动链路的"控制面板"。排查启动失败时,首先回答三个问题:板子实际加载了哪个内核镜像?加载了哪个 dtb?bootargs 里 root 参数指向哪里?这三个问题的答案不在内核日志里,在 U-Boot 的printenv输出里。工程实践上,做三件事可以避免大部分环境变量问题:量产前锁定 bootcmd 和 bootargs 的生成脚本,杜绝手工修改;每次镜像发布时归档环境变量的 SHA256 散列;

qq_42431428的博客 6219

按照autoware.universe官方从零搭建自己的自动导航小车(三)(续)

本文介绍了在Autoware框架下完善自定义传感器套件描述包的详细过程。主要内容包括:1)创建传感器描述包tinyplc_sensor_kit_description,包含YAML标定文件和URDF模型;2)配置传感器与车辆基座的相对位姿,实现sensor_kit.xacro和sensors.xacro宏文件;3)更新sensor_kit.launch.xml文件以集成激光雷达和GNSS/IMU驱动。通过xacro验证URDF模型正确性后,下一步计划接入Helios16激光雷达数据并在Rviz2中验证点云显

qq_45335326的博客 1273

Zephyr内核——内存管理——内存堆

Zephyr提供了一组允许线程动态分配内存。

wayne2018的博客-心情驿站 772

详细说明嵌入式linux中bootcmd与bootargs差异

bootcmd和bootargs。

最后一个bug的博客 660

OpenClaw实现多agent协作研究

本文介绍了如何构建多agent协作系统,通过飞书机器人实现任务分配与执行。系统包含三个agent:research_leader(总调度)、research_content(内容生成)和research_review(内容审核)。详细说明了agent配置方法(包括创建命令、权限设置)、飞书channel绑定方式,以及通过共享目录和会话机制实现协作。最后展示了应用示例,用户只需向leader机器人下达任务,系统即可自动完成内容生成和审核的全流程。

hhue2007的专栏 617

U-Boot 2026.07 启动流程深度解析:从Boot ROM到内核移交的7个关键阶段

本文深度解析U-Boot 2026.07的启动流程,详细介绍了从Boot ROM初始化到内核移交的7个关键阶段,包括启动模式选择、设备初始化、DCD解析、低级硬件初始化、板级配置、驱动初始化和内核加载。内容涵盖ARM Cortex-A系列处理器的启动机制、DDR控制器配置、设备树处理等核心技术,为开发者提供全面的U-Boot启动流程指南。

weixin_30598225的博客 425

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IMX6ULL启动流程全解析:从Boot ROM到Linux内核的完整指南

嵌入式系统启动是一个多阶段、接力式的过程,其核心在于理解从硬件上电到操作系统就绪的完整链路。启动流程通常始于芯片内部固化的Boot ROM代码,它根据硬件配置选择启动设备,并加载初始引导程序。这一过程涉及关键的硬件初始化,如时钟和内存控制器配置,特别是DDR内存的初始化,这是系统能否正常运行的第一个技术门槛。随后,引导程序(如U-Boot)会接管,负责更复杂的外设初始化和环境准备,并为加载操作系统内核创造条件。内核启动后,通过解析设备树来识别硬件,并最终挂载根文件系统,完成从底层硬件到上层应用的交接。这种分

weixin_30345577的博客 346

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: arm 嵌入式LINUX启动过程(2)
下一篇: 新托福与旧托福的比较
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值