为了要能够使用 PPP,你编译的 Linux 核心必须包含 PPP 的支持
如果你还没有 Linux 的源程序请先取得 - 在 Linux 的文档系统标准中它是放在 /usr/src/linux
里面
检查这个目录 - 许多的 Linux 套件会在安装过程中安装此源程序(文档及次目录)
在启动时,你的 Linux 核心会印出大量的信息 如果核心支持 PPP 的话会包含此一信息
要观看这些信息的话,看看你的系统记录档或用 dmesg | less
指令将这些信息显示在萤幕上
如果核心支持 PPP 的话你将会看到像这样的几行
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. PPP line discipline registered.
(这是 Linux 2.0.x 系列核心的信息)
Linux 核心的原始程序可以从 sunsite.unc.edu
或其映射节点取得
下面是简短的取得及安装 Linux 核心源程序的指示 详细的信息可以在 The Linux Kernel HOWTO 中找到
为了安装及编译核心,你必须以 root 的身份签入
/usr/src
目录下cd /usr/src
/usr/src/linux
看看你是否已经安装了源程序 /usr/src
rm -rf /usr/src/linux
tar xzf linux-2.0.XX.tar.gz
cd /usr/src/linux
并看看 README 档 里头包含了完整的解释如何配置及编译新核心
仔细阅读这个文档(将它印出来放在手边是个好主意,直到你已做了足够多次知道怎么办)
如果你要重新编译你的核心你必须知道在你 PC 里面的界面卡/设备!! 对于某些设备(像是声卡)你也得知道各种设定(像是硬件中断号码,输出入位址以及诸如此类的信息)
要开始配置程序,首先依照在解说档里的说明适当地安装源程序 然后以下面的指令开始核心的配置程序
make config
为了要能够使用 PPP ,你必须配置核心包含 PPP 的支持(使用 PPP 需要 pppd 以及核心的 PPP 支持两者)
PPP (point-to-point) support (CONFIG_PPP) [n] y
根据在你 PC 里面的硬件以及你想要的 Linux 作业系统特色回答其它的配置问题 然后继续依照该解说档来编译并安装你的新核心
核心 1.2.13 只要制造四个 PPP 装置 对于多埠卡(multi-port serial cards)来说,你必须修改核心 PPP 的原始程序以便得到更多埠的支持 (参见随附 PPP-2.1.2 套件而来的 README.linux 文档说明你需要做的细节部份)
注意: 核心 1.2.13 的配置对话不允许你回头 - 因此如果你在 make config
对话中答错问题,用 CTRL-C
跳出来重新开始
对于 Linux 2.0.x 的核心,你可以使用类似 Linux 1.2.13 的程序 再一次,依照在解说档里的说明适当地安装源程序 然后以下面的指令开始核心的配置程序
make config
然而,你也有另外的选择
make menuconfig
这提供一个以选单为基础配合线上辅助的配置系统,允许你在配置程序中随意所之
也有一个以 X windows 为基础的配置界面
make xconfig
你可以直接编译 PPP 的支持到核心里去或者是做成可载入模块
如果你只在你 Linux 机器运作的一部份时间里使用 PPP 的话,那么建议你把 PPP 的支持编译为可载入模块 使用 'kerneld',你的核心将会在你开始你的 PPP 连结程序时自动载入提供 PPP 支持所需的模块 这节省了宝贵的内存空间(因为核心没有任何一个部份可以被置换到内存外,但可载入模块在未使用时会自动被移除)
要这样做的话,你需要打开可载入模块的支持:
Enable loadable module support (CONFIG_MODULES) [Y/n/?] y
要加入 PPP 的核心支持,回答下列这个问题:-
PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?]
要做成可载入模块的话,回答 M 即可,否则就编译成核心的一部份,回答 Y 就是
与 1.2.13 的核心不同的是,2.0.x 的核心视需要自动建立 PPP 设备并且一点都不需要去研究源程序以增加可用的 PPP 设备
/proc/net/dev
的注意事项
如果你在使用 PPP-2.2,你会发现建立 PPP 装置的一个副作用就是如果你观察 /proc/net
文档系统看不到 PPP 的装置,
直到开始使用 pppd 装置才会被建立起来:-
[hartr@archenland hartr]$ cat /proc/net/dev Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 92792 0 0 0 0 92792 0 0 0 0 0 eth0: 621737 13 13 0 23 501621 0 0 0 1309 0
一旦你有一个(或更多) PPP 服务启动后,你会看到像这样的项目(从一部 PPP 伺服器上取得):-
[root@kepler /root]# cat /proc/net/dev Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 428021 0 0 0 0 428021 0 0 0 0 0 eth0:4788257 648 648 319 650 1423836 0 0 0 4623 5 ppp0: 2103 3 3 0 0 2017 0 0 0 0 0 ppp1: 10008 0 0 0 0 8782 0 0 0 0 0 ppp2: 305 0 0 0 0 297 0 0 0 0 0 ppp3: 6720 7 7 0 0 7498 0 0 0 0 0 ppp4: 118231 725 725 0 0 117791 0 0 0 0 0 ppp5: 38915 5 5 0 0 28309 0 0 0 0 0
如果你要把你的 Linux PC 设为一台 PPP 伺服器的话,那么你必须把 IP forwarding 的支持编译进去 如果你想使用 Linux 连接两个区域网路或将区域网路连接到网际网路上的话这个选项也是需要的
如果你要连接一个区域网路到网际网路上(或者甚至只是连接两个区域网路),你应该要关心安全上的问题 在核心中加入 IP firewalls 的支持可能是必须的!
如果你想要用 IP 伪装连接使用前述任何一个?未连线'IP 网路号码的区域网路那么你也需要这个配置
要使用 IP 伪装与 IP firewalling,你必须在 make config
过程中的第一个问题上回答 yes:-
Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)?
虽然这听起来对新使用者有些困难,许多人仍愉快地使用 Linux 2.0.X 核心的 IP 伪装与 IP firewalling 功能而没有问题
一旦你完成新核心的安装以及重新启动之后,你就可以开始配置并测试你的 PPP 连结