RK3568移植移远的wifi驱动

第一步 找驱动厂家要到源码。

第二步 设置交叉编译环境。

第三步 解决编译过程中源码的报错。

第一步 略过。

第二步 设置编译环境,在sdk中,我们一般使用 build.sh kernel来编译内核。build.sh这个脚本会一键配置编译环境。现在要单独编译驱动,就得从这个脚本中抽取编译环境的脚本。简单的说就是找souce的部分代码。

经过研究发现,脚本主要集中在 ~/Linux/rk3568_linux_5.10/device/rockchip/common/scripts这个目录下。

设置环境变量的脚本主要是 general.sh,打开这个脚本看到。

export LC_ALL=C # 设置本地化环境为C

export SCRIPTS_DIR="$(dirname "$(realpath "$BASH_SOURCE")")" # build.sh脚本路径
export COMMON_DIR="$(realpath "$SCRIPTS_DIR/..")" # common目录路径
export SDK_DIR="$(realpath "$COMMON_DIR/../../..")" # SDK源码根目录路径
export DEVICE_DIR="$SDK_DIR/device/rockchip" # 脚本和板级别配置文件路径
export CHIPS_DIR="$DEVICE_DIR/.chips"  # .chips路径,里面其实也只有一个rk3566_rk3568
export CHIP_DIR="$DEVICE_DIR/.chip" # .chip路径也就是rk3566_rk3568

export RK_DATA_DIR="$COMMON_DIR/data" # 存放了一些调试工具和开发板可执行脚本
export RK_IMAGE_DIR="$COMMON_DIR/images" # 存放了ome userdata PCBA等镜像或者分区文件
export RK_CONFIG_IN="$COMMON_DIR/configs/Config.in" # 存放了一些配置文件,推测根目录的menuconfig就是来自这里

export RK_BUILD_HOOK_DIR="$COMMON_DIR/build-hooks" # 存放编译钩子脚本的目录
export BUILD_HELPER="$RK_BUILD_HOOK_DIR/build-helper" # 编译时钩子的帮助函数
export RK_POST_HOOK_DIR="$COMMON_DIR/post-hooks" # 存放编译完成后的钩子脚本目录
export POST_HELPER="$RK_POST_HOOK_DIR/post-helper" # 编译完成后的钩子帮助函数

export PARTITION_HELPER="$SCRIPTS_DIR/partition-helper" # 文件分区函数

export RK_OUTDIR="$SDK_DIR/output" # 文件输出保存目录
export RK_LOG_BASE_DIR="$RK_OUTDIR/log" #log日志保存总目录
export RK_SESSION="${RK_SESSION:-$(date +%F_%H-%M-%S)}" #日志时间定义
export RK_LOG_DIR="$RK_LOG_BASE_DIR/$RK_SESSION" # 根据时间保存的日志目录
export RK_FIRMWARE_DIR="$RK_OUTDIR/firmware" # 固件存放目录
export RK_INITIAL_ENV="$RK_OUTDIR/initial.env" # 保存的最初环境
export RK_CUSTOM_ENV="$RK_OUTDIR/custom.env"
export RK_FINAL_ENV="$RK_OUTDIR/final.env"      #最终的环境变量
export RK_CONFIG="$RK_OUTDIR/.config" # 保存的Menuconfig配置
export RK_DEFCONFIG_LINK="$RK_OUTDIR/defconfig"  # 默认配置

export PYTHON3=/usr/bin/python3 # 导出环境变量 PYTHON3,指定为 /usr/bin/python3
export CPUS=$(getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1) # 获取最大CPU核心数

需要推导出这一系列的变量,而第一个变量是build.sh脚本的路径。

build.sh 的路径为 /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/scripts/build.sh

推导环境变量的绝对路径如下:

SCRIPTS_DIR: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/scripts
(build.sh 所在目录)

COMMON_DIR: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common
(SCRIPTS_DIR 的上一级目录)

SDK_DIR: /home/topeet/Linux/rk3568_linux_5.10
(COMMON_DIR 的上三级目录)

DEVICE_DIR: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip
(板级配置文件路径)

CHIPS_DIR: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/.chips

CHIP_DIR: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/.chip

RK_DATA_DIR: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/data

RK_IMAGE_DIR: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/images

RK_CONFIG_IN: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/configs/Config.in

RK_BUILD_HOOK_DIR: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/build-hooks

BUILD_HELPER: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/build-hooks/build-helper

RK_POST_HOOK_DIR: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/post-hooks

POST_HELPER: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/post-hooks/post-helper

PARTITION_HELPER: /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/scripts/partition-helper

RK_OUTDIR: /home/topeet/Linux/rk3568_linux_5.10/output

RK_LOG_BASE_DIR: /home/topeet/Linux/rk3568_linux_5.10/output/log

RK_SESSION: 动态生成的时间戳,例如 2024-12-22_14-30-45

RK_LOG_DIR: /home/topeet/Linux/rk3568_linux_5.10/output/log/<RK_SESSION>
(其中 <RK_SESSION> 是上面的动态时间戳)

RK_FIRMWARE_DIR: /home/topeet/Linux/rk3568_linux_5.10/output/firmware

RK_INITIAL_ENV: /home/topeet/Linux/rk3568_linux_5.10/output/initial.env

RK_CUSTOM_ENV: /home/topeet/Linux/rk3568_linux_5.10/output/custom.env

RK_FINAL_ENV: /home/topeet/Linux/rk3568_linux_5.10/output/final.env

RK_CONFIG: /home/topeet/Linux/rk3568_linux_5.10/output/.config

RK_DEFCONFIG_LINK: /home/topeet/Linux/rk3568_linux_5.10/output/defconfig

PYTHON3: /usr/bin/python3

CPUS: 动态计算的 CPU 核心数,执行时根据系统配置确定

结合脚本分析,解决第二步编译环境问题:

source /home/topeet/Linux/rk3568_linux_5.10/device/rockchip/common/scripts/general.sh
source  /home/topeet/Linux/rk3568_linux_5.10/output/.config

以及

export CROSS_COMPILE=/home/topeet/Linux/rk3568_linux_5.10/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-

然后make,顺利进行编译。

编译过程中报错。

这个问题主要是头文件包含问题。

修改 8189cd_security.c,在开头加上

#include <linux/sched.h>
#include <linux/pgtable.h>

再次编译顺利生成内核模块

移远4G驱动配置需根据RK3588平台的具体情况进行操作。首先,我们需要准备好相应的设备驱动程序,该驱动程序可能包括:PCIE驱动、网络接口驱动、USB驱动等。 1. PCIE驱动配置:首先,我们需要检测RK3588平台上是否有PCIE接口。如果有,可以根据PCIE驱动程序的要求选择相应版本的驱动,并将其加载到RK3588平台上。驱动加载后,我们需要对驱动进行配置,包括设定驱动的参数、查看驱动的状态等。 2. 网络接口驱动配置:移远4G驱动中最重要的部分就是网络接口驱动。首先,我们需要确定RK3588平台上的网络接口类型。根据网络接口的类型,我们可以选择相应的驱动,并将其加载到RK3588平台上。驱动加载后,我们需要对其进行配置,包括设定网络接口的参数、配置网络接口的IP地址、添加网络路由规则等。 3. USB驱动配置:如果RK3588平台上有USB接口,我们可以选择USB驱动的版本,并将其加载到RK3588平台上。驱动加载后,我们需要对其进行配置,包括设定USB接口的参数、配置USB设备的权限等。 在进行驱动配置的过程中,我们需要注意一些细节,如驱动的版本兼容性、驱动的依赖关系等。此外,我们还需要确保所加载的驱动与RK3588平台的硬件设备匹配,以确保驱动的稳定性和正常工作。 总之,移远4G驱动配置是一个复杂且需要耐心和经验的过程。根据RK3588平台的具体情况选择相应的驱动程序,并进行正确的配置,可以使4G网络在该平台正常工作和稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值