OpenWRT开发之——SDK

为了达到自己编写一个程序打包成ipk,并能在OpenWRT上运行的目的。我在网上找了些学习的资料。

本人参考的是:如何在OpenWRT上做开发

感谢该网友的耐心解答。虽然有现成的步骤,博主还是喜欢亲自实践一下,写下自己的实践过程。

第一步:生成SDK

make menuconfig 选上 “Build the OpenWRT SDK”

在 trunk目录下,执行:

$ make menuconfig

选择对应的"Target System"与"Target Profile",并选上"Build the OpenWrt SDK"。

然后 Save,退出。再make一次。

$ make V=99

make 完成之后,在 bin/ar71xx/ 目录下会生成SDK的压缩文件:

OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2

第二步:安装SDK

将上面所生成的 OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2 复制到其它路径下(指可以不在OpenWrt的源码路径下),再解压出来。

比如我将其放到 ~/Workspace/OpenWRT/ 路径下:

$ cp bin/ar71xx/OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2 ~/Workspace/OpenWRT
$ cd ~/Workspace/OpenWRT
$ tar jxvf OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2

在 ~/Workspace/OpenWRT/ 路径下就生成了 OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686 目录。

据说这个目录结构跟 OpenWrt的源码目录结构差不多。

第三步:创建项目程序

其实,这里可以是任意我们想要加入的程序,库等。这里就以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 一下,看程序本身有没有问题。

这个程序都如些之简单了,本人自己了make了一下,OK,再run了一下,正常。

第四步:将项目加入到OpenWrt的packages中

明日继续~

时间: 2024-10-11 21:52:38

OpenWRT开发之——SDK的相关文章

OpenWrt 开发版本主trunk MT7620N 无线驱动bug

环境: OpenWrt Development Trunk: svn co svn://svn.openwrt.org/openwrt/trunk/ BUG: 1. 无线无法建立连接. 2. 无线建立连接获取IP地址失败,断开连接. 出现问题的时候会伴随以下dmesg [ 3702.380000] ieee80211 phy0: rt2x00queue_write_tx_frame: Error - Dropping frame due to full tx queue 2 [ 3702.390

基于Library去开发android SDK——sdk打包

以上我们完成了sdk开发环境的搭建,以及sdk中功能代码的具体实现,这一篇将介绍如何通过gradle实现我们sdk打包. 1.在我们的mylibrary的gradle中做如下配置: task makeJar(type: Copy) { delete 'build/libs/mylibrary.jar' //删除已经存在的jar包 from('build/intermediates/bundles/default/')//从该目录下加载要打包的文件 into('build/outputs/')//

openwrt教程 第一章 物联网&amp;openwrt开发概述

转载请注明出处:http://blog.csdn.net/ns_code/article/details/28505569 序言 求两个正整数的最大公约数是一个很古老且很基本的问题,欧几里得在其著作<几何原本>中给出了高效的解法--辗转相除法,也叫做欧几里得算法.下面我们来看下求最大公约数的一些方法. 方法一 我们先来看欧几里得的辗转相除法.原理很简单,假设用f(x,y)表示x和y的最大公约数,我们令x>y,则有x=ky+b,如果一个数能够同时整除x和y,则必能同时整除b和y,而能够同时

我的openwrt开发相关文章

openwrt学习笔记: 在openwrt的学习过程中,走了非常多的弯路.一直以来有个期盼.希望能够出个简易教程,希望openwrt的同仁们能够更加高速的入手. . openwrt学习笔记(三十二):我的openwrt学习笔记(三十二):openwrt的UCI 2015.9.14 openwrt学习笔记(三十一):我的openwrt学习笔记(三十一):openwrt的vlan配置 2015.9.14 openwrt学习笔记(三十):   我的openwrt学习笔记(三十)webserver之uh

基于Library去开发android SDK——环境搭建

在项目开发中,有时候需要我们把项目中的某个功能或者模块打包成sdk供其他公司或者部门调用,以期快速实现某种功能.下面介绍一下我在开发中的整个思路历程,如发现有不对的或者不清楚的,请留言指正,我会定期查看回复并一起讨论. 1.新建一个工程,并在项目中新建一个Module. 2.新建好Library依赖库之后,我们就可以在里面实现我们需要的逻辑了.一般我们在写的时候往往需要自己写个app demo调用测试我们的代码是否能完成所需的功能,这个时候可以把Library依赖库添加项目中的app Modul

ZyLob.Ali1688.Op 阿里巴巴 开发平台SDK

1688批发市场是阿里旗下的一个批发平台,拥有庞大的客户群体.有幸在2014年参加了ISV开发者大会,回来以后一直关注平台接口的发展! 不过很可惜到目前为止官方还没有提供.net的Sdk,所以就自己立了个项目希望能够补上.由于本人能力的局限希望通过开源的方式借助大家力量一同完善这个项目 ZyLob.Ali1688.Op是针对http://www.1688.com 开放平台.net Sdk github地址:阿里巴巴开发平台SDK QQ群:414700836 由于项目刚刚开始很多内容都还不够完善,

跟着佐大学Lede/OpenWrt培训班讲义-03如何配置OpenWrt开发环境?

备注: 此文是佐须之男"跟着佐大学OpenWrt开发"入门培训班教学视频演讲稿提纲,虽是内部资料但再三考虑后对外公布,通过公众的监督来鞭策自己.如对完整内容感兴趣,可以参加"跟着佐大学OpenWrt开发"入门培训班:http://forgotfun.org/2018/04/openwrt-training-2018.html. 课程试听地址: https://pan.baidu.com/s/13nCmoaXTEfKc9F9-bdtHcA 安装虚拟机,Virtualb

Openwrt Image Builder/SDK 初探

image builder和SDK既可以从官网上下载,又可以自己进行编译(make menuconfig).官网上下载的是预先帮你编译好的,这样可以大量节省自己编译源码花的时间,这两个东西相当于半成品,最后的东西还是要你自己生成的.开发流程如下: 在编译时将image builder和sdk这两项勾上之后,它们就可以被编译出来的.当然也可以从官网下载,不过官网编译出来的包只支持X64 最下面两个就是Image builder和SDK. 然后将它们分别解压,名字太长了,改的短一点: 这里的目录和O

OpenWRT开发之——C++11的支持

前言 在上篇文章中博主尝试了在OpenWrt上用C++写个简单的程序测试了一下,可行. 博主这两天又了解了C++11,里面的新特性非常令我兴奋.比如shared_ptr, lambda, auto都是非常有用的特性.[点击了解C++11] 今天,博言主就尝试了一下. 正文 1. 检查gcc版本 据说,gcc在4.8版本之后就支持c++11了.我们先检查一下交叉编译器的版本. $ cd SDK    #进入OpenWrt的SDK路径 $ cd ./staging_dir/toolchain-mip