乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      openwrt SDK, 利用SDK生成自己的ipk安裝包

       wu_wade 2015-01-06
        Openwrt SDK是一個(gè)可再定位的,預(yù)編譯好的OpenWrt工具鏈,適用于在不從頭開始編譯整個(gè)系統(tǒng)的前提下,針對一個(gè)特定平臺交叉編譯單個(gè)用戶空間包。
      使用SDK的原因:
      為了保證二進(jìn)制和特性兼容性,針對特定的發(fā)行版編譯自定義軟件
      編譯更新版本的指定包文件

      使用自定義的補(bǔ)丁或者不同特性來重新編譯已經(jīng)存在的包


      #-----官方文檔如下
      This is the OpenWrt SDK. It contains a stripped-down version of the buildroot. You can use it to test/develop packages without having to compile your own toolchain or any of the libraries included with OpenWrt.
      To use it, just put your buildroot-compatible package directory in the subdir 'package/' and run 'make' from this directory.

      #------ OPENWRT集成非官方包之Makefile規(guī)則
      include $(TOPDIR)/rules.mk

      PKG_NAME:=[軟件包名字 和文件夾名稱一樣]
      PKG_VERSION:=[軟件包版本 自己寫個(gè)]
      PKG_RELEASE:=1

      PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

      include $(INCLUDE_DIR)/package.mk

      define Package/$(PKG_NAME)
              SECTION:=utils
              CATEGORY:=[軟件包在menuconfig里的位置 比如Base system]
              DEPENDS:=[依賴包 兩個(gè)之間通過空格分隔 前面加+為默認(rèn)顯示 選中該軟件包自動(dòng)選中依賴包 不加+為默認(rèn)不顯示 選中依賴包才顯示]
              TITLE:=[標(biāo)題]
              PKGARCH:=[平臺 比如ar71xx 全部寫all]
              MAINTAINER:=[作者]
      endef

      define Package/$(PKG_NAME)/description
              [軟件包簡介]
      endef


      #非本目錄下的源碼文件, 拷貝到此相應(yīng)目錄下.

      # 如../../xucommon/xucommon.c, 則將 xucommon.c 拷貝到此目錄下的源碼的 ../../ 

      define Build/Prepare

          mkdir -p $(PKG_BUILD_DIR)
          $(CP) ./src/* $(PKG_BUILD_DIR)/

      endef

      define Build/Configure
      endef

      define Build/Compile
      endef

      define Package/$(PKG_NAME)/conffiles
      [升級時(shí)保留文件/備份時(shí)備份文件 一個(gè)文件一行]
      endef

      define Package/$(PKG_NAME)/install
              $(CP) ./files/* $(1)/
      endef

      define Package/$(PKG_NAME)/preinst
      [安裝前執(zhí)行的腳本 記得加上#!/bin/sh 沒有就空著]
          #!/bin/sh
          uci -q batch <<-EOF >/dev/null
           delete ucitrack.@aria2[-1]
           add ucitrack aria2
           set ucitrack.@aria2[-1].init=aria2
           commit ucitrack
          EOF
          exit 0
      endef

      define Package/$(PKG_NAME)/postinst
      [安裝后執(zhí)行的腳本 記得加上#!/bin/sh 沒有就空著]
          #!/bin/sh
           rm -f /tmp/luci-indexcache
          exit 0
      endef

      Package/$(PKG_NAME)/prerm
      [刪除前執(zhí)行的腳本 記得加上#!/bin/sh 沒有就空著]
      endef

      Package/$(PKG_NAME)/postrm
      [刪除后執(zhí)行的腳本 記得加上#!/bin/sh 沒有就空著]
      endef

      $(eval $(call BuildPackage,$(PKG_NAME)))
      ---------------------------------------------------------------------

      # --- 自己的例程: httpclient 目錄下的 Makefile

      include $(TOPDIR)/rules.mk

      PKG_NAME:=httpclient
      PKG_RELEASE:=1
      PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

      include $(INCLUDE_DIR)/package.mk

      define Package/httpclient
        SECTION:=utils
        CATEGORY:=Utilities
        TITLE:=HTTP Client Demo
      endef

      define Package/httpclient/description
      HTTP Client Demo
      endef

      define Build/Prepare
      mkdir -p $(PKG_BUILD_DIR)
      $(CP) ./src/* $(PKG_BUILD_DIR)/
      endef

      define Package/httpclient/install
      $(INSTALL_DIR) $(1)/usr/sbin
      $(INSTALL_BIN) $(PKG_BUILD_DIR)/httptest $(1)/usr/sbin/
      $(INSTALL_DIR) $(1)/etc/config
      $(INSTALL_CONF) ./files/test.lua $(1)/etc/config/test.lua
      endef

      $(eval $(call BuildPackage,$(PKG_NAME)))


      #--- ser2net 之Makefile

      include $(TOPDIR)/rules.mk

      PKG_NAME:=ser2net
      PKG_VERSION:=2.7
      PKG_RELEASE:=2

      PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
      PKG_SOURCE_URL:=@SF/ser2net
      PKG_MD5SUM:=22977477789868923a5de09a85e847dd

      PKG_FIXUP:=libtool
      PKG_INSTALL:=1

      include $(INCLUDE_DIR)/package.mk

      define Package/ser2net
        SECTION:=net
        CATEGORY:=Network
        TITLE:=Serial port TCP/IP redirector
        URL:=http:///projects/ser2net/
      endef

      define Package/ser2net/description
        This is ser2net, a program for allowing network connections to serial ports.
        See the man page for information about using the program. Note that ser2net
        supports RFC 2217 (remote control of serial port parameters), but you must
        have a complient client.
      endef

      define Package/ser2net/conffiles
      /etc/ser2net.conf
      endef

      # uses GNU configure

      define Package/ser2net/install
      $(INSTALL_DIR) $(1)/usr/sbin
      $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ser2net $(1)/usr/sbin/
      $(INSTALL_DIR) $(1)/etc
      $(INSTALL_CONF) $(PKG_BUILD_DIR)/ser2net.conf $(1)/etc/
      endef

      $(eval $(call BuildPackage,ser2net))

      #--- uhttpd 之 Makefile

      include $(TOPDIR)/rules.mk

      PKG_NAME:=uhttpd
      PKG_RELEASE:=31

      PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
      PKG_CONFIG_DEPENDS :=
      CONFIG_PACKAGE_uhttpd-mod-lua
      CONFIG_PACKAGE_uhttpd-mod-tls
      CONFIG_PACKAGE_uhttpd-mod-tls_cyassl
      CONFIG_PACKAGE_uhttpd-mod-tls_openssl

      include $(INCLUDE_DIR)/package.mk

      define Package/uhttpd/default
        SECTION:=net
        CATEGORY:=Network
        SUBMENU:=Web Servers/Proxies
        TITLE:=uHTTPd - tiny, single threaded HTTP server
        MAINTAINER:=Jo-Philipp Wich <xm@subsignal.org>
      endef

      define Package/uhttpd
        $(Package/uhttpd/default)
        MENU:=1
      endef

      define Package/uhttpd/description
       uHTTPd is a tiny single threaded HTTP server with TLS, CGI and Lua
       support. It is intended as a drop-in replacement for the Busybox
       HTTP daemon.
      endef


      define Package/uhttpd-mod-tls
        $(Package/uhttpd/default)
        TITLE+= (TLS plugin)
        DEPENDS:=uhttpd +PACKAGE_uhttpd-mod-tls_cyassl:libcyassl +PACKAGE_uhttpd-mod-tls_openssl:libopenssl
      endef

      define Package/uhttpd-mod-tls/description
       The TLS plugin adds HTTPS support to uHTTPd.
      endef

      define Package/uhttpd-mod-tls/config
              choice
                      depends on PACKAGE_uhttpd-mod-tls
                      prompt "TLS Provider"
                      default PACKAGE_uhttpd-mod-tls_cyassl

                      config PACKAGE_uhttpd-mod-tls_cyassl
                              bool "CyaSSL"

                      config PACKAGE_uhttpd-mod-tls_openssl
                              bool "OpenSSL"
              endchoice
      endef

      UHTTPD_TLS:=
      TLS_CFLAGS:=
      TLS_LDFLAGS:=

      ifneq ($(CONFIG_PACKAGE_uhttpd-mod-tls_cyassl),)
        UHTTPD_TLS:=cyassl
        TLS_CFLAGS:=-I$(STAGING_DIR)/usr/include/cyassl -DTLS_IS_CYASSL
        TLS_LDFLAGS:=-lcyassl -lm
      endif

      ifneq ($(CONFIG_PACKAGE_uhttpd-mod-tls_openssl),)
        UHTTPD_TLS:=openssl
        TLS_CFLAGS:=-DTLS_IS_OPENSSL
        TLS_LDFLAGS:=-lssl
      endif


      define Package/uhttpd-mod-lua
        $(Package/uhttpd/default)
        TITLE+= (Lua plugin)
        DEPENDS:=uhttpd +liblua
      endef

      define Package/uhttpd-mod-lua/description
       The Lua plugin adds a CGI-like Lua runtime interface to uHTTPd.
      endef


      TARGET_CFLAGS += $(TLS_CFLAGS)
      TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
      MAKE_VARS +=
      FPIC="$(FPIC)"
      LUA_SUPPORT="$(if $(CONFIG_PACKAGE_uhttpd-mod-lua),1)"
      TLS_SUPPORT="$(if $(CONFIG_PACKAGE_uhttpd-mod-tls),1)"
      UHTTPD_TLS="$(UHTTPD_TLS)"
      TLS_CFLAGS="$(TLS_CFLAGS)"
      TLS_LDFLAGS="$(TLS_LDFLAGS)"

      define Build/Prepare
      mkdir -p $(PKG_BUILD_DIR)
      $(CP) ./src/* $(PKG_BUILD_DIR)/
      endef

      define Package/uhttpd/conffiles
      /etc/config/uhttpd
      /etc/uhttpd.crt
      /etc/uhttpd.key
      endef

      define Package/uhttpd/install
      $(INSTALL_DIR) $(1)/etc/init.d
      $(INSTALL_BIN) ./files/uhttpd.init $(1)/etc/init.d/uhttpd
      $(INSTALL_DIR) $(1)/etc/config
      $(INSTALL_CONF) ./files/uhttpd.config $(1)/etc/config/uhttpd
      $(INSTALL_DIR) $(1)/usr/sbin
      $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd $(1)/usr/sbin/uhttpd
      endef

      define Package/uhttpd-mod-tls/install
      $(INSTALL_DIR) $(1)/usr/lib
      $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_tls.so $(1)/usr/lib/
      endef

      define Package/uhttpd-mod-lua/install
      $(INSTALL_DIR) $(1)/usr/lib
      $(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_lua.so $(1)/usr/lib/
      endef


      $(eval $(call BuildPackage,uhttpd))
      $(eval $(call BuildPackage,uhttpd-mod-tls))
      $(eval $(call BuildPackage,uhttpd-mod-lua))



      具體操作如下:


      利用 SDK 生成自己的ipk安裝包, 
      下載  http://pan.baidu.com/share/link?shareid=123840&uk=1577556057

      1. 解壓
      tar jxvf OpenWrt-SDK-ar71xx-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2

      2. 進(jìn)入目錄
      cd OpenWrt-SDK-ar71xx-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2

      3. 將自己的代碼目錄拷貝到本目錄的 package目錄下
         注意 Makefile 必須遵守openwrt的規(guī)則, 可參考
         http://blog./uid-27194309-id-3432651.html

      4. 編譯, 成功后在bin/ar71xx/packages目錄下可以看到相關(guān)的ipk文件, 可用winscp 拷貝出來
      #編譯所有組件
      make V=99  

      #單獨(dú)編譯某個(gè)組件
      make package/hid/compile

      5. 安裝到路由器上實(shí)驗(yàn), 這個(gè)你們都懂的

      #注: SDK的目錄不要改動(dòng), 否則出現(xiàn)如下錯(cuò)誤
      xxg@xxg-desktop:~/SDK-ar71xx-gcc-4.6-linaro_uClibc-0.9.33.2$ make
      /bin/sh: /home/xxg/OpenWrt-SDK-ar71xx-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: not found
      /bin/sh: /home/xxg/OpenWrt-SDK-ar71xx-for-linux-i486-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: not found


        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多