hi3798mv100SDK上DropBear的交叉編譯
阿新 • • 發佈:2021-12-24
hi3798mv100SDK上DropBear的交叉編譯
Dropbear是一個相對較小的SSH伺服器和客戶端。它執行在各種基於POSIX的平臺上。Dropbear是一種開源軟體,以MIT風格的許可證分發。Dropbear對於“嵌入”型Linux(或其他Unix)系統(如無線路由器)特別有用。
而在打造hi3798mv100的ramdisk時,SDK並沒有包含此工具。因此需要手工新增上。
一、下載Dropbear
官方地址:https://matt.ucc.asn.au/dropbear/dropbear-2020.81.tar.bz2
下載下來的原始碼,放入SDK的預設開原始碼目錄下:third_party/open_source/
二、新增Makefile
在source/component/新增目錄dropbear目錄,仿照此目錄下的其他子目錄,新增上相應的Makefile
#=============================================================================== # export variable #=============================================================================== ifeq ($(CFG_HI_EXPORT_FLAG),) SDK_DIR ?= $(shell cd $(CURDIR)/../../.. && /bin/pwd) include $(SDK_DIR)/base.mak endif #=============================================================================== # local variable #=============================================================================== DROPBEAR := dropbear-2020.81 DROPBEAR_DIR := $(HI_OUT_DIR)/obj/source/component/dropbear INSTALL_DIR = $(DROPBEAR_DIR)/release TARGETS := dropbear CFLAGS += $(subst -Werror,,$(CFG_HI_CFLAGS)) #=============================================================================== # rules #=============================================================================== .PHONY: all clean dropbear all: $(TARGETS) $(AT)test -d $(HI_INCLUDE_DIR) || mkdir -p $(HI_INCLUDE_DIR) clean: $(AT)rm -rf $(INSTALL_DIR) $(DROPBEAR_DIR) dropbear: $(DROPBEAR_DIR)/$(DROPBEAR)/tar $(AT)cd $(DROPBEAR_DIR)/$(DROPBEAR) && make && make install $(DROPBEAR_DIR)/$(DROPBEAR)/tar: $(AT)test -d $(INSTALL_DIR) || mkdir -p $(INSTALL_DIR) $(AT)test -d $(DROPBEAR_DIR)/$(DROPBEAR) || (tar xjf $(OPEN_SOURCE_DIR)/$(DROPBEAR).tar.bz2 -C $(DROPBEAR_DIR); \ cd $(DROPBEAR_DIR)/$(DROPBEAR); \ sh ./configure CC=$(CFG_HI_ARM_TOOLCHAINS_NAME)-gcc CPP=$(CFG_HI_ARM_TOOLCHAINS_NAME)-cpp AR=$(CFG_HI_ARM_TOOLCHAINS_NAME)-ar AS=$(CFG_HI_ARM_TOOLCHAINS_NAME)-as LD=$(CFG_HI_ARM_TOOLCHAINS_NAME)-ld NM=$(CFG_HI_ARM_TOOLCHAINS_NAME)-nm STRIP=$(CFG_HI_ARM_TOOLCHAINS_NAME)-strip OBJDUMP=$(CFG_HI_ARM_TOOLCHAINS_NAME)-objdump RANLIB=$(CFG_HI_ARM_TOOLCHAINS_NAME)-ranlib CFLAGS="$(CFLAGS)" --target=$(CFG_HI_ARM_TOOLCHAINS_NAME) --host=$(CFG_HI_ARM_TOOLCHAINS_NAME) --prefix=$(INSTALL_DIR) --enable-static --with-zlib=`pwd`/../../zlib/release;) $(AT)touch $@
dropbear預設依賴於zlib,因此需要先編譯一遍zlib(進入source/component/zlib目錄,然後執行make命令),然後進入source/component/dropbear,執行make命令,即可編譯出來。
編譯後的程式位於:out/hi3798cv200/hi3798cv2dmo/obj/source/component/dropbear/release/目錄下。