ZyDAS usb 무선랜 드라이버 설치를 도와주세요.
안녕하세요.
리눅스 처음 만져보고 있습니다.
USB 무선랜카드를 설치하다가 막혔는데 아는 것이 없으니 어떻게 할 수가 없네요. 도와주시면 감사하겠습니다.
일단, EdiMax라는 대만 회사의 b,g 지원 usb 무선랜카드입니다.
이 랜카드가 ZyDAS라는 역시 대만 회사에서 만든 ZD1211이라는 칩셋을 쓰나봅니다.
ZyDAS사의 홈페이지에 가서 리눅스 드라이버를 받았습니다.
유저 가이드를 보니 리눅스 “kernel source tree”의 경로와 커널 버전에 따라서 Makefile을 수정하면 된다고 합니다.
아래는 유저 가이드의 해당 부분 원문입니다.
=====================================================
2.2 Build and install the package:
The package contains drivers for ZD1211 and ZD1211B. If you doesn’t have specified request, both of them will be installed.
Under the extracted directory, there is a Makefile in it. Because our driver can support for kernel 2.4 and kernel 2.6, there are two sets of rule in the Makefile. One has to modify the Makefile according to the path of “kernel source tree” and the version of the kernel in your system. In the Makefile, you may see the following statements,
# if the kernel is 2.6.x, turn on this
#KERN_26=y
#KERNEL_SOURCE=/usr/src/linux-2.6.7
# if the kernel is 2.4.x, turn on this
KERN_24=y
KERNEL_SOURCE=/usr/src/linux-2.4.20-8
If you want to build the kernel under the kernel of 2.4.x, one has to let the variable KERN_24=y and comment the KERN_26=y like that as the example above and modify the variable KERNEL_SOURCE to the path which you install the kernel source. After doing these things, one just need to type the “make”, and the driver module will be generated and installed.
======================================================
그래서 Makefile을 열어보니 다음과 같았습니다.
======================================================
#
# .zd1211 - USB2.0 802.11b/g driver for Zydas ZD1211 chipsets
#
#
#
CC=gcc
CPP=g++
LD=ld
rM=rm -f -r
# if the kernel is 2.6.x, trun on this
KERN_26=y
KERNEL_SOURCE=/usr/src/linux-2.6.9
# if the kernel is 2.4.x, trun on this
#KERN_24=y
#KERNEL_SOURCE=/usr/src/linux-2.4.26
SRC_DIR=src
DEFINES=-D__KERNEL__ -DMODULE=1
KERNRELEASE := $(shell uname -r;)
MODPATH := /lib/modules/$(KERNRELEASE)
ifeq ($(KERN_26), y)
ifeq ($(ZD1211REV_B),1)
MODULE = zd1211b.ko
endif
ifeq ($(ZD1211REV_B),0)
MODULE = zd1211.ko
endif
INCLUDES=-I$(KERNEL_SOURCE)/include -I$(SRC_DIR)/include/ -I$(SRC_DIR)
EXTRA_CFLAGS += -I$(PWD)/src/include
ifndef CONFIG_FRAME_POINTER
EXTRA_CFLAGS += -fomit-frame-pointer
endif
ifdef CONFIG_SMP
EXTRA_CFLAGS += -D__SMP__ -DSMP
endif
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
WLAN_SRC=$(PWD)
EXTRA_CFLAGS += -O2 -Wall -Wstrict-prototypes -pipe
#EXTRA_CFLAGS += -Wa,-a,-ad -g
EXTRA_CFLAGS += -DZDCONF_WE_STAT_SUPPORT=1
EXTRA_CFLAGS += -DHOST_IF_USB
EXTRA_CFLAGS += -DAMAC
EXTRA_CFLAGS += -DGCCK
EXTRA_CFLAGS += -DOFDM
EXTRA_CFLAGS += -DHOSTAPD_SUPPORT
EXTRA_CFLAGS += -DUSE_EP4_SET_REG
EXTRA_CFLAGS += -DDOWNLOADFIRMWARE
EXTRA_CFLAGS += -DfTX_GAIN_OFDM=0
EXTRA_CFLAGS += -DfNEW_CODE_MAP=1
EXTRA_CFLAGS += -DfWRITE_WORD_REG=1
EXTRA_CFLAGS += -DfREAD_MUL_REG=1
EXTRA_CFLAGS += -DENHANCE_RX=1
EXTRA_CFLAGS += -DZDCONF_MENUDBG
EXTRA_CFLAGS += -DZDCONF_APDBG
ifeq ($(ZD1211REV_B),1)
EXTRA_CFLAGS += -DZD1211B
endif
ifeq ($(ZD1211REV_B),0)
EXTRA_CFLAGS += -DZD1211
endif
#EXTRA_CFLAGS += $(INCLUDES)
ifeq ($(ZD1211REV_B),1)
obj-m := zd1211b.o
endif
ifeq ($(ZD1211REV_B),0)
obj-m := zd1211.o
endif
zd1211-objs := $(SRC_DIR)/zd1205.o \
$(SRC_DIR)/zdasocsvc.o \
$(SRC_DIR)/zdauthreq.o \
$(SRC_DIR)/zdauthrsp.o \
$(SRC_DIR)/zdmmrx.o \
$(SRC_DIR)/zdshared.o \
$(SRC_DIR)/zdhci.o \
$(SRC_DIR)/zdglobal.o \
$(SRC_DIR)/zdencrypt.o \
$(SRC_DIR)/zdpmfilter.o \
$(SRC_DIR)/zdpsmon.o \
$(SRC_DIR)/zdsynch.o \
$(SRC_DIR)/zdbuf.o \
$(SRC_DIR)/zd1205_proc.o \
$(SRC_DIR)/zdhw.o \
$(SRC_DIR)/zddebug.o \
$(SRC_DIR)/zdtkipseed.o \
$(SRC_DIR)/zdmic.o \
$(SRC_DIR)/zddebug2.o \
$(SRC_DIR)/zdusb.o
ifeq ($(ZD1211REV_B),1)
zd1211-objs += $(SRC_DIR)/zd1211.o
zd1211b-objs = $(zd1211-objs)
endif
ifeq ($(ZD1211REV_B),0)
zd1211-objs += $(SRC_DIR)/zd1211.o
endif
all:
ifneq ($(KERNELRELEASE),)
else
ifndef ZD1211REV_B
make both
else
@echo -e $(KDIR)
@echo -e $(PWD)
@echo -e $(EXTRA_CFLAGS)
@echo -e $(zd1211-objs)
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
endif
endif
...
...
...
아래 생략
=======================================================
저는 SUSE 10.0을 깔았는데, 이 것이 커널 2.6인 것으로 알고 있습니다.
그래서 그냥 Make 했더니 오류가 나고 되지를 않습니다.
리눅스 “kernel source tree”의 경로라는 것을 수정하지 않아서 그런가 싶기도 합니다.
Makefile의 내용 중에 " KERNEL_SOURCE=/usr/src/linux-2.6.9 "에 해당하는 디렉토리가 제 컴퓨터에 없습니다.
비슷한 폴더가 있는가 찾아봐도 찾을 수가 없고요.
엊그제 NS-2는 그냥 한 번에 깔리던데, 이건 안 되는군요. ㅡ_-
제가 어떻게 해야 하나요.
도와주시면 정말 감사하겠습니다.
저는 http://zd1211.ath.cx/
저는 http://zd1211.ath.cx/ 이 곳에서 소스를 받아 우분투에서 make, sudo make install해서 쓰고 있습니다. 가지고 있는 제품의 벤더, 제품 ID가 zdusb.c에 없으면 추가를 하여 make를 하시면 됩니다. (제가 그렇게 하고 있습니다.)
----
I paint objects as I think them, not as I see them.
Ubuntu Dapper user / Ubuntu KoreanTeam / Lanuchpad karma 3940
----
I paint objects as I think them, not as I see them.
atie's minipage
댓글 달기