|
最近帮一个朋友装机时遇到以下拨号问题:
内置猫,PCI卡,ESS ES56T-PI
在安装MagicLinux后没有认到此设备,从网上找了相关的LINUX驱动,在SHELL提示下进行安装,感觉是与系统内核不匹配造成无法正常驱动
在安装完成后,在/dev下多了一个essmodem文件,并且将modem做为essmodem的链接,在图型界面下找到MODEM拨号设置,选择MODEM设备位置就是/dev/modem,我认为这就可以了,但系统总是提示找不到相应的设备
不知道是我那一步做的不对,是不是驱动有问题,希望能够得到指点,谢了先
如果我将他的MODEM安装好了,基本上就已经将他的生活中的操作系统已经转型了,希望能够对我这种扩大LIUNX应用群体的行为多给些支持
附:驱动相关信息(Essmodem.zip)350,535 字节
其中运行./Essinst
#!/bin/sh
#This function is modified from the Script implemented by Linmodem.org
fixScript()
{
MI=/tmp/modinfo
DI=/tmp/depinfo
#new kernel version modinfo section
echo -ne "kernel_version="`uname -r`"\0" > $MI
#build the objcopy command
CMD="objcopy"
#for i in `depmod -e $1 | grep -vE "^$1:"` ; do
depmod -e $1 2>$DI
AWKSTR=\$2
for i in `awk "{print $AWKSTR}" $DI | grep _R` ; do
echo doing $i
i1=`echo $i | awk '{
gsub(/_R[0-9a-fA-F]+/,"");
printf("%s", $1);
}'`
echo "i1=" $i1
echo " trunc=\"$i1\""
searchstr=$i1"_R"
echo "searchstr=" $searchstr
new=`cat /proc/ksyms | grep $searchstr | awk "{print $AWKSTR}"`
echo " new=$new"
CMD="$CMD --redefine-sym=$i=$new"
done
#replace the modinfo section with the new one
CMD="$CMD --remove-section=.modinfo --add-section=.modinfo=$MI"
CMD="$CMD $*"
#run the command
echo "CMD:" $CMD
$CMD
#remove the section file
rm -f $MI
rm -f $DI
}
cat <<SHOW
ESS MODEM INSTALLATION PROGRAM
written by Joe <[email protected]>
NOTE:
This program need the root privilege.
Check to be sure that you have it.
SHOW
echo "Now will install driver for ES56-PI, ES56V-PI, ES56T-PI, or ES56V-I ."
echo "Continue?(y/n)"
read choice1
case $choice1 in
y|Y)
echo "Is your modem based on PCI or ISA?(p/i)"
read interface
if [ $interface = "i" -o $interface = "I" ] ; then
ESSCOM="es56VI.o"
elif [ $interface = "p" -o $interface = "P" ] ; then
ESSCOM="es56TPI.o"
else
echo "Unrecognized interface!"
exit 1;
fi
echo "Test for system enviroment..."
echo "This driver only supports kernel version 2.2.12-20(or higher)"
echo "And your kernel version is: "`uname -r`
echo "Continue?(y/n)"
read choice2
if [ $choice2 = "n" -o $choice2 = "N" ]; then
echo "Exiting script..."
exit 1;
elif [ $choice2 != "y" -a $choice2 != "Y" ] ; then
echo "Unrecognizeable input!"
exit 1;
else
echo "Checking module dependence..."
fi
rmmod esscom >NULL
insmod $ESSCOM
if ! test $? -eq 0 ; then
echo "Adding patch..."
fixScript $ESSCOM patched_esscom.o
echo "Patch added."
cp -f patched_esscom.o /lib/modules/`uname -r`/misc/esscom.o
insmod esscom
rm -f patched_esscom.o
else
echo "Test passed..."
if test $ESSCOM = "es56TPI.o" ; then
rmmod es56TPI >NULL
else
rmmod es56VI >NULL
fi
cp -f $ESSCOM /lib/modules/`uname -r`/misc/esscom.o
insmod esscom
fi
cat <<JOE >loadmod
rmmod esscom >NULL
insmod esscom
JOE
cat <<JOE >freemod
rmmod esscom >NULL
JOE
cat <<JOE >Essuninst
rmmod esscom
rm -f /dev/essmodem
y
rm -f /dev/modem
y
rm -f /lib/modules/`uname -r`/misc/esscom.o
y
JOE
cat <<JOE >readme.txt
Installation over.
Check the command 'lsmod' to see whether esscom has been successfully loaded.
If so,Congratulatoins!
And you can now use minicom and ppp to configure your network!
Later:
Run './loadmod' to load esscom as a module.
And run './freemod' to unload the module esscom.
You can also run './Essuninst' to uninstall the driver.
Please mail to <[email protected]> if you encount any problem.
Enjoy it!
Joe Hawk
JOE
chmod 755 loadmod
chmod 755 freemod
chmod 755 Essuninst
rm /dev/essmodem >NULL
mknod /dev/essmodem c 127 1
rm /dev/modem >NULL
ln -s /dev/essmodem /dev/modem
lsmod
echo
echo "Installation over."
echo "Please read the readme.txt in detail."
exit 1
;;
n|N)
echo "Exiting script..."
exit 1
;;
*)
echo "Unrecognizeable input!"
;;
esac |
|