龙芯2k0300 PMON取消Linux自启动

适用场景 :调试固件、烧录新系统、排查启动问题
关键词:龙芯 2K0300、PMON、取消自动启动、boot.cfg、auto_loaded

在使用 龙芯 2K0300 开发板 进行嵌入式开发时,我们经常需要 中断 PMON 的自动启动流程 ,以便手动加载内核、烧写镜像或调试硬件。但你会发现:PMON 并不像 U-Boot 那样支持 saveenv 命令,导致设置无法持久保存。

本文将介绍两种可靠方法,助你彻底"停住"PMON,进入命令行调试模式。


❓ 为什么需要取消自启动?

默认情况下,PMON 启动后会:

  1. 倒计时 3 秒(Booting system in [3] second(s)...)
  2. 自动扫描 eMMC/SD 卡/U 盘中的 boot.cfg、/boot/boot.cfg
  3. 按配置加载 Linux 内核并启动

这在量产设备中很实用,但在开发阶段却会阻碍调试------你根本来不及按任意键中断!


✅ 方法一:尝试设置 auto_loaded 0(临时有效)

这是最直接的方式,但在 2K0300 上通常无法永久生效。

操作步骤:

  1. 开机时按任意键,进入 PMON 命令行:

    复制代码
    Booting system in [3] second(s)...
    (快速按任意键)
    PMON>
  2. 输入命令禁用自动加载:

    pm 复制代码
    PMON> set auto_loaded 0
  3. (可选)清空启动命令:

    pm 复制代码
    PMON> setenv bootcmd ""
  4. 重启测试:

    pm 复制代码
    PMON> reset

⚠️ 重要限制:

  • saveenv 命令不存在!
    在龙芯 2K0300 的标准 PMON 中,没有 saveenv 命令 (执行会提示 Command not found)。
  • 因此,上述设置仅在本次会话有效,重启后恢复默认行为。

💡 结论:此方法适合单次调试,但无法"永久"禁用自启动。


✅ 方法二:重命名 boot.cfg(推荐!持久有效)

既然 PMON 的自动启动依赖 boot.cfg、 /boot/boot.cfg 文件,那我们就让它找不到这个文件!

原理:

  • PMON 启动时会依次扫描 eMMC、SD 卡、U 盘的 boot.cfg、 /boot/boot.cfg
  • 如果找不到,就会放弃自动启动,停在 PMON> 命令行

操作步骤:

  1. 先正常启动进入 Linux 系统(确保能访问 eMMC)

  2. 执行重命名命令:

    bash 复制代码
    sudo mv /boot/boot.cfg /boot/boot.cfg.bak
  3. 重启开发板:

    bash 复制代码
    sudo reboot
  4. 观察串口输出:

    • 不再出现倒计时
    • 直接进入 PMON> 提示符
    • 可自由输入命令(如 help, mmcinfo, usb 等)

✅ 成功!现在你可以随意调试了。


🔁 如何恢复自动启动?

只需把文件名改回来:

bash 复制代码
sudo mv /boot/boot.cfg.bak /boot/boot.cfg
sudo reboot

下次启动,PMON 将恢复正常自动加载。


🧪 补充:手动启动 Linux(无需 boot.cfg)

即使没有 boot.cfg,你仍可手动启动系统:

pm 复制代码
# 加载内核(假设在 eMMC 第一分区,ext4)
PMON>load (emmc0,0)/boot/vmlinuz-custom-loongarch

# 启动
PMON>g  console=tty console=ttyS0,115200 rdinit=/sbin/init rootdelay=5 root=/dev/mmcblk0p1

📌 总结

方法 是否持久 操作难度 推荐度
set auto_loaded 0 ❌ 临时 ⭐ ★★☆
重命名 boot.cfg ✅ 永久 ⭐⭐ ★★★★★

对于龙芯 2K0300 开发者,强烈推荐使用"重命名 boot.cfg"方案 ------ 简单、可靠、无需修改固件。

相关推荐
迪康coolmu5 分钟前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
民乐团扒谱机1 小时前
【微实验】NSGA-II(非支配排序遗传算法)——解决多目标优化问题的“自然选择模拟器”
linux·人工智能·算法
물の韜2 小时前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq
qq_371802112 小时前
Ubuntu Linux中安装WorkBuddy
linux·运维·服务器·ubuntu
无足鸟ICT2 小时前
【RHCA+】iptraf-ng(网络监控分析)
linux·网络
独隅3 小时前
WebStorm 在 Linux 环境下的实战安装与高效开发指南
linux·ide·webstorm
逃逸线LOF3 小时前
服务网关Gateway
java·运维·gateway
坤坤子吖4 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
分布式存储与RustFS4 小时前
OpenSearch 的索引快照别只留本地:用 repository-s3 存进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准