[how-to] Compile PPP Kernel Modules connect to 3G and VPN

This forum is for all other ARMv5 devices

[how-to] Compile PPP Kernel Modules connect to 3G and VPN

Postby Neuwk » Thu May 24, 2012 2:07 am

This took way longer to figure out than it should have so I thought I would write a mini-howto just incase someone else runs into the same problems such as NULL pointer exception or Oops #17 errors.

Basically the key to it all is to start with a fresh install of Arch Linux Arm as per the install instructions and DO NOT apply any system updates afterwards using `pacman -Suy`. The key to getting ppp_generic (and maybe other kernel modules) compiling correctly is to leave the system as-is and (atleast for me) the kernel tree un-patched.

1. Run `pacman -S pacman`
2. `pacman -S make gcc`
3. Download kernel sources and either the Pro.config or P21.config
4. DONT patch the kernel tree with the ARM Cache patch
5. Copy either the PRO.config or P21.config to the source tree and rename to .config (i used the P21.config but originally had it working with the PRO.config)
6. `make menuconfig` enabling the following ppp modules and any other device drivers such as USB_SERIAL and USB_OPTION (note tun/tap seem to be compiled into the kernel):
Code: Select all
Device Drivers  --->
Network device support  --->
<M>   PPP (point-to-point protocol) support│ 
[ ]     PPP multilink support (EXPERIMENTAL)
[ ]     PPP filtering
<M>     PPP support for async serial ports
<M>     PPP support for sync tty ports
<M>     PPP Deflate compression
<M>     PPP BSD-Compress compression
<M>     PPP MPPE compression (encryption) (EXPERIMENTAL)
< >     PPP over Ethernet (EXPERIMENTAL)

7. Exit Saving the config
8. `make modules` and make a cup of tea while its compiling
9. copy the newly built ppp*.ko and slhc.* files to /lib/modules/
10. `depmod -a` and reboot to check
11. Add ppp_generic to the MODULES section in rc.conf
12. `pacman -S ppp`

PPP should now be ok and work correctly to be used to make a dial up connection. I never could get NAT/iptables working so my work around was to use openvpn, use NAT on the remote openvpn server and simply allowing ip forwarding in /etc/sysctl.conf.

I am now happily writing this post using my pogoplug as a VPN gateway over a 3g connection and hope other can now to. :geek:

I have tar'd and uploaded the compiled ppp modules to: http://ppl.ug/LPdpTmiNRmQ/

Its useful to be able to tell if PPP is connected or not, i decided to use the light on the front of the pogoplug to show PPP's connect status for me the light is switched off on boot anyway so: On = PPP Connected, Off = PPP Disconnected

In /etc/ppp/ip-up.d/01-proled.sh (chmod to 755)
Code: Select all
/sbin/proled green

In /etc/ppp/ip-down.d/01-proled.sh (chmod to 755)
Code: Select all
/sbin/proled off
Last edited by Neuwk on Thu May 24, 2012 3:44 am, edited 3 times in total.
Posts: 2
Joined: Thu May 24, 2012 1:43 am

Re: [how-to] Compile PPP Kernel Modules connect to 3G and VP

Postby WarheadsSE » Thu May 24, 2012 2:41 am

Well it's good to know that someone got PPP working. I've been having issues with it.

TUN is built in, so openvpn can already make use of that out the door.
Core Developer
Remember: Arch Linux ARM is entirely community donation supported!
Posts: 6807
Joined: Mon Oct 18, 2010 2:12 pm

Re: [how-to] Compile PPP Kernel Modules connect to 3G and VP

Postby Neuwk » Thu May 24, 2012 3:06 am

I only persisted at getting it working because I had it working once but had no idea how i did it and then lost it when i was trying to get iptables working. Next i am going to try getting IP tables and QoS working but not before I make an image of this flash stick with the working PPP ko's :lol:
Posts: 2
Joined: Thu May 24, 2012 1:43 am

Return to Community Supported

Who is online

Users browsing this forum: No registered users and 3 guests