动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.各个平台上调整最大SGA区的方法.
.Oracle与DB2数据类型的对应.
.truncate,delete,drop的异同点.
.[数据库]Oracle中如果对“性别”.
.Windows下Oracle9i数据库文件的自.
.如何恢复只有完好数据文件的Orac.
.Oracle SQL 内置函数的使用方法及.
.如何在less环境切换至vi环境.
.ORALCE: Select into VS Insert .
.Oracle不同数据库间的对比分析脚.
.用JAVA实现ORACLE数据库的文件上.
.Oracle 9i删除数据表.
.有关于使用DATE类型的一点心得!.
.两个sql程序.
.随身携带的数据库.
.ORACLE入门之ORACLE的日志管理.
.如何改变当前联机日志文件的大小.
.SAP“打劫”Oracle.
.Oracle中利用EXP/IMP工具实现数据.
.轻松解决Oracle 10g 的em中文乱码.

在Linux下使用ISDN拨号上网

发表日期:2008-2-9 |



  作 者: 张中华
  
  任务:在一台Linux机器上,通过ISDN拨号上网。
  
  经过尝试,我成功地做到了这一点。我的配置为:蓝点Linux 2.0,Kernel-2.2.16,isdn4linux v3.1pre1,上海贝尔生产的ISDN内置卡,型号为SBT6021。
  下面介绍具体做法。介绍顺序为:内核->isdn4linux安装->拨号配置->测试。
  
  1、 内核
  上海贝尔SBT6021型ISDN内置卡,使用的芯片为Winbond W6692,这是一种与西门子HiSax驱动程序兼容的芯片,该卡是即插即用的,无需手工设定中断请求号和I/O地址。要Linux内核支持这种卡,在编译内核时,必须选中下列选项:
  
  ISDN Support
  Support synchronous PPP
  (多数ISDN设备拨号上网都是使用同步PPP方式)
  Hisax SiemensChipset driver support
  Hisax Support for DSS1
  (绝大多数ISDN设备使用的协议都是DSS1)
  Hisax Support for Winbond W6692
  
  但我不必急于编译内核,假如现有的内核已经包含这些选项了,我又何必重复一遍呢。那我怎么知道现有内核是否已经包含这些选项了呢?看内核编译配置文件/usr/src/linux/.config(注重:文件名以"."开头的文件是隐藏文件,要用ls -a才可看到。)我看到其中有下面这5行内容,对应于刚才的5个选项:
  
  CONFIG_ISDN=m
  CONFIG_ISDN_PPP=y
  CONFIG_ISDN_DRV_HISAX=m
  CONFIG_HISAX_EURO=y
  CONFIG_HISAX_W6692=y
  
  "=y"表示内核直接支持(代码已链入内核中),"=m"表示模块支持(代码在另外的内核中,可由内核载入)。于是这就表明,蓝点Linux 2.0的原有内核已包含这些选项了,我就不用重新编译内核啦。
  
  2、 isdn4linux安装
  欲配置ISDN,要用到isdn4linux这一套软件。isdn4linux的主要文件有isdnctrl, ipppd等。
  获取isdn4linux源码的地址为:
  http://isdn4linux.org
  取得的文件为isdn4k-utils.v3.1pre1.tar.gz,放于/usr/src目录下。
  进入/usr/src目录中,开始安装过程。
  进入/usr/src:
  cd /usr/src
  解开压缩文件:
  tar xzvf isdn4k-utils.v3.1pre1.tar.gz
  命令完成后多了一个子目录isdn4k-utils,isdn4linux的源码文件就在其中。
  进入该子目录:
  cd isdn4k-utils
  该目录中的README文件具体介绍了如何安装isdn4linux,照章行事即可。
  进行配置:
  make config
  不做任何改变,用缺省的即可。
  开始编译:
  make
  未能通过,失败原因是linux/autoconf.h文件或目录不存在。这个文件就是/usr/include/linux/autoconf.h文件,一查确实不存在。它是在编译内核的时候生成的,而我并未编译内核,所以当然没有了。好吧,想办法生成它吧。
  到linux目录并进行配置:
  cd /usr/src/linux
  make menUConfig
  不做任何改变,退出,保存即可。此时一看,/usr/include/linux/autoconf.h文件出来了,这就够了,不必真的去编译内核。
  回到isdn4linux目录再编译:
  cd /usr/src/isdn4k-utils
  make
  刚才的问题没有了,但还是未能通过,失败原因是capi20/capi20.c文件中下面几个符号未定义:
  
  CAPI_GET_FLAGS
  CAPI_SET_FLAGS
  CAPI_CLR_FLAGS
  CAPI_NCCI_GETUNIT
  CAPI_NCCI_OPENCOUNT
  
  对应的一段源代码为:
  
  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);
  }
  
  作者未定义它们,我也不知道这几个常量该是多少,怎么办?我从capi20/capi20.h文件中发现,这几个函数是" extentions functions (no standard functions)",扩展的非标准函数,我猜测,这几个函数即使功能不正确,也不会影响ISDN的使用,那么,我就可以把那几个未定义的符号注解起来,使编译通过。
修改源码如下:
  
  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。
上一篇:Linux: 单边生存之路 人气:290
下一篇:构建Linux局域网 人气:442
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵