Linux系统下安装三汇板卡驱动
步骤和注意事项
准备工作;
安装步骤;
注意事项。
由于linux系统内核版本及gcc编译版本的不同,导致三汇板卡驱动必须在相应系统上编译后,客户才能在特定的系统上使用。这一点很重要,忽略这点,会导致驱动装起来,板卡找不到等各种各样难以解释的故障现象。
概括起来,在Linux系统下安装三汇板卡驱动,经过以下环节:获取Linux内核版本和gcc版本、获取相应驱动压缩文件、解压驱动压缩文件、安装驱动、加载驱动、运行test进行测试,驱动的卸载。
准备工作:
如果计算机系统中需要安装linux系统,可采用linux内核在2.6.11含以上版本的系统,如centos、ubonto、fc6、fc8等。
如何获得linux系统内核及gcc版本:
命令:cat /proc/version,如下图:
命令:uname –r,获取内核版本
如何获得相应的驱动:
可登录三汇网站BBS留言板,请先注册,可在以下链接地址中查找相应内核对应的驱动:http://www.sanhuid.com/word/index.asp?repage=1&action=View_topics&id=581&forumid=2,如果未查到可留言或直接致电0571-88921532联系我们的技术支持人员。
下面以内核2.6.23.1-42.fc8下安装相对应的5010驱动为例,详细介绍驱动安装步骤:
安装步骤:
1. 以root权限登录系统
如果不是以root身份登录,安装过程中会出现很多权限的问
。如何解决?
2. 将获取的驱动压缩文件复制到存放的目录
驱动压缩文件的命名包括以下部分:CtiLinux + 内核版本 + 打包
。
复制压缩文件到存放目录,比如:下载时存放在/root下面,现存放到/home/msc下面:
进入目录:cd /home/msc
复制文件到当前目录:cp /root/CtiLinux5.0.10-2.6.23.1-42.fc8.tar.bz2 ./
或者,如果在图形界面下,可以用鼠标直接右键复制粘贴到/root/home/msc目录下。
3. 解压驱动压缩文件
tar –xjvf CtiLinux5.0.10-2.6.23.1-42.fc8-i686.tar.bz2,该命令执行后会生成目录CtiLinux5.0.10-2.6.23.1-42.fc8-i686。
(技巧:名字太长可以用Tab键补全,例如,Cti+Tab就可以补全上面的驱动包名字。)
注1):如果得到的驱动压缩文件扩展名是.tar.gz ,则解压命令为:tar -zxvf 文件名.tar.gz;扩展名是.tar.z的,解压命令为:tar -Zxvf 文件名.tar.z。
注2):如果驱动压缩文件扩展名是.zip,则解压命令为:unzip 文件名.zip。
4. 安装:
进入驱动安装目录:cd CtiLinux5.0.10-2.6.23.1-42.fc8-i686。
执行安装命令:./install.linux。
安装完成后,会在/usr/local/lib/下生成shcti目录,用于存放驱动文件及相关工具和文档等。
这就是三汇板卡驱动安装的默认路径。用以下命令可以查看该驱动安装目录下的
:
#cd /usr/local/lib/
#ls
5. 加载驱动:
进入对应目录:cd /usr/local/lib/shcti/ver5.0.10/lkm/k2.6.23.1-42.fc8,红色字体会因为内核版本和驱动版本不同而有所改变。
A) 手动加载
#cd /usr/local/lib/shcti/ver5.0.10/lkm/k2.6.23.1-42.fc8/
#ls
#insmod shdpci.ko
(说明:shdpci.ko 驱动用于pci接口的板卡,shdcpci.ko驱动用于cpci接口的板卡。)
注意:手工加载驱动模块,计算机重启后会失效,所以,每次重启计算机都必须重新手工加载一遍驱动。
关于手动加载驱动的一个常见问题:有时候,你用#insmod shdpci.ko会出现错误,这有可能是由于驱动已经加载了的缘故。你可以先用#lsmod |grep shd命令,查看是否存在shdpci或者shdcpci一项,如果存在,说明驱动已经加载上去了,就不用再加载了。
B) 开机启动自动加载驱动
进入驱动安装目录,新建一个脚本文件名为load.sh。
#cd /usr/local/lib/shcti/
#vim load.sh
在load.sh中添加内容如下:
#!/bin/sh
insmod /usr/local/lib/shcti/ver5.0.10/lkm/k2.6.23.1-42.fc8/shdpci.ko
insmod /usr/local/lib/shcti/ver5.0.10/lkm/k2.6.23.1-42.fc8/shdcpci.ko
说明:上面第一句加载的是PCI接口的板卡驱动,第二句加载的CPCI接口的板卡驱动。
如果是PCI接口的板卡,只要加载第一句就行了;如果是CPCI接口的板卡,只要加载第二句就行了;如果你不能确定,就两个都加载上去,这样,不管什么接口的卡都能运行了。
修改开机启动脚本文件/etc/rc.d/rc.local
#vim /etc/rc.d/rc.local
在文件结尾添加内容如下:
sh /usr/local/lib/shcti/load.sh
这样,以后开机就会自动加载驱动模块了,不需要每次开机都手工加载驱动模块。
加载:insmod shdpci.ko(如果是cPCI卡则为insmod shdcpci.ko)。
注1):系统重新启动后要重新加载驱动。驱动是否已经加载或是否加载成功可根据下面的第7步骤进行查看。
注2):如果执行insmod命令后有提示“-1 Invalid module format”,则说明加载肯定是失败的,且所加载的驱动与内核版本不符合,这时要核对所安装的驱动是否是对应该内核版本的。
注3):如果显示的是其他错误或提示检测不到板卡,可考虑使用命令lspci来查看PCI插槽信息,如果正常的话,显示中应该有“Computer telephony device“的项,且有多少板卡就应该有多少项;如果没有或数量不对,则要关机检查板卡是否插牢或插槽是否损坏。
6. 查看信息:
#lsmod |grep shd
如果有一行显示shdpci或者shdcpci,那么代
驱动加载成功,如果没有任何信息显示,那么驱动加载失败。
加载驱动成功后可以用dmesg命令查看板卡的信息,相关信息为:Detected SHT-16B-CT/PCI with serial number 29988 on IRQ185;
查看驱动加载是否成功:lsmod,如果成功,在列表中应该有shdpci这一项。
如果觉得shdpci这一项难找,则使用命令:lsmod | sort,该命令会根据名称进行排序。
查看板卡信息:dmesg,成功加载驱动后可看到系统中板卡的BoardId和其他信息。
9、 运行Test前的准备
运行Test前需要准备ShConfig.ini和ShIndex.ini两个文件,由于在linux下配置这两个文件相对比较复杂,所以一般我们选择先在Windows下配置好这两个文件,然后再将这两文件拷贝到Linux的Test目录下。
假设,我们已经将Windows下的ShConfig.ini和ShIndex.ini这两个文件拷贝到了/root/Download文件夹下。(你可以用U盘等
,将Windows下的文件拷到Linux下。)
#cd /root/Download
#cp ./ShConfig.ini /usr/local/lib/shcti/ver5.0.10/Test/gtk2.4_test/src/
#cp ./ShIndex.ini /usr/local/lib/shcti/ver5.0.10/Test/gtk2.4_test/src/
说明:这里Fedora Core 8,支持gtk2.4_test文件夹下的Test,根据gtk版本的不同,用的Test目录也不同。例如,如果是redhat9操作系统,我们用的是gtk1.2_test下的Test,相应的命令应该改为:
#cp ./ShConfig.ini /usr/local/lib/shcti/ver5.0.10/Test/gtk1.2_test/src/
#cp ./ShIndex.ini /usr/local/lib/shcti/ver5.0.10/Test/gtk1.2_test/src/
10、 进入Test目录编译运行Test程序
#cd /usr/local/lib/shcti/ver5.0.10/Test/gtk2.4_test/src/
#make
#./Test
如果需要启动7号信令服务器,则:
进入对应目录:cd /usr/local/lib/shcti/ver5.0.10/ss7。
复制7号信令配置文件Ss7Server.ini到当前目录,配置方法与前述同。
启动信令服务器:./ss7d。
11、 卸载驱动
上面所述为驱动安装步骤。如果已经安装了驱动,但想换驱动版本,比如以前安装的是5010驱动,现在想换到5030,建议先卸载5010,然后重新安装5030。安装的步骤已讲过,现在说明一下怎么卸载驱动:
a. 关闭应用程序,如果启动了7号信令服务器,则还要关闭该服务器。方法:
命令:ps –ef,用于查看进程,找到应用程序和./ss7d对应的进程id号。
命令:kill XXXX,用于结束id号为XXXX的进程。
b. 卸载驱动:
命令:rmmod shdpci,若加载的是shdcpci.ko,则卸载命令应该为:rmmod shdcpci
命令:lsmod查看加载的驱动信息,若已成功卸载,则显示当中无shdpci(或shdcpci)项。
注:如果还未启动应用程序,也未加载驱动模块或启动信令服务器,则可省上面步骤。具体情况可用ps命令和lsmod命令分别查看。
c. 删除shcti目录:
进入shcti所在目录:cd /usr/local/lib。
删除shcti:rm –rf shcti。
注意事项: