花了一个月的时间在L2tp上,我用的是Linux 2.6.23的内核,出现的问题是,L2tp拨号不成功。
经过检查,发现在/dev/pts下面并没有出现任何的文件,ppp0也没有起来。郁闷了好久哇。其实l2tpd已经起来了。l2tp用的是rp-l2tp的代码。
发现在handler/sycn-pppd.c 有调用pty_get函数()
而pty.c有定义pty_get对/dev/pts进行写入的。
snprintf(pty_name, sizeof(pty_name), "/dev/pts/%d", ptn);
但是根本就没有写入成功。
网上查找结果:/dev/pts是一个类型为devpts的文件系统 :
然后再找devpts 系统在linux中如何挂载。
哈哈,找到啦
简述:
devfs设备文件系统是由Linux-2.4内核引入的,引入时被许多工程师给与高度的评价,但由于devfs长期存在一些bug,并且其维护者和作者都停止了对代码的维护工作,所以在Linux-2.6内核中,udev设备文件系统取代了devfs文件系统;虽然udev系统比devfs系统更优,但如上面所说,由于对udev系统的不熟悉,内核与文件系统在挂载时老是出问题,最后还是采用了devfs设备文件系统;
操作过程:
在Linux-2.6.14内核目录下,进入fs目录,发现有devfs的设备驱动源文件devpts,但在make menuconfig 中却发现不了这个选项。所以我们要做的就是修改Konfig文件和Makefile文件,使得在make menuconfig时我们能选上它;
1. #vim fs/Kconfig
在 menu “File systems”下面添加
config DEVFS_FS
bool “devfs support”
depends on EXPERIMENTAL
config DEVFS_MOUNT
bool “devfs mount”
depends on DEVFS_FS
config DEVFS_DEBUG
bool “Debug devfs”
depends on DEVFS_FS
保存退出!
非常感谢这些兄弟姐妹们的分享。。。。
2. #vim fs/Makefile
发现有这样一个一句:
obj-(CONFIG_DEVFS_FS) += devfs/
原来在Linux2.6.14内核中已经写好了可以编译devfs的Makefile,却不在内核定制界面中显示出来,真让人郁闷。
3. 在定制内核时,记得选上
File systems->
[*] devfs support
[*] devfs mount at boot
[*] Debug devfs
阅读(1503) | 评论(0) | 转发(0) |