RTL8852bs 初始化流程

梳理了 RTL8852bs wifi 驱动的加载流程. 方便熟悉代码逻辑和超找需要的功能.
我看了所有的代码,但是还是没有找到是哪里设置的AP模式.

rtw_dev_probe()
|---> sdio_dvobj_init()
	|---> devobj_init()
		|---> atomic_set()
	|---> sdio_init()
		|---> sdio_claim_host()/* 3 1. init SDIO bus */
			|---> mmc_claim_host()
		|---> sdio_enable_func()
			|---> mmc_io_rw_direct()
		|---> sdio_set_block_size()
			|---> mmc_io_rw_direct()
		|---> fail---> sdio_release_host()
	|---> rtw_reset_continual_io_error()
		|---> ATOMIC_SET()	
	|---> fail---> devobj_deinit()
|---> devobj_trx_resource_init()
	|---> rtw_init_lite_xmit_resource()
		|---> _rtw_init_queue()   /* init lite_xmit_buf */ /* Init lite xmit extension buff */ /* init xmit_urb */
		|---> rtw_zvmalloc()
		|---> _rtw_init_listhead()
		|---> rtw_list_insert_tail()
	|---> rtw_init_lite_recv_resource()
		|---> _rtw_init_queue()   /* init int_in_buf */ /* Init int_in_urb */ 
		|---> rtw_zvmalloc()
		|---> _rtw_init_listhead()
		|---> rtw_list_insert_tail()
	|---> rtw_init_recv_priv()
		|---> _rtw_init_sema()
		|---> _rtw_init_queue()
		|---> rtw_os_recv_resource_init()
		|---> rtw_zvmalloc()
		|---> _rtw_init_listhead()
		|---> rtw_list_insert_tail()
		|---> rtw_os_recv_resource_alloc()
		|---> rtw_intf_init_recv_priv()
	|---> rtw_init_cmd_priv()
		|---> init_completion()
		|---> init_completion()
		|---> INIT_LIST_HEAD()
		|---> spin_lock_init()
|---> rtw_hw_init()
	|---> rtw_phl_init()
		|---> _os_mem_alloc()
		|---> _os_mem_set()
		|---> phl_regulation_init()
			|---> _os_spinlock_init()  --- 这些都是空函数,不知道有没有影响
			|---> phl_regu_policy_init()
				|---> _os_spinlock(); --- 这些都是空函数,不知道有没有影响
				|---> _regu_policy_5g_bp_init()
					|---> _reset_regu_policy_5g_bp()
					|---> _update_cntry_prop_5g_bp("CN")
					|---> _update_cntry_prop_5g_bp("IL")
				|---> _os_spinunlock(); --- 这些都是空函数,不知道有没有影响
		|---> phl_com_init()
			|---> _os_mem_alloc()
			|---> phl_sw_cap_init()
			|---> _os_spinlock_init()
			|---> phl_chsw_ofld_info_init()
			|---> phl_fw_init()
			|---> phl_chaninfo_init()
			|---> _phl_com_init_rssi_stat()
			|---> _phl_com_init_ppdu_sts()
			|---> _os_spinlock_init()
			|---> phl_txpwr_regu_info_init() 
		|---> phl_hci_init()
		
<think>好的,用户想了解在Linux环境下如何初始化RTL8852BS芯片。首先,我需要回忆一下关于这个芯片的相关信息。RTL8852BS是Realtek的一款无线网卡芯片,支持Wi-Fi和蓝牙功能。不过,用户提到的RTL8852BS可能和常见的RTL8852BE或其他型号有所不同,需要确认驱动是否适用。 接下来,查找相关的资料。用户提供的引用中有提到RTL8852BE的开源驱动项目,地址是https://gitcode.com/gh_mirrors/rt/rtl8852be。虽然型号不同,但可能初始化步骤类似,可以作为参考。另外,引用[3]提到了RTL8723BS在同时开启蓝牙和WiFi时的问题,可能与初始化过程中的配置有关,需要注意。 然后,思考初始化的一般步骤。通常在Linux中,安装和初始化无线网卡驱动需要以下几个步骤:安装依赖、获取驱动源码、编译驱动、加载内核模块、配置网络和蓝牙。需要确保内核头文件和构建工具已安装,如make、gcc等。编译驱动时可能遇到内核版本兼容性问题,比如引用[1]提到的符号问题,可能需要调整代码或使用合适的内核版本。 另外,RTL8852BS可能同时支持Wi-Fi和蓝牙,所以初始化时需要确保两个模块都正确加载。可能需要分别处理Wi-Fi和蓝牙的驱动,或者有统一的驱动管理。需要查看驱动项目的文档,是否有针对BS型号的具体说明。 用户可能遇到的问题包括驱动编译错误、模块加载失败、设备无法识别等。需要提醒用户检查内核日志(dmesg)来排查问题,如引用[3]中的日志信息,帮助定位初始化失败的原因。 最后,生成相关问题时,要考虑用户可能进一步想了解如何验证初始化是否成功、驱动加载后的配置步骤、常见故障排除方法等。确保回答结构清晰,步骤详细,并引用提供的参考链接中的信息,帮助用户更好地理解和操作。</think>在Linux环境下初始化RTL8852BS芯片需要遵循以下步骤,该芯片是支持Wi-Fi和蓝牙的双模芯片: ### 一、驱动安装准备 1. **内核头文件安装** ```bash sudo apt install linux-headers-$(uname -r) ``` 确保内核版本与驱动兼容[^1] 2. **安装编译工具链** ```bash sudo apt install build-essential git ``` ### 二、驱动源码获取 ```bash git clone https://gitcode.com/gh_mirrors/rtl8852be cd rtl8852be ``` *注:RTL8852BS可尝试使用RTL8852BE驱动代码适配[^2]* ### 三、编译与安装 ```bash make -j$(nproc) sudo make install sudo modprobe 8852be ``` ### 四、蓝牙模块初始化 ```bash sudo systemctl start bluetooth sudo hciconfig hci0 up ``` *若出现地址冲突需重置蓝牙模块* ```bash sudo btmgmt -i hci0 public-addr 00:E0:4C:88:88:88 ``` ### 五、设备验证 ```bash dmesg | grep -i 8852 iwconfig # 查看无线接口 hcitool dev # 验证蓝牙设备 ``` **注意事项:** 1. 内核符号冲突时需修改驱动源码的命名空间[^1] 2. 双模工作需注意电源管理配置[^3] 3. 建议使用5.10+内核版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔尊moon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值