Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Tencent Aurora 3Pro (s905x3-b) new support #619

Merged
merged 4 commits into from
Oct 13, 2022
Merged

Add Tencent Aurora 3Pro (s905x3-b) new support #619

merged 4 commits into from
Oct 13, 2022

Conversation

livelier
Copy link
Contributor

@livelier livelier commented Oct 12, 2022

增加 mainline_uboot, uboot_overload 支持 5.10.y 5.15.y 5.19.y 内核,并增加了盒子分区表。
已知问题:
1、uboot 引导时,以及进入 armbian 系统后,LED 无法点亮,(这款盒子由 TCA6507 控制 RGB LED,我没有找到方法)。
2、mainline_uboot 写入 emmc 后,默认引导顺序,mm0 mmc1 mmc2 usb0 。在 u-boot 模式下可修改保存 引导顺序。

=> editenv boot_targets 
edit: romusb usb0 mmc0 mmc1 mmc2 pxe dhcp 
=> saveenv 

蓝牙及无线正常使用,目前 5.15.y 内核除外(此方法 5.15.y 内核下无线正常使用,但蓝牙不可用。)。
o大,要麻烦你帮助增加一下判定脚本了。给大神安排工作,我棒棒哒 😂😂😂

/etc/modprobe.d/blacklist.conf 新增一行 blacklist btmtksdio
/etc/custom_service/start_service.sh 新增一行 modprobe btmtksdio

@livelier livelier changed the title Add Tencent Aurora 3Pro (s905x3-b) support Add Tencent Aurora 3Pro (s905x3-b) new support Oct 12, 2022
@ophub ophub merged commit 22df7d5 into ophub:main Oct 13, 2022
@ophub
Copy link
Owner

ophub commented Oct 13, 2022

这个盒子的相关讨论贴在这个链接里: #506

感谢 @livelier 的研究,现在可以正常使用了。有空的时候把你制作的过程写成教程,指导下更多同学如何开发一个新盒子的使用。比如u-boot的制作,dtb的调试,分区确认等。再次感谢你的付出。🎉🎉🎉

dtb 你修改了没?
你把你的这2个u-boot提交到flippy的仓库吧。测试下openwrt的使用,以及分区。

@ophub
Copy link
Owner

ophub commented Oct 13, 2022

40a212f

btmtksdio 模块的先禁用后启用我添加了,精确一点应该只对这个盒子采取这个策略,其他盒子可以不添加。目前这样对其他盒子应该没影响。
要不我们把soc叫s905x3-b吧?这样就是独立soc,可以完全独立添加这个模块的使用,对其他盒子可以默认不使用。

@ophub
Copy link
Owner

ophub commented Oct 13, 2022

https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/build-armbian/armbian-docs/amlogic_model_database.md

4C@2100Mhz,4GB Mem,32G Rom,Model LB2004-A4091,MT7661RSN chip Wifi-5(mt7663s)/Bluetooth-5.0(btmtksdio),JL2121 1Gb Nic

你现在的这个盒子,芯片等配置是不是变了?上面的信息描述你更正下。

@ophub
Copy link
Owner

ophub commented Oct 13, 2022

9490dbc
我给他添加了s905x3-b的独立标签,可以直接打包这个固件。他的模块关闭启动也独立了,其他固件默认保持原样。

我在openwrt仓库里也添加了独立固件
ophub/amlogic-s9xxx-openwrt@ab0bff4
安装分区大小需要调整下(只判断${FDTFILE}名称即可,不用判断soc了)
https://github.com/ophub/luci-app-amlogic/blob/main/luci-app-amlogic/root/usr/sbin/openwrt-install-amlogic#L324

你给f大的仓库pr你的u-boot的时候,把他仓库里的安装脚本、配置脚本也更新下,我同步你更新后的安装脚本。

@livelier
Copy link
Contributor Author

livelier commented Oct 13, 2022

dtb 你修改了没?
你把你的这2个u-boot提交到flippy的仓库吧。测试下openwrt的使用,以及分区。

dtb 还没有改好。2个u-boot提交到 flippy 哪一个仓库 😂。openwrt,我找时间也测试一下。

要不我们把soc叫s905x3-b吧?这样就是独立soc,可以完全独立添加这个模块的使用,对其他盒子可以默认不使用。

理论上 MT7661RSN 硬件相同的机型 都可以这样控制模块使用。脚本可以识别他是 s905x3-b 就可以,soc方式区分就和原有脚本判断风格一致,这样很漂亮。

你现在的这个盒子,芯片等配置是不是变了?上面的信息描述你更正下。

目前已知他有两个网卡版本,RTL8211F(返厂版本) 和 JL2121(目前版本)
无线是双频 867Mbps。RGB 多色 LED 灯带 由 i2c->TCA6507->LED 控制。没有红外线功能。已更改, o大 审核一下。

你给f大的仓库pr你的u-boot的时候,把他仓库里的安装脚本、配置脚本也更新下,我同步你更新后的安装脚本。

这个和上边2个u-boot提交到 flippy的仓库 ,是一个仓库吗?😂😂

o大,请把对应的仓库 链接 发一下 。

@livelier
Copy link
Contributor Author

o大,有空的时候,帮忙对比一下,btmtksdio,在 5.10.y 和 5.15.y 中的源码,理论上 5.15.y 应该也可以正常使用蓝牙。

@ophub
Copy link
Owner

ophub commented Oct 13, 2022

https://github.com/unifreq/openwrt_packit/tree/master/files/meson_btld

f大的仓库的u-boot在这个目录里,主线u-boot放s905x3吧,overload不分soc都在一起,你直接删除原来的,同名覆盖你新的文件即可,我和f大说过了你会pr新调试好的文件及修改。

https://github.com/unifreq/openwrt_packit/blob/2c99217a982c0b33773b105dc9b4a14b27d3e93e/files/openwrt-install-amlogic#L324

#324行改一下只判断dtb名字即可

elif [[ "${FDTFILE}" == "meson-sm1-skyworth-lb2004-a4091.dtb" ]]; then

这个是安装文件,你的分区表发一个,看看openwrt怎么调整一下分区,现在的是用的你上次发的。用不用调整一下?

@livelier
Copy link
Contributor Author

如果 openwrt 与 armbian 分区表判定标准和目的完全相同,使用这个。

    elif [[ "${FDTFILE}" == "meson-sm1-skyworth-lb2004-a4091.dtb" ]]; then
        BLANK1="108"
        BOOT="512"
        BLANK2="562"

#619 (comment) 稍后提交,我先测试一下。

@ophub
Copy link
Owner

ophub commented Oct 13, 2022

elif [[ "${FDTFILE}" == "meson-sm1-skyworth-lb2004-a4091.dtb" ]]; then
    BLANK1=68
    BOOT=768
    BLANK2=202
    BLANK3=0
    BLANK4=0

这是之前的。

openwrt 和armbian不一样,armbian只有两个区,一个boot,一个rootfs
而openwrt有四个区,一个boot,两个rootfs(一样大都要够960m,更新固件时双分区交替使用),还有一个share数据共享分区(剩余多少都分给这个区)

BLANK1 > /boot > BLANK2 > /rootfs1 > BLANK3 > /rootfs2 > BLANK4 > /share

@ophub
Copy link
Owner

ophub commented Oct 13, 2022

https://github.com/ophub/amlogic-s9xxx-armbian/releases/tag/Armbian_Aml_jammy_10.13.0358

今天新打包的固件,s905x3-b的是你的专用固件,你有空了测试下,那个模块也看看是否正确加载了。

@livelier
Copy link
Contributor Author

livelier commented Oct 13, 2022

我制作的分区表还没有整理,数据来自ddbr和反编译安卓刷机包,以灰色框内为准,107.79取整108,1181.84取整1182
1665663088441

新固件已经下载,还没测试,等测试后反馈。

@ophub
Copy link
Owner

ophub commented Oct 13, 2022

在openwrt里这样分配即可:

elif [[ "${FDTFILE}" == "meson-sm1-skyworth-lb2004-a4091.dtb" ]]; then
    BOOT=512
    BLANK1=108
    BLANK2=562
    BLANK3=0
    BLANK4=0

108+512+562=1182
你提交给f大的时候把安装脚本里的第324行这样修改下吧。

@livelier
Copy link
Contributor Author

livelier commented Oct 15, 2022

armbian 2个专版固件,和 openwrt 4个专版固件纯在同样的问题,写入 emmc 后,主线 u-boot 没有被写入 emmc 。
等确认不是 u-boot 导致的问题,我在 提交 到 f大 仓库。

armbian 测试情况 5.15.y 蓝牙不可用,其他正常。
openwrt 测试情况 ophub/amlogic-s9xxx-openwrt#310

ophub added a commit that referenced this pull request Oct 17, 2022
Add Tencent Aurora 3Pro (s905x3-b) new support
ophub added a commit that referenced this pull request Nov 4, 2022
Add Tencent Aurora 3Pro (s905x3-b) new support
@7Ji
Copy link
Contributor

7Ji commented Nov 10, 2022

我制作的分区表还没有整理,数据来自ddbr和反编译安卓刷机包,以灰色框内为准,107.79取整108,1181.84取整1182 1665663088441

来晚了,但是想说下,对于需要获取eMMC分区表的情况下,我上半年逆向小米盒子3以后写的ampart 和它的esnapshot模式是非常方便的。上面这个分区表里有很多不合乎Amlogic分区逻辑的地方(reserved和bootloader之间应该有32MiB空隙,其他每个分区前面应该是8MiB空隙,然后如果DTB没有特意写歪的话,所有的分区都是对齐到1MiB的)

即使在不能dump到eMMC的镜像的前提下,只要能提取到DTB,就能把DTB写到相当于eMMC大小的空文件的40MiB处再通过dtoe模式从这个DTB转换得到和盒子上相同的eMMC分区表。这篇文档里记载了对应的方法。
https://github.com/7Ji/ampart/blob/ampart/doc/emulate-emmc-with-only-dtb.md

通过ampart的esnapshot模式,简单的脚本调用,就可以在eMMC分区表的快照基础上生成.csv表,而不需要手动整理,同一篇文档的最后一个小节里记录了一个可以生成这种表的脚本:
https://github.com/7Ji/ampart/blob/ampart/doc/emulate-emmc-with-only-dtb.md#get-snapshots-of-the-new-ept

@livelier
Copy link
Contributor Author

@7Ji
首先感谢 7大 编写 Amlogic EPT Ampart 分区工具 所做出的杰出贡献。

我提供的表格是不完整的数据,那时还无法验证其真正的准确性,只能通过写入 eMMC 后验证是否可以正常使用 armbian。
起初是为了找到我这款盒子的安全分区,过程中发现 mmcblk0p1 至 mmcblk0p20 总合小于 mmcblk0。从这个结果看分区之间可能存在未使用空间,安全分区可能存在偏移量就不能准确使用安全分区。使用 DiskGenius 查看 ddbr 备份,发现分区之间几乎每个都有1个7.97MB和其他大小的间隔。以及解包安卓刷机包内的分区镜像,其中 system 镜像大小,与 DiskGenius 查到的 system 分区大小 1280MB 两者完全相同 ,而不是 1536MB。其他分区镜像大小与表格第三列数据完全相同。表格第9至10列中 mmcblk0p1 至 mmcblk0p20 的总和是 29820MB(7.97MB全部进位到8MB)与 mmcblk0 的 29820MB 相等,而 ddbr 备份大小同样是 29820MB,最后得到以上表格安全分区的结论。并写入 eMMC 后 armbian 可以正常使用。那时我只有一个盒子无法在其他晶晨盒子上验证这个结论。

7.97MB:
间隔空间占用 16321个扇区,8356352字节,换算MB是7.9692MB,7.97MB由此而来。

32MB:
当时知道cache前面有107.97MB(占用221120个扇区,113213440字节),已知 bootloader 4MB、reserved 64MB,剩下39.97MB,猜测他们之间同样有一个7.97MB,所有39.97-7.97=32MB,但我不知道他们谁在 reserved 前面还是后面,但一定在107.97之间,32MB由此而来。

现在可以使用 Amlogic EPT Ampart 分区工具 这个神器,可以知道每个分区大小以及分区之间的间隔大小,还可以调整分区大小并且支持向前移动要保留的分区和数据等功能,最终实现 eMMC 可用空间最大化。🎉🎉🎉

我那方法太愚笨啦 😂😂😂
再次感谢 7大 对我的热心指导,谢谢你。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants