ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

buildroot patch 补丁文件使用方法

2021-03-09 19:01:31  阅读:587  来源: 互联网

标签:buildroot tv xl2tpd 补丁 lac down l2tp 4g patch


在使用 buildroot 编译内核源码时,时常会有修改驱动或第三方包的需求,直接在 output/build/ 下修改源码,make clean 修改内容就会丢失,使用打补丁方式,把补丁包放到package下对于的包中,就能够解决此问题。
本篇博文记录修改 xl2tpd 源码打补丁过程。

第一步,拷贝 需要修改的文件 xl2tpd.c 文件,至指定文件夹下:

$ mkdir xl2tpd-patch
$ cp buildroot/output/build/xl2tp-v1.3.6/xl2tpd.c ./

修改文件内容如下:

void destroy_tunnel (struct tunnel *t)
{
....
if (t->lac)
    {
        t->lac->t = NULL;
        if (t->lac->redial && (t->lac->rtimeout > 0) && !t->lac->rsched &&
            t->lac->active)
        {
            l2tp_log (LOG_INFO, "Will redial in %d seconds\n",
                 t->lac->rtimeout);
            tv.tv_sec = t->lac->rtimeout;
            tv.tv_usec = 0;
            t->lac->rsched = schedule (tv, magic_lac_dial, t->lac);

            /* user add interface done process */
            l2tp_log(LOG_INFO, "IXE-cloud  Will closed usb 4g ether down...");
            system("ifconfig usb0 down");
            sleep(1);
            l2tp_log(LOG_INFO, "--> start 4g ether dailer ...");
            system("/etc/init.d/S99NDIS.sh");
			/* 增加内容如上 */
			
        }
    }
......

第二步,生成补丁文件

$ diff -uN build-2016/output/build/xl2tp-v1.3.6/xl2tpd.c xl2tpd.c > 0003_redailer_4g.patch

//补丁内容
--- ../build-2016/output/build/xl2tp-v1.3.6/xl2tpd.c	2021-03-09 17:54:16.545028827 +0800
+++ xl2tpd.c	2021-03-09 17:27:36.740699334 +0800
@@ -554,6 +554,8 @@
     struct call *c, *me;
     struct tunnel *p;
     struct timeval tv;
+    //char *ether_4g_down = "ifconfig usb0 down";
+
     if (!t)
         return;
 
@@ -619,6 +621,16 @@
             tv.tv_sec = t->lac->rtimeout;
             tv.tv_usec = 0;
             t->lac->rsched = schedule (tv, magic_lac_dial, t->lac);
+
+            /* user add interface done process */
+            l2tp_log(LOG_INFO, "IXE-cloud  Will closed usb 4g ether down...");
+            system("ifconfig usb0 down");
+            sleep(1);
+            l2tp_log(LOG_INFO, "--> start 4g ether dailer ...");
+            system("/etc/init.d/S99NDIS.sh");
+            l2tp_log(LOG_INFO, "--> start l2tp service ...");
+            system("echo \"c vpn\" > /var/run/xl2tpd/l2tp-control");
+
         }
     }

第三步,拷贝补丁文件至 package/xl2tp/0003_redailer_4g.patch

$ cp 0003_redailer_4g.patch package/xl2tp/

编译验证补丁功能。

标签:buildroot,tv,xl2tpd,补丁,lac,down,l2tp,4g,patch
来源: https://blog.csdn.net/weixin_38387929/article/details/114593973

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有