OpenWrt可以在裸机上运行吗?

时间:2014-06-20 10:40:39

标签: bootloader openwrt

  1. OpenWrt可以在裸机上运行
  2. uboot / barebox上是否有可移植的应用程序框架?所以我的源代码与低级硬件无关。

1 个答案:

答案 0 :(得分:1)

  1. 绝对可能。我一直在使用裸机作为imx25 SoC的主要引导程序。公共包装中没有裸箱(我从未见过它),但你可以建立自己的" bootloader-barebox"包。 只需点击这些链接: https://vivekian2.wordpress.com/2007/03/28/building-your-own-package-for-openwrt/ http://prplfoundation.org/wiki/Creating_an_OpenWrt_package_for_a_web_page

  2. 我不确定框架,但您可能知道可以创建一个应用程序。 http://www.denx.de/wiki/view/DULG/UBootStandalone

  3. 以下是裸机的Makefile示例:

    #
    # Copyright (C) 2013 OpenWrt.org
    #
    # This is free software, licensed under the GNU General Public License v2.
    # See /LICENSE for more information.
    #
    
    include $(TOPDIR)/rules.mk
    include $(INCLUDE_DIR)/kernel.mk
    
    PKG_NAME:=barebox
    PKG_VERSION:=0.1
    PKG_RELEASE:=0
    
    PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)
    PKG_SOURCE:=$(PKG_NAME).tar.bz2
    PKG_SOURCE_PROTO:=git
    PKG_SOURCE_URL:=GIT-URL
    PKG_SOURCE_VERSION:=93aeafd04365cdd5dcb958cc6982c672163154ee
    PKG_SOURCE_SUBDIR:=$(PKG_NAME)
    PKG_MD5SUM:=
    PKG_TARGETS:=bin
    
    include $(INCLUDE_DIR)/package.mk
    
    define barebox/Default
      TITLE:=
      CONFIG:=
      IMAGE:=
    endef
    
    define Package/barebox/template
    define Package/barebox-$(1)
      SECTION:=boot
      CATEGORY:=Boot Loaders
      TITLE:=$(2)
      DEPENDS:=@TARGET_$(1)
      URL:=http://localhost/
      DEFAULT:=y if (TARGET_$(1)_Default)
      VARIANT:=$(1)
    endef
    endef
    
    define BuildBareboxPackage
        $(eval $(barebox/Default))
        $(eval $(barebox/$(1)))
        $(call Package/barebox/template,$(1),$(TITLE))
    endef
    
    define barebox/imx
      TITLE:=Barebox for the imx.
    endef
    
    BAREBOXS:=imx
    
    
    ifdef BUILD_VARIANT
        $(eval $(call barebox/$(BUILD_VARIANT)))
        BAREBOX_CONFIG:=$(if $(CONFIG),$(CONFIG),$(BUILD_VARIANT))
        BAREBOX_IMAGE:=$(if $(IMAGE),$(IMAGE),openwrt-$(BOARD)-$(BUILD_VARIANT)-barebox.bin)
    endif
    
    define Build/Prepare
        $(call Build/Prepare/Default)
    endef
    
    define Build/Configure
        $(CP) ./barebox-config $(PKG_BUILD_DIR)/.config
    endef
    
    define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
            CROSS_COMPILE=$(TARGET_CROSS) ARCH=arm 
    endef
    
    define Package/barebox/install/template
    define Package/barebox-$(1)/install
        $(CP) $(PKG_BUILD_DIR)/barebox.bin $(BIN_DIR)/$(2)
    endef
    endef
    
    $(foreach u,$(BAREBOXS), \
         $(eval $(call Package/barebox/install/template,$(u),openwrt-$(BOARD)-$(u)-barebox.bin)) \
    )
    
    $(foreach u,$(BAREBOXS), \
        $(eval $(call BuildBareboxPackage,$(u))) \
        $(eval $(call BuildPackage,barebox-$(u))) \
    )
    
相关问题