kernel mode pppoeへの動作変更方法
sorry Japanese only
最終更新日 2005/02/14
page size = Mbyte

vine linux 2.6r4 + rp-pppoe + B-Fletsファミリーの組み合わせで自宅サーバー運営していますが、
やっとこさ kernel mode pppoeにする気が起きました。

別段何もやってないから kernel modeでは動いてないんだろうなぁ。
とは思ってましたが、じゃ pppoeが kernel modeで動いているってのはどうやって確認するのか?
って事すら分かりませんでした。

それと、なかなかエラーの多発で、3時間ぐらい楽しんでしまいました。
adsl-stopするまでは、pppと rp-pppoeの make installを行っても ppp接続は確立したままです。
しかし、adsl-stopして再接続がかなわない時は、netへの接続の道も閉ざされた『えらいこっちゃ!』
の中での長い戦いが待っているかもしれません。
非常用のダイヤルアップ環境などを準備してから望みましょう。

kernel mode pppoeの確認方法

まずは、現状が userと kernelのどちらで動作しているか?の確認です。
adsl-startしてある状態で psコマンドにて確認します。

pppoeが psコマンドにて表示されたら user mode pppoe。
[root]# ps ax
 3850 pts/0    S      0:00 /bin/sh /usr/sbin/adsl-connect iij
 3918 ?        S      0:00 /usr/sbin/pppd pty /usr/sbin/pppoe -p /var/run/iij-adsl.pid.pppoe -I eth2 長いので以後省略
 3919 ?        S      0:00 /usr/sbin/pppoe -p /var/run/iij-adsl.pid.pppoe -I eth2 -T 80 -U -m 1412 -m 1412

pppd上で rp-pppoe.soが loadされていて pppoeが表示されなかったら kernel mode pppoeです。
[root]# ps ax
 4086 pts/0    S      0:00 /bin/sh /usr/sbin/adsl-connect iij
 4157 ?        S      0:00 /usr/sbin/pppd plugin /etc/ppp/plugins/rp-pppoe.so eth2 長いので以後省略

kernel mode pppoeにする為に必要なファイル

私が使ったファイルは以下のファイルです。

ppp-2.4.3.tar.gz www.samba.org
rp-pppoe-3.5.tar.gz Roaring Penguin

pppの make

pppではなく pppdを makeすると言った方が適切なのかな?
手順としては pppを解凍 => configure => make => make installをします

まずは tarにて解凍します
[root]# tar zxvf ppp-2.4.3.tar.gz 
ppp-2.4.3/
ppp-2.4.3/chat/
ppp-2.4.3/chat/Makefile.linux
以下省略

次は ppp-2.4.3ディレクトリーで configureを行います
[root]# cd ppp-2.4.3
[root]# configure
Configuring for Linux
Creating Makefiles.
  Makefile <= linux/Makefile.top
  pppd/Makefile <= pppd/Makefile.linux
  pppstats/Makefile <= pppstats/Makefile.linux
  chat/Makefile <= chat/Makefile.linux
  pppdump/Makefile <= pppdump/Makefile.linux
  pppd/plugins/Makefile <= pppd/plugins/Makefile.linux
  pppd/plugins/rp-pppoe/Makefile <= pppd/plugins/rp-pppoe/Makefile.linux
  pppd/plugins/radius/Makefile <= pppd/plugins/radius/Makefile.linux
  pppd/plugins/pppoatm/Makefile <= pppd/plugins/pppoatm/Makefile.linux

次は ppp-2.4.3ディレクトリーで makeを実行します
[root]# make
cd chat; make  all
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/chat'
cc -c -O2 -g -pipe -DTERMIOS -DSIGTYPE=void -UNO_SLEEP -DFNDELAY=O_NDELAY -o chat.o chat.c
cc -o chat chat.o
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/chat'
cd pppd/plugins; make  all
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins'
gcc -o minconn.so -shared -O2 -g -I.. -I../../include -fPIC minconn.c
gcc -o passprompt.so -shared -O2 -g -I.. -I../../include -fPIC passprompt.c
gcc -o passwordfd.so -shared -O2 -g -I.. -I../../include -fPIC passwordfd.c
gcc -o winbind.so -shared -O2 -g -I.. -I../../include -fPIC winbind.c
for d in rp-pppoe pppoatm radius; do make -w -C $d all; done
make[2]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/rp-pppoe'
cc -O2 -g -I../../../include/linux '-DVERSION="3.3"' -c -o discovery.o -fPIC discovery.c
In file included from /usr/include/sys/time.h:30,
                 from discovery.c:25:
/usr/include/sys/select.h:58: warning: `__NFDBITS' redefined
/usr/include/linux/posix_types.h:22: warning: this is the location of the previous definition
/usr/include/sys/select.h:60: warning: `__FDMASK' redefined
/usr/include/linux/posix_types.h:34: warning: this is the location of the previous definition
cc -O2 -g -I../../../include/linux '-DVERSION="3.3"' -c -o if.o -fPIC if.c
cc -O2 -g -I../../../include/linux '-DVERSION="3.3"' -c -o common.o -fPIC common.c
cc -O2 -g -I../../../include/linux '-DVERSION="3.3"' -c -o debug.o -fPIC debug.cIn file included from /usr/include/sys/time.h:30,
                 from debug.c:20:
/usr/include/sys/select.h:58: warning: `__NFDBITS' redefined
/usr/include/linux/posix_types.h:22: warning: this is the location of the previous definition
/usr/include/sys/select.h:60: warning: `__FDMASK' redefined
/usr/include/linux/posix_types.h:34: warning: this is the location of the previous definition
ar -rc libplugin.a discovery.o if.o common.o debug.o
cc '-DRP_VERSION="3.3"' -O2 -g -I../../../include/linux -I../../..  -c -o plugin.o -fPIC plugin.c
cc -o rp-pppoe.so -shared plugin.o libplugin.a
cc -O2 -g -I../../../include/linux '-DVERSION="3.3"' -c -o pppoe-discovery.o pppoe-discovery.c
cc -o pppoe-discovery pppoe-discovery.o libplugin.a
make[2]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/rp-pppoe'
make[2]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/pppoatm'
gcc -O2 -g -I../.. -I../../../include -fPIC -I. -c -o pppoatm.o pppoatm.c
gcc -O2 -g -I../.. -I../../../include -fPIC -I. -c -o text2qos.o text2qos.c
gcc -O2 -g -I../.. -I../../../include -fPIC -I. -c -o text2atm.o text2atm.c
gcc -O2 -g -I../.. -I../../../include -fPIC -I. -c -o misc.o misc.c
gcc -O2 -g -I../.. -I../../../include -fPIC -I. -c -o ans.o ans.c
gcc -O2 -g -I../.. -I../../../include -fPIC -I. -o pppoatm.so -shared pppoatm.o text2qos.o text2atm.o misc.o ans.o -lresolv
make[2]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/pppoatm'
make[2]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/radius'
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o radius.o radius.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o avpair.o avpair.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o buildreq.o buildreq.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o config.o config.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o dict.o dict.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o ip_util.o ip_util.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o clientid.o clientid.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o sendserver.o sendserver.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o lock.o lock.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o util.o util.c
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o md5.o md5.c
ar rv libradiusclient.a avpair.o buildreq.o config.o dict.o ip_util.o clientid.o sendserver.o lock.o util.o md5.o
a - avpair.o
a - buildreq.o
a - config.o
a - dict.o
a - ip_util.o
a - clientid.o
a - sendserver.o
a - lock.o
a - util.o
a - md5.o
cc -o radius.so -shared radius.o libradiusclient.a
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o radattr.o radattr.c
cc -o radattr.so -shared radattr.o
cc -I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1   -c -o radrealms.o radrealms.c
cc -o radrealms.so -shared radrealms.o
make[2]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/radius'
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins'
cd pppd; make  all
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd'
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o main.o main.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o magic.o magic.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o fsm.o fsm.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o lcp.o lcp.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o ipcp.o ipcp.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o upap.o upap.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o chap-new.o chap-new.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o md5.o md5.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o ccp.o ccp.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o ecp.o ecp.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o auth.o auth.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o options.o options.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o demand.o demand.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o utils.o utils.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o sys-linux.o sys-linux.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o ipxcp.o ipxcp.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o tty.o tty.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o eap.o eap.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o chap-md5.o chap-md5.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o md4.o md4.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o chap_ms.o chap_ms.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o sha1.o sha1.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o pppcrypt.o pppcrypt.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o multilink.o multilink.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o tdb.o tdb.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o spinlock.o spinlock.c
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS -Wl,-E -o pppd main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o md5.o ccp.o ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o eap.o chap-md5.o md4.o chap_ms.o sha1.o pppcrypt.o multilink.o tdb.o spinlock.o  -lcrypt -ldl
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd'
cd pppstats; make  all
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppstats'
cc -O -I../include -o pppstats pppstats.c 
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppstats'
cd pppdump; make  all
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppdump'
cc -O -I../include/net   -c -o pppdump.o pppdump.c
cc -O -I../include/net   -c -o bsd-comp.o bsd-comp.c
cc -O -I../include/net   -c -o deflate.o deflate.c
cc -O -I../include/net   -c -o zlib.o zlib.c
cc -o pppdump pppdump.o bsd-comp.o deflate.o zlib.o
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppdump'

次は make installの実行です。
[root]# make install
cd chat; make  install
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/chat'
mkdir -p /usr/local/sbin
install -s -c chat /usr/local/sbin
install -c -m 644 chat.8 /usr/local/share/man/man8
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/chat'
cd pppd/plugins; make  install
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins'
install -d /usr/local/lib/pppd/2.4.3
install minconn.so passprompt.so passwordfd.so winbind.so /usr/local/lib/pppd/2.4.3
for d in rp-pppoe pppoatm radius; do make -w -C $d install; done
make[2]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/rp-pppoe'
install -d -m 755 /usr/local/lib/pppd/2.4.3
install -s -c -m 4550 rp-pppoe.so /usr/local/lib/pppd/2.4.3 -------------------------- (1)
install -d -m 755 /usr/local/sbin
install -s -c -m 555 pppoe-discovery /usr/local/sbin
make[2]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/rp-pppoe'
make[2]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/pppoatm'
install -d -m 755 /usr/local/lib/pppd/2.4.3
install -c -m 4550 pppoatm.so /usr/local/lib/pppd/2.4.3
make[2]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/pppoatm'
make[2]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/radius'
install -d -m 755 /usr/local/lib/pppd/2.4.3
install -s -c -m 755 radius.so /usr/local/lib/pppd/2.4.3
install -s -c -m 755 radattr.so /usr/local/lib/pppd/2.4.3
install -s -c -m 755 radrealms.so /usr/local/lib/pppd/2.4.3
install -c -m 444 pppd-radius.8 /usr/local/share/man/man8
install -c -m 444 pppd-radattr.8 /usr/local/share/man/man8
make[2]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins/radius'
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd/plugins'
cd pppd; make  install
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd'
mkdir -p /usr/local/sbin /usr/local/share/man/man8
install -s -c -m 555 pppd /usr/local/sbin/pppd --------------------------------------- (2)
if chgrp pppusers /usr/local/sbin/pppd 2>/dev/null; then \
  chmod o-rx,u+s /usr/local/sbin/pppd; fi
install -c -m 444 pppd.8 /usr/local/share/man/man8
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd'
cd pppstats; make  install
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppstats'
mkdir -p /usr/local/share/man/man8
install -s -c pppstats /usr/local/sbin
install -c -m 444 pppstats.8 /usr/local/share/man/man8
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppstats'
cd pppdump; make  install
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppdump'
mkdir -p /usr/local/sbin /usr/local/share/man/man8
install -s -c pppdump /usr/local/sbin
install -c -m 444 pppdump.8 /usr/local/share/man/man8
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppdump'
cd pppd; make  install-devel
make[1]: 入ります ディレクトリ `/tmp/ppp-2.4.3/pppd'
mkdir -p /usr/local/include/pppd
install -c -m 644 ccp.h chap-new.h ecp.h fsm.h ipcp.h ipxcp.h lcp.h magic.h md5.h patchlevel.h pathnames.h pppd.h upap.h eap.h md4.h chap_ms.h sha1.h pppcrypt.h tdb.h spinlock.h /usr/local/include/pppd
make[1]: 出ます ディレクトリ `/tmp/ppp-2.4.3/pppd'

ここで以下のコマンドを打ってみて下さい。
[root]# which pppd
/usr/sbin/pppd

pppdは、パスの通っているディレクトリーが /usr/sbinなんです。
しかし make installを行うと /usr/local/sbinなる所へコピーされています (2)の部分です。
と言うことで /usr/local/sbinへ make installされたバイナリを、/usr/sbinへコピーします。
[root]# cd /usr/local/sbin
[root]# ls -l
合計 316
-rwxr-xr-x    1 root     root        17800 Jan  3 12:13 chat
-r-xr-xr-x    1 root     root       224752 Jan  3 12:13 pppd
-rwxr-xr-x    1 root     root        38740 Jan  3 12:13 pppdump
-r-xr-xr-x    1 root     root        17256 Jan  3 12:13 pppoe-discovery
-rwxr-xr-x    1 root     root         9628 Jan  3 12:13 pppstats

全て今作られたファイルのようなので、全部のファイルを /usr/sbinへ移動します。
[root]# mv -f * /usr/sbin


この後は rp-pppoeを --enable-pluginオプション付きで作り直して rp-pppoe.soを作るんですが、
上の (1)を見て下さい。
kernel mode pppoeに必要な rp-pppoe.soが既に作られています。
そうです。pppの makeを行うと rp-pppoe.soがおまけで作られるのです。

これを使って kernel mode pppoeにチャレンジしましょう。
なぜチャレンジしましょうなのか?と言うと、私は他の方のページを見ながら rp-pppoeの makeをやってしまってから、pppの makeで rp-pppoe.soが既に作られていた。と言うのを知ったのです。
それに、rp-pppoeの makeで作られた rp-pppoe.soは、私の所ではうまく動作せず、pppの makeで作られた rp-pppoe.soの方を使っていたりします。

ですから、pppの makeをやって作られた rp-pppoe.soを使うのだったら、rp-pppoeの makeは必要無いんではないか?
でも私は、rp-pppoeの makeをやってしまったから、pppの makeだけで大丈夫なのかは分からない。
だから、チャレンジしてみましょう!なんです < 長いぞゴラ!

(後日、誤って pppを rpmで updateしたら、このページで構築したカーネルモード pppoeの環境が破壊されました。
その時、自分でこの手法を行ってみたところ、pppdのみを makeし、作られた rp-pppoe.soを使ってカーネルモードにて
接続を行おうと思いましたが接続が確立しませんでした。
私の所の vine linux 2.6では、pppdの make => rp-pppoeの make => pppd rp-pppoeの makeにて作られた rp-pppoe.soを使う
って順番でないと、カーネルモード pppoeの環境は作ることが出来ないようでした。)

ということで

rp-pppoe.soを loadするための手順

/usr/local/lib/pppd/2.4.3/rp-pppoe.soを /etc/ppp/pluginsへコピーします
[root]# cd /usr/local/lib/pppd/2.4.3
[root]# cp rp-pppoe.so /etc/ppp/plugins

/etc/ppp/pppoe.confの以下の行を変更します。
LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so

kernel modeの動作テスト

それでは繋いでみましょう。

[root]# adsl-start

うまく繋がりましたか?
これから長い戦いになりそうだ。でも繋いで情報を得たい!
って時には /etc/ppp/pppoe.confを
LINUX_PLUGIN=
とすれば、元の user mode pppoeでの接続となります。

ちなみに kernel modeで繋がっているのか?は、このページの一番上に書かれている通り
pppdが rp-pppoe.soを loadしていて rp-pppoeが走ってないこと。です。


一応、rp-pppoeの makeも手順として書いておきます

ro-pppoeの make

まずは tarにて解凍します。
[root]# tar zxvf rp-pppoe-3.5.tar.gz 
rp-pppoe-3.5/
rp-pppoe-3.5/README
rp-pppoe-3.5/SERVPOET
rp-pppoe-3.5/go
以下省略

次は configureです
configureは --enable-plugin= を付けて行う必要があるそうです。
[root]# cd rp-pppoe-3.5/src
[root]# configure --enable-plugin=../../ppp-2.4.3/pppd
creating cache ./config.cache
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for ranlib... ranlib
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for fcntl.h... yes
checking for sys/dlpi.h... no
checking for sys/ioctl.h... yes
checking for sys/time.h... yes
checking for syslog.h... yes
checking for unistd.h... yes
checking for net/if_arp.h... yes
checking for netinet/if_ether.h... yes
checking for getopt.h... yes
checking for sys/uio.h... yes
checking for sys/param.h... yes
checking for fcntl.h... (cached) yes
checking for net/bpf.h... no
checking for netpacket/packet.h... yes
checking for net/ethernet.h... yes
checking for asm/types.h... yes
checking for linux/if_packet.h... yes
checking for linux/if_ether.h... yes
checking for linux/if_pppox.h... yes
checking for sys/socket.h... yes
checking for sys/cdefs.h... yes
checking for linux/if.h... yes
checking for net/if.h... yes
checking for net/if_dl.h... no
checking for net/if_ether.h... no
checking for net/if_types.h... no
checking for netinet/if_ether.h... (cached) yes
checking for net/if_types.h... (cached) no
checking for net/if_dl.h... (cached) no
checking for working const... yes
checking for pid_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for echo... /bin/echo
checking for struct sockaddr_ll... yes
checking for N_HDLC line discipline... yes
checking for 8-bit clean memcmp... yes
checking whether setvbuf arguments are reversed... no
checking return type of signal handlers... void
checking for select... yes
checking for socket... yes
checking for strerror... yes
checking for strtol... yes
checking for a BSD compatible install... /usr/bin/install -c
checking size of unsigned short... 2
checking size of unsigned int... 4
checking size of unsigned long... 4
checking for pppd... /usr/sbin/pppd
checking for setsid... /usr/bin/setsid
checking for id... /usr/bin/id
checking for Linux 2.4.X kernel-mode PPPoE support... yes ----------- (3)
checking packing order of bit fields... reversed
updating cache ./config.cache
creating ./config.status
creating Makefile
creating libevent/Makefile
creating ../scripts/adsl-connect
creating ../scripts/adsl-start
creating ../scripts/adsl-stop
creating ../scripts/adsl-init
creating ../scripts/adsl-init-suse
creating ../scripts/adsl-init-turbolinux
creating ../scripts/adsl-setup
creating ../gui/Makefile
creating ../gui/tkpppoe
creating config.h

On this platform, the following targets will be built:
        pppoe pppoe-server pppoe-sniff pppoe-relay rp-pppoe.so

Type 'make' to compile the software.

(3)に kernel mode - yesと出てきているのを確認して下さい。

色々なページを見ていると、人によっては configure --enable-plugin=
と後ろに何も指定しないでやったらうまくいった。と言う方もいるようです。
環境によって色々とやり方が異なっているようで、情報が錯誤しております。


次は makeですね。
[root]# make
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o pppoe.o pppoe.c
In file included from /usr/include/sys/time.h:30,
                 from pppoe.c:34:
/usr/include/sys/select.h:58: warning: `__NFDBITS' redefined
/usr/include/linux/posix_types.h:22: warning: this is the location of the previous definition
/usr/include/sys/select.h:60: warning: `__FDMASK' redefined
/usr/include/linux/posix_types.h:34: warning: this is the location of the previous definition
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o if.o if.c
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o debug.o debug.c
In file included from /usr/include/sys/time.h:30,
                 from debug.c:22:
/usr/include/sys/select.h:58: warning: `__NFDBITS' redefined
/usr/include/linux/posix_types.h:22: warning: this is the location of the previous definition
/usr/include/sys/select.h:60: warning: `__FDMASK' redefined
/usr/include/linux/posix_types.h:34: warning: this is the location of the previous definition
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o common.o common.c
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o ppp.o ppp.c
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o discovery.o discovery.c
In file included from /usr/include/sys/time.h:30,
                 from discovery.c:27:
/usr/include/sys/select.h:58: warning: `__NFDBITS' redefined
/usr/include/linux/posix_types.h:22: warning: this is the location of the previous definition
/usr/include/sys/select.h:60: warning: `__FDMASK' redefined
/usr/include/linux/posix_types.h:34: warning: this is the location of the previous definition
gcc -o pppoe pppoe.o if.o debug.o common.o ppp.o discovery.o
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o pppoe-server.o pppoe-server.c
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o md5.o md5.c
cd libevent && make
make[1]: 入ります ディレクトリ `/tmp/rp-pppoe-3.5/src/libevent'
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic -I.. -c -o event.o event.c
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic -I.. -c -o event_tcp.o event_tcp.c
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic -I.. -c -o hash.o hash.c
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic -I.. -c -o event_sig.o event_sig.c
rm -f libevent.a
ar -cq libevent.a event.o event_tcp.o hash.o event_sig.o
ranlib libevent.a
make[1]: 出ます ディレクトリ `/tmp/rp-pppoe-3.5/src/libevent'
gcc -o pppoe-server  pppoe-server.o if.o debug.o common.o md5.o   -Llibevent -levent
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o pppoe-sniff.o pppoe-sniff.c
gcc -o pppoe-sniff pppoe-sniff.o if.o common.o debug.o
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o relay.o relay.c
gcc -o pppoe-relay relay.o if.o debug.o common.o
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o plugin/discovery.o -fPIC discovery.c
In file included from /usr/include/sys/time.h:30,
                 from discovery.c:27:
/usr/include/sys/select.h:58: warning: `__NFDBITS' redefined
/usr/include/linux/posix_types.h:22: warning: this is the location of the previous definition
/usr/include/sys/select.h:60: warning: `__FDMASK' redefined
/usr/include/linux/posix_types.h:34: warning: this is the location of the previous definition
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o plugin/if.o -fPIC if.c
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o plugin/common.o -fPIC common.c
gcc -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent '-DVERSION="3.5"' -c -o plugin/debug.o -fPIC debug.c
In file included from /usr/include/sys/time.h:30,
                 from debug.c:22:
/usr/include/sys/select.h:58: warning: `__NFDBITS' redefined
/usr/include/linux/posix_types.h:22: warning: this is the location of the previous definition
/usr/include/sys/select.h:60: warning: `__FDMASK' redefined
/usr/include/linux/posix_types.h:34: warning: this is the location of the previous definition
ar -rc plugin/libplugin.a plugin/discovery.o plugin/if.o plugin/common.o plugin/debug.o
gcc '-DRP_VERSION="3.5"' -g -O2 -Wall -Wstrict-prototypes -ansi -pedantic    '-DPPPOE_PATH="/usr/sbin/pppoe"' '-DPPPD_PATH="/usr/sbin/pppd"' '-DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so"' '-DPPPOE_SERVER_OPTIONS="/etc/ppp/pppoe-server-options"' -Ilibevent -I../../ppp-2.4.3/pppd -c -o plugin/plugin.o -fPIC plugin.c
In file included from /usr/include/linux/byteorder/little_endian.h:11,
                 from /usr/include/asm/byteorder.h:68,
                 from /usr/include/linux/if_pppox.h:21,
                 from plugin.c:56:
/usr/include/linux/byteorder/swab.h: In function `__fswab24':
/usr/include/linux/byteorder/swab.h:174: warning: ANSI C forbids braced-groups within expressions
/usr/include/linux/byteorder/swab.h:174: warning: ANSI C forbids braced-groups within expressions
/usr/include/linux/byteorder/swab.h: In function `__swab24p':
/usr/include/linux/byteorder/swab.h:178: warning: ANSI C forbids braced-groups within expressions
/usr/include/linux/byteorder/swab.h:178: warning: ANSI C forbids braced-groups within expressions
/usr/include/linux/byteorder/swab.h: In function `__swab24s':
/usr/include/linux/byteorder/swab.h:182: warning: ANSI C forbids braced-groups within expressions
/usr/include/linux/byteorder/swab.h:182: warning: ANSI C forbids braced-groups within expressions
In file included from plugin.c:56:
/usr/include/linux/if_pppox.h: At top level:
/usr/include/linux/if_pppox.h:84: warning: ANSI C forbids zero-size array `tag_data'
/usr/include/linux/if_pppox.h:112: warning: ANSI C forbids zero-size array `tag'plugin.c:423: warning: ANSI C forbids specifying structure member to initialize
plugin.c:424: warning: ANSI C forbids specifying structure member to initialize
plugin.c:425: warning: ANSI C forbids specifying structure member to initialize
plugin.c:426: warning: ANSI C forbids specifying structure member to initialize
plugin.c:427: warning: ANSI C forbids specifying structure member to initialize
plugin.c:428: warning: ANSI C forbids specifying structure member to initialize
plugin.c:429: warning: ANSI C forbids specifying structure member to initialize
plugin.c:430: warning: ANSI C forbids specifying structure member to initialize
plugin.c:431: warning: ANSI C forbids specifying structure member to initialize
plugin.c:432: warning: ANSI C forbids specifying structure member to initialize
plugin.c:433: warning: ANSI C forbids specifying structure member to initialize
gcc -o rp-pppoe.so -shared plugin/plugin.o plugin/libplugin.a

Type 'make install' as root to install the software.

たくさんの warningが出ております。

つぎは make installです。
[root]# make install
省略


rp-pppoeで戦ったトラブル例

rp-pppoeの makeを行ってのトラブル例です。

まず最初の戦いが、byteorder.hのあたりで makeが errorを起こす。
/usr/include/asm/byteorder.h:38: parse error before `__u64'

これは vine-users掲示板の発言に解決策が書かれていました。msg061698
変更後の byteorder.hはこれ => byteorder.h

次に戦ったエラーは、makeは通るが rp-pppoe.soを loadできないエラー
/etc/ppp/plugins/rp-pppoe.so: undefined symbol: generic_establish_ppp
 Couldn't load plugin /etc/ppp/plugins/rp-pppoe.so

これはどうやって直したかなぁ。
pppと rp-pppoe両方を make cleanからやり直したような記憶が・・
pppのバージョンが ppp-2.4.3と ppp-2.4.1でごちゃ混ぜでやったら起きたエラーだったかもしれません。
エイヤ!でやってしまったので記憶が不確かです、ごめんなさい。

次の戦いが、rp-pppoe.soは正常に loadされているようなログが残っているが time outで ppp確立しない

これは time outでうまく繋がらなかったときの messagesに残ったログ。
Jan  3 11:12:26 vine1 pppd[23131]: Plugin /etc/ppp/plugins/rp-pppoe.so loaded.
Jan  3 11:12:26 vine1 pppd[23131]: RP-PPPoE plugin version 3.5 compiled against pppd 2.4.3
Jan  3 11:12:26 vine1 pppd[23131]: pppd 2.4.3 started by root, uid 0
Jan  3 11:12:26 vine1 pppd[23131]: PPP session is 369
Jan  3 11:12:26 vine1 murasaki.net[23132]: net device is registered
Jan  3 11:12:26 vine1 murasaki.net[23132]: Dependence(net) was found
Jan  3 11:12:26 vine1 murasaki.net[23132]: Executing "net" "start"
Jan  3 11:12:26 vine1 pppd[23131]: Using interface ppp0
Jan  3 11:12:26 vine1 pppd[23131]: Connect: ppp0 <--> eth2
Jan  3 11:12:26 vine1 pppd[23131]: Couldn't increase MTU to 1500
Jan  3 11:12:26 vine1 pppd[23131]: Couldn't increase MRU to 1500

こっちはうまく繋がるようになった後のログ
Jan  3 15:39:48 vine1 pppd[4157]: Plugin /etc/ppp/plugins/rp-pppoe.so loaded.
Jan  3 15:39:48 vine1 pppd[4157]: RP-PPPoE plugin version 3.3 compiled against pppd 2.4.3
Jan  3 15:39:48 vine1 pppd[4157]: pppd 2.4.3 started by root, uid 0
Jan  3 15:39:48 vine1 pppd[4157]: PPP session is 823
Jan  3 15:39:48 vine1 murasaki.net[4158]: net device is registered
Jan  3 15:39:48 vine1 murasaki.net[4158]: Dependence(net) was found
Jan  3 15:39:48 vine1 murasaki.net[4158]: Executing "net" "start"
Jan  3 15:39:48 vine1 pppd[4157]: Using interface ppp0
Jan  3 15:39:48 vine1 pppd[4157]: Connect: ppp0 <--> eth2
Jan  3 15:39:48 vine1 pppd[4157]: Couldn't increase MTU to 1500
Jan  3 15:39:48 vine1 pppd[4157]: Couldn't increase MRU to 1500
Jan  3 15:39:49 vine1 pppd[4157]: CHAP authentication succeeded
Jan  3 15:39:49 vine1 pppd[4157]: peer from calling number 11:22:11:22:11:22 authorized
Jan  3 15:39:49 vine1 pppd[4157]: local  IP address 220.100.240.74
Jan  3 15:39:49 vine1 pppd[4157]: remote IP address 210.138.170.200

これは、pppを makeしたときに作られた rp-pppoe.soを使って解決しました。

しかし、上の messagesに残ったログをまじまじと見ると、
plugin versionというのが、3.5と 3.3の違いがあるなぁ。

pppの makeで作られた rp-pppoe.so
[root]# cd /usr/local/lib/pppd/2.4.3
[root]# ls -l rp-pppoe.so
-r-sr-x---    1 root     root        23336 Jan  3 12:13 rp-pppoe.so
[root]# file rp-pppoe.so
rp-pppoe.so: setuid ELF 32-bit LSB shared object, Intel 80386, version 1, stripped

rp-pppoeの makeで作られた rp-pppoe.so
[root]# cd /tmp/rp-pppoe-3.5/src
[root]# ls -l rp-pppoe.so
-rwxr-xr-x    1 root     root       117669 Jan  4 13:01 rp-pppoe.so
[root]# file rp-pppoe.so
rp-pppoe.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped

ファイル的にも随分と違いがあります。
ちなみに、私の所では、上の pppの makeで作られた rp-pppoe.soしか動作しませんでした。


何かの足しになればと、トラブル例も書いてみました。

16152