|
发表于 2003-7-3 21:37:16
|
显示全部楼层
很旧没用,举个以前系统的例子
一点建议:
目前我使用过两种内置的ISDN卡,一种是ASUSCOM生产的HFC-S PCI芯片的;一种是上海
贝尔出的,使用的芯片是Winbond W6692。大家一定想哪个好用呢?呵呵,贝尔的好用。
所以建议大家使用了,不过内核需要2.2.14或者以上的。
1. 使用环境、硬件、软件:
1.1 linux 系统:我使用的是 RedHat 6.2,如果你用的不是,情况可能有差别。
1.2 ISDN 卡:我现在用的是贝尔的内置卡。
1.3 linux 支持的 ISDN 芯片还有很多,详见附表1,你要看清楚哦。更详细的你可以看
linux 源代码的文档中 ISDN 文档中的 README.HiSax 和其它文档。现在的 linux 内
核对 PCI 支持的很好,而且 PCI 的硬件也好配置,实际上就不需要什么特殊的配置。
你如果买的话,最好买 PCI 的卡。
1.4 另外需要额外下载一个叫 isdn4linux 的软件,用于控制 ISDN 卡。
地址为:ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/
文件名是: isdn4k-utils.v3.1pre1.tar.gz 大概是这样,你耐心找一下。
2. 安装:
2.1 看看卡上的芯片,在附表1中找到相应的类型号,记住了。我的卡类型为36。
2.2 打开机箱,把卡插好,OK 。
2.3 RedHat 安装后,它已经把几乎所有支持的硬件驱动都编译成模块了,所以我们就不
用重新编译内核。
如果你想编译 linux 内核的话,必须选中下列选项:
ISDN Support ;可以编译到内核中,按 y 了;也可以使用模块方式,就是按 m 了。
Support synchronous PPP
Use VJ-compression with synchronous PPP
Support generic MP (RFC 1717)
Hisax SiemensChipset driver support ;最好使用模块方式,就是按 m 了。
HiSax Support for EURO/DSS1
Hisax Support for Winbond W6692 ;这是我的卡,换成你自己的哦。
2.4 安装 isdn4linux:
这是一项令人头痛的工作,原因很简单,它总是在编译或安装的时候一些莫名其妙的错
误,导致通不过。如果编译的时候出问题,你把它记下来,在 make config 中屏蔽掉就
算了;如果是安装的时候有错误,你进入它的下一级目录,在每个目录中执行 make in
stall,能安装多少就安装多少吧。
另一个办法是用现成的 rpm 包,这个需要你自己找了。
其实用的也就是 scripts/makedev.sh 和编译生成的 isdnctrl 这两个程序,也可以让
你的朋友传给你。makedev.sh 只使用一次,用于生成 ISDN 设备;isdnctrl 要拷贝到
/sbin 目录中。
执行 makedev.sh,生成 ISDN 设备,虽然系统已经有 ISDN 设备了,但仍然需要执行一
次,我也很纳闷。
3. 准备其它文件:
3.1 用于保存帐号和密码的 /etc/ppp/pap-secrets,属性是644,格式参见附表2。
3.2 用于保存帐号信息的 /etc/ppp/ioptions,属性是644,格式见附表2。
3.3 保存 isdnctrl 设置的 /etc/isdn/isdn.conf,属性是644,格式见附表3。其中的
PHONE_OUT 是 ISP 提供的接入号码,请改成你的 ISP 的拨入号码。
3.4 拨号、停止控制程序 /sbin/isdn,属性是755,格式见附表4。
3.5 修改 /etc/rc.d/rc.local, 在其最后加上一下几条命令:
modprobe hisax type=36 protocol=2 ;其中的 type 是你的卡的类型号,改成你自己的
吧。
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
自己生成这些目录和文件,注意它们的属性,除了特意提到的部分,其它部分基本不用
修改了。恩,好象都准备好了,可以开始了。
4. 拨号与断开:
4.1 拨号,执行 /sbin/isdn start
4.2 看看成功与否,首先 ping 一个主机,例如:ping www.zz.ha.cn,如果通了,则你
成功一半了,下面再执行 /sbin/imontty, 它会返回连接状态,看看是不是两个通道都
通了,我的是这样子的:
ISDN channel status:
Channel Usage Type Number
----------------------------------------------------------------------
HiSax Out Net 163
HiSax Out Net 163
好了,你可以干你想干的事情了,冲浪去吧。
4.3 我要下网了,怎么办?执行 /sbin/isdn stop 啊。
附表1:
linux 支持的 ISDN 卡的类型、型号和需要的配置:
类型和型号 配置卡时需要的参数
1 Teles 16.0 irq, mem, io
2 Teles 8.0 irq, mem
3 Teles 16.3 (non PnP) irq, io
4 Creatix/Teles PnP irq, io0 (ISAC), io1 (HSCX)
5 AVM A1 (Fritz) irq, io
6 ELSA PCC/PCF cards io or nothing for autodetect (the iobase
is
Required only if you have more than one ELSA
card in your PC)
7 ELSA Quickstep 1000 irq, io (from isapnp setup)
8 Teles 16.3 PCMCIA irq, io
9 ITK ix1-micro Rev.2 irq, io
10 ELSA PCMCIA irq, io (set with card manager)
11 Eicon.Diehl Diva ISA PnP irq, io
11 Eicon.Diehl Diva PCI no parameter
12 ASUS COM ISDNLink irq, io (from isapnp setup)
13 HFC-2BS0 based cards irq, io
14 Teles 16.3c PnP irq, io
15 Sedlbauer Speed Card irq, io
15 Sedlbauer PC/104 irq, io
15 Sedlbauer Speed PCI no parameter
16 USR Sportster internal irq, io
17 MIC card irq, io
18 ELSA Quickstep 1000PCI no parameter
19 Compaq ISDN S0 ISA card irq, io0, io1, io (from isapnp set
up io=IO2)
20 NETjet PCI card no parameter
21 Teles PCI no parameter
22 Sedlbauer Speed Star (PCMCIA) irq, io (set with card manager)
24 Dr. Neuhaus Niccy PnP irq, io0, io1 (from isapnp setup)
24 Dr. Neuhaus Niccy PCI no parameter
25 Teles S0Box irq, io (of the used lpt port)
26 AVM A1 PCMCIA (Fritz!) irq, io (set with card manager)
27 AVM PnP (Fritz!PnP) irq, io (from isapnp setup)
27 AVM PCI (Fritz!PCI) no parameter
28 Sedlbauer Speed Fax+ irq, io (from isapnp setup)
29 Siemens I-Surf 1.0 irq, io, memory (from isapnp setup)
30 ACER P10 irq, io (from isapnp setup)
31 HST Saphir irq, io
32 Telekom A4T none
33 Scitel Quadro subcontroller (4*S0, subctrl 1...4)
34 Gazel ISDN cards (ISA) irq,io
34 Gazel ISDN cards (PCI) none
35 HFC 2BDS0 PCI none
36 W6692 based PCI cards none
37 HFC 2BDS0 S+, SP/PCMCIA irq,io (pcmcia must be set with ca
rdmgr)
附表2:
/etc/ppp/pap-secrets 用于保存 ISP 提供给你的帐号和密码,格式为:
帐号 * 密码
/etc/ppp/ioptions 用于保存帐号信息,格式为:
name 帐号
附表3:
/etc/isdn/isdn.conf 中保存了 isdnctrl 的参数,我的是这样的:
###################################################
# /etc/isdn/isdn.conf generated by Du Keshi
###################################################
[ISDNCTRL]
INTERFACES = {
[INTERFACE]
NAME = ippp0
PHONE_OUT = 163
SECURE = on
DIALMODE = auto
DIALMAX = 3
HUPTIMEOUT = 180
IHUP = off
CHARGEHUP = off
L2_PROT = hdlc
L3_PROT = trans
ENCAP = syncppp
ADDSLAVE = ippp1
SDELAY = 10
TRIGGER = 3000
[SLAVE]
NAME = ippp1
PHONE_OUT = 163
SECURE = on
DIALMODE = auto
DIALMAX = 3
HUPTIMEOUT = 180
IHUP = off
CHARGEHUP = off
L2_PROT = hdlc
L3_PROT = trans
ENCAP = syncppp
}
附表4:
/sbin/isdn 是拨号控制程序,我的是这样的:
#!/bin/bash
#
# ISDN initialization script
#
# Supported cards: all HISAX based ones
# Default configuration: HFC-S PCI,2BDS0 ISDN
#
# NOTE:
# This script is configured to use ISDN as modules by default!
#
# Author:
# Rock <rock@371.net>
#
case "$1" in
start)
echo "Starting the ISDN ..."
/sbin/isdnctrl readconf
#below ip need not modify, it is virtual.
/sbin/ifconfig ippp0 192.168.60.1 pointopoint 192.168.60.2 netmask 0.0.0.0
#bund ippp0 and ippp1.
/sbin/ipppd +mp /dev/ippp0 /dev/ippp1
sleep 5
/sbin/isdnctrl dial ippp0
sleep 5
/sbin/isdnctrl dial ippp1
sleep 15
/sbin/route add default ippp0
;;
stop)
echo "Stoping the ISDN ..."
/bin/kill ipppd
/sbin/ifconfig ippp0 down
/sbin/isdnctrl delif ippp1
/sbin/isdnctrl delif ippp0
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0 |
|