ophub / amlogic-s9xxx-armbian

Support for Armbian in Amlogic, Rockchip and Allwinner boxes. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

yicheng42 opened this issue · comments

**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

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

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

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

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

分享一下你使用的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

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

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

好的,谢谢大佬

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

这个版本是否支持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版本,假设可登陆用户是user@1.1.1.1

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 user@1.1.1.1:/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 user@1.1.1.1:/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版本,假设可登陆用户是user@1.1.1.1

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 user@1.1.1.1:/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 user@1.1.1.1:/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版本,假设可登陆用户是user@1.1.1.1

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 user@1.1.1.1:/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 user@1.1.1.1:/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驱动也是直接驱上了

非常感谢家银,但是我遇到了更严重的问题,由于小米盒子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的驱动,但有没有其他小问题就不知道了。

非常感谢家银,但是我遇到了更严重的问题,由于小米盒子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都是用的哪个?

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

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

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

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

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

make install
modprobe 8732ds

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

make install
modprobe 8732ds

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

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

刷了最新的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             --

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

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),请大家帮忙测试一下。

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

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),请大家帮忙测试一下。

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

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