在嵌入式系统中移植n2n的正确步骤

  • A+
所属分类:技术杂记

    用n2n的目的,毫无疑问,是为了更大限度的省掉服务器的转发速率,实现节点与节点间的点对点通信。此种方法,被广泛用做视频传输。n2n的原理不用多说,网上介绍的内容很多,重要要了解tun设备的概念与使用。软件具体使用方法可以参见博客:https://cloud.tencent.com/developer/article/1120865。n2n的演示,测试时一般要使用2个edge节点,一台具有公共独立IP的计算机或者服务器。

   在嵌入式系统中移植n2n的正确步骤,其实与在ubuntu 16.04的系统的方法步骤基本类似。其实,只需要注重如下几个关键步骤,第一是:勾选内核支持tun设备,第二,需要libcrypto.so.1.0.0libasan.so.3库,第三,交叉编译n2n源代码。其中,在交叉编译n2n源代码之前,使用cmake图形界面指定交叉编译链工具。

   1.勾选内核支持tun设备,make xconfig或make menuconfig时,在Network device suport中一定要勾选Universal TUN/TAP device driver support,重新编译内核后,将内核烧入到嵌入式系统中时,一定会发现在/dev/net文件夹中多了一个tun设备。

   2.需要的crypto.so.1.0.0库文件,在openssl源代码里编译,但是如果是32位的系统,需要把openssl中的主目录下的makefile中的-m64去掉,才能正确编译到crypto.so.1.0.0,对于libasan.so.3库文件,可以直接在编译器目录里拷贝。

   3.编译n2n源代码时,用cmake工具生成makefile时,需要设定编译库文件的连接路径与Target的连接路径。

   主要是如上三个步骤,三个注意事项都做好了,即可成功交叉编译n2n。可以生成supernode与edge可执行文件。

   说的很简单,但是自己编译移植起来,却花费了好几天。其实首先要搞清楚tun的原理和应用,再就是注意编译时,cmake的使用方法,连接库文件,根据提示,一步步改进,即可顺利移植。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: