[meta-xilinx] Including TUN/TAP kernel drivers for openVPN
Jean-Francois Dagenais
jeff.dagenais at gmail.com
Fri Jun 2 05:44:49 PDT 2017
Hi Brett,
> On May 31, 2017, at 13:11, Brett R. Nicholas <Brett.R.Nicholas.TH at dartmouth.edu> wrote:
>
> I need to run openVPN on the Zedboard, which requires access to the TUN/TAP network interface. OpenVPN installed fine, and is incorporated into my image, but it appears that the necessary TUN/TAP kernel drivers are not present.
>
> How can I ensure that the TUN/TAP kernel drivers are included in my image?
This is a generic yocto/OpenEmbedded question, unrelated to meta-xilinx. You basically need to somehow add a mytuntap.cfg file in the SRC_URI of the linux-xlnx recipe. This file will contain the same syntax as found in the ".config" file of linux (i.e. "CONFIG_ABC=y" lines). How you get the linux-xlnx recipe to consider this file depends on your needs and how you want to maintain and distribute your software. Have a look at the "common tasks", perhaps more specifically this: http://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#creating-config-fragments. Personnaly, I keep this webpage open at all times: http://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html
>
>
> I have the following two lines in my conf/local.conf file:
> IMAGE_INSTALL_append = " kernel-modules"
> CORE_IMAGE_EXTRA_INSTALL += "openssl openvpn docker tunctl
>
> Does meta-xilinx not have a recipe for the TUN/TAP kernel modules? I don't know how I could include them in my (otherwise plain) linux-xlnx kernel.
It is not a recipe but a config fragment.
>
> I also tried using bitbake -c menuconfig virtual/kernel to manual include the modules in the image, however after doing this and rerunning bitbake core-image-minimal I still did not see tun.ko appear in either of the two locations below that I would expect them to be installed to...
This will modify the .config file found in the "volatile" build directory of the linux recipe. Read this whole section: http://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#using-menuconfig
Once the kernel builds with your config changes, the tun/tap will either be directly in the kernel image (if you =y) or in a package called kernel-module-xyz (if you =m). If you want these modules to be installed in your image, something (a recipe, your local.conf or the machine's .conf) will need to pull on them (RDEPENDS or RRECOMMENDS).
Yocto has a steep learning curve at the beginning (and an almost endless steady one as you get proficient), but don't be afraid to invest your time, it pays off in the end. Remember, "grep -rI" through all the yocto recipes and code is your friend, as well as that mega-manual I pointed. Good luck!
Cheers.
More information about the meta-xilinx
mailing list