主题:【求助】fedora core 2 下面安装无线USB网卡的问题 -- 铁手
有一个古老的笔记本,笔记本上有USB 口,也有一个 DWL-122 D-LINK WIRELESS USB ADAPTER。WINDOWS2000的操作系统下的时候,工作良好,没有问题。最近想只装一个 fedora core 2,准备废物利用,但是在装那个无线USB网卡的时候出现了问题,死活上不去。对fedora一点都不熟悉,请大家帮忙了。
以下是已经做过的尝试:
根据这个链接的提示
http://www.shaftek.org/blog/archives/000246.html
以 root 身份登录,去下载了 linux-wlan-ng-0.2.3.tar.gz 并且 /root 下解压缩放置在 /root/linux-wlan-ng-0.2.3/下面。
根据指示,到此目录下运行了 make config,对所有的问题一路打回车下去。最后提示 Configuration successful。
然后运行 make all。 在出现的一堆提示信息中有一些warning和error。其中的warning如下:
...
make[3]:Entering directory '/lib/modules/2.6.5-1.358/build'
Makefile:975: warning: overriding commands for target '/root/linux-wlan-ng-0.2.3/src/p80211'
Makefile:960: warning: ignoring old commands for target '/root/linux-wlan-ng-0.2.3/src/p80211
Building modules, stage 2.
head: error reading '/root/linux-wlan-ng-0.2.3/src/p80211/..': Is a directory
MODPOST
接下去
...
make[4]:Entering directory '/lib/modules/2.6.5-1.358/build'
Makefile:975: warning: overriding commands for target '/root/linux-wlan-ng-0.2.3/src/prism2/driver'
Makefile:960: warning: ignoring old commands for target '/root/linux-wlan-ng-0.2.3/src/prism2/driver
Building modules, stage 2.
head: error reading '/root/linux-wlan-ng-0.2.3/src/prism2/driver/../..': Is a directory
MODPOST
以上错误不知道是什么意思。LINUX实在不懂的说。
然后试着运行 make install 出现错误信息如下:
...
mkdir -p /lib/modules/2.6.5-1.358/linux-wlan-ng
cp *.ko /lib/modules/2.6.5-1.358/linux-wlan-ng
cp: cannot stat '*.ko': No such file or directory
make[2]: *** [install] Error 1
make[2]: Leaving directory '/root/linux-wlan-ng-0.2.3/src/p80211'
make[1]: *** [install] Error 2
make[1]: Leaving directory '/root/linux-wlan-ng-0.2.3/src'
make: *** [install] Error 2
暂时就在这里了。请熟悉LINUX的朋友帮忙给看看到底哪里出了些什么问题。
多谢多谢
另:没敢装 fedora core 4,怕过于先进,我的古董笔记本消受不起。也许是杞人忧天,不过,下载、刻盘,太麻烦了。
...
make[3]:Entering directory '/lib/modules/2.6.5-1.358/build'
Makefile:975: warning: overriding commands for target '/root/linux-wlan-ng-0.2.3/src/p80211'
Makefile:960: warning: ignoring old commands for target '/root/linux-wlan-ng-0.2.3/src/p80211
Building modules, stage 2.
head: error reading '/root/linux-wlan-ng-0.2.3/src/p80211/..': Is a directory
MODPOST
以上信息表明make失败 ,'/root/linux-wlan-ng-0.2.3/src/p80211/'下文件未找到。
...
make[4]:Entering directory '/lib/modules/2.6.5-1.358/build'
Makefile:975: warning: overriding commands for target '/root/linux-wlan-ng-0.2.3/src/prism2/driver'
Makefile:960: warning: ignoring old commands for target '/root/linux-wlan-ng-0.2.3/src/prism2/driver
Building modules, stage 2.
head: error reading '/root/linux-wlan-ng-0.2.3/src/prism2/driver/../..': Is a directory
MODPOST
以上信息表明make失败,'/root/linux-wlan-ng-0.2.3/src/prism2/driver/../..': 下文件未找到。
mkdir -p /lib/modules/2.6.5-1.358/linux-wlan-ng
cp *.ko /lib/modules/2.6.5-1.358/linux-wlan-ng
cp: cannot stat '*.ko': No such file or directory
以上错误信息表明,安装的时候*.ko 文件未找到。理由应该是由于以上两个make错误,目标module没有生成。
应该查查config时候的选项的内容是否有关联。同时看看makefile 导致上面两个错误的命令在源文件,路径等方面有无问题。
Linux是比较麻烦。
应该看哪个CONFIG文件呢?是config.mk?还是 Makefile?
在上面提到的 WARNING 信息之前,有:
make -C /lib/modules/2.6.5-1.358/build M='/root/linux-wlan-ng-0.2.3/src/p80211/.. /root/linux-wlan-ng-0.2.3/src/p80211' WLAN_SRC=/root/linux-wlan-ng-0.2.3/src/ modules
这个里面有没有什么问题?需要到哪个目录下确认有没有文件?
按理,linux-wlan 的源文件应该不会出现任何问题啊。
是指你 对所有的问题一路打回车下去的那些选项.
重点看看安装(Install)指示的Readme 文件,和里面的FAQ.
应该主要是路径问题,或者环境配置问题,如应该具备的软件,
Kernel的版本要求。
但linux的安装软件有时候是可能有问题(bug)的,如果实在找不出
原因,可以看看下一个版本的软件包。如0.2.4版本。
makefile有问题。看看能不能找到更加新的版本。手工改makefile很麻烦。。。
实在不行,可以试试用NdisWrapper加载WINDOWS的driver,我有一块buffalo的无线网卡在freebsd下一直这样用的
`/root/linux-wlan-ng-0.2.3/src/p80211/.. /root/linux-wlan-ng-0.2.3/src/p80211`这个路径看起来有问题。
你make config的时候有没有:
Choose "yes" for the _cs AND_usb driver and "no" for others
运行 make config 以后:
congifg.out
===
#
# Automatically generated by 'make config' -- don't edit!
#
PRISM2_PCMCIA=y
PRISM2_PLX=n
PRISM2_PCI=n
PRISM2_USB=y
LINUX_SRC="/lib/modules/2.6.5-1.358/build"
KERN_25=y
CONFIG_NETLINK=y
CONFIG_PACKET=y
CONFIG_HOTPLUG=y
KERNEL_CFLAGS=-D__KERNEL__ -I/lib/modules/2.6.5-1.358/build/include -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -fno-builtin-sprintf -fno-builtin-log2 -fno-builtin-puts -mpreferred-stack-boundary=2 -march=i586 -mregparm=3 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -g -Wdeclaration-after-statement
KERNEL_MODFLAGS=-DMODULE
WLAN_KERN_PCMCIA=y
TARGET_ROOT_ON_HOST=""
PCMCIA_DIR="/etc/pcmcia"
TARGET_PCMCIA_DIR="/etc/pcmcia"
MODDIR="/lib/modules/2.6.5-1.358"
TARGET_MODDIR="/lib/modules/2.6.5-1.358/linux-wlan-ng"
INST_EXEDIR="/sbin"
TARGET_INST_EXEDIR="/sbin"
RC_DIR=/etc/rc.d
SYSV_INIT=y
INSTALL_DEPMOD=y
HOST_COMPILE=""
HOST_CFLAGS=-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
HOST_AS=$(HOST_COMPILE)as
HOST_LD=$(HOST_COMPILE)ld
HOST_CC=$(HOST_COMPILE)gcc
HOST_CPP=$(HOST_CC) -E
HOST_AR=$(HOST_COMPILE)ar
HOST_NM=$(HOST_COMPILE)nm
HOST_STRIP=$(HOST_COMPILE)strip
HOST_OBJCOPY=$(HOST_COMPILE)objcopy
HOST_OBJDUMP=$(HOST_COMPILE)objdump
HOST_RANLIB=$(HOST_COMPILE)ranlib
HOST_MAKE=make
CROSS_COMPILE=""
CROSS_COMPILE_ENABLED=n
AS=$(HOST_COMPILE)as
LD=$(HOST_COMPILE)ld
CC=$(HOST_COMPILE)gcc
CPP=$(HOST_CC) -E
AR=$(HOST_COMPILE)ar
NM=$(HOST_COMPILE)nm
STRIP=$(HOST_COMPILE)strip
OBJCOPY=$(HOST_COMPILE)objcopy
OBJDUMP=$(HOST_COMPILE)objdump
RANLIB=$(HOST_COMPILE)ranlib
MAKE=make
WLAN_DEBUG=n
FIRMWARE_DIR="/etc/wlan/"
WLAN_SRC="/root/linux-wlan-ng-0.2.3/src/"
config.mk
====
PRISM2_PCMCIA=y
# PRISM2_PLX is not defined
# PRISM2_PCI is not defined
PRISM2_USB=y
LINUX_SRC=/lib/modules/2.6.5-1.358/build
KERN_25=y
CONFIG_NETLINK=y
CONFIG_PACKET=y
CONFIG_HOTPLUG=y
KERNEL_CFLAGS=-D__KERNEL__ -I/lib/modules/2.6.5-1.358/build/include -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -fno-builtin-sprintf -fno-builtin-log2 -fno-builtin-puts -mpreferred-stack-boundary=2 -march=i586 -mregparm=3 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -g -Wdeclaration-after-statement
KERNEL_MODFLAGS=-DMODULE
WLAN_KERN_PCMCIA=y
TARGET_ROOT_ON_HOST=
PCMCIA_DIR=/etc/pcmcia
TARGET_PCMCIA_DIR=/etc/pcmcia
MODDIR=/lib/modules/2.6.5-1.358
TARGET_MODDIR=/lib/modules/2.6.5-1.358/linux-wlan-ng
INST_EXEDIR=/sbin
TARGET_INST_EXEDIR=/sbin
RC_DIR=/etc/rc.d
SYSV_INIT=y
INSTALL_DEPMOD=y
HOST_COMPILE=
HOST_CFLAGS=-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
HOST_AS=$(HOST_COMPILE)as
HOST_LD=$(HOST_COMPILE)ld
HOST_CC=$(HOST_COMPILE)gcc
HOST_CPP=$(HOST_CC) -E
HOST_AR=$(HOST_COMPILE)ar
HOST_NM=$(HOST_COMPILE)nm
HOST_STRIP=$(HOST_COMPILE)strip
HOST_OBJCOPY=$(HOST_COMPILE)objcopy
HOST_OBJDUMP=$(HOST_COMPILE)objdump
HOST_RANLIB=$(HOST_COMPILE)ranlib
HOST_MAKE=make
CROSS_COMPILE=
# CROSS_COMPILE_ENABLED is not defined
AS=$(HOST_COMPILE)as
LD=$(HOST_COMPILE)ld
CC=$(HOST_COMPILE)gcc
CPP=$(HOST_CC) -E
AR=$(HOST_COMPILE)ar
NM=$(HOST_COMPILE)nm
STRIP=$(HOST_COMPILE)strip
OBJCOPY=$(HOST_COMPILE)objcopy
OBJDUMP=$(HOST_COMPILE)objdump
RANLIB=$(HOST_COMPILE)ranlib
MAKE=make
# WLAN_DEBUG is not defined
FIRMWARE_DIR=/etc/wlan/
WLAN_SRC=/root/linux-wlan-ng-0.2.3/src/
Makefile
DIRS = src doc man etc
CTAGOPTS = --totals -I '__initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS'
ETAGS=etags
ETAGSOPTS=-a
default: all
help:
@echo "Pick one of the following targets:"
@echo -e "\tmake config\t\t- interactive configure"
@echo -e "\tmake auto_config\t- automated configure"
@echo -e "\tmake default_config\t- automated configure using default config file"
@echo -e "\tmake all\t\t- build modules and programs"
@echo -e "\tmake install\t\t- install modules and programs"
@echo -e "\tmake clean\t\t- remove old binaries and dependency files"
@echo -e "\tmake mrproper\t\t- 'make clean' + remove config file"
@echo -e "\tmake tags\t\t- generate ctag files for source code"
@echo -e "\tmake TAGS\t\t- generate etag files for source code"
@echo " "
help_noconfig:
@echo "You need to configure the source first"
@echo "Pick one of the following targets:"
@echo -e "\tmake config\t\t- interactive configure"
@echo -e "\tmake auto_config\t- automated configure"
@echo -e "\tmake default_config\t- automated configure using default config file"
@echo -e "\tmake help\t\t- show information about other targets"
all: config.mk
set -e; for d in $(DIRS); do $(MAKE) -C $$d ; done
mrproper: clean
rm -f config.out
rm -f tags.linux tags TAGS
clean:
set -e; for d in $(DIRS); do $(MAKE) -C $$d clean ; done
rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags
for i in *_obj; do if [ -d $$i ]; then rm -fr $$i; fi; done
rm -f config.mk config.new
rm -f src/include/wlan/version.h
install:
find . -name .depend -exec rm {} \;
set -e; for d in $(DIRS); do $(MAKE) -C $$d install ; done
auto_config:
@touch config.mk config.new
@rm -f config.mk config.new
@./Configure -d
default_config:
@touch config.mk config.new
@rm -f config.mk config.new
@./Configure -d ./default.config
config:
@touch config.mk
@./Configure
config.mk: config.out
$(MAKE) auto_config
config.out:
@$(MAKE) help_noconfig
@exit 1
tags: tags.linux dummy
if [ -r tags.linux ]; then cp tags.linux tags; fi
find . \
-name '*.[ch]' -o \
-name '*.mk' -o \
-iname 'Makefile' | \
xargs ctags -a $(CTAGOPTS)
tags.linux:
if [ -h linux ]; then \
find linux/include \
-type d \( -name 'asm-*' -o -name config \) \
-prune -o \
-name '*.h' -print | \
xargs ctags -a -f $@ $(CTAGOPTS) && \
find linux/kernel linux/drivers linux/mm linux/fs \
linux/net linux/ipc linux/lib linux/init \
-name '*.[ch]' | \
xargs ctags -a -f $@ $(CTAGOPTS); \
fi
TAGS: dummy
rm -f TAGS
# if [ -h linux ]; then cp linux/TAGS TAGS; fi
{ find . -name '*.[ch]' -print ; \
find . -name '*.[ch]' -print ; \
find . -name '*.mk' -print ; \
find . -iname 'Makefile' -print ; } | $(ETAGS) - $(ETAGSOPTS)
dummy:
中的M=部分有些奇怪,尤其是第一部分/root/linux-wlan-ng-0.2.3/src/p80211/... 一般M后面大多只跟一个子目录,就是module source files所在的目录,多半是p80211。但是这个src/p80211/..,也就是src,不像是source code所在地。这个看起来好像是问题根源,那个"error reading..."错误就与此有关。找找看这句make指令在哪里,为什么M后面会有p80211/..(我猜是p80211下面的makefile)。搞明白后试试把它改了,去掉M后面的第一部分,只保留p80211部分。
另一个错误原因也是一样。去prim2/driver下面找找看。
但是看他的makefile和config.mk,看不到'/..’是在什么时候加上去的。
出错的两个地方,一个是'..',一个是'../..',都比较怪异。
没招。
具体编译的makefile在各个源码子目录下面。