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

相关推荐
喜欢吃燃面6 小时前
Linux:环境变量
linux·开发语言·学习
代码游侠6 小时前
ARM开发——阶段问题综述(二)
运维·arm开发·笔记·单片机·嵌入式硬件·学习
Mr.朱鹏7 小时前
Nginx路由转发案例实战
java·运维·spring boot·nginx·spring·intellij-idea·jetty
java_logo7 小时前
OpenCode 企业级 Docker 部署完整指南
运维·docker·容器·opencode·opencode本地化部署·opencode部署手册·opencode部署方案
TTBIGDATA9 小时前
【knox】User: knox is not allowed to impersonate admin
大数据·运维·ambari·hdp·trino·knox·bigtop
佑白雪乐9 小时前
<Linux基础第10集>复习前面内容
linux·运维·服务器
春日见10 小时前
自动驾驶规划控制决策知识点扫盲
linux·运维·服务器·人工智能·机器学习·自动驾驶
暮云星影10 小时前
四、linux系统 应用开发:UI开发环境配置概述 (三)
linux·ui·arm
玉树临风江流儿10 小时前
docker镜像加速器配置步骤
运维·docker·容器