# net.ppp0 cannot find ppp0 under udev-200, but pon works well

## galaxy001

```

# /etc/init.d/net.ppp0 start

 * Bringing up interface ppp0

 *   ERROR: interface ppp0 does not exist

 *   Ensure that you have loaded the correct kernel module for your hardware

 * ERROR: net.ppp0 failed to start

```

/etc/conf.d/net

```

config_ppp0="ppp"

pppd_ppp0="persist

call myVPN

holdoff 10"

```

/etc/ppp/chap-secrets

```

# added by pptpsetup for myVPN

username myVPN "password" *

```

/etc/ppp/peers/myVPN

```

# written by pptpsetup

pty "pptp the.ip.address --nolaunchpppd"

lock

noauth

nobsdcomp

nodeflate

name username

remotename myVPN

ipparam myVPN

```

Also, ppp0 not in `/sys/class/net/`

However, `/etc/init.d/net.ppp0` failed while `pon myVPN` works well.

----------

## SamuliSuominen

I don't see any indication udev would be related, looks more like kernel issue with the provided information.

Start by looking at dmesg if the device is recognized as a USB mass storage or USB modem, if it's recognized as a USB mass storage then I'd look at possible missing sys-apps/usb_modeswitch

But it could be anything, dmesg will tell you

----------

## aCOSwt

 *ssuominen wrote:*   

> looks more like kernel issue with the provided information.

 

 :Shocked: 

@OP : What happens if you statically build in-kernel (Select <*> and not <M>) everything ppp related, (starting from USB DSL Modem Support and behind) ?

----------

## galaxy001

Well, the kernel is OK with udev-197

```

# zcat /proc/config.gz |grep -i ppp

CONFIG_PPP=y

CONFIG_PPP_BSDCOMP=y

CONFIG_PPP_DEFLATE=y

CONFIG_PPP_FILTER=y

CONFIG_PPP_MPPE=m

# CONFIG_PPP_MULTILINK is not set

# CONFIG_PPPOE is not set

CONFIG_PPP_ASYNC=m

CONFIG_PPP_SYNC_TTY=m

# uname -a

Linux PG-S0 3.6.11-gentoogalaxy #2 SMP Sun Apr 7 23:03:22 CST 2013 x86_64 Intel(R) Core(TM) i3 CPU 530 @ 2.93GHz GenuineIntel GNU/Linux

```

dmesg shows nothing

```

# dmesg |grep -i ppp

[    0.930330] PPP generic driver version 2.4.2

[    0.933307] PPP BSD Compression module registered

[    0.936262] PPP Deflate Compression module registered

```

Kernel should be OK.

I just switch back to last kernel that OK with old udev, still cannot see ppp0.

The difference between is only more xHCI items are enabled now.

```

# uname  -a

Linux PG-S0 3.5.7-gentoogalaxy #1 SMP Sun Nov 25 10:44:24 CST 2012 x86_64 Intel(R) Core(TM) i3 CPU 530 @ 2.93GHz GenuineIntel GNU/Linux

```

And, I deleted all udev rules in `/etc/udev/rules.d` as the news file suggested.

This may be the cause.

Also, `/etc/init.d/net.ppp0` failed but `pon myVPN` works well.

----------

## krinn

if your modem is pci, look for lspci -k to get its id, i think there some lsusb for usb device.

then look for its presence in /sys

(or you can just look where the symlink points too in the working kernel+udev couple)

for info :

```
ls -l

total 0

lrwxrwxrwx 1 root root 0  8 avril 20:24 eth0 -> ../../devices/pci0000:00/0000:00:1c.2/0000:04:00.0/net/eth0

lrwxrwxrwx 1 root root 0  8 avril 20:23 lo -> ../../devices/virtual/net/lo

```

This way you could tell if it's kernel (missing the ../../devices... ref) or udev (missing the symlink ppp0 to ../../devices...)

And i didn't test it yet, but udev may (should have?) rename ppp0, so look for strange name it /sys/class/net (as you only told us you don't see ppp0 there, but didn't told us if you saw something)

----------

## galaxy001

I am using VPN over ent.

ppp0 will only show up after running `pon myVPN`

So, how can I make udev to make a virtual ppp0 without running /usr/sbin/pppd from pon ?

Or, how to make net.ppp0 start without /sys/class/net/ppp0 ?

```

# ls -l /sys/class/net/

total 0

lrwxrwxrwx 1 root root 0 Apr  9 11:16 enp1s0 -> ../../devices/pci0000:00/0000:00:1c.7/0000:01:00.0/net/enp1s0

lrwxrwxrwx 1 root root 0 Apr  9 11:16 enp8s4 -> ../../devices/pci0000:00/0000:00:1e.0/0000:06:03.0/0000:08:04.0/net/enp8s4

lrwxrwxrwx 1 root root 0 Apr  9 11:16 enp8s5 -> ../../devices/pci0000:00/0000:00:1e.0/0000:06:03.0/0000:08:05.0/net/enp8s5

lrwxrwxrwx 1 root root 0 Apr  9 11:16 lo -> ../../devices/virtual/net/lo

lrwxrwxrwx 1 root root 0 Apr  9 11:18 ppp0 -> ../../devices/virtual/net/ppp0

lrwxrwxrwx 1 root root 0 Apr  9 11:16 sit0 -> ../../devices/virtual/net/sit0

lrwxrwxrwx 1 root root 0 Apr  9 11:16 tunl0 -> ../../devices/virtual/net/tunl0

```

----------

## SamuliSuominen

 *galaxy001 wrote:*   

> I am using VPN over ent.
> 
> ppp0 will only show up after running `pon myVPN`
> 
> So, how can I make udev to make a virtual ppp0 without running /usr/sbin/pppd from pon ?
> ...

 

One of enp1s0, enp8s4 or enp8s5 is your PPP device? Then you can use /etc/init.d/net.enp1s0 symlink instead of  /etc/init.d/net.ppp0 symlink.

OR...

Does the device have a MAC?

```

# udevadm test-builtin net_id /sys/class/net/ppp0 2> /dev/null

# udevadm test-builtin net_id /sys/class/net/enp1s0 2> /dev/null

# udevadm test-builtin net_id /sys/class/net/enp8s4 2> /dev/null

# udevadm test-builtin net_id /sys/class/net/enp8s5 2> /dev/null

```

You could use the MAC and write your own /etc/udev/rules.d/70-my-network.rules, like:

 *Quote:*   

> 
> 
> SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="internet0" 
> 
> 

 

Replace xx:xx:xx:xx:xx:xx with your own MAC and replace internet0 with whatever static name you want to give it. Don't use kernel names like eth*, wlan*, ppp*. Pick a meaningful name yourself

that is not used by the kernel, like lan* net* internet* vpn* or such.

----------

## galaxy001

ppp0 is the decive used for PPTP over Ethernet.

Since it is a virtual device, it is not in `/sys/class/net/` before net-dialup/ppp running.

I still wonder why /etc/init.d/net.ppp0 can run under udev < 200 but not in udev-200.

```

# udevadm test-builtin net_id /sys/class/net/ppp0

calling: test-builtin

=== trie on-disk ===

tool version:          200

file size:         5601550 bytes

header size             80 bytes

strings            1255726 bytes

nodes              4345744 bytes

load module index

unload module index

```

----------

