RK3588-debian+RTL8852be

原理图和dts

 蓝牙

可以将SDK下\external\rkwifibt\drivers\bluetooth_uart_driver下所有 .c 和 .h 文件复制到目录\kernel\drivers\bluetooth 下,也可以将模组提供的驱动放到\kernel\drivers\bluetooth

hci_h4.c  hci_ldisc.c hci_rtk_h5.c hci_uart.h hci_uart.mod.c  rtk_coex.c  rtk_coex.h

配置Makefile

路径\kernel\drivers\bluetooth\Makefile
 

+ obj-$(CONFIG_BT_RTKUART)    += hci_uart.o                                                                 
+ hci_uart-y := hci_ldisc.o hci_h4.o hci_rtk_h5.o rtk_coex.o

+ #hci_uart-y                := hci_ldisc.o

配置Kconfig

路径\kernel\drivers\bluetooth\Kconfig


config BT_RTKUART
	tristate "RTKHCI HCI UART driver"
	help
	  Bluetooth RTKHCI UART driver.

配置deconfig

路径\kernel\arch\arm64\configs\rockchip_linux_defconfig

# CONFIG_BT_HCIBTUSB is not set
# CONFIG_BT_HCIBTSDIO is not set
CONFIG_BT_RTKUART=m
# CONFIG_BT_HCIUART is not set
# CONFIG_BT_HCIBCM203X is not set
# CONFIG_BT_HCIBPA10X is not set
# CONFIG_BT_HCIBFUSB is not set
# CONFIG_BT_HCIVHCI is not set
# CONFIG_BT_MRVL is not set
# CONFIG_BT_MTKSDIO is not set

编译后会在 drivers/bluetooth/下生成hci_uart.ko

复制KO文件到文件系统

修改SDK根目录下的编译脚本build.sh将ko文件拷贝到文件系统下

不同的SDK复制KO文件的操作不同,有的build.sh不涉及文件复制的操作,还有如下方法

路径debian\mk-rootfs-bullseye.sh

sudo find ../kernel/drivers/net/wireless/rockchip_wlan/*  -name "*.ko" | \
    xargs -n1 -i sudo cp {} $TARGET_ROOTFS_DIR/system/lib/modules/

+ sudo find ../kernel/drivers/bluetooth/*  -name "*.ko" | \
+   xargs -n1 -i sudo cp {} $TARGET_ROOTFS_DIR/system/lib/modules/

(注:这个版本的SDK, 为了避免蓝牙固件被覆盖,需要屏蔽以下脚本内容)
路径debian\mk-rootfs-bullseye.sh

#cp -rf /usr/lib/firmware/rockchip/ /

# reduce 500M size for rootfs
#rm -rf /usr/lib/firmware
#mkdir -p /usr/lib/firmware/
#mv /rockchip /usr/lib/firmware/

添加蓝牙固件

复制模组提供的蓝牙固件到debian\overlay-firmware\usr\lib\firmware\rtlbt

测试初始化脚本

将KO文件和蓝牙固件都加到文件系统后,命令行终端先手动测试蓝牙是否能正常启动

killall rtk_hciattach

echo 0 > /sys/class/rfkill/rfkill0/state
echo 0 > /proc/bluetooth/sleep/btwrite
sleep 0.5
echo 1 > /sys/class/rfkill/rfkill0/state
echo 1 > /proc/bluetooth/sleep/btwrite
sleep 0.5

insmod /system/lib/modules/hci_uart.ko

rtk_hciattach -n -s 115200 /dev/ttyS9 rtk_h5 &

部分SDK执行测试指令会报rtk_hciattach 命令找不到,这个需要自行添加rtk_hciattach工具也可以问RK要

蓝牙开机自启动

测试正常后可以用修改脚本自启动

路径

debian\overlay\etc\init.d\rkbt.sh

添加如下内容:

echo 0 > /sys/class/rfkill/rfkill0/state
echo 0 > /proc/bluetooth/sleep/btwrite
sleep 0.5
echo 1 > /sys/class/rfkill/rfkill0/state
echo 1 > /proc/bluetooth/sleep/btwrite
sleep 0.5

insmod /system/lib/modules/hci_uart.ko
rtk_hciattach -n -s 115200 /dev/ttyS9 rtk_h5 &
sleep 2
hciconfig hci0 piscan 

特别需要注意的点是蓝牙固件的位置一定要放对,具体的位置要看使用的rtk_hciattach工具里面是如何定义的,想要修改的话也是改这里重新编译出rtk_hciattach工具

路径external\rkwifibt\tools\rtk_hciattach\

上述配置均正常的话,蓝牙还是无法正常启动,多半是电的问题,查看下有没有引脚复用,或者IO口配置错误

WIFI

将模组供应商提供的驱动放置到kernel\drivers\net\wireless\rockchip_wlan\目录下

配置Makefile

路径\kernel\drivers\net\wireless\rockchip_wlan\Makefile

obj-$(CONFIG_RTL8852BE) += rtl8852be/

配置Kconfig

路径\kernel\drivers\net\wireless\rockchip_wlan\Kconfig

source "drivers/net/wireless/rockchip_wlan/rtl8852be/Kconfig"

配置deconfig

路径\kernel\arch\arm64\configs\rockchip_linux_defconfig

CONFIG_RTL8852BE=m

wifi开机自启动

路径\debian\overlay\etc\init.d\rkwifibt.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值