1. 从“板砖”到复活我的龙芯派2代救砖记几年前我入手了一块龙芯派2代开发板本想着用它来折腾点国产芯片上的开源项目。结果一次手滑在PMON的命令行界面里一个没留神就把PMON给删了。好家伙开机直接黑屏电源灯亮着但啥反应都没有真成了一块“高科技板砖”。当时心里那个凉啊以为这板子就这么报废了。后来才知道PMON对于龙芯派就像是电脑的BIOS没了它处理器连最基本的“自检”和“找系统”都不会了可不就砖了嘛。幸运的是我联系上了龙芯的技术支持一位好心的工程师把他自用的EJTAG调试器借给了我这才开启了这段“救砖”之旅。整个过程说白了就是两步第一步用EJTAG这个“外科手术工具”把PMON这个“大脑底层系统”重新烧写进去第二步再用U盘给这块“复活”的开发板重新安装一个操作系统比如Loongnix。听起来好像挺硬核但实际操作下来只要你跟着步骤走避开我踩过的那些坑完全能自己搞定。这篇文章我就把自己在Ubuntu系统下从零开始救活龙芯派2代的完整过程、遇到的坑以及最终成功的经验毫无保留地分享给你。2. 救砖核心认识PMON与EJTAG2.1 PMON龙芯派的“引路人”在开始动手之前我们得先搞清楚我们在救什么。PMON很多人可能第一次听说。你可以把它理解为龙芯处理器专属的“加强版BIOS”或者“Bootloader”。X86电脑开机BIOS负责初始化硬件、检测设备然后从硬盘找到Windows并启动。龙芯派开机干这个活的就是PMON。它不仅仅负责启动还自带一个简单的命令行环境你可以在里面查看内存、设置启动参数、甚至进行简单的文件操作。我当时就是在那个命令行里一个rm命令误操作把它自己给删除了。所以PMON是龙芯派能启动的绝对前提它坏了或者没了板子就“失忆”了这是我们一切操作的起点。2.2 EJTAG给处理器做“脑部手术”的工具板子自己已经无法启动了常规的插U盘、按按键根本没用。这时候就需要一个能从外部“强行”与处理器芯片对话的工具这就是EJTAG。EJTAG是一种硬件调试接口你可以把它想象成给芯片连接的“外部大脑”和“编程器”。通过专用的EJTAG调试器一个硬件小盒子用线缆连接到开发板上预留的调试针脚我们就可以从另一台正常的电脑我们称为宿主机这里用Ubuntu上直接对龙芯派2代芯片内部的存储区域进行读写。我们的目标就是把正确的PMON固件文件通过这个通道“烧录”到芯片指定位置。这个过程不依赖于开发板自身的任何软件所以哪怕它是一片空白也能救回来。我用的就是龙芯工程师寄给我的那个EJTAG调试器市面上也有一些兼容的调试器可用。3. 战前准备软件、硬件与镜像3.1 硬件清单清点工欲善其事必先利其器。先把需要的东西备齐“砖头”龙芯派2代开发板这个不用说我们的救治对象。EJTAG调试器核心工具。我用的型号是兼容龙芯2K1000处理器的。你需要确认你的调试器支持龙芯派2代LS2K平台。USB A to Micro-B 数据线用来连接EJTAG调试器和你的Ubuntu电脑。杜邦线至少5根用于连接EJTAG调试器和开发板上的调试针脚。通常是2.54mm间距的排针。一台安装Ubuntu的电脑我用的Ubuntu 20.04 LTS其他较新版本如22.04也应该可以。这是我们的操作主基地。一个容量≥8GB的U盘后续重装系统制作启动盘用。注意制作过程中会被完全格式化请提前备份数据。龙芯派2代的电源适配器保证供电稳定。3.2 软件与固件下载避坑指南软件方面主要就两个东西EJTAG调试软件和PMON固件文件。这里坑最多我一个个说。首先是EJTAG软件。官方文档里给的下载链接可能失效我当初就遇到了。我后来在技术社区找到了一个可用的版本ejtag-debug-v3.25.19.tar.gz。你可以尝试在开源社区或可靠的开发者论坛搜索这个文件名。下载后我们把它放到Ubuntu里比如用户目录的Downloads文件夹下。然后是PMON固件这是关键中的关键龙芯有多个硬件平台PMON不通用。烧错了固件要么依然无法启动要么启动后功能异常。我几乎把能找到的固件都试了一遍这里给你总结一个表格避免你走弯路固件文件名来源测试结果结论gzrom.bin早期LS2K通用无法开机不适用可能是给更早型号的gzrom4g.bin早期LS2K4G内存版无法开机不适用gzrom-2h3a300m.bin其他开发板无法开机不适用硬件配置不同pmon-ls2k.binLS2K平台通用能开机但无法从U盘启动安装系统部分可用适合已有系统时维护不适合救砖重装gzrom-dtb.bin龙芯派2代专属能开机且能正常进入U盘安装推荐使用是的最终救我的是gzrom-dtb.bin这个文件。它应该是龙芯派2代Loongson Pi 2的定制版本内置了正确的设备树信息让PMON能正确识别板载的网卡、USB等设备从而才能找到我们的U盘启动盘。这个文件可以在龙芯的官方FTP站点找到路径类似于ftp.loongnix.cn/loongsonpi/pi_2/source/。请务必确认下载这个专属版本。最后是系统镜像。我们重装系统需要Loongnix的安装镜像。我测试过几个loongnix-20180531.iso较旧的版本可能缺少驱动。loongnix-1.0-2005-livecd.iso我成功安装的版本。这是一个LiveCD镜像既能直接体验也能安装对龙芯派2代兼容性较好。loongbian_buster_ls2k_base_20201220.iso基于Debian的衍生版也可以尝试但初次救砖建议先用官方Loongnix。建议你先下载gzrom-dtb.bin和loongnix-1.0-2005-livecd.iso这两个文件放到Ubuntu里你容易找到的目录比如/tmp/或者专门建一个~/loongson文件夹。4. 实战第一步连接硬件与烧写PMON4.1 连接EJTAG线缆这一步需要小心操作。找到龙芯派2代板子上的EJTAG调试接口通常是一排裸露的针脚旁边可能标有“JTG”。EJTAG调试器一般会引出一排杜邦线。我们需要连接以下关键几根线具体请以你的调试器说明书为准但通常如下TDI(Test Data In)TDO(Test Data Out)TCK(Test Clock)TMS(Test Mode Select)GND(地线)确保线序一一对应连接牢固。最稳妥的方法是找到开发板的原理图或用户手册确认针脚定义。连接好后将EJTAG调试器的USB口插到Ubuntu电脑上。4.2 在Ubuntu上配置与烧录首先解压EJTAG软件包并进入目录cd ~/Downloads tar zxvf ejtag-debug-v3.25.19.tar.gz cd ejtag_debug此时你可以先运行ls命令看看目录里有什么通常会有ejtag_debug_usb这个可执行文件和一些配置文件。关键的烧录命令来了这里需要特别注意顺序sudo ./ejtag_debug_usb -t source configs/config.ls2k program_cachelock /tmp/gzrom-dtb.bin解释一下这个命令sudo需要管理员权限访问USB设备。./ejtag_debug_usb运行调试软件。-t指定目标架构。source configs/config.ls2k加载针对LS2K龙芯派2代CPU的配置文件。program_cachelock烧录命令表示编程并锁定缓存。/tmp/gzrom-dtb.bin你下载的PMON固件文件路径请根据实际存放位置修改。现在到了最关键的步骤在Ubuntu终端里输入上述命令并按下回车后终端会卡住等待连接。此时再去给龙芯派2代开发板接通电源或者按下板子的复位键。这个顺序很重要目的是让EJTAG调试器在处理器上电初始化的瞬间就抓住它。如果一切顺利终端会开始滚动显示很多信息出现类似“Programming Flash...”、“Verifying...”等字样并有进度提示。这个过程大概会持续一两分钟。当最终出现“Program Successful”或类似提示并且终端输出停止滚动时表示烧写完成。然后先断开龙芯派2代的电源再拔掉EJTAG连接线。重新上电这次你应该能看到串口如果你接了串口调试线或者屏幕上开始有PMON的启动日志输出了恭喜你的板子已经从“砖”变回了“开发板”。5. 实战第二步制作启动盘与安装Loongnix5.1 在Ubuntu下制作启动U盘板子能启动PMON了接下来就是安装操作系统。我试过在Windows下用UltraISO制作启动盘但龙芯派2代的PMON似乎不识别那种格式插上U盘根本没反应。所以强烈建议在Ubuntu下用dd命令制作这是最可靠的方法。插入U盘到你的Ubuntu电脑。打开终端输入sudo fdisk -l查看磁盘列表。仔细找找到你的U盘对应的设备名比如/dev/sdb注意不是/dev/sdb1这样的分区名而是整个磁盘设备。务必确认无误否则会覆盖你的硬盘数据假设你的镜像在~/loongson/U盘是/dev/sdb使用dd命令cd ~/loongson sudo dd ifloongnix-1.0-2005-livecd.iso of/dev/sdb bs4M statusprogressif输入文件即镜像路径。of输出文件即U盘设备。bs4M设置块大小可以加快速度。statusprogress显示复制进度较新的dd版本支持。执行命令后终端可能沉默一会儿然后开始显示进度。等待它完成直到弹出写入完毕和字节数统计的信息。最后执行sync命令确保所有数据都写入磁盘。5.2 在龙芯派2代上安装系统将制作好的U盘插入龙芯派2代的USB口。连接好显示器和键盘如果需要的话串口终端也可以。给开发板上电。在PMON启动的瞬间快速在串口终端或接键盘的话按键盘上按下任意键比如c键进入PMON命令行。我们需要手动设置从U盘启动。在PMON命令行下输入devls这个命令会列出当前识别到的存储设备。你应该能看到你的U盘可能显示为usb0或usb(0,0,0)之类的。然后设置启动设备并启动set boot -f “usb(0,0,0)/dev/fsiso” boot或者如果devls显示的是usb0可以尝试boot -f “usb0/”如果命令正确系统就会从U盘启动进入Loongnix LiveCD环境。通常会出现图形化或文本式的安装界面。接下来的安装过程就和普通Linux系统类似了选择语言、时区、分区、创建用户等。分区时有个小坑如果你按照某些视频教程把根分区/设置得较小后续可能会提示空间不足。对于新手如果开发板存储空间不大比如8GB eMMC可以简单点直接使用整个磁盘自动分区或者只分一个大的根分区/。安装完成后PMON会自动被配置为从eMMC中的新系统启动。6. 常见问题与排错心得6.1 EJTAG烧录失败的可能原因如果dd命令烧写U盘后PMON无法识别首先检查U盘制作是否正确。回到Ubuntu用fdisk -l再看一下U盘如果分区表类型变成了ISO或者看到有iso9660分区那说明dd写入成功了。如果还是不行可以尝试换一个U盘品牌有些主控芯片兼容性确实有问题。6.2 PMON烧写后仍无法启动如果EJTAG烧录过程没有报错但板子依然没反应请按顺序排查固件文件是否正确百分之九十的问题出在这里。再次确认你烧写的是gzrom-dtb.bin而不是其他文件。硬件连接检查EJTAG线是否松动尤其是GND地线一定要接好。确保开发板供电充足。操作顺序牢记“先启动命令后给板上电”的顺序。配置文件确认命令中config.ls2k这个配置文件存在且适用于你的板子。6.3 系统安装过程中的问题安装时如果提示权限不足或磁盘错误可以尝试在PMON命令行下先运行init命令初始化环境再执行boot。分区失败的话回到分区界面选择“手动分区”删除所有已有分区新建一个ext4格式的分区挂载到/再分一个较小的swap交换分区可选这样通常最稳妥。整个救砖过程最深的体会就是资料搜索和版本匹配太重要了。国产平台生态还在成长网上的资料可能比较零散或过时。动手前一定要尽可能确认所用工具和固件的版本与你的硬件型号龙芯派2代LS2K平台完全匹配。多看看龙芯官方社区和靠谱的技术博客像我当时就是参考了多位开发者的经验才拼凑出完整的路线图。当你看到那块“板砖”重新跑起系统命令行提示符再次闪烁的时候那种成就感绝对是折腾硬件独有的快乐。希望这份详细的记录能帮你顺利跨过这些坑让你的龙芯派2代重新焕发生机。