CM311/M401A 盒子的折腾笔记

2022-08-22 15:16:54 76点赞 572收藏 106评论

经不起S905盒子50块的诱惑,上周购入,折腾了大半个礼拜,踩了无数的坑,刷机几十次,整个人都不好了。如果你也已经买入,和我有同样的痛苦,欢迎来看看这篇踩坑日记CM311/M401A 盒子的折腾笔记 

还没买的同学请先做好心理准备,大概率是会变砖的,哪怕你按着教程一步步做没有做错,也有可能会在刷入 emmc 阶段,或者设置网络阶段,莫名其妙的网卡挂掉,或者引导挂掉,然后就要从头开始刷机了。


救砖篇

晶晨线刷软件和刷机教程可以在网上搜,挺多的,这里好像不方便提供外部链接,具体我就不讲了,我就补充点教程里可能会遗漏的小细节CM311/M401A 盒子的折腾笔记 

如何进入刷机模式:

1. 触点。不同板子的触点不同,我的主板和网上的图就不一致,但是我试了一下,图中同样的触点(4R32)是可以进入刷机模式的。先打开刷机软件,一头连上电脑,一只手先用镊子按住两个触点短接,另一只手把数据线的另一头插入盒子。

4R32 触点,不同的板子位置不同,找一找吧4R32 触点,不同的板子位置不同,找一找吧

2. 复位键。有的主板背面有颗复位键,也可以试试,但是刷过机之后可能就失效了,需要用触点了。可以两种都是一下。

3. PDD 买一个晶晨免拆神器,8块钱一个,直接插在 HDMI 接口上就可以。(我没试过)


注意事项

1.刷入 Armbian 之后启动黑屏

网友们反馈:需要安装图形界面(xorg,kodi,xfce都行)或是在开机之后再插入 HDMI 线。据说是 5.15.61 内核的 bug,可以换 5.15.60 内核,或者换 5.10.x 也行。

2.盒子获取了两个 IP 地址

有两种方式:

第一种,执行以下命令关闭 NetworkManager 服务(一次就好),重启机器。

systemctl disable NetworkManager.service

这种方式的好处是比较方便,后续想去 "/etc/network/interfaces" 做任何配置的话,网上资料挺多。

缺点是获取不到公网 IPv6 地址了。


第二种,注释掉 "/etc/network/interfaces" 中关于 eth0 的所有配置,保留 NetworkManager 服务,重启机器。

这种方式的缺点(不,是我的缺点)是,后续配置网络需要用 nmcli 这个命令行工具操作,可能很多同学对他会比较陌生。CM311/M401A 盒子的折腾笔记 

3.开机后概率性获取不到 IP 地址

这是一个非常玄乎的问题,当我想要复现它的时候,重启了十几次都没有发生,但是我感觉在做任何网卡设置有关的操作时(比如修改网卡配置,设置 mac 地址,添加网桥,或者 docker 新增 macvlan 网络,等等等等),都有概率当场网卡挂掉,也有可能是重启之后才挂掉。CM311/M401A 盒子的折腾笔记 

具体现象是,启动日志在这步会停留很久直到超时:

A start job is running for Raise network interfaces (xxx /1min 43s)

然后执行 ifconfig 会发现 eth0 已经启动,但是没有分配到 IP 地址。尝试手工分配ip和设置路由表也无法正常访问网络。

有人说升级 5.15 内核可解,也有的说问题依旧。可能和 uboot 或者内核有关系,具体原因不清楚了,涉及到了我的知识盲区CM311/M401A 盒子的折腾笔记 

经过本人复现和验证,这个问题算是被解决(绕过)了。在启动脚本 "/etc/rc.local" 中加入以下代码:

if ip addr show eth0 | grep "inet " > /dev/null 2>&1 ; then

    echo "eth0: Get ip address success."

else

    echo "eth0: Get ip address failed, retry..."

    ifconfig eth0 down && ifconfig eth0 up

fi

意思是,当启动完成之后,eth0 网卡如果没有分配到 IP 地址,就执行 "ifconfig eth0 down && ifconfig eth0 up" 。大家不要笑,也就这么两句命令嘛,其实这里是有讲究的, "ifdown eth0 && ifup eth0" 是无效的CM311/M401A 盒子的折腾笔记 。两者区别欢迎大佬们来科普。

4.docker 容器关闭导致盒子重启

如果你的盒子是用于旁路由,那么你很有可能会用 docker 以特权模式启一个 OpenWrt 容器。如果你在启动容器的时候:

1. 添加了 "--privileged" 参数

2. 添加了 "--restart=always" 参数

你会发现,当你停止容器之后,系统日志多了一条:"watchdog did not stop!",过了几十秒之后,盒子就自动重启了。。卧槽什么鬼。。CM311/M401A 盒子的折腾笔记 

重启了也就算了,问题来了,盒子重启之后,容器仍然是在运行的,因为 restart=always 嘛。。

那我如果就是想停掉容器怎么办,我把容器停止之后再删掉总可以了吧?好的,当我删掉容器之后,盒子同样是自动重启了。

关键来了,重启之后,容器诈尸了,刚才明明删除成功了,现在仍然是在运行中。CM311/M401A 盒子的折腾笔记 

???

那怎么办?

docker update [container_name] --restart=no

先用这个命令把 restart 参数改成 no,然后再停止容器。随着盒子自动重启后,容器终于停下来了。CM311/M401A 盒子的折腾笔记 

5. macvlan 网络的容器和主机之间无法互访

由于我们是拿盒子运行 OpenWrt 容器作为旁路由的,因此可以设置主路由作为中转。

在主机(盒子)的启动脚本 "/etc/rc.local" 中添加以下代码:

ip route add [container_ip] via [router_ip]

在 OpenWrt 的“网络 => 静态路由 => 静态IPv4路由”中添加以下记录:

目标为盒子IP,网关为路由器IP目标为盒子IP,网关为路由器IP

6. 容器获取不到公网 IPv6

首先在 "/etc/docker/daemon.json" 新增这两个字段(没有就新建文件):

{

  "ipv6": true,

  "fixed-cidr-v6": "2001:db8:1::/64"

}

然后重启 docker 服务或者机器。

然后在创建 macvlan 网络的时候,请加上 "--ipv6" 参数,例如:

docker network create -d macvlan

  --subnet=172.16.0.0/24 --gateway=172.16.0.1

  --ipv6 --subnet=2001:db8:abc8::/64 --gateway=2001:db8:abc8::10

  -o parent=eth0

  bridge-host

关于IPv4和IPv6的子网和网关具体填什么的问题,貌似对于OpenWrt容器来说是没什么用处的,因为在容器其中之后,这些信息就已经被修改掉了。所以我是填了几个不存在的网段和网关IP。

最后执行 "docker network inspect [network_name]" 命令,确认输出的内容里 EnableIPv6 为 true,那么关于主机的 IPv6 设置应该就是成功了。至于 OpenWrt 容器如何配置,请另寻他处,我没有完全解决,就不分享了CM311/M401A 盒子的折腾笔记 。

7. OpenWrt 的一些代理工具失效

因为docker容器是共用宿主机的内核的,所以一些依赖到 "kmod-*" 的软件包可能工作会异常,比如某些海外加速工具(不知当讲不当讲)。失效的朋友们请切换一下代理模式,有些模式还是能用的。如果你很在意这个问题,建议还是直接盒子刷 OpenWrt 或者是在 Armbian 上运行 QEMU + KVM 虚拟机,在虚拟机里装 OpenWrt。

8.个别 OpenWrt 容器启动后,会导致盒子的控制台异常

现成的 OpenWrt 镜像有很多,例如 sulinggg/openwrt:armv8,偏偏我用的那个有点问题(immortalwrt/rootfs:armvirt-64-openwrt-21.02.1),启动之后,盒子的终端被抢占了,导致我重启盒子之后,终端显示错乱,即不能登录 Armbian 也不能登录 OpenWrt。最后对比了一下发现问题出在"/etc/inittab"。具体原因不是很懂,总之如果你遇到了这样问题的镜像,但是又想用的话,可以参考其他镜像改一改这个文件。

9. OpenWrt 容器启动后有概率 ping 不通任何 IP

(这台机子的网卡我真的是服了)

当你启动 OpenWrt 容器之后 ping 不通任何 IP 包括 127.0.0.1 时。。。

/ # ping 127.0.0.1

PING 127.0.0.1 (127.0.0.1): 56 data bytes

ping: sendto: Operation not permitted

和问题3类似,只是判断条件改了。在容器的 "/etc/rc.local" 添加以下内容(不是盒子的哈):

if ping -c 1 127.0.0.1 2>&1 | grep "sendto: Operation not permitted" > /dev/null ; then

    logger "eth0: Init failed, retry..."

    ifconfig eth0 down && ifconfig eth0 up

else

    logger "eth0: Init success."

fi


作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

中国移动 R2S 双频1167M 千兆无线路由器 Wi-Fi 单个装 白色

中国移动 R2S 双频1167M 千兆无线路由器 Wi-Fi 单个装 白色

暂无报价

中国移动 W1 全千兆 1200Mbps 双频无线路由器

中国移动 W1 全千兆 1200Mbps 双频无线路由器

暂无报价

China Mobile 中国移动 TP301 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

China Mobile 中国移动 TP301 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

98元起

China Mobile 中国移动 双频1800M 家用千兆Mesh无线路由器 Wi-Fi 6 白色

China Mobile 中国移动 双频1800M 家用千兆Mesh无线路由器 Wi-Fi 6 白色

暂无报价

中国移动无线路由器高通五核WiFi6+路由Mesh组网家用5G双频双千兆端口穿墙高速大功率增强宿舍学生安连宝WF-1

中国移动无线路由器高通五核WiFi6+路由Mesh组网家用5G双频双千兆端口穿墙高速大功率增强宿舍学生安连宝WF-1

暂无报价

China Mobile 中国移动 RM2-6 分布式路由器 Wi-Fi 6

China Mobile 中国移动 RM2-6 分布式路由器 Wi-Fi 6

暂无报价

中国移电力猫套装路由器 wifi信号放大 穿墙宝 支持iptv 大户型信号增强 吃鸡王者直播开黑神器 500M

中国移电力猫套装路由器 wifi信号放大 穿墙宝 支持iptv 大户型信号增强 吃鸡王者直播开黑神器 500M

暂无报价

China Mobile 中国移动 L01 4G OBD 车载Wi-Fi 大众奥迪版

China Mobile 中国移动 L01 4G OBD 车载Wi-Fi 大众奥迪版

暂无报价

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

99元起

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

159元起

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

535元起

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

146元起

ASUS 华硕 RT-BE88U 双频7200M 家用Mesh无线路由器 Wi-Fi 7 黑色 单个装

ASUS 华硕 RT-BE88U 双频7200M 家用Mesh无线路由器 Wi-Fi 7 黑色 单个装

1949元起

Xiaomi 小米 AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

Xiaomi 小米 AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

299元起

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

319元起

Xiaomi 小米 BE3600 2.5G版 3600M 双频千兆家用无线路由器 Wi-Fi 7 白色

Xiaomi 小米 BE3600 2.5G版 3600M 双频千兆家用无线路由器 Wi-Fi 7 白色

199元起
106评论

  • 精彩
  • 最新
  • 这个不是百兆网口吗1,玩什么

    校验提示文案

    提交
    当旁路由给个别设备做代理用

    校验提示文案

    提交
    百兆啊,瞬间解毒。游戏机已经有switch,轻量级NAS百兆扑街,感觉和三年前买的裸板没差,除了U好一点其他都一样,也就是做个旁路由,感觉意思不大。

    校验提示文案

    提交
    收起所有回复
  • m401a 我在刷armbian时卡在花屏是什么原因 楼主可以分享下你的刷机包嘛

    校验提示文案

    提交
    花屏卡主进不去了吗?重新刷几次试试呢,出现花屏是正常的,卡住我倒是没遇到过

    校验提示文案

    提交
    收起所有回复
  • 刷好的60包邮

    校验提示文案

    提交
    我买的就是刷好的,稍微用了一下就失联啦 [皱眉]

    校验提示文案

    提交
    失联?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • coreelec省心点,该有的都有了。

    校验提示文案

    提交
    我当旁路由用哈

    校验提示文案

    提交
    还没看到给魔百和之类的刷coreelec的教程

    校验提示文案

    提交
    收起所有回复
  • 关于nmcli的命令行问题 可以使用nmtui这个命令图形化操作NetworkManager

    校验提示文案

    提交
    哦哦,不过我没装图形界面 [赞一个]

    校验提示文案

    提交
    就是在ssh伤的图形界面

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 这个固件用905x2的还是用905l3a的?能刷入emmc吗?

    校验提示文案

    提交
    905l3a的,可以刷,但是也许不能100%成功,不行的话要多试几次

    校验提示文案

    提交
    OK,谢谢

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 说晶晨有专门的刷机硬件,插在hdmi上。多多上我也看到了,这玩意靠谱吗?是不是通用。

    校验提示文案

    提交
    应该和短接一个道理吧 既然专门给晶晨的那应该通用了

    校验提示文案

    提交
    收起所有回复
  • 坑基本都踩过了,早知道晚点折腾,先看你的

    校验提示文案

    提交
    我也好想晚点折腾,现在后悔万分 [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • 能刷coreelec到emmc中吗?

    校验提示文案

    提交
    应该可以吧,elec的我没用过呢

    校验提示文案

    提交
    墙裂推荐用coreelec,玩法很多,可以当下载机,还有docker,目前用n1,可惜就是emmc太小了 [喜极而泣]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 刷的系统很烂不能用,网上找不到好的免费固件,这是个局

    校验提示文案

    提交
    最难受的启动无网络问题,算是凑合着解决了,可以凑合用了 [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • 再观望下,等它系统稳定点。

    校验提示文案

    提交
    前几天刷了op到emmc,重启测试了十几次,没有ip获取的问题了,准备就这样退休了

    校验提示文案

    提交
    收起所有回复
  • 可以用 armbian-update 命令升级到最新内核 u盘或emmc系统都可以升级 前天刚从4x升到62 挺稳定 完美错过了61的黑屏bug 看GitHub上issue 今天o大又更新了 增加cm311的写入文件以区别于e900v22c 我还是推荐先在u盘里运行 等稳定后再写emmc

    校验提示文案

    提交
    请问哪里下载armbian固件呢?

    校验提示文案

    提交
    5.15.62内核我照样是黑屏,我已经刷5.4op进emmc了,还挺稳,开机几十次测试网络都正常,不折腾了 [高兴]

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 你好,请问下你用的什么固件,有没有链接,我发现和你的一样,找的固件都是2+16g的

    校验提示文案

    提交
    wz,wushu.work

    校验提示文案

    提交
    多谢

    校验提示文案

    提交
    收起所有回复
  • 收藏200点赞26 [皱眉]

    校验提示文案

    提交
    [中刀]

    校验提示文案

    提交
    收起所有回复
  • cm311-1没有a,YS(M)能刷吗

    校验提示文案

    提交
    听说这个板子配置特别多,你找找相关资料看,说不定可以

    校验提示文案

    提交
    哥们我也买的,311不带a,后来你用的哪个是哪个固件版本呢

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • ssh总是会莫名其妙的断开 只有断电才能恢复 知道是什么原因吗?

    校验提示文案

    提交
    你看看是不是获取到了两个ip,得禁用一个网络服务,具体怎样忘记了

    校验提示文案

    提交
    收起所有回复
  • m401a和cm311-1a哪个好呢

    校验提示文案

    提交
    同问,

    校验提示文案

    提交
    同问

    校验提示文案

    提交
    收起所有回复
  • 折腾的乐趣大于享受

    校验提示文案

    提交
  • 这么折腾,为什么不直接买个刷好机的?

    校验提示文案

    提交
  • 这电视盒子真让玩明白了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
572
扫一下,分享更方便,购买更轻松