文档章节

创建openwrt软件包

Kent_0628
 Kent_0628
发布于 2015/12/12 19:01
字数 615
阅读 95
收藏 1

方法一

1、生成SDK

make menuconfig选上“Build the OpenWRT SDK”,然后 Save,退出。再make一次。
make 完成之后,在 bin/ramips/ 目录下会生成SDK的压缩文件:
OpenWrt-SDK-ramips-rt305x_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2

2、安装SDK

把上面生成的OpenWrt-SDK-ramips-rt305x_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2解压到别的目录下

3、创建helloworld项目

其实,这里可以是任意我们想要加入的程序,库等。这里就以helloword为例。
在任意路径下,创建helloword项目。比如这里还是在 ~/Workspace/OpeWRT 目录下。

$ cd ~/Workspace/OpenWRT
$ mkdir helloword
$ cd helloword
$ touch helloword.c Makefile
在 ~/Workspace/OpenWRT/ 目录下创建了 helloword 目录,并生成 helloword.c与Makefile文件。
如下为 helloworld.c的内容:
#include <stdio.h>
 
int main()
{
    printf("This is my hello word!\n");
    return 0;
}
Makefile的内容:

helloworld : helloworld.o
    $(CC) $(LDFLAGS) helloworld.o -o helloworld

helloworld.o : helloworld.c
    $(CC) $(CFLAGS) -c helloworld.c

clean :
    rm *.o helloworld
自己make一下确保程序没有问题,一定要注意tab键空格。

4、创建helloworld包

进入 OpenWrt/Packages/ 并在该目录下创建 helloworld 目录,并进入该目录。

$ cd ~/Workspace/OpenWrt/OpenWrt-SDK/package
$ mkdir helloworld
$ cd helloworld
将我们第三步写的程序复制到这个目录下来,更名为src。再新建一个 Makefile 文件。

$ cp -r ../../../helloworld src
$ touch Makefile
整个过程下来,package目录结构如下:

package
|-- helloworld
|   |-- Makefile
|   `-- src
|       |-- helloworld.c
|       `-- Makefile
`-- Makefile

Makefile 文件如下:

include $(TOPDIR)/rules.mk

PKG_NAME:=helloworld
PKG_RELEASE:=1

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

include $(INCLUDE_DIR)/package.mk

define Package/helloworld
	SECTION:=utils
	CATEGORY:=Utilities
	TITLE:=Hello world!!!
	DEPENDS:=+libwebsockets +libsqlite3 +libjson-c
endef

define Package/helloworld/description
	It's my first package demo.
endef

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

define Package/helloworld/install
	$(INSTALL_DIR) $(1)/usr/sbin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/sbin
endef

$(eval $(call BuildPackage,helloworld))
make -j1 V=s 成功了。生成了 helloworld_1_ramips_24kec.ipk。

5、试验helloworld

通过WinSCP把ipk上能到openwrt根目录下的/tmp

cd /tmp
opkg install helloworld_1_ramips_24kec.ipk
用which命令查看 helloworld 安装的路径:

which helloworld
在 /bin/ 路径下

cd /bin
helloworld

方法二

1、创建helloworld项目

把方法一创建helloworld文件夹复制到openwrt根目录下的package。

2、选择helloworld项目

make menuconfig
Utilities——》helloworld勾选上并保存退出
make -j3 V=s
如果要单独编译模块:
make package/helloworld/compile
make package/helloworld/install

3、试验helloworld

cd /bin
helloworld

4、后续开发

把新helloworld文件替换旧hellworld文件

重新编译

make package/helloworld/compile
在openwrt目录的./build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/helloworld/ipkg-ramips_24kec/helloworld/bin下找到重新生成的helloworld文件,重新替换路由器/bin下面的helloworld。


上面的内容本人是参照网上文档并自己实践过。

© 著作权归作者所有

Kent_0628
粉丝 2
博文 21
码字总数 5335
作品 0
广州
私信 提问
OpenWrt系列教程汇总 & OpenWrt简体中文Wiki

OpenWrt系列教程汇总 OpenWrt简体中文Wiki 快速导航

AlphaJay
2011/07/26
42.7K
1
OpenWRT开发之——创建软件包(有更新)

试验步骤 为了达到自己编写一个程序打包成ipk,并能在OpenWRT上运行的目的。我在网上找了些学习的资料。 本人参考的是:如何在OpenWRT上做开发 感谢该网友的耐心解答。虽然有现成的步骤,博主...

临峰不畏
2015/05/04
17.2K
2
为pcDuino安装OpenWrt

OpenWrt是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。OpenWrt支持各种处理器架构,无论是...

酸酸苹果汁
2014/02/18
6.8K
1
移植OpenWrt到RT5350

slider >>> Too few posts! (required minimum are 3) (the featured image may be missing) Previous 移植OpenWrt到CuHead Pro WiFi Posted by: zou, baozhu , 三月 13, 2014 CuHead Pro是一......

Pillar_zuo
2014/03/13
23.3K
5
极路由4刷OpenWrt(LEDE)

申请开发者模式 登录路由器后台 进入插件中间 选中路由器信息 申请开发者权限 安装开发者插件 刷 Bootloader 下载 的 Breed 通过SSH登录路由器 (必须安装开发者插件,端口 账号 密码 ) 通过...

dingdayu
02/24
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
55分钟前
4
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
6
0
从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
5
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部