请选择 进入手机版 | 继续访问电脑版

『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 2212|回复: 134

[修仙教程] 【大功告成】更新:能用蓝牙M401A/CM311-1a盒子Armbian安装方案

[复制链接]

79

主题

2203

帖子

8266

积分

超级版主

Rank: 8Rank: 8

积分
8266
金钱
5998
HASS币
420

教程狂人突出贡献

发表于 2022-8-2 09:34:59 | 显示全部楼层 |阅读模式
本帖最后由 XCray 于 2022-8-16 15:48 编辑

完整的安装步骤见本贴49楼。
由于随着认识的深入,帖子内容也在不断的补充,不仔细阅读可能会摸不着头脑。
大致分为3个阶段:写入emmc并能成功启动且网卡内存正常但内核版本受限、网卡内存正常且内核版本不受限、增加蓝牙。
主贴为前两个阶段,蓝牙主要在另一个帖子里,49楼是重新整理的完整步骤。
CM311-1A YST YS(S)大同小异,不要主线不写bootloader + 不要overload(即不要u-boot.emmc/u-boot.ext) + 5.15.60内核 + 我上传的e900v22c或u200的dtb。一切正常。
~~~~~~~~~~~
基于反复测试的经验,突发奇想,有了一个更加完美的方案:任意内核都可以正常识别网卡内存并在启动后自动获得IP地址(之前的方案只有5.4内核没问题),并且存储空间多了483MB!
具体就是:u200的u-boot作主线写入bootloader + e900v22c的u-boot作过载 + u200的dtb。
(注:后来发现偶尔还会出现拿不到IP的情况,怀疑这两个u-boot还是不够完美,可惜自己不会编译,先这么着吧)
步骤:

1. 不变,写U盘,uEnv.txt里改成u200的dtb(必须)、把e900v22c的u-boot复制为u-boot.ext(建议,否则认不出网卡和全部内存),然后U盘开机。

2. 不管emmc里原来有啥固件,反正都是要覆盖掉的。
2.1   - 可以先编辑/etc/amlogic_model_database.conf文件,加一行:
305:M401A:s905l3a:meson-g12a-u200.dtb:u-boot-e900v22c.bin:/lib/u-boot/u200-u-boot.bin.sd.bin:NA
2.2 cp /boot/u-boot-u200.bin /lib/u-boot/u200-u-boot.bin.sd.bin
  其实文件名无所谓,和上面一致就行。
2.3 armbian-install,这回不加no了!选305,当然,选0手动输入也没问题,只是稍微麻烦些。

3. 和之前一样,装载emmc的boot分区,把e900v22c的u-boot复制为u-boot.emmc即可(否则可以启动但网卡识别不到、内存也只能识别一半)。
- 取决于所用的内核版本,可能这个文件已经复制好了(5.10+内核,5.15除外)

完工!

我测试了 5.4.208 和 5.18.15 内核,启动都很完美,其它内核需要的话自己测试吧。

~~~~~~~~~以下是原来的方案~~~~~~~~~~

试了不知道多少个镜像、不知道多少个u-boot+dtb组合,也不知道线刷了多少回,反正我电脑的一个USB口因这件事情已经献身了:被插得次数太多了

好在终于找到了一个堪称完美的组合,可以从emmc启动、可以正确识别出网卡、内存、声卡,还剩下蓝牙估计也不难解决了。

具体就是:e900v22c的u-boot + u200的dtb、不写bootloader。
我用的是Armbian_22.08.0_Aml_s905l3a_bullseye_5.4.207镜像,5.4.208也行。不过这个uboot搭配其它版本的内核会出现开机无法获得ip地址的问题。

步骤:

1. 写U盘,uEnv.txt里改成u200的dtb(必须)、把e900v22c的u-boot复制为u-boot.ext(建议,否则认不出网卡和全部内存),然后U盘开机。

2. emmc里是安卓固件的前提下,用armbian-install no写emmc,用e900v22c的u-boot+u200的dtb组合
  - 可以先编辑/etc/amlogic_model_database.conf文件,加一行:
305:M401A:s905l3a:meson-g12a-u200.dtb:u-boot-e900v22c.bin:NA:NA
然后armbian-install写emmc的时候选305,当然,选0手动输入也没问题,只是稍微麻烦些。

3. 然后装载emmc的boot分区,把e900v22c的u-boot复制为u-boot.emmc即可(否则可以启动但网卡识别不到、内存也只能识别一半)。
- 取决于所用的内核版本,可能这个文件已经复制好了(5.10+内核,5.15除外)

终于可以在emmc里愉快的玩耍了,省出来一个宝贵的USB口!

对了,armbian下安装hassio,也就是supervised,照着官方教程来就很好,完全没必要看那些乱七八糟的教程。
最后强调一下:盒子这东西太乱,同一个型号实际用的芯片也都可能不一样,相应的玩法也就不一样。所以这个思路仅供参考!
armbian.png
对了,拿到的这个盒子电路板长这样,如果你的也是这样、其它教程的方法行不通的话,不妨按我的方法试试:
A.png B.png
~~~~~~~~~~

利用我上传的dtb(有u200的,也有e900v22c的,和原版的区别就是增加了连接蓝牙电路的串口uart_A)和rtk_hciattach就可以启用蓝牙啦;
这是我编译的dtb和rtk_hciattach(不放心的可以自行编译,dtb源码来自内核,rtk_hciattach源码来自radxa):
meson-g12a-u201.zip (9.72 KB, 下载次数: 26) rtk_hciattach.zip (44.01 KB, 下载次数: 26)

蓝牙解决的过程,详见另一个帖子:
https://bbs.hassbian.com/thread-17392-1-1.html



评分

参与人数 6金钱 +72 HASS币 +20 收起 理由
Roger + 20 + 20 在下对你的景仰犹如滔滔长江之水,连绵不绝.
+ 20 虽然看不懂,但感觉很厉害的样子。.
kkkkllll08 + 5 高手,这是高手!
zxyny1989 + 12 膜拜大神!
ciasdmxhxjjpd@c + 5
jjcs + 10 高手,这是高手!

查看全部评分

回复

使用道具 举报

79

主题

2203

帖子

8266

积分

超级版主

Rank: 8Rank: 8

积分
8266
金钱
5998
HASS币
420

教程狂人突出贡献

 楼主| 发表于 2022-8-8 10:48:46 | 显示全部楼层
本帖最后由 XCray 于 2022-8-16 16:16 编辑

重新整理安装步骤(该款盒子Armbian安装终极教程?你的盒子不一定直接就能用,一定要先自行用U盘测试dtb和uboot好不好使!):

0、ophub那里下载任意一个镜像,以及我提供的dtb和rtk_hciattach文件(或者自行编译);
  事实上同一版本针对不同soc的镜像绝大部分内容都是一样的,真正不一样的内容可能连1M都不到。

1、烧写U盘,把我上传的meson-g12a-u201.dtb(也有e900v22c的)拷贝到BOOT分区的/dtb/amlogic/目录;

2、编辑uEnv.txt,指定上述dtb文件;
  如果是5.4或5.15内核,将u-boot-e900v22c.bin复制改名为u-boot.ext;(M401A可选&建议,不做这个操作的话可能启动后认不出网卡、内存只能认到一半;CM311 + 5.15内核不要这个u-boot.ext)

3、U盘启动、登录,建议将个人公钥存放至/root/.ssh/authorized_keys,以后登录免输密码;
  若习惯用另外的用户名登录(更稳妥),参照办理;

4、查看/lib/firmware/rtlbt目录,确保其中有rtl8761b_fw文件(到../rtl_bt/下面找那个带.bin后缀的,拷过来改名,或者链接也行)、没有rtl8761b_config文件;   将rtk_hciattach文件(我上传的)拷贝至/usr/bin目录;

5、编辑/etc/rc.local文件,加入一行:
  /usr/bin/rtk_hciattach -n -s 115200 ttyAML1 rtk_h5 &

6、cp /boot/u-boot-u200.bin /lib/u-boot/u200-u-boot.bin.sd.bin  然后编辑/etc/amlogic_model_database.conf,在304那一行后面增加一行:
  305:M401A:s905l3a:meson-g12a-u201.dtb:u-boot-e900v22c.bin:/lib/u-boot/u200-u-boot.bin.sd.bin:NA
  解释一下:把/boot目录下的u200的uboot用作主线uboot。
(CM311-1a使用5.15内核,不要主线uboot、也不要过载uboot)


7、强烈建议:编辑/usr/sbin/armbian-update脚本,注释掉275-293行,禁止升级内核时重新写u-boot和bootloader,这个写入毫无意义,并且有很大风险(uboot不对写入就变砖);

8、执行armbian-config安装蓝牙(Network下面)和Avahi(System下面);
建议:编辑/etc/apt/sourcelist,改用国内源;
       执行 apt update/upgrade/dist-upgrade/full-upgrade/autoremove升级清理;
       执行 armbian-tf;

9、可选但不建议:armbian-update x.x.x升级至自己喜欢的内核版本;如果没做第7步,强烈建议不要升级内核,这个脚本会直接覆盖emmc的bootloader区域,很容易变砖。
   cm311-1a更不要乱升级内核;


10、U盘重启后执行 systemctl status bluetooth,确认蓝牙工作正常、确认网络内存正常;一切正常后再尝试写入emmc。

11、写入emmc:armbian-install,选305(第6步编辑的);如果是5.4或5.15内核,将u-boot-e900v22c.bin复制到emmc第一个分区并改名为u-boot.emmc(M401A可选&建议,不做这个操作的话可能启动后认不出网卡、内存只能认到一半;CM311-1a 不要这个u-boot.emmc);

12、有人建议此时不要直接poweroff关机拔U盘,而是要先插着U盘reboot一次再poweroff关机拔U盘;不知其原理;
   系统就绪后,/分区可用空间13,407,224KiB(还没装HA);

13、安装hassio(或者docker+HA容器)以及其它所需软件
   选hassio的话,建议参考官方教程:https://github.com/home-assistant/supervised-installer/
   比各种乱七八糟的教程靠谱多了,并且官方会及时更新;只需要在第一步apt安装软件包时增加apparmor(armbian默认没装);

14、以后每次需要重启的话,先poweroff,然后断电重开。直接reboot的话蓝牙起不来。

15、5.10+内核可能偶尔出现重启后拿不到IP地址的情况(概率很低但确实会有),网线拔下重新插入即可。
    (M401A使用5.18.16没这个问题,CM311-1a 使用5.15.60内核也没这个问题)


附:hassio安装步骤(根据官方教程整理):
- 安装基础包:
   apt-get install udisks2 libglib2.0-bin apparmor -y (其它包已经有了)
- 安装docker:
   curl -fsSL get.docker.com | sh
- 下载os-agent,最好看一下有没有新版本,有的话就下最新版的:
wget https://github.com/home-assistan ... 2_linux_aarch64.deb
- 安装os-agent:
   dpkg -i os-agent_1.2.2_linux_aarch64.deb
- 可选:确认os-agent安装成功(极少有问题):
gdbus introspect --system --dest io.hass.os --object-path /io/hass/os
- 下载最新版hassio包并安装:
wget https://github.com/home-assistan ... tant-supervised.deb
dpkg -i homeassistant-supervised.deb,选qemuarm-64

- 然后耐心等待,该干嘛干嘛去!大国域网内,有时候一晚上都不见得能装好。
实在着急的话,运行docker images看看都有啥镜像下载好了;或者docker ps看看哪些容器起来了;
直到那个ghcr.io/home-assistant/qemuarm-64-homeassistant:2022.xx.xx起来才算安装完成,landingpage那个都不算。

- 添加蓝牙集成、小米系的一些蓝牙设备会自动发现;如果同一型号你有多个的话,需要自行区分,需要密钥的话就挨个试着输入自己已知的密钥吧。


回复

使用道具 举报

79

主题

2203

帖子

8266

积分

超级版主

Rank: 8Rank: 8

积分
8266
金钱
5998
HASS币
420

教程狂人突出贡献

 楼主| 发表于 2022-8-2 09:35:29 | 显示全部楼层

哪位有货源的话可以开个车了

本帖最后由 XCray 于 2022-8-5 11:09 编辑

这盒子要涨价可和我没关系哈,我和任何卖家都不认识,也是海鲜市场随便买了一个自己折腾着玩的,想买的自己找哈。
~~~~~~~~~~~
另外分享一件闹鬼的事情:不焊ttl线的时候没这事儿。焊上ttl线、接着ttl适配器安装调试好之后,如果拔掉ttl适配器、让ttl线悬空的话,这盒子就会闹鬼、不启动!中途再接上ttl发现全是乱七八糟不可读的信息。插着ttl适配器(不用接电脑)或者一块8266(不用加电)就可以正常启动。也就十来公分长的3根杜邦线,就能有这么大的影响!害得我反复折腾。。。

~~~~~~~~~关于变砖和救砖

一般不写入bootloader(很多文档里和主线u-boot的概念混淆)的话是不会变砖的,插个带好使系统的U盘就能起来。

如果写入的bootloader不对(和硬件不匹配?),就会导致变砖。

砖的情况或者说级别又有两种(取决于线刷固件的bootloader有没有被覆盖):

1. 可以按住背面开关插入A-A线开始刷机

2. 按键不好使,必须短接正面的短接点才能开始刷机

大致过程:
1. 电脑启动线刷工具、A-A线(就是俗称的公对公线)电脑端插入、打开镜像、确认“擦除Flash”和“擦除Bootloader”两项为选中状态,点“开始”
2. 盒子电路板不要接电源,按住背面按键、A-A线插入盒子、松开按键,这时如果是第一级别的砖的话电脑就会有发现新硬件的提示音、烧写进度自动开始走
3. 如果电脑上没任何动静,那就是第二级别的砖,拿镊子或螺丝刀短接那两个短接点,接上后快速松开就行(有短路放电的声音、灯会变暗),不要太长时间。如果不行就多试几次。
我手上的盒子短接点位置和之前网上找到的都不一样。如果你的板子长得样子不一样,自己到网上找图吧,或者多试几个长得差不多的焊点。
具体:【另一个教程】魔百盒M401A刷Armbian,及中级、终极救砖大法 - 『HomeAssistant』综合讨论区 - 『瀚思彼岸』


回复

使用道具 举报

17

主题

749

帖子

2665

积分

金牌会员

Rank: 6Rank: 6

积分
2665
金钱
1916
HASS币
0
发表于 2022-8-2 09:50:49 | 显示全部楼层
感谢楼主无私奉献,折腾精神永存
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

26

主题

205

帖子

1103

积分

金牌会员

Rank: 6Rank: 6

积分
1103
金钱
898
HASS币
0
发表于 2022-8-2 10:23:38 | 显示全部楼层
版主就是版主,还是超级版主
回复

使用道具 举报

59

主题

300

帖子

1221

积分

论坛分享达人

积分
1221
金钱
921
HASS币
0
发表于 2022-8-2 10:27:41 | 显示全部楼层
本帖最后由 ciasdmxhxjjpd@c 于 2022-8-2 10:39 编辑

盒子配置是什么?网卡千兆or百兆?存储8?跟n1比有什么优势?

请分享 bootloader.img dtb 两个文件,谢谢!
准备移植至 openwrt, kernel 5.4.170 应该不需要 uboot.img , uboot.img 是为了适配高内核版本的。
回复

使用道具 举报

79

主题

2203

帖子

8266

积分

超级版主

Rank: 8Rank: 8

积分
8266
金钱
5998
HASS币
420

教程狂人突出贡献

 楼主| 发表于 2022-8-2 10:39:34 来自手机 | 显示全部楼层
本帖最后由 XCray 于 2022-8-10 07:56 编辑
ciasdmxhxjjpd@c 发表于 2022-8-2 10:27
盒子配置是什么?

请分享 bootloader.img dtb 两个文件,谢谢!

据说是s905l3a,2+16的存储,百兆网口、蓝牙、红外…

文件都在ophub的镜像里,仓库里应该也能翻到。

5.4和5.15的内核没有u-boot.ext/emmc也能启动,就是网卡认不出来、内存只能认出一半,有这个uboot就没问题了
~~~~~~~~~~~

放在这里,有缘者得之

换了一种方法编辑dts编译dtb,就是在github上修改u200.dts源码、然后编译内核的同时就会把dts都编译成dtb,这种方法显然更科学更合理。
meson-g12a-u204.zip (14.86 KB, 下载次数: 9)
源码:linux-5.18.y/meson-g12a-u200.dts at main · xcray/linux-5.18.y (github.com)
改动之处看这个:Update meson-g12a-u200.dts · xcray/linux-5.18.y@0556ad3 (github.com)
回复

使用道具 举报

59

主题

300

帖子

1221

积分

论坛分享达人

积分
1221
金钱
921
HASS币
0
发表于 2022-8-2 10:43:30 | 显示全部楼层
XCray 发表于 2022-8-2 10:39
据说是s905l3a,2+16的存储,百兆网口、蓝牙、红外…

文件都在ophub的镜像里,仓库里应该也能翻到。

好吧,百兆就算了,本来还想搞个软路由,看来arm软路由已经到头了,下一步准备直接一步到位,上j4125 x86了。省的折腾了。
回复

使用道具 举报

0

主题

114

帖子

340

积分

中级会员

Rank: 3Rank: 3

积分
340
金钱
226
HASS币
0
发表于 2022-8-2 11:51:13 | 显示全部楼层
牛逼呀。 准备入手一个
回复

使用道具 举报

60

主题

546

帖子

5236

积分

超级版主

Rank: 8Rank: 8

积分
5236
金钱
4615
HASS币
240

教程狂人论坛风云人物

发表于 2022-8-2 11:52:39 | 显示全部楼层
这个车容易翻,问了一下生产这个盒子的厂家,这些打着魔百盒的定制机有前后六七个配置。。他也不记得了。
尝试过萝卜,我想你一定会忘记青瓜
回复

使用道具 举报

0

主题

3

帖子

24

积分

新手上路

Rank: 1

积分
24
金钱
21
HASS币
0
发表于 2022-8-2 11:53:22 | 显示全部楼层
终于有了个堪称完美的M401A盒子Armbian安装方案
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2022-8-16 21:27 , Processed in 0.060639 second(s), 40 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表