openwrt19 把自己的程序刷进固件
在package建立一个文件夹:test_01
这个文件夹中,有一个Makefile,还有一个文件夹src,用来存放c代码
在src文件夹里面,还有一个Makefile
main.c:
#include <stdio.h>
int main() {
printf("test_01!\n\n");
return 0;
}
src文件夹里面的Makefile:
OBJECTS = test_01
all : $(OBJECTS)
PKG_NAME=test_01
test_01: main.o
$(CC) $(LDFLAGS) -std=c99 $^ -o $@
main.o :main.c
$(CC) $(CFLAGS) -std=c99 -c $<
.PHONY:clean
clean:
@-rm *.o test_01
还有,最外面的Makefile:
include $(TOPDIR)/rules.mk
PKG_NAME:=test_01
PKG_VERSION:=5.0
PKG_RELEASE:=1
PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=Utilities
TITLE:=test_01 -- a Test Program
MAINTAINER:=even
endef
define Package/$(PKG_NAME)/description
a test program
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Package/test_01/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/test_01 $(1)/bin/
endef
$(eval $(call BuildPackage,test_01))
然后,你在openwrt主目录下 make menuconfig,就可以在Utilities的列表里找到test_01了
最后,刷好固件,就可以直接在系统里运行test_01:
友情提示: Makefile缩进需要使用Tab,而不是4个或者8个空格,否则会报错!!!
-----------------------------
最后补充一下,直接在跟目录建立一个”files“文件夹,然后把你想放进去的文件都放进去,就行(比如说/openwrt/files/opt/文件夹里面放你想放的文件)
Comments
Post a Comment