龙芯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"方案 ------ 简单、可靠、无需修改固件。

相关推荐
千百元20 小时前
centos如何删除恶心定时任务
linux·运维·centos
skywalk816320 小时前
网站证书自动续订失败的问题解决,原来是续订指令certbot renew出错,导致crontab定时任务续订失败
运维·服务器·证书·certbot
额呃呃20 小时前
游戏服务器和一般高性能服务器的区别
运维·服务器·游戏
liwulin050620 小时前
【JAVA】创建一个不需要依赖的websocket服务器接收音频文件
java·服务器·websocket
2501_9061505621 小时前
开源问卷平台DWSurvey开发配置记录
运维·开源·jenkins
gaize121321 小时前
服务器分类及区别划分!多样化服务器用途体系架构及层次分类
运维·服务器·架构
鲁正杰21 小时前
【运维部署】现代化内网穿透与文件共享方案 (Rust)
运维·开发语言·rust
oMcLin1 天前
如何在Manjaro Linux上配置并优化Caddy Web服务器,确保高并发流量下的稳定性与安全性?
linux·服务器·前端
济6171 天前
linux(第七期)--gcc编译软件-- Ubuntu20.04
linux·运维·服务器