How to install rp-pppoe on Opensolaris/Solaris 10 as a PPPoE client

RP-PPPoE is a free PPPoE client developed by Roaring Penguin Soft Inc. RP itself stands for Roaring Penguin.
PPPoE is a protocol used by many ADSL Internet Service Provider (ISP) to connect to theirs internet services.

If you are familiar with Linux and using PPPoE to connect to your service provider, RP-PPPoE is the best tool for this purposes and easy to install because almost all Linux distros have its binary file.

Basically Opensolaris/Solaris 10 has its own PPP client software. You can check it out by running pkginfo command.

fuad@opensolaris:~$ pkginfo |grep ppp
system      SUNWpppd                        Solaris PPP Device Drivers
system      SUNWpppdr                       Solaris PPP configuration files
system      SUNWpppdt                       Solaris PPP Tunneling
system      SUNWpppdu                       Solaris PPP daemon and utilities
system      SUNWpppg                        GNU utilities for PPP

You need to configure some files under /etc/ppp/ directory to meet your need. There are some tutorials on the net for this.
But I have experience when using this default PPP in Solaris/Opensolaris it is always failed to connect. Tailing at the ppp.log file, the modem is always hang up and the connection terminated. I dont know why this happened and does not work with IPWireless TD-CDMA desktop modem I usually use.


Since of that I choose rp-pppoe instead. It is more user friendly and easy to configure. If you are a Slackware user, you can find this tool in your system or in slackware CD/DVD. If you are an Ubuntu user, you can also find this in your system. The pppoeconf is the rp-pppoe modified by Ubuntu developer (if i am not mistaken he he he).

OK lets go to the installation.

We will install rp-pppoe software from source so you need to install SUNWgcc first. Install this software via Package Manager or simply run this command in your shell “sudo pkg install SUNWgcc”.
Then you need to download the rp-pppoe source file here and then extract the file and begin installation.

fuad@opensolaris:~/sources$ tar -zxf rp-pppoe-3.10.tar.gz
fuad@opensolaris:~/sources$ cd rp-pppoe-3.10/src/
fuad@opensolaris:~/sources/rp-pppoe-3.10/src$ ./configure
config.status: creating libevent/Makefile
config.status: creating ../scripts/pppoe-connect
config.status: creating ../scripts/pppoe-start
config.status: creating ../scripts/pppoe-stop
config.status: creating ../scripts/pppoe-init
config.status: creating ../scripts/pppoe-init-suse
config.status: creating ../scripts/pppoe-init-turbolinux
config.status: creating ../scripts/pppoe-setup
config.status: creating ../gui/Makefile
config.status: WARNING:  ../gui/ seems to ignore the --datarootdir setting
config.status: creating ../gui/tkpppoe
config.status: creating config.h
On this platform, the following targets will be built:
pppoe pppoe-server pppoe-sniff
Type 'make' to compile the software.

fuad@opensolaris:~/sources/rp-pppoe-3.10/src$ make
Undefined   first referenced
symbol         in file
dlpromisconreq                      pppoe-sniff.o
ld: fatal: Symbol referencing errors. No output written to pppoe-sniff
collect2: ld returned 1 exit status
make: *** [pppoe-sniff] Error 1

You see there is an error when running ‘make’, the Makefile does not compile successfully because no output written to pppoe-sniff.
OK we dont need pppoe-sniff at this time so we will edit the Makefile and force not to install pppoe-sniff. Simply edit the Makefile using your favourite editor. Search pppoe-sniff lines or options and remove them. You need to understand a litte C programming language here :). Then run ‘make’ again.

fuad@opensolaris:~/sources/rp-pppoe-3.10/src$ make
Type 'make install' as root to install the software.

OK compiled withour errors and ready to run ‘make install’ as root :)

fuad@opensolaris:~/sources/rp-pppoe-3.10/src$ sudo make install
Type 'make install' as root to install the software.
mkdir -p /usr/sbin
/usr/bin/ginstall -c -m 755 pppoe /usr/sbin
/usr/bin/ginstall -c -m 755 pppoe-server /usr/sbin
if test -x licensed-only/pppoe-server-control ; then /usr/bin/ginstall -c -m 755 licensed-only/pppoe-server-control /usr/sbin; fi
if test -x pppoe-relay ; then /usr/bin/ginstall -c -m 755 pppoe-relay /usr/sbin; fi
/usr/bin/ginstall -c -m 755 ../scripts/pppoe-connect /usr/sbin
/usr/bin/ginstall -c -m 755 ../scripts/pppoe-start /usr/sbin
/usr/bin/ginstall -c -m 755 ../scripts/pppoe-status /usr/sbin
/usr/bin/ginstall -c -m 755 ../scripts/pppoe-stop /usr/sbin
/usr/bin/ginstall -c -m 755 ../scripts/pppoe-setup /usr/sbin
mkdir -p /usr/share/doc/rp-pppoe-3.10
/usr/bin/ginstall -c -m 644 ../doc/CHANGES /usr/share/doc/rp-pppoe-3.10
/usr/bin/ginstall -c -m 644 ../doc/KERNEL-MODE-PPPOE /usr/share/doc/rp-pppoe-3.10
/usr/bin/ginstall -c -m 644 ../doc/HOW-TO-CONNECT /usr/share/doc/rp-pppoe-3.10
/usr/bin/ginstall -c -m 644 ../doc/LICENSE /usr/share/doc/rp-pppoe-3.10
/usr/bin/ginstall -c -m 644 ../README /usr/share/doc/rp-pppoe-3.10
/usr/bin/ginstall -c -m 644 ../SERVPOET /usr/share/doc/rp-pppoe-3.10
/usr/bin/ginstall -c -m 644 ../configs/pap-secrets /usr/share/doc/rp-pppoe-3.10
mkdir -p /usr/share/man/man8
for i in pppoe pppoe-server ; do \
if test -f ../man/$i.8 ; then \
/usr/bin/ginstall -c -m 644 ../man/$i.8 /usr/share/man/man8 || exit 1; \
fi; \
/usr/bin/ginstall -c -m 644 ../man/pppoe-start.8 /usr/share/man/man8
/usr/bin/ginstall -c -m 644 ../man/pppoe-stop.8 /usr/share/man/man8
/usr/bin/ginstall -c -m 644 ../man/pppoe-status.8 /usr/share/man/man8
/usr/bin/ginstall -c -m 644 ../man/pppoe-connect.8 /usr/share/man/man8
/usr/bin/ginstall -c -m 644 ../man/pppoe-setup.8 /usr/share/man/man8
mkdir -p /usr/share/man/man5
/usr/bin/ginstall -c -m 644 ../man/pppoe.conf.5 /usr/share/man/man5
mkdir -p /etc/ppp
mkdir -p /etc/ppp/plugins
echo "# Directory created by rp-pppoe for kernel-mode plugin" > /etc/ppp/plugins/README
Type 'pppoe-setup' to configure the software.

Ahhh finish and the software has been installed successfully in /usr/sbin

fuad@opensolaris:~/sources/rp-pppoe-3.10/src$ ls -al /usr/sbin/pppoe*
-rwxr-xr-x 1 root root  79120 2009-04-29 20:02 /usr/sbin/pppoe
-rwxr-xr-x 1 root root   8822 2009-04-29 20:02 /usr/sbin/pppoe-connect
-rwxr-xr-x 1 root root 104892 2009-04-29 20:02 /usr/sbin/pppoe-server
-rwxr-xr-x 1 root root   9564 2009-04-29 20:02 /usr/sbin/pppoe-setup
-rwxr-xr-x 1 root root   5565 2009-04-29 20:02 /usr/sbin/pppoe-start
-rwxr-xr-x 1 root root   2116 2009-04-29 20:02 /usr/sbin/pppoe-status
-rwxr-xr-x 1 root root   2273 2009-04-29 20:02 /usr/sbin/pppoe-stop

Now it is the time for you to configure ‘pppoe-setup’ to suit your need. After that run ‘pppoe-start / pppoe-stop’ to start or stop dialing to your service provider.

Hope this tutorial will help you in installing rp-pppoe in Opensolaris/Solaris 10 and your comments are most welcome.