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

相关推荐
BestOrNothing_201518 分钟前
(2)联想拯救者安装 Ubuntu 双系统前的 BIOS 设置全过程
linux·bios·拯救者·ubuntu22.04·联想lenovo
以太浮标18 分钟前
华为eNSP模拟器综合实验之- ACL控制列表核心命令全解析及场景应用
运维·网络·网络协议·华为·信息与通信
23.26 分钟前
【Linux】grep命令终极指南
linux
巨斧空间掌门29 分钟前
JDK17 下载 windows Linux
linux·运维·服务器
小挪号底迪滴31 分钟前
Docker容器化实战:从“在我机器上能跑“到环境一致性
运维·docker·容器
AI+程序员在路上1 小时前
CANopen 协议:介绍、调试命令与应用
linux·c语言·开发语言·网络
江畔何人初1 小时前
kube-apiserver、kube-proxy、Calico 关系
运维·服务器·网络·云原生·kubernetes
learndiary2 小时前
2026.03.12~2026.03.19制作的共7个视频及简介
linux·视频·学习日记小店
JiMoKuangXiangQu2 小时前
Linux:ARM64 中断处理简析
linux·arm64 中断
_下雨天.2 小时前
Nginx性能调优与深度监控
运维·nginx