因为是自己debootstarp做的系统,OPI Zero 2W是用的AW859A的WiFi+BLE,这个如果编译的是OPI官方内核,那么只需要安装模块到rootfs就可以.
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=~/rootfs modules_install
如果要考虑自编译hcitools (包含hciattach) ,源码在这里.
https://github.com/orangepi-xunlong/orangepi-build/tree/next/external/cache/sources/hcitools
自己编译这个还需要包含内核头
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_HDR_PATH=~/rootfs/usr headers_install
从OPI的官方OS镜像复制这些二进制文件.
/lib/firmware/bt_configure_pskey.ini
/lib/firmware/bt_configure_rf.ini
/lib/firmware/wcnmodem.bin
/lib/firmware/wifi_2355b001_1ant.ini
因为不同板子,射频参数不同,其他板子也不兼容,而且没有更多文档,所以只能这样抄作业.
运行这几个命令加载模块
modprobe sprdwl_ng
modprobe sprdbt_tty
modprobe uwe5622_bsp_sdio
modprobe hci_uart
用rfkill list检查,如果有blocked的,要手动解锁一下.
rfkill unblock all
我是从OPI复制出来的,所以我可以直接用二进制来启动蓝牙接口.
/usr/bin/hciattach_opi -n -s 1500000 /dev/ttyBT0 sprd
如果用默认115200,会因为通信时间过长直接超时
剩下就是常规WiFi测试(iw命令),蓝牙测试(bluez等)就可以了.