Q: CONFIG_PPP_MPPE=m vs CONFIG_PPP_MPPE=y What is the difference between 'm' and 'y'? I am reading a guide, and the first step is to make sure that my kernel supports PPP and MPPE.
It should be:
# cat /boot/config-`uname -r` | grep G_PPP=
CONFIG_PPP=y
# cat /boot/config-`uname -r` | grep MPPE
CONFIG_PPP_MPPE=y

I get:
root@N550JV:~# cat /boot/config-`uname -r` | grep G_PPP=
CONFIG_PPP=y
root@N550JV:~# cat /boot/config-`uname -r` | grep MPPE
CONFIG_PPP_MPPE=m
root@N550JV:~# 

My uname -r:
3.8.0-39-generic


A: Kernel features can be compiled in-kernel or compiled as loadable modules. When specifying y, the feature will be compiled in kernel. When m is specified, the feature will be compiled as a loadable kernel module.
Reference docs:


*

*PPP: http://tldp.org/HOWTO/PPP-HOWTO/

*MPPE: http://mppe-mppc.alphacron.de/

A: The first option CONFIG_PPP is used to enable PPP (point-to-point protocol) support, and the second option CONFIG_PPP_MPPE which depends on the first one, is used to enable specific compression method. Compression method can differ so it is better to choose m(module) instead of Y(built-in) so you can load MPPE support when you need it to. If you choose m instead of Y, could save some bytes from your kernel image size.
