Ручная сборка драйвера WiFi под чипсет RT5370

Взгляд изнутри

Модератор: Модераторы разделов

Аватара пользователя
Vitaliy69
Сообщения: 100
ОС: openSUSE 11.3 x86-64

Ручная сборка драйвера WiFi под чипсет RT5370

Сообщение Vitaliy69 »

Попытался собрать свежий драйвер для чипсета RT5370 версии 2.5.0.3 из файла 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2 под платформу SH4.

На Ubuntu 10.04.4 x32 поставил STLinux 2.4, собирал под ядро linux-sh4-2.5.32.59_stm24_0211. В путях к ядру
указывал /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 заставляет собираться как под Kernel 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: error: unknown type name 'VOID' и много пододобных ошибок по типам 'UCHAR', 'ULONG' и так далее).

Если не делать изменений в файлах исходников, а попытаться собрать

Код: Выделить всё

KBUILD_NOPEDANTIC=1 make


то получаю ошибку:

Код: Выделить всё

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


make ARCH=sh CROSS_COMPILE=sh4-linux- тоже набирал, но дело не в этом - конечная платформа и кросс-компилятор прописаны в Makefile, кроме того в .bashrc прописал export PATH=$PATH:/opt/STM/STLinux-2.2/devkit/sh4/bin.

Вопрос. Что делаю не так и как всё же стоит попытаться собрать драйвер RT5370 под SH4-платформу? Может, кто собирал сам и сталкивался с таким.
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX

Re: Ручная сборка драйвера WiFi под чипсет RT5370

Сообщение Olej »

Vitaliy69 писал(а):
23.11.2012 13:03
Попытался собрать свежий драйвер для чипсета RT5370 версии 2.5.0.3 из файла 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2 под платформу SH4.

См. Wi-Fi свистки - там есть всё о сборке драйверов Ralink
Спасибо сказали: