openwrt (二)目錄結(jié)構(gòu)及用途

目錄結(jié)構(gòu):

├────────────────/*build生成*/──────  bin
├────────────────/*build生成*/────── build_dir
├────────────────/*build生成*/──────staging_dir
├── config  //默認(rèn)的項(xiàng)目配置,如:defconfig_pxa1826p501
├────────────────/*build生成*/────── dl
├── docs  //文檔路徑
├── external  
        ├── management  //marvell定制過的包管理
        ├── routing     //marvell定制過的路由服務(wù)
        └── subpack  //marvell定制的package patch
├────────────────/*build生成*/────── feeds
├────────────────/*build生成*/────── host
├── include  //openwrt的makefile編譯核心
├── marvell  //marvell定義的外部代碼,uboot、kernel等使用這里的代碼
        └── (fastpath  fota  linux  lte-telephony  obm  services  swd  uboot  webui)
├── package   //openwrt的基礎(chǔ)軟件包
├── scripts  //host端源碼包管理的各類工具腳本
├────────────────/*build生成*/────── staging_dir
├── target  //平臺(tái)相關(guān)的文件、固件、kernel patch等
├── toolchain  //編譯工具依賴的工具、頭文件等
└── tools  //編譯工具依賴的工具、頭文件等

config目錄

保存的平臺(tái)相關(guān)的defconfig,make menuconfig 配置好后可以將.config保存起來,方面產(chǎn)品形態(tài)的定義。

  $ ls
  Config-build.in   Config-kernel.in         defconfig_pxa1826p307  defconfig_pxa1826p503  
  Config-devel.in   defconfig_pxa1826        defconfig_pxa1826p501  defconfig_pxa1826p601  
  Config-images.in  defconfig_pxa1826aquila  defconfig_pxa1826p502  

下次重編該產(chǎn)品只需要執(zhí)行:

  $ make defconfig_pxa1826
  $ make -jxx V=s

include目錄和Makefile

后面單章

package和feeds

  • package目錄是openwrt的基礎(chǔ)軟件包定義

  • feeds是擴(kuò)展的軟件包,feeds的軟件包倉庫地址可以通過feeds.conf.default指定。

  • package/feeds/packages/里面的軟件包是feeds.conf倉庫中定義的,執(zhí)行./scripts/feed install -a后會(huì)將軟件包鏈接到這里

      $ ls -F package/feeds/packages/
      acl@              ctorrent@            flashrom@     ktap@          liboil@         
      luabitop@         mwan3@               perl-compress-bzip2@         rtorrent@
      ......
    
      $ ls -l package/feeds/packages/mwan3
      lrwxrwxrwx 1 tjd tjd 33 May 15 15:43 package/feeds/packages/mwan3 -> ../../../feeds/packages/net/mwan3
    
  • 軟件包里包含該軟件包的配置文件、相關(guān)應(yīng)用腳本、和針對(duì)官方版本的patch:

      $ tree -L 2 feeds/packages/net/rsync/
      feeds/packages/net/rsync/
      ├── Config.in
      ├── files
      │   ├── rsyncd.conf
      │   └── rsyncd.init
      ├── Makefile
      └── patches
            └── 000-CVE-2014-9512.patch
    
      $ cat feeds/packages/net/rsync/Makefile
      include $(TOPDIR)/rules.mk
    
      #下面三個(gè)拼接成要下載的文件名
      PKG_NAME:=rsync
      PKG_VERSION:=3.1.1
      PKG_RELEASE:=2
    
      #要下載的文件名
      PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
      #下載地址
      PKG_SOURCE_URL:=http://rsync.samba.org/ftp/rsync/src
      #MD5校驗(yàn)碼
      PKG_MD5SUM:=43bd6676f0b404326eee2d63be3cdcfe
      PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
    
      PKG_INSTALL:=1
      PKG_BUILD_PARALLEL:=1
    
      include $(INCLUDE_DIR)/package.mk
      ......
      ......
    

dl目錄

feeds.conf指定的倉庫下載的packagefeed中Makefile中指定版本的各種源碼包。

build_dir和staging_dir

  • 執(zhí)行make時(shí)自動(dòng)在build_dir中解壓需要參與編譯的代碼包后才開始在build_dir開始代碼的編譯
  • staging_dir用于保存build_dir中編譯完成的軟件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容