# pppd not working with kernel 2.6.3

## alaa

I tried compiling my kernel with PPP support but I chose to compile PPP as modules. I then emerged pppd and ran it and I get this error:

```
pppd: This system lacks kernel support for PPP.  This could be because

the PPP kernel module could not be loaded, or because PPP was not

included in the kernel configuration.  If PPP was included as a

module, try `/sbin/modprobe -v ppp'.  If that fails, check that

ppp.o exists in /lib/modules/`uname -r`/net.

See README.linux file in the ppp distribution for more details.
```

I tried  modprobe -v ppp_generic and got:

```
insmod /lib/modules/2.6.3-gentoo/kernel/drivers/net/ppp_generic.ko

FATAL: Module ppp_generic already in kernel.
```

I then did modprobe -v ppp_async and got:

```
insmod /lib/modules/2.6.3-gentoo/kernel/drivers/net/ppp_generic.ko

insmod /lib/modules/2.6.3-gentoo/kernel/drivers/net/ppp_async.ko

FATAL: Error inserting ppp_async (/lib/modules/2.6.3-gentoo/kernel/drivers/net/ppp_async.ko): Unknown symbol in module, or unknown parameter (see dmesg)
```

I then looked at dmesg ang this is what it said:

```
PPP generic driver version 2.4.2

devfs_mk_cdev: could not append to parent for ppp

failed to register PPP device (-17)

ppp_async: Unknown symbol ppp_channel_index

ppp_async: Unknown symbol ppp_register_channel

ppp_async: Unknown symbol ppp_input

ppp_async: Unknown symbol ppp_input_error

ppp_async: Unknown symbol ppp_output_wakeup

ppp_async: Unknown symbol ppp_unregister_channel

ppp_async: Unknown symbol ppp_unit_number
```

What's going on? How come those symbols are unknown? Help?   :Confused: 

----------

## 50cc

What do you get from a 

```

depmod -a

```

?

----------

## gmichels

I could only get it to work by compiling it in the kernel (not as modules). Now the reason... dunno why  :Very Happy: 

----------

## claw

I had the same problem with 2.6.4. Got it working the same way.

You may want to watch bug 47519.

----------

## Gentree

If pppd is a module it is not loaded at boot time, so any attemp to load other ppp stuff will fail. 

Equally if the other ppp modules are built in they will be loaded auto but the basic pppd support is not , so they will fail.

There is an option to let the kernel try to autoload a required module:

Loadable module support -> Automatic kernel module loading.

 *Quote:*   

>  could only get it to work by compiling it in the kernel (not as modules). Now the reason... dunno why

 

Now you know. HTH

----------

## claw

 *Gentree wrote:*   

> If pppd is a module it is not loaded at boot time, so any attemp to load other ppp stuff will fail. 
> 
> ...
> 
> There is an option to let the kernel try to autoload a required module:
> ...

 

I understand what you are saying about loadable module support. My configuration for my 2.4.25 kernel matched your suggestions exactly, yet the same configuration doesn't work with 2.6.4. That's with KMOD=y and all the PPP modules set to "m", and explicitly modprobing all the modules.

Instead, what happens for me is:

```
modprobe -v ppp

Can't find it   (I'm paraphrasing)
```

yet when I:

```
modprobe -v ppp_generic

Already in kernel
```

except that lsmod shows that neither ppp nor ppp_generic are loaded.

Thanks,

Craig.

----------

## Gentree

 *Quote:*   

> I understand what you are saying about loadable module support. My configuration for my 2.4.25 kernel matched your suggestions exactly, yet the same configuration doesn't work with 2.6.4. 

 

I used 2.6.4 for a while now I use 2.6.5-love2 , -love4 and ck2 kernels . This works fine with all three.

Check your setup is the same, some names change or disappear so dont assume copying .config or the oldconfig script will give you EXACTLY the same , it wont.

 *Quote:*   

> That's with KMOD=y and all the PPP modules set to "m", and explicitly modprobing all the modules. 

 

I did not meantion KMOD , cant advise. 

You can load them one at a time if it helps you get clear on what your need and how it works but I just set all to [*] and let the kernel sort it out , it works fine.

 *Quote:*   

> 
> 
> Instead, what happens for me is: 
> 
> Code:	
> ...

 

ppp is not a module name. The ppp support module is called ppp_generic

 *Quote:*   

> 
> 
> yet when I: 
> 
> Code:	
> ...

 

It's already in , so you cant load it.

 *Quote:*   

> except that lsmod shows that neither ppp nor ppp_generic are loaded.

 

lsmod only shows explicitly loaded modules not modules that are build into kernel since they are not loaded as modules. So ppp in not a module and ppp-generic is in but not as a module.

So for it's fine, what's not working?

----------

## claw

Glad it's working for you, Gentree. That it works in several 2.6.5 variants gives me some hope.

As for what's not working: although ppp_generic seems to be present, I am unable to load other ppp modules (ppp_async, for example) due to unknown symbol errors.

Please refer to the first message in this thread for specifics.

----------

## Gentree

Sorry claw, I was not paying enough attention to your first post.

I suggest you look at the bug report indicated above there is some stuff there that will probably help you.

If  not, you need to be more specific about your set up in general.

Are you just moving up from 2.4 ?

Are you still useing devfs?

do you have any reason for not using kernel built-in ppp modules ? I do it this way and have not had any of the pbs you indicate.

are you using dialup or pppoe?

If you are using pppoe you should pb emerge rp-pppoe , this will do some of the setting up for you and has a debug option that gives some helpful diagnostics.

HTH.

----------

## claw

Thanks, Gentree. I have been keeping my eye on that bug. However, the situation in the bug is slightly different from my own as I use udev.

Yes, I am moving up from 2.4.25 to 2.6.4.

I dropped devfs and am using udev.

I don't have any reason to not use PPP as built-ins, except for kernel bloat. I believe once, long ago, I was advised to make them modules or the adsl utilities would not work. Somewhere along the way, that requirement changed, as I can now use the adsl tools with PPP built-ins.

I am using PPPoE.

I believe my situation is the same as yours regarding the use of built-ins (and  I'm glad it works). Do you have a reason for using built-ins versus modules?

----------

## Gentree

OK , I have moved to udev also , so no diff there.

What's the issue with kernel bloat? Mine is around 2 Mb, with everything I need built-in, I can handle that.

I find it hard to see a time when I would boot up my desktop sytem and not want internet available, so why have it as modules?

Try built-in ppp* and see if you get any further.

Probably on major difference on my system is that I moves to NPTL and recompiles glibc etc but I think it unlikely to be related to your issues.

Just go built-in,  and see how you get on.

----------

## claw

Thank you for your effort, Gentree. But, as mysteriously as the bug appeared, it has now gone.

I was this >||< close to submitting a kernel bug when I decided I should recompile PPP as modules one more time. Because I just knew they would ask for verbose details. So I did. And everything worked beautifully.

Suspecting some wierd build order bug, I ran "make clean" and tried it again. Same. It works. So I'm running with PPP modules in 2.6.4 now, and it works great.

Just in case anyone else gets stuck as I did, here are the relevant settings from my kbuild .config file:

```
CONFIG_NET=y

CONFIG_INET=y

CONFIG_NETFILTER=y

CONFIG_NETDEVICES=y

CONFIG_NET_ETHERNET=y

CONFIG_NET_PCI=y

CONFIG_PPP=m

CONFIG_PPP_ASYNC=m

CONFIG_PPP_SYNC_TTY=m

CONFIG_PPP_DEFLATE=m

CONFIG_PPP_BSDCOMP=m
```

And for no other reason than I at one time suspected a nasty influence from the EHCI module:

```
CONFIG_IEEE1394_OHCI1394=m

CONFIG_USB_UHCI_HCD=m

CONFIG_USB_EHCI_HCD=m
```

Could be what happened was I copied the 2.4 .config to the 2.6 source tree. That was before I read that I shouldn't do that.

----------

## przeuj

hi,

i had the same problem, and nothing you wrote here was help for me. So i've done some googling and heres what ive found:

http://www.ussg.iu.edu/hypermail/linux/kernel/0309.0/1504.html

and i remembered ive done /dev/ppp myself when i was trying to make this working - the message in syslog said so, and i did it  :Smile:  but the problem was that i didnt have the modules compiled. so when i did compiled them i had same problems as in the first post.

to fix that i just did: rm /dev/ppp and foila - modules loaded smoothly  :Smile: 

regards

----------

## BlinkEye

 *przeuj wrote:*   

> hi,
> 
> i had the same problem, and nothing you wrote here was help for me. So i've done some googling and heres what ive found:
> 
> http://www.ussg.iu.edu/hypermail/linux/kernel/0309.0/1504.html
> ...

 

great! thanks a lot, this is working

----------

