ファイル2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2から RT5370 チップセットへの 2.5.0.3 ドライバーをビルドしようとしました。
STLinux 2.4 を Ubuntu 10.04.4 x32 にインストールし、カーネル linux-sh4-2.5.32.59_stm24_0211 の下に作成します。ただし、Makefile にいくつかの欠陥があるため、パスに STLinux-2.4 の代わりに /opt/STM/STLinux-2.2/devkit/sources/kernel/linux-sh4-2.5.32.59_stm24_0211 を記述しました。
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.
Ok。フラグ -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'、'ULONG) 」など)。
の助けを借りて構築する 2 番目の方法
KBUILD_NOPEDANTIC=1 は、ドライバーのソース ファイルを変更せずに作成します。
この場合もエラー:
./os/linux/../../common/crypt_md5.c:28:23: fatal error: rt_config.h: No such file or directory.
私の建物で何が問題になっていますか?または、ソース コードを修正して、SH4 プラットフォーム用のドライバーをビルドできますか。
ありがとうございました!