资讯动态

附录_换机换板快速恢复到实验二十九结束状态

发布时间:2026/10/8 18:25:09 来源:尧图企业网站定制
附录 换电脑 / 换板子后快速恢复到实验二十九结束状态对应课件《第6章 构建Linux根文件系统-V2》6.1~6.3 节收官形态的恢复手册本篇无新增 Slide系列说明本篇是恢复手册系列的第三册附录不参与专栏实验序号编号放在04_构建Linux根文件系统/目录末尾备查——第一册01_移植U-Boot/附录_换机换板快速恢复到实验十一结束状态.md管 U-Boot 与 SD 卡第二册03_移植Linux内核/附录_换机换板快速恢复到实验二十三结束状态.md管第 5 章内核家当本册管第 6 章新增的全部家当两套自制根文件系统、buildroot 源码树、NFS 双目录、板子的启动指向。前置第二册的恢复目标实验二十三结束态已达成——本册所有步骤都建立在它的基础上。一、先分清换的是什么——第 6 章的家当账本一句话总纲两套根都住在 Ubuntu 的 NFS 目录里网络即所得buildroot 源码树在 Ubuntu 磁盘上板子的启动指向在 MMC 环境区。先对着下表点货再按场景决定做几步家当住在哪断电/换机后丢了怎么找回来busybox 根rfs-busyboxUbuntu/home/cnu/nfsboot/rfs-busyboxNFS 导出换电脑就丢——第 6 章家当之一整目录打包带走最省或重做实验二十五~二十六约 1 小时buildroot 根rfs-buildrootUbuntu/home/cnu/nfsboot/rfs-buildrootNFS 导出换电脑就丢——第 6 章家当之二buildroot 树在就重解包 rootfs.tar十分钟树也没了走本册步骤 1buildroot 源码树Ubuntu~/Desktop/LINUX-gy/Test2/buildroot-2020.02.6output/约 10 GB非 git 仓库换电脑就丢——最大的一份本册步骤 1打包带走或按实验二十八重做 1~2 小时NFS 导出清单 v2 使能Ubuntu/etc/exports/etc/default/nfs-kernel-server换电脑重配本册步骤 2两条 nano 重启服务五分钟tftpboot 四文件 tftpd-hpaUbuntu第二册步骤 4换电脑重装第二册步骤 4本册不重复内核源码树带 .scmversionUbuntu第二册步骤 2git WORKING 分支换电脑就丢第二册步骤 2本册不重复板子启动指向MMC环境区bootargs指rfs-buildroot、bootcmdrun mybootnet随卡/随环境走本册步骤 3三条 setenvbuildroot 根的 root 密码根内/etc/shadow123实验二十八步骤 4 自定义随根走重做实验二十八步骤 4或根还在时passwd重设带哈希 uImage 存档/tmp/uImage-with-hash.bak/tmp重启即丢作业检查需要时临时挪走.scmversion重编一次即再现编完放回去场景必做步骤可以跳过只换开发板电脑与卡不动步骤 3板侧启动指向→ 步骤 4验收buildroot 树、NFS 配置全不用换电脑buildroot 树打包带过来了第二册步骤 1~4 → 本册步骤 1解包树 补 depmod→ 步骤 2NFS→ 步骤 3 → 步骤 4实验二十八的在线下载与首次全量编译换电脑什么都没带第二册步骤 1~4 → 本册步骤 1 路线 b重做实验二十八→ 步骤 2~4无只是不小心改坏了 buildroot 根重解包rm -rf后重新解包 rootfs.tar板子正挂着时禁止 rm -rf见避坑第 1 条其余全部最容易白做的一件事buildroot 根出问题就重跑整场实验二十八。先看第二节判据分清坏在哪一层——根坏了只是解包级的事十分钟源码树坏了才是编译级的事小时级。二、恢复目标实验二十九结束态的验收判据一句话上电不碰任何键板子自动完成tftp 我们的内核 → NFS 挂rfs-buildroot→ 无报错登录全流程无人值守。上电 → bootdelay0自动跑 bootcmd→ U-Boot 打印 tftp 两条 → my_uImageImage Name: Linux-5.4.31纯净版 → 内核日志滚完 → VFS: Mounted root (nfs filesystem) → Starting syslogd/klogd/sysctl/mdev 各 OK**无 modprobe 报错** → Welcome to alientek STM32MP157 → ATK-stm32mp1 login: root → Password: 123 → [rootATK-stm32mp1]:~# ← myprofile.sh 的 PS1 已生效逐项判据四条全过 实验二十九结束态无人值守点火上电到登录提示全程不需要敲任何命令bootcmd 已指run mybootnet见本册步骤 3modprobe 三连报清零启动日志无cant change directory to /lib/moduleslib/modules/5.4.31/在位、modules.dep 已生成debugfs 已挂mount | grep debug打出none on /sys/kernel/debug type debugfs (rw,relatime)行首none是虚拟文件系统的设备名占位判据认type debugfs双根可切换bootargs 的 nfsroot 指回rfsbusybox 版再 reboot能进[rootfsmp1a: /]#root 无密码——切回配方见本册步骤 4。三、步骤 1buildroot 源码树换电脑才做路线 a打包带走旧机器上执行十分钟# 【旧机 Ubuntu 侧执行】——排除 output/10 GB 产物可重编# 保留 dl/已下载的源码包新机上省掉半小时到几小时的在线下载cd~/Desktop/LINUX-gy/Test2tar-jcfbuildroot-2020.02.6-work.tar.bz2\--excludebuildroot-2020.02.6/output\buildroot-2020.02.6# 产物几百 MB1 GB 量级大头是 dl/经共享文件夹/网盘带到新机新机恢复# 【新机 Ubuntu 侧执行】cd~/Desktop/LINUX-gy/Test2tar-jxfbuildroot-2020.02.6-work.tar.bz2cdbuildroot-2020.02.6grep-EBR2_PACKAGE_KMODy|BR2_TOOLCHAIN_EXTERNAL_CUSTOMy.config# 配置还在路线 b从零重做什么都没带才走按实验二十八重做步骤 1~5源码包在04_构建Linux根文件系统/md5 见其环境表但必须补做下面这一步——它是实验二十九踩坑后追加的动作、实验二十八正文里没有# 【Ubuntu 侧执行】buildroot 源码顶层makebusybox-menuconfig# Linux Module Utilities --- [*] depmod# 退出保存为什么必须补buildroot 的 kmod 包默认只装libkmod.so库、不带 depmod 命令busybox 默认配置里 depmod 也没开详见实验二十九步骤 3 的实测存档。不补这一步板子上depmod就是not found、modprobe 第三集报错永远清不了。编译前置gcc-arm-9.2 工具链在位第二册步骤 1、Toolchain path指向/usr/local/arm/gcc-arm-9.2-...、make不带-j、全程联网dl 缓存能省下载。四、步骤 2NFS 目录与服务器换电脑才做# 【Ubuntu 侧执行】sudoaptinstallnfs-kernel-server nfs-commonsudomkdir-p/home/cnu/nfsbootsudonano/etc/exports# 末尾加一行# /home/cnu/nfsboot *(rw,sync,no_root_squash,no_subtree_check)sudonano/etc/default/nfs-kernel-server# 末尾加一行v2 使能——板子 NFS 客户端按 v2 协商# RPCNFSDOPTS--nfs-version 2,3,4 --debug --syslogsudo/etc/init.d/nfs-kernel-server restart两套根从哪来二选一或都做# 【Ubuntu 侧执行】路线 a旧机把两个根目录整包带走连权限带符号连接# 旧机cd /home/cnu/nfsboot sudo tar -jpcf nfsboot-roots.tar.bz2 rfs rfs-buildroot# 新机解到同一路径sudotar-jpxfnfsboot-roots.tar.bz2-C/home/cnu/nfsboot/# 【Ubuntu 侧执行】路线 brootfs.tar 重解包buildroot 树在就十分钟cd/home/cnu/nfsbootrm-rfrfs-buildrootmkdirrfs-buildroottarxf rootfs.tar-Crfs-buildroot# ⚠ 板子正挂着这个根时禁止 rm -rfStale file handle 僵尸局见避坑第 1 条本机自测服务器侧先验别把配置错误带上板# 【Ubuntu 侧执行】sudomountlocalhost:/home/cnu/nfsboot/rfs-buildroot /mnt-tnfsls/mnt# bin dev etc lib lib32 linuxrc media mnt opt proc root run sbin sys tmp usr varsudoumount/mnt五、步骤 3板子侧启动指向换板/环境乱才做SD 卡侧U-Boot 三件套 环境基线与第二册步骤 5 的六条配方全部照第二册本册不重复。在其完成后补上第 6 章的增量三条STM32MP setenv bootargs consolettySTM0,115200 root/dev/nfs nfsroot192.168.0.100:/home/cnu/nfsboot/rfs-buildroot,prototcp rw ip192.168.0.8:192.168.0.100:192.168.0.1:255.255.255.0::eth0:off STM32MP setenv bootcmd run mybootnet STM32MP saveenv变量值作用 / 依据bootargsnfsroot 指rfs-buildroot实验二十九步骤 1上电默认进 buildroot 根想进 busybox 根把路径改成rfs即可bootcmdrun mybootnet实验二十九步骤 3 复验时改上电/复位自动点火我们的内核——STM32MP从此不是必经一站mybootnet/mybootemmc同第二册步骤 5网络点火 / eMMC 出厂件备胎新板子的网口 MAC、eMMC 盘号认法同第二册ip七字段里 client-ip 是板子.8、server-ip 是Ubuntu.100别写反。六、步骤 4验收——上电即达 双根切换【板子上】上电/复位全程不碰任何键 自动 tftp → 挂 rfs-buildroot → 登录 root/123 → [rootATK-stm32mp1]:~# # mount | grep debug → none on /sys/kernel/debug type debugfs ... # ls /lib/modules/5.4.31/ → modules.dep / modules.alias / modules.symbols # ls / → 18 样含 lib32 media opt run双根切换改根不烧卡的日常【板子上】进 buildroot 根bootargs 的 nfsroot 指 rfs-buildroot本册步骤 3 默认态 【板子上】切 busybox 根setenv bootargs consolettySTM0,115200 root/dev/nfs nfsroot192.168.0.100:/home/cnu/nfsboot/rfs,prototcp rw ip192.168.0.8:192.168.0.100:192.168.0.1:255.255.255.0::eth0:off → saveenv → reboot → [rootfsmp1a: /]#busybox 根root 无密码——切回 buildroot 根同法反向四条判据全过 双根切换各一次 恢复到实验二十九结束状态第 7 章可直接开跑。七、避坑清单第 6 章专属条条实测踩过板子挂着根时禁止在 Ubuntu 侧rm -rf那个根目录——板上运行中的系统握着旧句柄删后一切访问报Stale file handle、shell 僵尸reboot都执行不了唯一出路复位键/断电。重部署姿势先让板子离开根reboot 拦停进 U-Boot再删或tar xf覆盖式更新不删目录。重做/迁移 buildroot 树必补 busybox depmod本册步骤 1 路线 b 的附加步——kmod 只装库、busybox 默认配置无 depmod漏了它板上depmod: not found、modprobe 第三集报错清不了。Set UID 位与解包方式绑定普通用户tar xf解包GNU tar 非 root 不恢复 setuid 位——busybox 上没有 s、课件剧本的 Permission denied 一批不出现是好事若用sudo tar解包s 位会回来、报错会重现。两种都属正常判据是 busybox 以真实 root 身份运行。/tmp重启即丢带哈希 uImage 存档作业检查用别放/tmp要留就挪到家目录或共享目录。buildroot 根默认无 Qt、无第三方包——作业要交的rfs-buildroot-qt是实验三十六第 10 章加包重编的产物本册恢复出的最小根不承担 Qt 交付。mount输出设备名在前debugfs 行是none on /sys/kernel/debug type debugfs ...验收别等debugfs 开头的行。八、恢复完成标志buildroot 树.configBR2_PACKAGE_KMODy、BR2_TOOLCHAIN_EXTERNAL_CUSTOMy在列busybox 配置CONFIG_DEPMODy在列换电脑自检output/images/rootfs.tar存在量级 3.4 MB 上下含 kmod 约 3.45 MB/home/cnu/nfsboot/下rfs13 样与rfs-buildroot18 样双根在位exportfs -v有导出行板上无人值守点火四判据全过本册第二节双根切换各一次成功arm-none-linux-gnueabihf-gcc、mkimage -V、dtc --version、/stm32env换电脑自检同第二册九、下一步到这里就是实验三十第 7 章《字符设备驱动》的开跑状态驱动分层与模块机制认知篇→ toychar 虚拟字符设备驱动实操。第 7 章的.ko模块将放进本册反复出现的/lib/modules/5.4.31/、用 kmod 时代的模块工具加载——第 6 章铺的床从这一篇开始睡人。见05_字符设备驱动/31_实验三十_驱动分层与模块机制.md。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑