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

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

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

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

yicheng42 opened this issue Feb 22, 2024 · 18 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版本,假设可登陆用户是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

@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版本,假设可登陆用户是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驱动也是直接驱上了

@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都是用的哪个?

@hu516
Copy link

hu516 commented Mar 23, 2024

蓝牙正常吗?
我之前用这个教程刷的,蓝牙驱动没有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格式了。

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

6 participants