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 support for eaidk-610 #991

Merged
merged 1 commit into from
Feb 1, 2023
Merged

Add support for eaidk-610 #991

merged 1 commit into from
Feb 1, 2023

Conversation

13584452567
Copy link
Contributor

添加对于eaidk-610的支持
PS:这块板子的AP6255模块内置的蓝牙在5.15.x内核下会出现蓝牙固件加载失败的问题,这个问题经过测试在6.1.x上内核已被解决。

添加对于eaidk-610的支持
@ophub ophub merged commit 467c61f into ophub:main Feb 1, 2023
@ophub
Copy link
Owner

ophub commented Feb 1, 2023

多谢分享
这个设备是emmc还是tf卡?

安装使用方法8里面介绍一下这个设备的使用方法

https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/build-armbian/documents/README.cn.md

@13584452567
Copy link
Contributor Author

好的,随后添加

@ophub
Copy link
Owner

ophub commented Feb 1, 2023

48052d4

刚才忘了rebuild里添加选项了,我补充上了。

@ophub
Copy link
Owner

ophub commented Feb 1, 2023

https://github.com/ophub/amlogic-s9xxx-armbian/releases/tag/Armbian_jammy_02.01.0756

你下载文件名称里带eaidk-610标签的,测试下是否使用正常。

@13584452567
Copy link
Contributor Author

可以,功能都可用。十分感谢

@ophub
Copy link
Owner

ophub commented Feb 1, 2023

好的👌感谢分享支持。

@13584452567
Copy link
Contributor Author

大佬有没有armbian移植相关的群?我想进去学习学习。

@ophub
Copy link
Owner

ophub commented Feb 2, 2023

我也没找到armbian的群,我在f大的openwrt群里学习。

去年我在f大的群里看到一个很形象的比喻,有个网友把他比做盒子圈的袁隆平,因为他把openwrt和armbian进行了杂交融合创新,使用了armbian的启动机制,融合openwrt的主体功能,打开了在盒子里使用openwrt的大门。

一年前他同时发布openwrt和armbian,持续发布到第56版,后来他改用内核制作openwrt后停止了继续发布armbian。当时我刚开始使用armbian,觉得没了挺可惜的,就一边向他请教,一边网上搜索教程,一知半解地创建了这个armbian仓库。

在这个armbian的重构中,我延续了f大之前的使用标准和习惯,在内核、u-boot等方面和openwrt通用,所以理论上支持openwrt使用的盒子都可以使用对应的armbian,反之也一样。

他创建了很多仓库,包括u-boot的制作、内核源码、打包制作等,里面有相关的教程。

f大的仓库和他在恩山的帖子中都有他的群链接
https://github.com/unifreq/openwrt_packit
https://www.right.com.cn/forum/thread-4076037-1-1.html

@13584452567
Copy link
Contributor Author

感谢大佬答疑解惑!

@ihexon
Copy link

ihexon commented Feb 3, 2023

刚好学校电子实验室里有这个板子,我稍微试了一下 Armbian_23.02.0_rockchip_eaidk-610_jammy_6.1.9_server_2023.02.02.img 这个镜像,写入 emmc 似乎并不能启动,串口提示:## Error: "distro_bootcmd" not defined

附上 uboot 日志:

U-Boot TPL 2023.01-00934-gf147aa80f5 (Jan 30 2023 - 21:49:58)
Channel 0: LPDDR3, 800MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: LPDDR3, 800MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2023.01-00934-gf147aa80f5 (Jan 30 2023 - 21:49:58 +0800)
Trying to boot from MMC2


U-Boot 2023.01-00934-gf147aa80f5 (Jan 30 2023 - 21:49:58 +0800)

SoC: Rockchip rk3399
Reset cause: POR
Model: OPEN AI LAB EAIDK-610
DRAM:  3.9 GiB
PMIC:  RK808
Core:  279 devices, 23 uclasses, devicetree: separate
MMC:   mmc@fe310000: 3, mmc@fe320000: 1, mmc@fe330000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial@ff1a0000
Out:   serial@ff1a0000
Err:   serial@ff1a0000
Model: OPEN AI LAB EAIDK-610
Net:
Error: ethernet@fe300000 address not set.
No ethernet found.

Hit any key to stop autoboot:  0
## Error: "distro_bootcmd" not defined

操作步骤:

$ sudo ./rkdeveloptool db ~/rk3399_loader_v1.27.126.bin
$ sudo ./rkdeveloptool wl 0x0 ~/Armbian_23.02.0_rockchip_eaidk-610_jammy_6.1.9_server_2023.02.02.img

rk3399_loader_v1.27.126.bin 来源 amlogic-s9xxx-armbian/build-armbian/u-boot/rockchip/eaidk-610/rk3399_loader_v1.27.126.bin

这个镜像是写入 SDCARD 里启动的?

@13584452567
Copy link
Contributor Author

13584452567 commented Feb 4, 2023

刚好学校电子实验室里有这个板子,我稍微试了一下 Armbian_23.02.0_rockchip_eaidk-610_jammy_6.1.9_server_2023.02.02.img 这个镜像,写入 emmc 似乎并不能启动,串口提示:## Error: "distro_bootcmd" not defined

附上 uboot 日志:

U-Boot TPL 2023.01-00934-gf147aa80f5 (Jan 30 2023 - 21:49:58)
Channel 0: LPDDR3, 800MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: LPDDR3, 800MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2023.01-00934-gf147aa80f5 (Jan 30 2023 - 21:49:58 +0800)
Trying to boot from MMC2


U-Boot 2023.01-00934-gf147aa80f5 (Jan 30 2023 - 21:49:58 +0800)

SoC: Rockchip rk3399
Reset cause: POR
Model: OPEN AI LAB EAIDK-610
DRAM:  3.9 GiB
PMIC:  RK808
Core:  279 devices, 23 uclasses, devicetree: separate
MMC:   mmc@fe310000: 3, mmc@fe320000: 1, mmc@fe330000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial@ff1a0000
Out:   serial@ff1a0000
Err:   serial@ff1a0000
Model: OPEN AI LAB EAIDK-610
Net:
Error: ethernet@fe300000 address not set.
No ethernet found.

Hit any key to stop autoboot:  0
## Error: "distro_bootcmd" not defined

操作步骤:

$ sudo ./rkdeveloptool db ~/rk3399_loader_v1.27.126.bin
$ sudo ./rkdeveloptool wl 0x0 ~/Armbian_23.02.0_rockchip_eaidk-610_jammy_6.1.9_server_2023.02.02.img

rk3399_loader_v1.27.126.bin 来源 amlogic-s9xxx-armbian/build-armbian/u-boot/rockchip/eaidk-610/rk3399_loader_v1.27.126.bin

这个镜像是写入 SDCARD 里启动的?

这个镜像直接烧录到TF卡上就可以使用,但是板子上的uboot不能使用rk维护的,必须使用主线uboot。也可刷入到emmc进行启动,我所使用的工具是AndroidTool_Release_v2.64,windows下的具体配置为
0xCCCCCCCC Boot ./rk3399_loader_v1.27.126.bin
0x00000000 system ./image/Armbian_23.02.0_rockchip_eaidk-610_jammy_6.1.9_server_2023.02.02.img

具体的操作过程我过段时间解决了这块板子的spi和网卡负载异常问题之后再写。

也有其他人遇到了同样的问题,已经定位问题。将提交一个更改来兼容新版的EAIDK-610布局

ophub added a commit that referenced this pull request Feb 23, 2023
Add support for eaidk-610
ophub added a commit that referenced this pull request Mar 1, 2023
Add support for eaidk-610
@13584452567
Copy link
Contributor Author

对了,EAIDK-610的启动时间略长。看日志每次都在等待两个进程超时。一个是raise network interface,另一个是trying to start ttyAML0,。可否关闭呢?尤其是后面那个ttyaml0

@ophub
Copy link
Owner

ophub commented Mar 1, 2023

[[ "${platform_name}" == "rockchip" ]] && sudo systemctl disable serial-getty@ttyFIQ0 2>/dev/null && echo "29. Disable ttyFIQ0 (ttyS2)"

之前r66s这么禁止的

@13584452567
Copy link
Contributor Author

这个armbian-fix在什么时候运行的?只能系统启动之后运行一次来修复吗?

@ophub
Copy link
Owner

ophub commented Mar 1, 2023

# Add tasks that need to be executed on initial startup
armbian_firstrun="usr/lib/armbian/armbian-firstrun"
sed -i '/armbian-release/i\[ -f "/usr/sbin/armbian-fix" ] && . /usr/sbin/armbian-fix' ${armbian_firstrun}

只初始化时运行一次

@ophub
Copy link
Owner

ophub commented Mar 1, 2023

@13584452567
Copy link
Contributor Author

好的

@13584452567
Copy link
Contributor Author

13584452567 commented Mar 1, 2023

你试试刚才 https://github.com/ophub/amlogic-s9xxx-armbian/releases/tag/Armbian_bullseye_03.01.0815 能不能启动了

还是不行,而且抓不到日志。

@ophub
Copy link
Owner

ophub commented Mar 1, 2023

trying to start ttyAML0

systemctl stop getty@ttyAML0
systemctl disable getty@ttyAML0
systemctl status getty@ttyAML0

你用这个禁止试试

@ophub
Copy link
Owner

ophub commented Mar 1, 2023

之前测试的有日志?卡哪了?
还是这几次测试都一样没有日志?

@13584452567
Copy link
Contributor Author

之前测试的有日志?卡哪了? 还是这几次测试都一样没有日志?

之前是有uboot输出,然后卡在trying to boot mmc0...,这几次测试直接无了。
那个能用的armbian包貌似没有区分出bootfs和rootfs
我试一试用官方的orange pi 3的包,按道理那个应该也是H6通用的。

@ophub
Copy link
Owner

ophub commented Mar 1, 2023

没有区分出bootfs和rootfs使用的是GPT分区表

因为跳过的区域小了所以破坏了无法挂载。
https://wiki.freebsd.org/arm/Allwinner/booting
使用GPT要跳过128k以上

@ophub
Copy link
Owner

ophub commented Mar 1, 2023

@13584452567
Copy link
Contributor Author

13584452567 commented Mar 1, 2023

这个我在安卓里看到过,在全志平台里,script.bin用于指定SOC控制器和GPIO相关的配置。script.bin是由script.fex用工具转换得来.

@ophub
Copy link
Owner

ophub commented Mar 7, 2023

只要简单粗暴的修改/etc/systemd/system.conf里面的DefaultTimeoutStartSec和DefaultTimeoutStopSec就可以显著提升重启和开机速度。正常的进程启动并不会超过5s,故把默认的90s改成5s不会对其他组件产生显著影响。

@13584452567

# Adjust the default timeout for service start/stop
system_conf="etc/systemd/system.conf"
[[ -f "${system_conf}" ]] && {
sed -i "s|^#*DefaultTimeoutStartSec.*|DefaultTimeoutStartSec=10s|g" ${system_conf}
sed -i "s|^#*DefaultTimeoutStopSec.*|DefaultTimeoutStopSec=10s|g" ${system_conf}
}

今天我把你提的这个修改添加了,以后编译时修改这个时间。

@phcl1998
Copy link

大佬,我刷了这个Armbian 23.02.0-trunk Jammy系统,但是eaidk610板子上的i2c好像并不能使用,我买了一个i2c oled屏幕接在板子上却找不到设备地址,同样的屏幕我接在另一块rk3399的板子上就可以识别oled屏幕地址。这个问题我也问了有eaidk610板子的人,他们说armbian的610没开i2c

@ophub
Copy link
Owner

ophub commented Mar 15, 2023

知道怎么开吗

@phcl1998
Copy link

知道怎么打开吗

我不知道,我在别rk3399(系统也是armbian)上都可以正常使用i2c,但610上却不能使用

@ophub
Copy link
Owner

ophub commented Mar 15, 2023

好助手,继续追问怎么配置,顺便问问chatgpt今天语文老师会不会占用体育课呢,天气这么好,我想去跳皮筋。

@phcl1998
Copy link

。。。。。。那算了,因为这个i2c我折腾几天了。关于i2c相同配置在别的rk3399设备上都可以识别到i2c oled设备地址,在这个610板子上死活识别不出。总感觉610刷了armbian板子上i2c不能使用。

@13584452567
Copy link
Contributor Author

什么是I2C接口的oled屏幕呢?我没记错的话这块板子的视频输出接口应该只有HDMI,MIPI Panel,eDP这三个接口。

板子的gpio引脚全部使能,如果你是要使用gpio以I2C协议链接屏幕的话,你需要修改dts内的gpio定义,自行编译dtb然后替换boot/dtb目录下的dtb。如果嫌麻烦,可以尝试使用eaidk-610的官方fedora 28 固件,很遗憾,我这里没有官方固件,没办法提供给你。

这块板子除了spi和type-c(上游驱动貌似有问题,始终无法注册tcpm),其余功能应该已经全部启用。

我手边并没有gpio接口的屏幕,无法给你提供详细的操作流程。

@phcl1998
Copy link

什么是I2C接口的oled屏幕呢?我没记错的话这块板子的视频输出接口应该只有HDMI,MIPI Panel,eDP这三个接口。

板子的gpio引脚全部使能,如果你是要使用gpio以I2C协议链接屏幕的话,你需要修改dts内的gpio定义,自行编译dtb然后替换boot/dtb目录下的dtb。如果嫌麻烦,可以尝试使用eaidk-610的官方fedora 28 固件,很遗憾,我这里没有官方固件,没办法提供给你。

这块板子除了spi和type-c(上游驱动貌似有问题,始终无法注册tcpm),其余功能应该已经全部启用。

我手边并没有gpio接口的屏幕,无法给你提供详细的操作流程。

好的,感谢!我说的不对,是通信方为i2c的oled屏幕,控制芯片是ssd1306,不过还是感谢大佬回复我这个小白

ophub added a commit that referenced this pull request Mar 21, 2023
Add support for eaidk-610
@phcl1998
Copy link

phcl1998 commented Mar 21, 2023

大佬我现在知道为啥板子上的i2c用不了了,在dtb文件里没有开启i2c,我根据用户手册发现GPIO2_A7/I2C7_SDA、GPIO2_B0/I2C7_SCL在rk3399-eaidk-610.dts文件里对应的是i2c7 = "/i2c@ff160000";

i2c@ff160000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff160000 0x00 0x1000>;
		assigned-clocks = <0x08 0x46>;
		assigned-clock-rates = <0xbebc200>;
		clocks = <0x08 0x46 0x08 0x15a>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x24 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x3e>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "okay";
		phandle = <0xec>;
	};

把status = "disabled",改为status = "okay";然后重新编译为dtb,替换原有的dtb重启之后就可以识别了

@yifengyou
Copy link

请问 eaidk-610的官方fedora 28 固件 dts在哪里能获取到,亦或是只能从dtb转换?

@13584452567
Copy link
Contributor Author

大佬我现在知道为啥板子上的i2c用不了了,在dtb文件里没有开启i2c,我根据用户手册发现GPIO2_A7/I2C7_SDA、GPIO2_B0/I2C7_SCL在rk3399-eaidk-610.dts文件里对应的是i2c7 = "/i2c@ff160000";

i2c@ff160000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff160000 0x00 0x1000>;
		assigned-clocks = <0x08 0x46>;
		assigned-clock-rates = <0xbebc200>;
		clocks = <0x08 0x46 0x08 0x15a>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x24 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x3e>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "okay";
		phandle = <0xec>;
	};

把status = "disabled",改为status = "okay";然后重新编译为dtb,替换原有的dtb重启之后就可以识别了

感谢你的测试反馈!我稍后将推送补丁默认启用i2c7

@13584452567
Copy link
Contributor Author

请问 eaidk-610的官方fedora 28 固件 dts在哪里能获取到,亦或是只能从dtb转换?

我这里并没有fedora固件,没有办法帮到你。非常抱歉

不过generic的linux固件一般是获取uboot传入的设备树,像armbian这种使用自己的dtb的应该比较少?

或许你可以尝试拆解编译好的uboot.bin,用hexeditor把dtb提取出来?

@yifengyou
Copy link

image

最近发现这个问题,插上电源启动正常,但是按reset重启,就会卡在这里,这会是什么原因呢?

@13584452567
Copy link
Contributor Author

image

最近发现这个问题,插上电源启动正常,但是按reset重启,就会卡在这里,这会是什么原因呢?

看起来你的uboot还是官方的远古版本,想要引导主线内核需要主线的uboot。

按道理强刷应该会刷新uboot到主线的,你可能需要再尝试一次。

ophub added a commit that referenced this pull request Mar 31, 2023
Add support for eaidk-610
@dos7lo
Copy link

dos7lo commented Apr 7, 2023

大佬,这块板子自带的mipi 5.5存触控屏没有显示输出这个需要怎么调整啊?
https://github.com/yifengyou/eaidk-610/blob/master/docs/eaidk-610%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%8B%E7%BB%8D/LCD.md

@phcl1998
Copy link

分享一下官方提供的系统以及ubuntu、安卓系统:
https://pan.baidu.com/s/1qZ-ONFsT9yiqdlNjLbLsWQ?pwd=63aa 
提取码:63aa

@gfarry
Copy link

gfarry commented May 8, 2023

你好!r99 rk3399 怎么入手?想装armbian

@phcl1998
Copy link

phcl1998 commented May 9, 2023

你好!r99 rk3399 怎么入手?想装armbian

闲鱼入手

@yifengyou
Copy link

大佬,这块板子自带的mipi 5.5存触控屏没有显示输出这个需要怎么调整啊? https://github.com/yifengyou/eaidk-610/blob/master/docs/eaidk-610%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%8B%E7%BB%8D/LCD.md

巧了,我正在适配,希望早日成功~

@Lasius-alienus
Copy link

Lasius-alienus commented Jul 9, 2023

这块屏我也在研究,使用orangepi 4 lts ubuntu jammy 5.18.5系统官方说明文档描述了一种使用overlay点亮mipi屏幕的方法,但由于参数不同无法显示画面,只能点亮背光。eaidk官方提供的fedora 28我只获取了fdt,这块板子的资料里面有相关的内核源码,里面有dts文件,上述的这些文件我都提取出来了,部分反编译了dts,做了一些移植mipi部分dts的尝试,这些文件全部放在 https://github.com/Lasius-alienus/eaidk-610-device-tree ,需要的话自行研究。

@ophub
Copy link
Owner

ophub commented Jul 9, 2023

感谢分享

@Lasius-alienus
Copy link

Lasius-alienus commented Jul 17, 2023

这块屏幕的驱动不是在dts中描述的,研究香橙派的屏幕驱动方法给了我一定的启发。一般的全部在dts中描述屏幕所有信息的方式并不可行,dts中只需要空节点。armbian(5.15.y)官方和orangepi提供的源码都在Kernel/drivers/gpu/drm/panel提供了sitronix-st7703这个对应的驱动,以模块安装到内核里然后在overlay里面仿照orangepi官方给的dtbo写一个适配这个屏幕的dtbo应该就可以了。顺便一提,对于GENERIC(ELF)镜像而言,eaidk官方提供的镜像中dtb都存储在kernel.img里面,这个好像没法拆。

ophub added a commit that referenced this pull request Jul 27, 2023
Add support for eaidk-610
ophub added a commit that referenced this pull request Aug 20, 2023
Add support for eaidk-610
@yifengyou
Copy link

这块屏幕的驱动不是在dts中描述的,研究香橙派的屏幕驱动方法给了我一定的启发。一般的全部在dts中描述屏幕所有信息的方式并不可行,dts中只需要空节点。armbian(5.15.y)官方和orangepi提供的源码都在Kernel/drivers/gpu/drm/panel提供了sitronix-st7703这个对应的驱动,以模块安装到内核里然后在overlay里面仿照orangepi官方给的dtbo写一个适配这个屏幕的dtbo应该就可以了。顺便一提,对于GENERIC(ELF)镜像而言,eaidk官方提供的镜像中dtb都存储在kernel.img里面,这个好像没法拆。

# ll resource.img 
-rw-r--r-- 1 root root 1.1M  8月 26 20:59 resource.img
# ls out-resource.img/
  logo.bmp  logo_kernel.bmp  rk-kernel.dtb

eaidk官方fedora镜像,uboot初始化阶段会去加载resource.img 中的rk-kernel.dtb,然后操作其他。

@Lasius-alienus
Copy link

这块屏幕的驱动不是在dts中描述的,研究香橙派的屏幕驱动方法给了我一定的启发。一般的全部在dts中描述屏幕所有信息的方式并不可行,dts中只需要空节点。armbian(5.15.y)官方和orangepi提供的源码都在Kernel/drivers/gpu/drm/panel提供了sitronix-st7703这个对应的驱动,以模块安装到内核里然后在overlay里面仿照orangepi官方给的dtbo写一个适配这个屏幕的dtbo应该就可以了。顺便一提,对于GENERIC(ELF)镜像而言,eaidk官方提供的镜像中dtb都存储在kernel.img里面,这个好像没法拆。

# ll resource.img 
-rw-r--r-- 1 root root 1.1M  8月 26 20:59 resource.img
# ls out-resource.img/
  logo.bmp  logo_kernel.bmp  rk-kernel.dtb

eaidk官方fedora镜像,uboot初始化阶段会去加载resource.img 中的rk-kernel.dtb,然后操作其他。

您好,我之前尝试提取dtb的操作失败了,请问您有提取的dtb吗。此外,您现在成功驱动了mipi屏幕吗?

我之所以认为不在dtb当中定义是因为:

  1. opi的屏幕驱动方式是在dtb中保留空节点,通过编译的模块驱动屏幕。
  2. 我尝试移植的dts当中mipi的flag部分无法编译成功,无论是armbian(5.15.y)源码还是opi提供的源码都是如此。

ophub added a commit that referenced this pull request Dec 6, 2023
Add support for eaidk-610
ophub added a commit that referenced this pull request Apr 25, 2024
Add support for eaidk-610
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.

9 participants