ophub / amlogic-s9xxx-openwrt

Support for OpenWrt in Amlogic, Rockchip and Allwinner boxes. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.
GNU General Public License v2.0
1.86k stars 1.65k forks source link

魔百盒 CM311-1 YS(M)(s905l3) 安装测试 #356

Closed sollyu closed 1 year ago

sollyu commented 1 year ago

Standard chat template, no routine, no chat. 标准聊天模板,无套路不聊天。

Device Information | 设备信息

Armbian Version | 系统版本

Describe the bug | 问题描述 官方没有S905L3的包,我用的是S905L3A的包,使用meson-gxl-s905l2-x7-5g.dtb就可以正常启动。 但是我尝试更新系统提示下面的错误 image 我看了一下这个文件是存在的,并且文件的内容如下:

PLATFORM='amlogic'
KERNEL_VERSION='5.15.76'
K510='0'
FDTFILE='meson-gxl-s905l2-x7-5g.dtb'
UBOOT_OVERLOAD=''
MAINLINE_UBOOT=''
ANDROID_UBOOT=''
SOC=''

请问我该如何操作才能升级?


备注 今天莫名其妙的dockerd启动不了,尝试卸载后再安装提示依赖错误,无奈打算升级系统提示这些内容。

root@OpenWrt-S905L3 /etc# opkg install dockerd

Package dockerd (20.10.18-1) installed in root is up to date.
Collected errors:
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 5.15.84-1-228b3409cc0192f42da9fd813f2c3880) for kmod-crypto-hash
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 5.15.84-1-228b3409cc0192f42da9fd813f2c3880) for kmod-crypto-crc32c
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 5.15.84-1-228b3409cc0192f42da9fd813f2c3880) for kmod-lib-crc32c

已经尝试使用--force-depends也是同样的错误内容。

ophub commented 1 year ago

你的固件有问题 UBOOT_OVERLOAD='' SOC=''

不对,这两个必须有值,你从哪下载的固件?

sollyu commented 1 year ago

从本项目下载的,就只处理了uEnv.txt其他未动,然后写入到emmc里的。

ophub commented 1 year ago

我这下的固件以下这两个不可能是空,必定有/lib/u-boot这个字,你是fork改的吧,把model改错了。 MAINLINE_UBOOT='' ANDROID_UBOOT=''

sollyu commented 1 year ago

没啊,天地良心,真的没改。那我现在这种情况还能抢救一下吗?

ophub commented 1 year ago

给SOC添加值: SOC='s905l3' UBOOT_OVERLOAD='u-boot-s905x-s912.bin'

UBOOT_OVERLOAD如果你不填写值,仅限于使用5.15,千万别更新5.10或者6.0+等其他内核,缺少u-boot无法启动。

你的盒子叫什么名字呢? 你是怎么安装到emmc的呢?

meson-gxl-s905l2-x7-5g.dtb可以在s905l2的MGV2000里使用,你是s905l3也可以使用?

sollyu commented 1 year ago

我的盒子的型号魔百盒 CM311-1 YS(M)拆开之后看芯片是S905L3后面没有A,最新的meson-gxl-s905l2-x7-5g.dtb是可以正常启动的(大约半年前开始支持的)。

安装到emmc就是通过openwrt的管理网页,使用手动选择dtb文件。

image

现在好像可以能更新了,但是GitHub的网不是很稳定,有手动下载文件的办法吗?

我自己找到了,我只要把下载好的文件放在:/m/mmcblk2p4就可以了。

下面是我这个盒子背面的照片

IMG_8738

sollyu commented 1 year ago

我手动上传更新文件,然后点击更新,出现了这个错误:

image

ophub commented 1 year ago

lsblk 看下你的磁盘情况 ls /mnt/*4/

sollyu commented 1 year ago

刚才确实是挂在的盘有问题,但是新的问题又出现了

这个是现在的磁盘情况

root@OpenWrt-S905L3 /m/mmcblk2p4# lsblk

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mmcblk2      179:0    0 14.6G  0 disk
├─mmcblk2p1  179:1    0  160M  0 part
├─mmcblk2p2  179:2    0  960M  0 part /
├─mmcblk2p3  179:3    0  960M  0 part
└─mmcblk2p4  179:4    0 12.3G  0 part /mnt/mmcblk2p4
mmcblk2boot0 179:32   0    4M  1 disk
mmcblk2boot1 179:64   0    4M  1 disk

image

同样的,我只更新内核也是这样的。

image

ophub commented 1 year ago

你删除什么插件时,把lsblk命令也删了,缺少这个必要依赖无法继续。你在软件中心,先更新,在搜索lsblk安装

ophub commented 1 year ago

你选择的配置是113的,你下次安装时,选择113安装即可,别手动输入了。

sollyu commented 1 year ago

刚才下载了最新的镜像文件重新刷系统,下载了openwrt_lede_s905l3a_k5.15.84_2022.12.21.img.gz,然后修改了uEnv.txt的dtb为meson-gxl-s905l2-x7-5g.dtb,然后使用openwrt-install-amlogic使用113进行写入emmc,emmc写入成功,就修改了网络接口为DHCP。 然后发现系统的挂载分区是这样的,不知道是我的刷机操作有误,还是系统的bug,我现在打算手动修复这个挂载错误。 这个挂载应该在mmcblk2p4

root@OpenWrt-S905L3 /mnt [SIGINT]# lsblk

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mmcblk2      179:0    0 14.6G  0 disk 
├─mmcblk2p1  179:1    0  160M  0 part /boot
├─mmcblk2p2  179:2    0  960M  0 part /mnt/mmcblk2p4/docker/btrfs
│                                     /mnt/mmcblk2p4/docker
│                                     /
├─mmcblk2p3  179:3    0  960M  0 part /mnt/mmcblk2p3
└─mmcblk2p4  179:4    0 12.3G  0 part 
mmcblk2boot0 179:32   0    4M  1 disk 
mmcblk2boot1 179:64   0    4M  1 disk 

image

ophub commented 1 year ago

全新安装

mmcblk2p2应该挂载到/ mmcblk2p4应该挂载到/mnt/mmcblk4

sollyu commented 1 year ago

我是完全用U盘重新刷的。 我的上一条也能看出来,mmcblk2p4是挂载到了mmcblk2p2里。 我自己使用mount -t btrfs /dev/mmcblk2p4 /mnt/mmcblk2p4/重新挂载了。

ophub commented 1 year ago

从你的截图反馈里,我找到原因了,因为自定义dtb只留了一个dtb的输入项,所以soc等默认都是空,这个问题我下午修复了:

https://github.com/ophub/luci-app-amlogic/commit/3b88f136e7aa5e0d4af03721277e64db67ef0367

以后在插件里自定义dtb时会同时显示soc和uboot的输入项,这3个选项是很重要的。 在使用openwrt-install-amlogic脚本安装选择0时也提供了soc等全部输入项的自定义。 这样就解决了你今天碰到的问题了。

sollyu commented 1 year ago

好的,感谢大佬百忙中的回复 :beers: 。

ophub commented 1 year ago

https://github.com/ophub/amlogic-s9xxx-openwrt/blob/d88d706c0aa1d61e45d042df20cafee9cccd6716/amlogic-s9xxx/common-files/rootfs/etc/model_database.txt#L19

你的设备在序列里是116,专门为你的设备添加的,不是113,他们2个的dtb相同,但是u-boot不同,根据之前用户反馈使用的是u-boot-p212.bin 把你的这个文件里的值更新下: UBOOT_OVERLOAD='u-boot-p212.bin'

你方便的话可以测试确认下这个文件,在5.15/5.4内核里可以选择添加(添加了没坏处),但是在5.10/6.0/6.1里是必须添加的。

cd /boot
cp -f u-boot-p212.bin u-boot.emmc
chmod +x u-boot.emmc
sync && reboot
sollyu commented 1 year ago

已经测试了,系统正常启动,没有什么异常,还需要其他的额外的测试吗?比如功能、重新用U盘刷写之类的,或者使用116再刷一遍?

ophub commented 1 year ago

不用了,这就可以了。你选择5.15内核的固件,脚本默认不复制u-boot,你手动复制了就已经测试好了。

记得改你本地的那个记录文件啊(你现在手动安装的,需要检查这个值是否正确,方便你以后使用其他内核时不会出错) /etc/flippy-openwrt-release

FDTFILE='meson-gxl-s905l2-x7-5g.dtb' SOC='s905l3' UBOOT_OVERLOAD='u-boot-p212.bin'

sollyu commented 1 year ago

安装完后/etc/flippy-openwrt-release的内容

PLATFORM='amlogic'
FAMILY='meson-g12a'
BOARD='s905l3a'
KERNEL_VERSION='5.15.84'
K510='0'
FDTFILE='meson-gxl-s905l2-x7-5g.dtb'
UBOOT_OVERLOAD='u-boot-s905x-s912.bin'
MAINLINE_UBOOT=''
ANDROID_UBOOT=''
SOC='s905l2'

已经修改成了

PLATFORM='amlogic'
FAMILY='meson-g12a'
BOARD='s905l3a'
KERNEL_VERSION='5.15.84'
K510='0'
FDTFILE='meson-gxl-s905l2-x7-5g.dtb'
UBOOT_OVERLOAD='u-boot-p212.bin'
MAINLINE_UBOOT=''
ANDROID_UBOOT=''
SOC='s905l3'

并且使用sync && reboot重启后没有发现异常

ophub commented 1 year ago

好的,完美。

在系统菜单下---晶晨宝盒---在线下载更新---仅更新宝盒插件,点这个按钮把插件也升级到最新(以后每次更新内核或者固件前,记得都先升级插件到最新,再更新固件或内核)。

我的固件插件太少了,在仓库里有自定义的说明,你可以fork后自己添加调整插件,根据自己的需求调整一个量身定制版。

sollyu commented 1 year ago

收到,感谢大佬的耐心指导。

ophub commented 1 year ago

不客气,没有你的反馈,我都发现不了这个bug的存在,你解决了很大的问题。

sollyu commented 1 year ago

:tada: 能帮助大佬,真的是荣幸,辛苦大佬了。