Skip to content

小米盒子4(不是4c)(s905l)(mdz-21-aa)成功启动armbian #2101

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

Closed
yicheng42 opened this issue Feb 22, 2024 · 28 comments
Closed

小米盒子4(不是4c)(s905l)(mdz-21-aa)成功启动armbian #2101

yicheng42 opened this issue Feb 22, 2024 · 28 comments
Labels
documentation Improvements or additions to documentation new box Research Fills in the Blanks support This need is supported

Comments

@yicheng42
Copy link

**Device Information | 设备信息MDZ-21-AA

  • SOC: [e.g. s905l]
  • Model [e.g. Mibox-4]

**Armbian Version | 系统版本24.10

  • Kernel Version: [e.g. 6.1.73]
  • Release: [e.g. jammy]

Describe the bug | 问题描述
短接方法刷机方法与11月一个用户的方法相同,进入USB启动方法是root后安装 卡载系统.apk
可惜进入的时候没有网卡驱动用Ophup添加该型号后适配Wi-Fi 网卡
详细描述问题,并在必要时附上屏幕截图。
Screenshot_20240219_114823_com shenyaocn android usbcamera
Screenshot_20240219_114615_com shenyaocn android usbcamera

@ophub
Copy link
Owner

ophub commented Feb 22, 2024

分享一下你使用的dtb和u-boot组合是哪个?

@yicheng42
Copy link
Author

抱歉,是我想的不是那么周到
DTB:meson-gxl-s905l-venz-v10

@yicheng42
Copy link
Author

cat /boot/uEnv.txt

LINUX=/zImage
INITRD=/uInitrd
FDT=/dtb/amlogic/meson-gxl-s905l-venz-v10.dtb
APPEND=root=UUID=d81a9344-84f7-426f-b5a8-1b6d12184904 rootflags=compress=zstd:6 rootfstype=btrfs console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 max_loop=128 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1

@yicheng42
Copy link
Author

测试可以写入盒子,但后来我又刷回了(因为储存不够)

@yicheng42
Copy link
Author

分享一下你使用的dtb和u-boot组合是哪个?
DTB:meson-gxl-s905l-venz-v10
uboot: cat /boot/uEnv.txt

LINUX=/zImage
INITRD=/uInitrd
FDT=/dtb/amlogic/meson-gxl-s905l-venz-v10.dtb
APPEND=root=UUID=d81a9344-84f7-426f-b5a8-1b6d12184904 rootflags=compress=zstd:6 rootfstype=btrfs console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 max_loop=128 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1

@ophub ophub added documentation Improvements or additions to documentation support This need is supported new box Research Fills in the Blanks labels Feb 25, 2024
@ophub
Copy link
Owner

ophub commented Feb 26, 2024

谢谢分享,我添加到设备列表model里了。

@yicheng42
Copy link
Author

谢谢分享,我添加到设备列表model里了。

好的,谢谢大佬

@ophub ophub closed this as completed Mar 8, 2024
@Zhuwenxue2002
Copy link

这个版本是否支持wifi网卡的使用?同样的设备MDZ-21-AA

@bumprat
Copy link

bumprat commented Mar 19, 2024

这个版本是否支持wifi网卡的使用?同样的设备MDZ-21-AA

我分享一下我的方法,不知道是不是最简单的方法,希望能给大家一些思路,其他设备其他版本内核类似。

如何编译wifi驱动(以6.1.82-ophub版本内核为例)

由于ophub的armbian-s9xxx-armbian中,提供的linux-headers为x86-64编译版本,因此无法直接在armbian环境中编译安装驱动,需要使用一台x86-64主机。(个人理解,也许有其他方法)

准备硬件环境

一台编译主机(ubuntu),必须是x86_64,因为目前能获取的linux-headers是刷机自带的x86_64版本,假设可登陆用户是[email protected]

armbian主机(小米盒子4,驱动源码),可以插上手机,手机usb模式改为共享网络,armbian就可以上网了。手机和编译主机需连接在同一个局域网。

准备编译环境

在armbian系统上运行如下命令,将armbian系统自带linux headers传送到编译主机。

cd /usr/src/
tar czf armbian-linux-headers.tar.gz ./linux-headers-6.1.82-ophub
scp ./armbian-linux-headers.tar.gz [email protected]:/home/user

在编译主机上运行如下命令,准备好编译环境

cd /home/user
git clone https://github.com/lwfinger/rtl8723ds.git
tar xzf armbian-linux-headers.tar.gz 
sudo apt update
sudo apt upgrade
sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu

开始编译

在编译主机上运行下面的程序,其中有替换Makefile中的KSRC变量,以保证编译器使用正确的linux-headers(我们从armbian中传递出来的)。编译前还需要配置环境变量,以使用正确的架构、交叉编译器、linux头位置。

cd /home/user/rtl8723ds
sed -i 's@KSRC := /lib/modules/$(KVER)/build@KSRC ?= /lib/modules/$(KVER)/build@g' Makefile
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export KSRC=/home/user/linux-headers-6.1.82-ophub
make
cd ..
tar czf rtl8723ds.tar.gz ./rtl8723ds

编译过程大概需要30s,文件夹中会出现8723ds.ko,这就是目标驱动文件

安装驱动

回到armbian系统上拉取驱动文件,然后安装

cd /root
scp [email protected]:/home/user/rtl8723ds.tar.gz ./
tar xzf rtl8723ds.tar.gz
cd rtl8723ds
make install
modprobe 8732ds

此时查看系统网络接口,可以找到wifi

nmcli d show wlan0
armbian-config

我直接把我编译好的挂上,把这个上传到armbian,就可以直接跳到安装驱动那一步了。
rtl8723ds-6.1.82-ophub.tar.gz

@Zhuwenxue2002
Copy link

这个版本是否支持wifi网卡的使用?同样的设备MDZ-21-AA

我分享一下我的方法,不知道是不是最简单的方法,希望能给大家一些思路,其他设备其他版本内核类似。

如何编译wifi驱动(以6.1.82-ophub版本内核为例)

由于ophub的armbian-s9xxx-armbian中,提供的linux-headers为x86-64编译版本,因此无法直接在armbian环境中编译安装驱动,需要使用一台x86-64主机。(个人理解,也许有其他方法)

准备硬件环境

一台编译主机(ubuntu),必须是x86_64,因为目前能获取的linux-headers是刷机自带的x86_64版本,假设可登陆用户是[email protected]

armbian主机(小米盒子4,驱动源码),可以插上手机,手机usb模式改为共享网络,armbian就可以上网了。手机和编译主机需连接在同一个局域网。

准备编译环境

在armbian系统上运行如下命令,将armbian系统自带linux headers传送到编译主机。

cd /usr/src/
tar czf armbian-linux-headers.tar.gz ./linux-headers-6.1.82-ophub
scp ./armbian-linux-headers.tar.gz [email protected]:/home/user

在编译主机上运行如下命令,准备好编译环境

cd /home/user
git clone https://github.com/lwfinger/rtl8723ds.git
tar xzf armbian-linux-headers.tar.gz 
sudo apt update
sudo apt upgrade
sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu

开始编译

在编译主机上运行下面的程序,其中有替换Makefile中的KSRC变量,以保证编译器使用正确的linux-headers(我们从armbian中传递出来的)。编译前还需要配置环境变量,以使用正确的架构、交叉编译器、linux头位置。

cd /home/user/rtl8723ds
sed -i 's@KSRC := /lib/modules/$(KVER)/build@KSRC ?= /lib/modules/$(KVER)/build@g' Makefile
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export KSRC=/home/user/linux-headers-6.1.82-ophub
make
cd ..
tar czf rtl8723ds.tar.gz ./rtl8723ds

编译过程大概需要30s,文件夹中会出现8723ds.ko,这就是目标驱动文件

安装驱动

回到armbian系统上拉取驱动文件,然后安装

cd /root
scp [email protected]:/home/user/rtl8723ds.tar.gz ./
tar xzf rtl8723ds.tar.gz
cd rtl8723ds
make install
modprobe 8732ds

此时查看系统网络接口,可以找到wifi

nmcli d show wlan0
armbian-config

我直接把我编译好的挂上,把这个上传到armbian,就可以直接跳到安装驱动那一步了。 rtl8723ds-6.1.82-ophub.tar.gz

这个版本是否支持wifi网卡的使用?同样的设备MDZ-21-AA

我分享一下我的方法,不知道是不是最简单的方法,希望能给大家一些思路,其他设备其他版本内核类似。

如何编译wifi驱动(以6.1.82-ophub版本内核为例)

由于ophub的armbian-s9xxx-armbian中,提供的linux-headers为x86-64编译版本,因此无法直接在armbian环境中编译安装驱动,需要使用一台x86-64主机。(个人理解,也许有其他方法)

准备硬件环境

一台编译主机(ubuntu),必须是x86_64,因为目前能获取的linux-headers是刷机自带的x86_64版本,假设可登陆用户是[email protected]

armbian主机(小米盒子4,驱动源码),可以插上手机,手机usb模式改为共享网络,armbian就可以上网了。手机和编译主机需连接在同一个局域网。

准备编译环境

在armbian系统上运行如下命令,将armbian系统自带linux headers传送到编译主机。

cd /usr/src/
tar czf armbian-linux-headers.tar.gz ./linux-headers-6.1.82-ophub
scp ./armbian-linux-headers.tar.gz [email protected]:/home/user

在编译主机上运行如下命令,准备好编译环境

cd /home/user
git clone https://github.com/lwfinger/rtl8723ds.git
tar xzf armbian-linux-headers.tar.gz 
sudo apt update
sudo apt upgrade
sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu

开始编译

在编译主机上运行下面的程序,其中有替换Makefile中的KSRC变量,以保证编译器使用正确的linux-headers(我们从armbian中传递出来的)。编译前还需要配置环境变量,以使用正确的架构、交叉编译器、linux头位置。

cd /home/user/rtl8723ds
sed -i 's@KSRC := /lib/modules/$(KVER)/build@KSRC ?= /lib/modules/$(KVER)/build@g' Makefile
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export KSRC=/home/user/linux-headers-6.1.82-ophub
make
cd ..
tar czf rtl8723ds.tar.gz ./rtl8723ds

编译过程大概需要30s,文件夹中会出现8723ds.ko,这就是目标驱动文件

安装驱动

回到armbian系统上拉取驱动文件,然后安装

cd /root
scp [email protected]:/home/user/rtl8723ds.tar.gz ./
tar xzf rtl8723ds.tar.gz
cd rtl8723ds
make install
modprobe 8732ds

此时查看系统网络接口,可以找到wifi

nmcli d show wlan0
armbian-config

我直接把我编译好的挂上,把这个上传到armbian,就可以直接跳到安装驱动那一步了。 rtl8723ds-6.1.82-ophub.tar.gz

非常感谢家银,但是我遇到了更严重的问题,由于小米盒子4只有一个usb口 需要用usbhub进行分线分别连接u盘和键盘。但是我的盒子一插上usbhub 就会在跑码阶段报错, 报的是ext4有关的错误,我上网搜了一下是频繁上电造成的读取错误。但是不连接usbhub压根没法对他进行操作,因为没有默认网卡连接无法ssh。没办法我只能上网找到150大佬编写的armbian 20.10针对n1盒子的版本。奇怪的是,那个版本不仅启动和刷入emmuc没问题,wifi驱动也是直接驱上了

@bumprat
Copy link

bumprat commented Mar 21, 2024

非常感谢家银,但是我遇到了更严重的问题,由于小米盒子4只有一个usb口 需要用usbhub进行分线分别连接u盘和键盘。但是我的盒子一插上usbhub 就会在跑码阶段报错, 报的是ext4有关的错误,我上网搜了一下是频繁上电造成的读取错误。但是不连接usbhub压根没法对他进行操作,因为没有默认网卡连接无法ssh。没办法我只能上网找到150大佬编写的armbian 20.10针对n1盒子的版本。奇怪的是,那个版本不仅启动和刷入emmuc没问题,wifi驱动也是直接驱上了

我的小米盒子也有问题,但是我的情况相反,是插着usb hub能够正常使用,usb直接连U盘无法正常启动,启动到一半显示存储有问题,所以我只能将系统刷入emmc。我换了其他的镜像也是一样。
n1固件能刷进去,应该是CPU S905相互兼容。但n1的无线芯片是cyw43455,小米盒子4能直接使用应该是n1系统镜像中包含了rtl8732ds的驱动,但有没有其他小问题就不知道了。

@Zhuwenxue2002
Copy link

非常感谢家银,但是我遇到了更严重的问题,由于小米盒子4只有一个usb口 需要用usbhub进行分线分别连接u盘和键盘。但是我的盒子一插上usbhub 就会在跑码阶段报错, 报的是ext4有关的错误,我上网搜了一下是频繁上电造成的读取错误。但是不连接usbhub压根没法对他进行操作,因为没有默认网卡连接无法ssh。没办法我只能上网找到150大佬编写的armbian 20.10针对n1盒子的版本。奇怪的是,那个版本不仅启动和刷入emmuc没问题,wifi驱动也是直接驱上了

我的小米盒子也有问题,但是我的情况相反,是插着usb hub能够正常使用,usb直接连U盘无法正常启动,启动到一半显示存储有问题,所以我只能将系统刷入emmc。我换了其他的镜像也是一样。 n1固件能刷进去,应该是CPU S905相互兼容。但n1的无线芯片是cyw43455,小米盒子4能直接使用应该是n1系统镜像中包含了rtl8732ds的驱动,但有没有其他小问题就不知道了。
还有 一个小问题,大佬,就是每次重启之后机器的mac都会改变。像是重新给wlan0这块网卡重载了一样。结果就导致nmcli和nmtui工具不能启动自动链接WiFi,因为每次都要创建新的连接(由于mac地址的改变)。目前的解决方法就是把链接命令写入启动脚本中,每次创建新的连接,但又无法手动配置静态ip和地址。想问问大佬手里的usbhub是什么牌子和型号,还有dbt和uboot都是用的哪个?

@cofly-hu
Copy link

蓝牙正常吗?
我之前用这个教程刷的,蓝牙驱动没有https://blog.csdn.net/WangAddy/article/details/128787835

@bumprat
Copy link

bumprat commented Apr 3, 2024

蓝牙正常吗? 我之前用这个教程刷的,蓝牙驱动没有https://blog.csdn.net/WangAddy/article/details/128787835

安装8723ds驱动,wifi正常,bluetooth不正常

@hunksone
Copy link

屏幕截图 2024-04-27 232736
我这里的无线网卡还是不行,安装https://github.com/lwfinger/rtl8723ds 报错

@bumprat
Copy link

bumprat commented Apr 28, 2024

@hunksone
确定你是按照我说的做的么?我的方法是利用一台x86_64机器进行交叉编译,你的输出信息中显示你并没有使用交叉编译CROSS_COMPILE=不能直接在armbian上编译
简单一点的方法是刷6.1.82版本的系统,然后直接用我附件中编译好的安装。

make install
modprobe 8732ds

@hunksone
Copy link

@hunksone 确定你是按照我说的做的么?我的方法是利用一台x86_64机器进行交叉编译,你的输出信息中显示你并没有使用交叉编译CROSS_COMPILE=不能直接在armbian上编译 简单一点的方法是刷6.1.82版本的系统,然后直接用我附件中编译好的安装。

make install
modprobe 8732ds

我直接使用编译好的文件,出现这样的提示
Uploading 屏幕截图 2024-04-28 105827.png…

@ophub
Copy link
Owner

ophub commented Apr 28, 2024

最近修复了一下header打包,现在的最新内核应该是arm64格式了。

@wangyijieonline
Copy link

wangyijieonline commented Jul 21, 2024

刷了最新的Armbian_24.8.0_amlogic_s905l_bookworm_6.6.41_server_2024.07.20.img.gz一直遇到wlan0 unavailble的问题,我的解决方法如下(没有用到重新编译driver,driver已经正常加载了):

$ uname -ra
Linux armbian 6.6.41-ophub #1 SMP Fri Jul 19 21:16:27 EDT 2024 aarch64 GNU/Linux
$ nmcli dev
DEVICE       TYPE      STATE                   CONNECTION
eth0         ethernet  unavailable             --
wlan0        wifi      unavailable             --
$ sudo ifconfig wlan0 hw ether <YOUR MAC ADDR>
$ sudo systemctl restart NetworkManager
$ nmcli dev
DEVICE       TYPE      STATE                   CONNECTION
wlan0        wifi      connected               Xiaomi_1111 1
eth0         ethernet  unavailable             --

@nhchmg
Copy link

nhchmg commented Jul 23, 2024

mibox4,如果有root权限,不需要 卡载系统.apk 也可以从tf卡启动,直接在adb shell中用root权限运行 reboot update,就会从tf卡启动了

@w2xg2022
Copy link

Armbian_24.8.0_amlogic_mibox4_bookworm_6.1.82_server_2024.07.27.img.gz
链接:https://pan.baidu.com/s/16nYCW4PpbbQXH9uSkONm9Q
提取码:ewan

基于Armbian_24.8.0_amlogic_s905l_bookworm_6.1.93_server_2024.06.15.img.gz,用armbian-update -k 6.1.82降了内核版本,集成上面的无线驱动,并安装好docker+portainer-ce。只要rufus刷写入U盘,开机接上键盘输入nmtui就可以设置无线连接。

用的是meson-gxl-s905l3b-m302a.dtb,没有任何修改,确定可以armbian-install安装到EMMC(选116),请大家帮忙测试一下。

顺便求一下蓝牙驱动,谢谢。

@hunksone
Copy link

Armbian_24.8.0_amlogic_mibox4_bookworm_6.1.82_server_2024.07.27.img.gz 链接:https://pan.baidu.com/s/16nYCW4PpbbQXH9uSkONm9Q 提取码:ewan

基于Armbian_24.8.0_amlogic_s905l_bookworm_6.1.93_server_2024.06.15.img.gz,用armbian-update -k 6.1.82降了内核版本,集成上面的无线驱动,并安装好docker+portainer-ce。只要rufus刷写入U盘,开机接上键盘输入nmtui就可以设置无线连接。

用的是meson-gxl-s905l3b-m302a.dtb,没有任何修改,确定可以armbian-install安装到EMMC(选116),请大家帮忙测试一下。

顺便求一下蓝牙驱动,谢谢。

太棒了,成功安装,感谢!

@OdenZhang
Copy link

求大佬解惑:看了一些教程,为什么有些教程,要用安卓底包,还要短接?为什么不直接下载.img镜像,烧到U盘,再用U盘安装,不可以吗?

@OdenZhang
Copy link

求大佬解惑:看了一些教程,为什么有些教程,要用安卓底包,还要短接?为什么不直接下载.img镜像,烧到U盘,再用U盘安装,不可以吗?

补充说明:我以前玩树莓派就这样玩的,下载镜像,烧到U盘,再用U盘启动安装就行,非常简单,为什么刷个盒子要这么复杂?

@Lianjq
Copy link

Lianjq commented Nov 23, 2024

Armbian_24.8.0_amlogic_mibox4_bookworm_6.1.82_server_2024.07.27.img.gz
链接:https://pan.baidu.com/s/16nYCW4PpbbQXH9uSkONm9Q
提取码:ewan

基于Armbian_24.8.0_amlogic_s905l_bookworm_6.1.93_server_2024.06.15.img.gz,用armbian-update -k 6.1.82降了内核版本,集成上面的无线驱动,并安装好docker+portainer-ce。只要rufus刷写入U盘,开机接上键盘输入nmtui就可以设置无线连接。

用的是meson-gxl-s905l3b-m302a.dtb,没有任何修改,确定可以armbian-install安装到EMMC(选116),请大家帮忙测试一下。

顺便求一下蓝牙驱动,谢谢。

大佬,为啥这个版本我始终登录不上,root 1234始终不对

@rikka0w0
Copy link

rikka0w0 commented Jan 1, 2025

我这边成功启动了。步骤超级简单,大概概括为:

  1. 用任何方法取得root权限,包括刷自带root的安卓包等
  2. 在盒子的安卓上安装任意能访问终端的软件,我使用的是termius里的Local Terminal功能
  3. 用rufus(Windows)或者dd(Linux)等把 https://github.com/ophub/amlogic-s9xxx-armbian/releases/download/Armbian_noble_save_2024.11/Armbian_24.11.0_amlogic_s905l-mg101_noble_6.1.118_server_2024.11.20.img.gz 直接写入一个不小于4GB的U盘
  4. 把U盘插到盒子上,在termius里的Local Terminal里(或者任意安卓终端)里输入su变为root用户,随后运行reboot update
  5. 重启后即可进入armbian系统

我这边直接把u盘插盒子上是能进armbian的,但是这盒子只有一个U口,变相是阻止我操作和联网了...关于USB HUB的问题,建议多试试不同的hub。我这边有3个hub,只有一个是可以用的。其他的hub会在启动的时候找不到文件系统,不知道是为啥。

系统默认密码是root 1234

Wifi 的解决方法

配置交叉编译比较麻烦,我这边是直接跳过交叉编译,选择本机编译,直接在盒子上。进入盒子的armbian系统之后,运行如下命令即可成功安装Wifi所需的驱动内核模块:

cd /tmp
git clone https://github.com/lwfinger/rtl8723ds.git
cd rtl8723ds
make
make install
modprobe 8732ds

编译大概需要5分钟。如果想跳过编译过程,可以使用跟我上面完全一样的armbian版本,然后下载这个然后解压
8723ds.ko.zip
参考:

cd /tmp
wget https://github.com/user-attachments/files/18285128/8723ds.ko.zip
unzip 8723ds.ko.zip
install -p -m 644 8723ds.ko /usr/lib/modules/6.1.118-ophub/kernel/drivers/net/wireless/
depmod
modprobe 8732ds

蓝牙

目前我这边无解

apt install bluez
hcitools dev

列表返回空。

GPU驱动

使用armbian-software安装Gnome环境之后拖动窗口很流畅,但是VLC以及youtube 1080p视频一开cpu立刻满并且卡,不像是在解码的样子。不知道有没有办法启用GPU驱动。

声音

内置3.5mm耳机孔与HDMI均无声音输出
与HDMI相关的内核日志错误:

[   51.273567] hdmi-audio-codec hdmi-audio-codec.2.auto: Not able to map channels to speakers (-22)
[   51.276737] hdmi-audio-codec hdmi-audio-codec.2.auto: ASoC: error at snd_soc_dai_hw_params on i2s-hifi: -22
[   51.286423] gx-sound-card sound: ASoC: PRE_PMU: be.dai-link-2-playback event failed: -22

-22应该是参数无效的意思?

#define	EINVAL		22	/* Invalid argument */

这里采用的dtb的对应源码在这里,大家可以看看:
https://github.com/unifreq/linux-6.1.y/blob/1584fcf34c6952334a47df4bf429d0ce2136b176/arch/arm64/boot/dts/amlogic/meson-gxl-s905l-venz-v10.dts#L4

准备尝试从安卓镜像或者emmc中提取下dtb,反编译下对比下差别。毕竟这个meson-gxl-s905l-venz-v10.dtb只是凑巧能用,并不是完美的。

这里记录下获取小米盒子4C root固件中dtb的方式( dtb分离方法参考 ):

# 进入工作目录,我这里选择内存盘,为了快也为了不留痕迹
cd /tmp
# 安装依赖
sudo apt install libblkid-dev
# 获取解包工具
git clone https://github.com/dhohasaizo/amlogictoolkit-termux_ubuntu.git
cd amlogictoolkit-termux_ubuntu
# 编译解包工具
bin/build
# 对固件进行解包
bin/unpack /mnt/r/MiBOX4_YQZM2_root_aml_upgrade_package20200808.img
# 获取并编译amlogic专用dtb分离工具
cd /tmp
git clone https://github.com/Wilhansen/aml-dtbtools.git
cd aml-dtbtools
make
# 分离dtb
./dtbSplit /tmp/amlogictoolkit-termux_ubuntu/output/image/meson1.dtb mibox4c-
# 反编译dtb到dts
dtc -I dtb -O dts -o /mnt/r/mibox4c-gxl-tf-1g.dts mibox4c-gxl-tf-1g.dtb
dtc -I dtb -O dts -o /mnt/r/mibox4c-gxl-tf-2g.dts mibox4c-gxl-tf-2g.dtb

反编译出来的DTS我放在这里,节约各位大神的时间,看看有没有任何头猪:mibox4c-android-dts.zip

mibox4c-gxl-tf-2g.dts中提到:

	aml_m8_snd {
		compatible = "aml, aml_snd_m8";
		status = "okay";
		aml-sound-card,format = "i2s";
		aml_sound_card,name = "AML-M8AUDIO";
		aml,audio-routing = "Ext Spk", "LOUTL", "Ext Spk", "LOUTR";
		mute_gpio-gpios = <0x1c 0x15 0x00>;

#742和#1235提醒了我应该检查一下使能GPIO。上面mute_gpio-gpios应该就是,0x1c是主GPIO块的句柄,0x15是21号GPIO。我们使用的dts里有:

	dio2133: analog-amplifier {
		compatible = "simple-audio-amplifier";
		sound-name-prefix = "AU2";
		VCC-supply = <&hdmi_5v>;
		enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
	};

其中#define GPIOH_5 21也说的通...又试了试#1063中的方法,然后又没头猪了...

稍微修改了下dts,修正了设备名称并去掉了那个不存在的网口,声卡仍未修复。一下是使用方法:
meson-gxl-s905l-mibox-4.dts

git clone https://github.com/unifreq/linux-6.1.y.git
cd linux-6.1.y
wget -O arch/arm64/boot/dts/amlogic/meson-gxl-s905l-mibox-4.dts https://github.com/user-attachments/files/18293176/meson-gxl-s905l-mibox-4.txt
make ARCH=arm64 amlogic/meson-gxl-s905l-mibox-4.dtb
scp arch/arm64/boot/dts/amlogic/meson-gxl-s905l-mibox-4.dtb [email protected]:/boot/dtb/amlogic/

然后在/boot/uEnv.txt中修改dtb文件名即可。

@mdogwoop
Copy link

刷了最新的Armbian_24.8.0_amlogic_s905l_bookworm_6.6.41_server_2024.07.20.img.gz一直遇到wlan0 unavailble的问题,我的解决方法如下(没有用到重新编译driver,driver已经正常加载了):

$ uname -ra
Linux armbian 6.6.41-ophub #1 SMP Fri Jul 19 21:16:27 EDT 2024 aarch64 GNU/Linux
$ nmcli dev
DEVICE TYPE STATE CONNECTION
eth0 ethernet unavailable --
wlan0 wifi unavailable --
$ sudo ifconfig wlan0 hw ether
$ sudo systemctl restart NetworkManager
$ nmcli dev
DEVICE TYPE STATE CONNECTION
wlan0 wifi connected Xiaomi_1111 1
eth0 ethernet unavailable --

想请教一下,通过这种方式能连上网,但是每次重启都需要执行一下,请问有没有什么方法可以给它固化呢?

@cybercougar
Copy link

cybercougar commented Mar 3, 2025

https://worktile.com/kb/ask/458344.html

刷了最新的Armbian_24.8.0_amlogic_s905l_bookworm_6.6.41_server_2024.07.20.img.gz一直遇到wlan0 unavailble的问题,我的解决方法如下(没有用到重新编译driver,driver已经正常加载了):
$ uname -ra
Linux armbian 6.6.41-ophub #1 SMP Fri Jul 19 21:16:27 EDT 2024 aarch64 GNU/Linux
$ nmcli dev
DEVICE TYPE STATE CONNECTION
eth0 ethernet unavailable --
wlan0 wifi unavailable --
$ sudo ifconfig wlan0 hw ether <your_mac_addr>
$ sudo systemctl restart NetworkManager
$ nmcli dev
DEVICE TYPE STATE CONNECTION
wlan0 wifi connected Xiaomi_1111 1
eth0 ethernet unavailable --

想请教一下,通过这种方式能连上网,但是每次重启都需要执行一下,请问有没有什么方法可以给它固化呢?

https://worktile.com/kb/ask/458344.html 介绍了用systemd实现自动运行ifconfig命令的方法。
也有用rc.local的,ubuntu貌似默认不启用rc.local方式的开机自动运行。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation new box Research Fills in the Blanks support This need is supported
Projects
None yet
Development

No branches or pull requests