知识大全 在Linux下使用ISDN拨号上网

Posted 文件

篇首语:哪里有天才,我是把别人喝咖啡的功夫,都用在工作上的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Linux下使用ISDN拨号上网相关的知识,希望对你有一定的参考价值。

在Linux下使用ISDN拨号上网  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  作 者 张中华     任务 在一台Linux机器上 通过ISDN拨号上网     经过尝试 我成功地做到了这一点 我的配置为 蓝点Linux Kernel isdn linux v pre 上海贝尔生产的ISDN内置卡 型号为SBT   下面介绍具体做法 介绍顺序为 内核 >isdn linux安装 >拨号配置 >测试      内核   上海贝尔SBT 型ISDN内置卡 使用的芯片为Winbond W 这是一种与西门子HiSax驱动程序兼容的芯片 该卡是即插即用的 无需手工设定中断请求号和I/O地址 要Linux内核支持这种卡 在编译内核时 必须选中下列选项     ISDN Support   Support synchronous PPP   (多数ISDN设备拨号上网都是使用同步PPP方式)   Hisax SiemensChipset driver support   Hisax Support for DSS   (绝大多数ISDN设备使用的协议都是DSS )   Hisax Support for Winbond W     但我不必急于编译内核 如果现有的内核已经包含这些选项了 我又何必重复一遍呢 那我怎么知道现有内核是否已经包含这些选项了呢?看内核编译配置文件/usr/src/nfig(注意 文件名以 开头的文件是隐藏文件 要用ls a才可看到 )我看到其中有下面这 行内容 对应于刚才的 个选项     CONFIG_ISDN=m   CONFIG_ISDN_PPP=y   CONFIG_ISDN_DRV_HISAX=m   CONFIG_HISAX_EURO=y   CONFIG_HISAX_W =y      =y 表示内核直接支持(代码已链入内核中) =m 表示模块支持(代码在另外的内核中 可由内核载入) 于是这就表明 蓝点Linux 的原有内核已包含这些选项了 我就不用重新编译内核啦      isdn linux安装   欲配置ISDN 要用到isdn linux这一套软件 isdn linux的主要文件有isdnctrl ipppd等   获取isdn linux源码的地址为     取得的文件为isdn k utils v pre tar gz 放于/usr/src目录下   进入/usr/src目录中 开始安装过程   进入/usr/src   cd /usr/src   解开压缩文件   tar xzvf isdn k utils v pre tar gz   命令完成后多了一个子目录isdn k utils isdn linux的源码文件就在其中   进入该子目录   cd isdn k utils   该目录中的README文件详细介绍了如何安装isdn linux 照章行事即可   进行配置   make config   不做任何改变 用缺省的即可   开始编译   make   未能通过 失败原因是linux/autoconf h文件或目录不存在 这个文件就是/usr/include/linux/autoconf h文件 一查确实不存在 它是在编译内核的时候生成的 而我并未编译内核 所以当然没有了 好吧 想办法生成它吧   到linux目录并进行配置   cd /usr/src/linux   make menuconfig   不做任何改变 退出 保存即可 此时一看 /usr/include/linux/autoconf h文件出来了 这就够了 不必真的去编译内核   回到isdn linux目录再编译   cd /usr/src/isdn k utils   make   刚才的问题没有了 但还是未能通过 失败原因是capi /capi c文件中下面几个符号未定义     CAPI_GET_FLAGS   CAPI_SET_FLAGS   CAPI_CLR_FLAGS   CAPI_NCCI_GETUNIT   CAPI_NCCI_OPENCOUNT     对应的一段源代码为     int   capi ext_get_flags(unsigned ApplID unsigned *flagsptr)      if (ioctl(applid fd(ApplID) CAPI_GET_FLAGS flagsptr) < )   return CapiMsgOSResourceErr;   return CapiNoError;        int   capi ext_set_flags(unsigned ApplID unsigned flags)      if (ioctl(applid fd(ApplID) CAPI_SET_FLAGS &flags) < )   return CapiMsgOSResourceErr;   return CapiNoError;        int   capi ext_clr_flags(unsigned ApplID unsigned flags)      if (ioctl(applid fd(ApplID) CAPI_CLR_FLAGS &flags) < )   return CapiMsgOSResourceErr;   return CapiNoError;        char *   capi ext_get_tty_devname(unsigned applid unsigned ncci char *buf size_t size)      int unit;   unit = ioctl(applid fd(applid) CAPI_NCCI_GETUNIT &ncci);   if (unit < 0)   return 0;   snprintf(buf, size, "/dev/capi/%d", unit);   return buf;        char *   capi20ext_get_raw_devname(unsigned applid, unsigned ncci, char *buf, size_t size)      int unit;   unit = ioctl(applid2fd(applid), CAPI_NCCI_GETUNIT, &ncci);   if (unit < 0)   return 0;   snprintf(buf, size, "/dev/capi/r%d", unit);   return buf;        int capi20ext_ncci_opencount(unsigned applid, unsigned ncci)      return ioctl(applid2fd(applid), CAPI_NCCI_OPENCOUNT, &ncci);        作者未定义它们,我也不知道这几个常量该是多少,怎么办?我从capi20/capi20.h文件中发现,这几个函数是" extentions functions (no standard functions)",扩展的非标准函数,我猜测,这几个函数即使功能不正确,也不会影响ISDN的使用,那么,我就可以把那几个未定义的符号注解起来,使编译通过。.wiNgwIT.Com修改源码如下:     int   capi20ext_get_flags(unsigned ApplID, unsigned *flagsptr)      // if (ioctl(applid2fd(ApplID), CAPI_GET_FLAGS, flagsptr) < 0)   // return CapiMsgOSResourceErr;   return CapiNoError;        int   capi20ext_set_flags(unsigned ApplID, unsigned flags)      // if (ioctl(applid2fd(ApplID), CAPI_SET_FLAGS, &flags) < 0)   // return CapiMsgOSResourceErr;   return CapiNoError;        int   capi20ext_clr_flags(unsigned ApplID, unsigned flags)      // if (ioctl(applid2fd(ApplID), CAPI_CLR_FLAGS, &flags) < 0)   // return CapiMsgOSResourceErr;   return CapiNoError;        char *   capi20ext_get_tty_devname(unsigned applid, unsigned ncci, char *buf, size_t size)      int unit;   // unit = ioctl(applid2fd(applid), CAPI_NCCI_GETUNIT, &ncci);   if (unit < 0)   return 0;   snprintf(buf, size, "/dev/capi/%d", unit);   return buf;        char *   capi20ext_get_raw_devname(unsigned applid, unsigned ncci, char *buf, size_t size)      int unit;   // unit = ioctl(applid2fd(applid), CAPI_NCCI_GETUNIT, &ncci);   if (unit < 0)   return 0;   snprintf(buf, size, "/dev/capi/r%d", unit);   return buf;        int capi20ext_ncci_opencount(unsigned applid, unsigned ncci)      // return ioctl(applid2fd(applid), CAPI_NCCI_OPENCOUNT, &ncci);   return 0;        再次编译:   make   通过了,接着安装:   make install   命令完成后,isdnctrl和ipppd被拷到/sbin目录下。     3、 拨号配置   我看了一些别人写的介绍文章,取用他们写好的例子,修改其中的电话号码,用户名等必须修改的相关内容,然后运行。不幸的是,通常都不能成功。因为这些例子都比较完善而复杂,因此难免和我的配置情况不符合而出错。我决定从简单入手,只进行最基本最必要的配置,先不写成shell文件,而是一条命令一条命令地输入执行,仔细理解其意义,查看其执行结果。等全部试验成功后,再写成shell文件。现在看来,这种做法非常有效,我会同样来处理类似的问题。     echo 1 > /proc/sys/net/ipv4/ip_dynaddr   拨号上网大部分都是使用动态IP地址,比如我上163网,只知道拨打163号码,并不知道远程服务器(即中国电信机房内的163拨号服务器)的IP地址是多少,也不知道它会给我的机器分配什么IP地址。往/proc/sys/net/ipv4/ip_dynaddr中写入"1",就是告诉内核要使用动态IP地址。   modprobe hisax type=36 protocol=2   装入ISDN卡的驱动程序。前面已经说过,上海贝尔SBT6021型ISDN内置卡中使用的芯片W6692是由HiSax驱动程序驱动的,type=36指明了是使用W6692芯片,protocol=2指明了ISDN协议是用DSS1,详细内容可看/usr/src/linux/Documentation/isdn/README.HiSax文件。   isdnctrl addif ippp0   ISDN通过同步PPP方式上网,其对应的Interface会是/dev/ippp0, /dev/ippp1, ...等。这条命令告诉内核,加入ippp0这个Interface,换句话说,告诉内核我有个ISDN设备,准备通过同步PPP方式上网。从此以后,ippp0就代表了我的ISDN设备。   isdnctrl addphone ippp0 out 163   指明拨出的电话号码,我拨出的是163,在中国大陆,通过中国电信上网的大部分也都是163。   isdnctrl eaz ippp0 3382460   指明我自己这台ISDN的电话号码为3382460。 cha138/Article/program/Oracle/201311/16512

相关参考

知识大全 如何在 Linux 下通过 WEB 认证方式上网

如何在Linux下通过WEB认证方式上网  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要  

知识大全 如何在拨号环境下使用postfix

  有台拨号上网的机器如何在它上面设置postfix使之在拨号成功后可以发送队列中的信件?  在postfix站点上有个讨论主题解决方法是在maincf中做如下设置  #yourISPsSMTPser

知识大全 Linux拨号服务快速指南

Linux拨号服务快速指南  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者HKILL    

知识大全 轻松建立Linux拨号服务

轻松建立Linux拨号服务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   PPP(Pointt

知识大全 电信光纤猫4个网线口的,4台电脑都拨号上网吗

电信光纤猫4个网线口的,4台电脑都拨号上网吗?根据你的描述,你的光猫应该继承路由器功能,只需要对路由器设置,4台电脑都不需要拨号。将网线插入lan口,从wan口接入一条网线连接到电脑,在浏览器中输入1

4G网络理论上能够以__的速度下载,比目前的拨号上网快200倍

4G网络理论上能够以_____的速度下载,比目前的拨号上网快200倍。A、100MbpsB、1000MbpsC、10000MbpsD、100000Mbps答案:A解析:4G系统能够以100MBps的速

知识大全 把家里路由器恢复出厂改了wifi密码以后电脑就连不上网了,拨号连线错误程式码651

把家里路由器恢复出厂改了wifi密码以后电脑就连不上网了,拨号连线错误程式码651路由器恢复出厂设定后需要重新设定,不仅仅是修改wifi密码,还需要设定连线wan口pppoe拨号,并输入宽频账号密码。

知识大全 水星 mw305r路由器恢复出厂设置就连接不上网了怎么

水星mw305r路由器恢复出厂设置就连接不上网了怎么要设置一下上网方式:A:你在电脑端上网时就须要帐号密码拨号,操作如下:网络参数-WAN口设置-拨号上网-把运营商给你的帐号密码输进去,保存,重新启动

知识大全 请问手机wifi无线网络信号显示是满格但是无法上网是怎么回事

请问手机wifi无线网络信号显示是满格但是无法上网是怎么回事你以前的有线路由器,是否把你上网的拨号用户名和密码都是设置在路由器里,自动拨号上网的?如果是。那么你把有线路由器的LAN口出来的网线接到你的

知识大全 无线太卡就用有线拨号的!室友可以拨号!我拨号出现错误651

我们寝室用的路由器上网!无线太卡就用有线拨号的!室友可以拨号!我拨号出现错误651?这个应该是电脑的问题吧,你可以试试把宽带重置再试试其实现在无线也挺快的,想我用的这个腾讯全民WiFi就是挺快的平时用