<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          openwrt開發(fā)使用-增加package

          共 3178字,需瀏覽 7分鐘

           ·

          2023-08-08 21:59

          前言

          openwrt開發(fā)中,我們經(jīng)常要增加一些自定義的進程運行,這個時候怎么合入我們的整包呢,這里就用到了package增加開發(fā)。這里以oor為例進行示范:

          作者:良知猶存

          轉(zhuǎn)載授權(quán)以及圍觀:歡迎關(guān)注微信公眾號:羽林君

          或者添加作者個人微信:become_me


          package介紹:

          openwrt里面有很多目錄,其中package這個目錄包含了額外的軟件包,可以通過OpenWrt的包管理系統(tǒng)進行安裝。這些軟件包包括各種網(wǎng)絡(luò)服務(wù)、應(yīng)用程序和工具,是我們二次開始是必須要熟悉的目錄。

          增加package-以oor為例:

          oor介紹:

          不過它比較老,最近的維護都是幾年前,所以適配新的openwrt要做些修改

          我的是openwrt 22.03的版本。

          oor增加:

          找個地方拉代碼

          git clone https://github.com/OpenOverlayRouter/oor

          把里面openWRT目錄 放到openwrt/package目錄,并改名叫oor目錄

          我就放在了package目錄下:

          make menuconfig配置

          開始編譯make package/oor/compile V=sV=s可以查看編譯問題

          oor問題解決:

          需要修改oor老舊的makefie文件:

          下面是舊的,我們進行一項一項的修改

          include $(TOPDIR)/rules.mk

          PKG_NAME:=oor
          PKG_REV:=2b0c0b6a5a9ed7fb987ef09b46f9c6fbfaddea4c
          PKG_VERSION:=1.3.0
          PKG_RELEASE:=6

          PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
          PKG_SOURCE_URL:=git://github.com/OpenOverlayRouter/oor.git
          PKG_SOURCE_PROTO:=git
          PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
          PKG_SOURCE_VERSION:=$(PKG_REV)

          make package/oor/compile V=s這個時候會出現(xiàn)拉代碼失敗:

          有三處修改,tar.gz 文件名稱修改,commit id修改,clone鏈接修改

          打開對應(yīng)的github倉庫找到對應(yīng)的1.3.0版本,看到最近的commit id是d86a56e

          在全部的提交信息搜索d86a56e

          復(fù)制commit id

          修改對應(yīng)的PKG_REV, 其次修改PKG_SOURCE_URL鏈接,改成https://github.com/OpenOverlayRouter/oor.git,最后修改PKG_SOURCE,因為在驗證下載oor倉庫版本時候,發(fā)現(xiàn)文件是.tar.gz

          最終修改后的內(nèi)容

          include $(TOPDIR)/rules.mk

          PKG_NAME:=oor
          PKG_REV:=d86a56e3440c1c190ec2c9370ed5f12285b79b46
          PKG_VERSION:=1.3.0
          PKG_RELEASE:=6

          PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
          PKG_SOURCE_URL:=https://github.com/OpenOverlayRouter/oor.git
          PKG_SOURCE_PROTO:=git
          PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
          PKG_SOURCE_VERSION:=$(PKG_REV)

          make package/oor/compile V=s,編譯發(fā)現(xiàn)可以正常下載:

          不過到最后,發(fā)現(xiàn)編譯代碼有問題

          經(jīng)過查看發(fā)現(xiàn)時原始代碼太老,寫的有問題,那我們就用增加一個patch方法修改我們的github倉庫代碼

          首先在package/oor目錄建立一個patches目錄

          其次在build_dir目錄找到對應(yīng)下載的oor-1.3.0目錄,拷貝一個待修改版本cp -rp oor-1.3.0 oor-1.3.0-bak

          開始修改,cd oor-1.3.0-bak,修改tun.htun.c,vi oor/data-plane/tun/tun.h

          變量增加extern

          extern int tun_receive_fd;
          extern int tun_ifindex;
          extern uint8_t *tun_receive_buf;

          vi oor/data-plane/tun/tun.c 增加變量申明

          int tun_receive_fd;
          int tun_ifindex;
          uint8_t *tun_receive_buf;

          修改代碼,生成patch,diff -urN oor-1.3.0 oor-1.3.0-bak/ > 001.patch

          將001.patch放入patches目錄

          scp 001.patch /home/lyn/Documents/lyn_work/openwrt/package/oor/patches/

          oor 編譯完成:

          再次編譯,001.patch會打到oor代碼里面,問題解決make package/oor/compile V=s

          拷貝ipk到路由器

          scp bin/packages/mipsel_24kc/base/oor_1.3.0-6_mipsel_24kc.ipk [email protected]:/tmp

          在路由器安裝opkg install /tmp/ oor_1.3.0-6_mipsel_24kc.ipk

          也可以把路由器的整個固件進行拷貝sysupgrade升級。oor還有些依賴也是同樣的方法處理。

          結(jié)語

          這就是我自己在openwrt增加package的分享。如果大家有更好的想法,也歡迎大家加我好友交流分享哈。


          作者:良知猶存,白天努力工作,晚上原創(chuàng)公號號主。公眾號內(nèi)容除了技術(shù)還有些人生感悟,一個認真輸出內(nèi)容的職場老司機,也是一個技術(shù)之外豐富生活的人,攝影、音樂 and 籃球。關(guān)注我,與我一起同行。

                                        ????????????????  END  ????????????????

          推薦閱讀

          【1】jetson nano開發(fā)使用的基礎(chǔ)詳細分享

          【2】Linux開發(fā)coredump文件分析實戰(zhàn)分享

          【3】CPU中的程序是怎么運行起來的 必讀

          【4】cartographer環(huán)境建立以及建圖測試

          【5】設(shè)計模式之簡單工廠模式、工廠模式、抽象工廠模式的對比

          本公眾號全部原創(chuàng)干貨已整理成一個目錄,回復(fù)[ 資源 ]即可獲得。


          瀏覽 173
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  自拍三级片青青草视频 | 上海人妻第三次3p | 天天澡天天爽爽 | 18禁在线亚洲 | 老司机在线无码视频免费 |