涵盖:镜像选择、U盘启动、eMMC写入、引导修复、磁盘扩容、主题安装。整理自本人踩坑全过程
设备: wyse3040 2G运存 + 16G eMMC
开始安装ImmortalWrt
1,镜像下载地址:
https://firmware-selector.immortalwrt.org/?version=24.10.6&target=x86%2F64&id=generic
戴尔wyse3040是x86 64位系统
ImmortalWrt版本选择 24.10.6 稳定版,不要用 25 系列(包管理器从 opkg 换成了 apk,可能生态有些包没有,插件兼容性差,x86 平台个例翻车多)

2,镜像烧录
下载的镜像immortalwrt-24.10.6-x86-64-generic-ext4-combined-efi.img.gz,是gz压缩文件,不用解压,可以直接烧录就行,这里不过多拆解烧录步骤,自己搜Rufus
这里提前插个细节,这个gz镜像大小20M,如果解压成img,居然有340M(压缩比属实有点离谱),后面会用到

3,开始上机
wyse3040需要进入bois里设置USB启动项,这个通过单独文章展开详讲
插上烧录u盘,插上显示器,插上键盘。 可以插网线,也可以不插网线都可以刷成功(后面会讲)
一直卡在 Booting “Immortalwrt” 不动,Wyse 3040 这类瘦客户机没有物理串口,但固件默认会尝试向串口发送启动信息并等待响应,导致系统卡死。这是 OpenWrt/ImmortalWrt 24.10 版本的一个已知问题,官方目前还没有发布自动修复的镜像
在 GRUB 菜单按键盘 e,直接光标移动backspace删掉 console=ttyS0,115200n8,按 F10保存,就会自动重新启动
改完后,就可以正常安装系统了,出现很多命令自己跑,如果跑到最后有卡住情况,就键盘敲下回车出现Immortalwrt日志

这里有很多细节问题需要注意和解决
-
Immortalwrt系统不会自动写入emmc,现在只是在u盘上启动,如果拔掉u盘就不能用了,emmc里其实还是原来刷入的飞牛
-
set up a new password,这个提示不用设置密码,命令行设置好几遍校验不过,还是后面进luci页面设置简单
-
默认装好root账户,没有密码,密码为空,直接luci可以登录
-
其次即使你现在对系统做了配置更改,安装了主题等插件,好像拔掉u启动盘,再开机就又重置了,没有写入本地存储
-
中途会出现GRUB 菜单不出现,无法删掉 console=ttyS0,115200n8问题,可以把启动盘插windows上用DiskGenius修改/grub/grub.cfg 再复制文件到当前分区即可,u盘启动盘必须通过外部系统修改,或者把u盘挂载到linxu编辑vim,因为win插上u盘已经不识别了
-
当然还可以直接把img镜像用 DiskGenius 挂载,在虚拟磁盘里找到 /boot/grub/grub.cfg,用记事本编辑,删掉 console=ttyS0,115200n8,保存修改,关闭虚拟磁盘(DiskGenius 会提示保存对镜像的更改),再重新烧录镜像,就不用折腾GRUB,一次性搞定img,烧录后直接可用
-
没插网线,系统没有初始化网路,找不到ip进后台问题
-
插了网线,默认IP好像初始化为192.168.1.1的静态IP,有几率将路由器网关后台也重写成luci界面
-
br-lan 没有 IP:手动临时临时指定命令 ifconfig br-lan 192.168.1.31 netmask 255.255.255.0 up, 验证ip addr show br-lan
-
登录luci web页面,无法更新软件源,系统里自带的软件源国内是可以访问的,基本不用换源
-
无法更新软件源大概是不能上外网dns解析失败问题,用系统自带的网络诊断ping 百度,看网络是否通畅
-
可以通过在接口中将网口从默认的静态IP改为dhcp客户端即可正常联网上网更新软件源了
-
openwrt默认只开启ssh,没有sftp功能,上传文件通过安装luci-i18n-filemanager-zh-cn插件实现网页上传
-
软件包管理器,每次重启都需要重新更新联网更新一遍,本地默认没有缓存
如果只需要u盘启动就行,不用刷入emmc,那刷机到此就可结束(去研究u盘数据持久化存储问题)
4,Immortalwrt镜像img写入emmc
其实写入emmc,任何一个Linux系统就行,只要有img镜像文件即可,通过把emmc磁盘挂载到u盘启动的系统,对磁盘进行写入,或者使用pe进入系统,把img镜像写入emmc存储也行。不一定非要u盘烧录Immortalwrt镜像
这里不会把设备刷成砖,理论只要有启动u盘在,随时可以上去给emmc写入系统镜像,或者插上飞牛启动盘,又能走流程刷回飞牛。
BIOS 存储在独立的 SPI 闪存芯片里,dd 命令只针对 eMMC(/dev/mmcblk1)或 U 盘,不会碰 BIOS。只要 BIOS 完好,设备就能进入启动菜单(F12/F2)选择启动设备
-
将immortalwrt-24.10.6-x86-64-generic-ext4-combined-efi.img.gz文件解压的到.img文件,大小348M
-
将img镜像文件上传到u盘里的immortalwrt系统,通过u盘里的系统挂载将img写入emmc
-
由于u盘里的immortalwrt系统默认根目录只有300M大小,根本放不下img包,可以直接上传到/tmp目录空间大
-
/tmp 是内存文件系统(tmpfs),会临时占用你的运行内存(RAM),不占用那300M的磁盘空间。/tmp 里的东西关机就没了
-
给tmp上传文件,安装luci-i18n-filemanager-zh-cn插件,就可以通过luci上传文件到openwrt系统,或者用scp命令传
-
通过dd命令将img写入,修改grub引导文件,关机
-
dd 写入的是完整的磁盘镜像,里面已经包含了分区表。内核在关机、重启的过程中,会重新扫描 eMMC 设备,就能识别到新的分区结构
确认磁盘设备名
在 SSH 里运行 lsblk 或 fdisk -l,确认哪个是 U 盘,哪个是 eMMC。通常情况下:
-
-
U 盘:/dev/sda
-
内置 eMMC:/dev/mmcblk0 或 /dev/mmcblk1
-
命名:mmcblk 是 Linux 对 MMC/eMMC 设备的命名规则,mmcblk1 是设备编号
这一步绝对不能错,因为 dd 命令会直接覆盖目标磁盘。
# 写入 eMMC 这里存在找emmc设备名的细节
# 从u盘系统里把镜像写入emmc,不需要挂载,直接dd写入就行
dd if=/tmp/immortalwrt-xxx.img of=/dev/mmcblk1 bs=4M conv=fsync
1. 挂载 eMMC 的引导分区,进行引导修复
eMMC 上的引导分区是 `/dev/mmcblk1p1`(FAT16,大小 32M 左右)。把它挂载到一个临时目录:
mkdir -p /mnt/emmc_boot
mount /dev/mmcblk1p1 /mnt/emmc_boot
2. 确认挂载成功
ls /mnt/emmc\_boot
应该能看到 `grub` 文件夹、`vmlinuz` 等文件。
3. 编辑 grub.cfg 让开机不卡住
vi /mnt/emmc\_boot/grub/grub.cfg
进入 `vi` 后:
- 按 `i` 进入编辑模式
- 找到 `linux` 开头的那一行
- 删掉 `console=ttyS0,115200n8`(保留 `console=tty1`)
- 按 `Esc`,输入 `:wq` 回车保存退出
4. 卸载分区
umount /mnt/emmc\_boot
# 关机 ,拔 U 盘,重启
poweroff
关机后拔掉 U 盘,重新开机,系统就应该能从 eMMC 正常启动了。


就可以通过ip地址网页登录luci进行操作了
当然至此还没完,还有很多细节问题需要解决
-
默认immortalwrt系统根目录只有300M大小,装不了几个插件,必须得扩容占满磁盘(最主要,有大坑)
-
主题等一些插件的安装和使用
未完,这个记录内容写太长了,拆分多模块记录