为了要能够使用 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 连结.