표적
내 FriendlyARM mini210에 Netis WF2190 Wi-Fi 동글 Linux 드라이버를 설치하고 싶습니다.
환경
- 친화적인 ARM mini210s S5PV210 ARM Cortex-A8 보드
- ...Linux 3.0.8-FriendlyARM 실행
크로스 컴파일
arm/4.3.2/bin/arm-none-linux-gnueabi-
크로스 컴파일이 필요하다는 걸 알아요Netis WF2190 Linux 드라이버
크로스 컴파일(vagrant box)을 위해 가상 머신을 사용하고 있습니다.
$ uname -a
Linux vagrant 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
드라이버를 다운로드하여 가상 머신에 복사했습니다.
vagrant@vagrant:~/rtl8812AU_linux_v4.3.8_12175.20140902$
드라이버에서 Makefile
나는 이것을 추가했습니다
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_FRIENDLYARM_MINI210S = y <====
그런 다음
ifeq ($(CONFIG_PLATFORM_FRIENDLYARM_MINI210S), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := /home/vagrant/friendlyarm/tools/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-
KVER := 3.0.8
KSRC := /home/vagrant/friendlyarm/linux-3.0.8/kernel
endif
그런 다음 컴파일을 시도했지만 이 오류가 발생했습니다.
vagrant@vagrant:~/rtl8812AU_linux_v4.3.8_12175.20140902$ make
make ARCH=arm CROSS_COMPILE=/home/vagrant/robot-os/friendlyarm/tools/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi- -C /home/vagrant/robot-os/friendlyarm/linux-3.0.8/kernel M=/home/vagrant/rtl8812AU_linux_v4.3.8_12175.20140902 modules
make[1]: Entering directory `/home/vagrant/robot-os/friendlyarm/linux-3.0.8/kernel'
make[1]: *** No rule to make target `modules'. Stop.
make[1]: Leaving directory `/home/vagrant/robot-os/friendlyarm/linux-3.0.8/kernel'
make: *** [modules] Error 2
나는 전문가가 아니며 목표를 달성하는 방법을 배우려고 노력하고 있다는 점은 주목할 가치가 있습니다.
이 단계에서는 메시지가 나에게 말하는 내용과 해결 방법을 이해하지 못합니다.
어떤 도움이라도 대단히 감사하겠습니다.
답변1
커널 소스 코드 경로가 잘못되었습니다. 다음과 같이 수정했습니다.
KSRC := /home/vagrant/friendlyarm/linux-3.0.8/
그것은 컴파일
답변2
드라이버 Makefile에 다음을 추가했습니다.
이것은 이 문제를 해결하는 방법이 아닙니다. 바라보다여기-- 아마도 3단계로 건너뛸 수 있습니다.
그런 다음 컴파일하려고 하는데 이 오류가 발생합니다.
잘라서 붙여넣은 것으로 판단하면 make
이전에 이것을 실행했지만 make modules
아무 일도 일어나지 않았습니다. 그 좋지 않다. make
모듈을 만드는 데 필요할 수도 있고 필요하지 않을 수도 있는 커널을 실제로 빌드해야 합니다.~해야 한다, 그러나 때로는 그렇게 보입니다). 이 작업은 최소한 몇 분 정도 소요되며 많은 출력을 생성해야 합니다. 만약 그런 일이 일어나지 않는다면 뭔가 크게 잘못된 것입니다.
나는 crosstool-ng를 통해 gcc로 커널을 크로스 빌드했으며 이를 설정해야 합니다 TARGET
. 이 작업을 수행하지 않는 것 같습니다(그러나 배포 크로스 컴파일러는 다를 수 있음). 그러나 커널 makefile을 수정하여 이러한 사항을 설정하는 것은 실수일 수 있습니다. 다음 환경에서 실행해 보세요.
export TARGET=arm-none-linux-gnueabi
export ARCH=arm
export CROSS_COMPILE=/foo/bar/etc
텍스트 파일에 넣고 source my_environment.sh
make()를 실행하기 전에 가져옵니다.