gpt4 book ai didi

driver - RT5370 SH4 交叉编译驱动程序错误

转载 作者:行者123 更新时间:2023-12-02 06:51:43 25 4
gpt4 key购买 nike

我尝试从文件 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2 构建 2.5.0.3 驱动程序RT5370 芯片组。

在Ubuntu 10.04.4 x32下安装STLinux 2.4,在内核linux-sh4-2.5.32.59_stm24_0211下制作。但我在path中写的是/opt/STM/STLinux-2.2/devkit/sources/kernel/linux-sh4-2.5.32.59_stm24_0211而不是STLinux-2.4,因为Makefile有一些缺陷:

install:
ifeq ($(TARGET), LINUX)
ifneq (,$(findstring 2.4,$(LINUX_SRC)))
$(MAKE) -C $(RT28xx_DIR)/os/linux -f Makefile.4 install
else
$(MAKE) -C $(RT28xx_DIR)/os/linux -f Makefile.6 install
endif
endif

路径 2.4 中提到将内核构建为 2.4,在我的例子中这是一个错误。

在Makefile中写入:

PLATFORM = ST
...
LINUX_SRC = /opt/STM/STLinux-2.2/devkit/sources/kernel/linux-sh4-2.5.32.59_stm24_0211
CROSS_COMPILE = /opt/STM/STLinux-2.2/devkit/sh4/bin/sh4-linux-

在./os/linux/config.mk中写道:

HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
CC := sh4-linux-gcc
LD := sh4-linux-ld

在运行 make 命令时构建。但出现错误:

script/Makefile.build:49: *** CFLAGS was changed in "/home/vitaliy/drv_src/os/linux/Makefile". Fix it to use EXTRA_CFLAGS.

在 ./os/linux/config.mk 创建字符串:

ifeq ($(PLATFORM),ST)
CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -I$(RT28xx_DIR)/include -Wall -O2 -Wundef -Wstrict-prototypes -Wno-trigraphs -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-aliasing -fno-common -fomit-frame-pointer -ffreestanding -m4-nofpu -o $(WFLAGS)
export CFLAGS
endif

并将其中的 CFLAGS 更改为 EXTRA_CFLAGS。

再次错误:

sh4-linux-gcc: error: -pg and -fomit-frame-pointer are incompatible.

好的。删除标志 -fomit-frame-pointer。

再次错误:

error: cpu/cache.h: No such file or directory.

在字符串中:

WFLAGS := -DAGGREGATION_SUPPORT -DPIGGYBACK_SUPPORT -DWMM_SUPPORT -DLINUX -Wall -Wstrict-prototypes -Wno-trigraphs

删除标志 -DLINUX。

再次出现未知类型错误(例如:./os/linux/../../common/crypt_md5.c:638:1:错误:未知类型名称“VOID”等,类型为“UCHAR” 、“乌龙”等)。

第二种构建方法

KBUILD_NOPEDATIC=1 不更改驱动程序的源文件。

在这种情况下也会出错:

./os/linux/../../common/crypt_md5.c:28:23: fatal error: rt_config.h: No such file or directory.

我的大楼出了什么问题?或者我可以修复源代码并为 SH4 平台构建驱动程序吗?

谢谢!

最佳答案

我最近给自己买了同样的适配器,我试图为 ARM 进行交叉编译,但遇到了同样的问题。

基本上,您只需从驱动程序包的根目录添加 include 文件夹即可。

我做了这些修改以使其正常工作:

DRIVER_DIR/Makefile中添加:

PLATFORM = MYPLATFORM

所有其他平台均已注释掉。

稍后在同一文件中:

ifeq ($(PLATFORM),MYPLATFORM)
LINUX_SRC = /DIR_TO_MY_KERNEL_SRC/freescale_mainline/linux-mainline
CROSS_COMPILE = /DIR_TO_MY_CROSS_COMPILER/arm-unknown-linux-uclibcgnueabi-
CROSS_COMPILE_INCLUDE = /DRIVER_DIR/include /*Might not be necessary*/
endif

然后在DRIVER_DIR/os/linux/config.mk中添加:

ifeq ($(PLATFORM),MYPLATFORM)
EXTRA_CFLAGS := $(WFLAGS) -I$(RT28xx_DIR)/include
endif

另外,请注意,在您的内核配置中,您需要启用几个标志:

CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_WEXT_SPY=y
CONFIG_WEXT_PRIV=y

您可以在设备驱动程序-->网络设备支持-->无线 LAN-->主机 AP 的 IEEE 802.11 下找到它们

我现在像这样编译它:

DRIVER_DIR$ ARCH=arm make

希望对您有帮助!

关于driver - RT5370 SH4 交叉编译驱动程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13535926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com