原文:http://wiki.openwrt.org/doc/howto/obtain.firmware.sdk

为什么要使用SDK:

 Reasons for using the SDK are:
Compile custom software for a specific release while ensuring binary and feature compatibility
Compile newer versions of certain packages
Recompile existing packages with custom patches or different features

如何获得OpenWrt的SDK,有两种方法:

  1. 在编译路由器固件的时候,选中[*] Build the OpenWrt SDK;
  2. http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/这里去下载,如果你使用不同的OpenWrt版本或者不一样的路由器,请自行选择,入口地址http://downloads.openwrt.org/

-----------------------------------

BTW, 看上面的图,这里ImageBuilder/SDK/Toolchain都分别作什么用途的呢?

  • ImageBuilder,现改名为Image Generator了。你想要获得的路由器固件有许多种途径获得(直接从官方下载编译好了的bin文件;你自己下载源码编译;使用ImageGenerator生成),这个工具的使用成本介于下载bin文件与源码编译两者之间。参考http://wiki.openwrt.org/doc/howto/obtain.firmware.generate看看它能做什么事情:

     Reasons for using Image Generator are:
    
        Embedding packages directly into the SquashFS to reduce space requirements on the target
    Preconfigure images by embedding packages and configuration files directly into SquashFS, and save manpower when flashing many devices
    Building minimal images. for example without the web interface
    Learning
  • SDK就上面有介绍了,The SDK is a relocatable, precompiled OpenWrt toolchain suitable to cross compile single userspace packages for a specific target without compiling the whole system from scratch.;看看SDK里机的内容就明白了,它是Toolchain+各种脚本组成的(Toolchain就在staing_dir里头):
  • Toolchain,工具链,像mips-openwrt-linux-uclibc-ld/mips-openwrt-linux-cpp这样子的东西,位于staging_dir/toolchain-mips~中;

-----------------------------------

默认情况下,下载得的SDK里面没有包含任何的包。你需要安装的包要到openwrt官方源中下载,可以使用svn或者git方式下载包(实际上是下载包的Makefile文件,这个Makefile文件中指定了某个网址,可以让SDK去下载真正的源码,后面我们会在例子中看到)。

不过可惜的是,我使用svn和git试过了许多源,都没有办法下载到任何包的Makefile文件,所以只能使用暴露一点的方法了:去TracBrowser下载,例如https://dev.openwrt.org/browser/packages/utils/nano下载nano编辑器的Makefile文件,将它们放到~/openwrt/package/nano/中。

然后我们在~/openwrt根目录下,执行下面命令就把源码下载下来了:

make package/nano/download

源码会下载到~/openwrt/dl中

然后输入prepare准备命令(解压源码到~/openwrt/build_dir/target-ips_r2~中,并执行打包patch文件,如果还有依赖没有下载的话也会自动下载,如nano需要ncurses库)

make package/nano/prepare

上图在编译过程中出现了许多WARNING

WARNING: skipping <package> -- package not selected
Run make menuconfig and enable compilation for your package. It should be labeled with <*> or <M> to work correctly. Read image.configuration further up in this article.

意思就是在make menuconfig中没有选中这些包,所以它不编译!我是直接修改.config的,在里面搜索相应的WARNING指出的名字,然后改为=y就可以了。

输入编译命令(上图)

make package/nano/compile

结果已经在~/openwrt/bin/ar71xx中看到有这个ipk包了

使用OpenWrt的SDK的更多相关文章

  1. 开发OpenWrt路由器上LuCI的模块

    [题外话] 学校里最近改造了校园网,要求必须用iNode验证,万幸的是路由器能刷OpenWrt,并且OpenWrt上有好多iNode认证的开源项目,比如njit8021xclient(以下简称njit ...

  2. 在OpenWrt上编写自己的硬件操作程序

    上一篇文章中有写到如何使用OPENWRT的SDK,这里继续,写怎么在上面开发自己的应用程序. 我欲在OpenWrt上编写一个软件,它能够去读取某个AD芯片的多通道采样值. 在看这篇文章之前请看这官方的 ...

  3. 如何在Openwrt上,针对内核创建自定义Patch?

    参考资料: 1.http://wiki.openwrt.org/doc/devel/patches?s[]=quilt   --- 官方对于如何打Patch的说明 2.http://blog.csdn ...

  4. openWRT自学---如何开发新的用户态模块-helloworld

    以http://www.gargoyle-router.com/wiki/doku.php?id=openwrt_coding为参考文档 1.要获得openWRT的sdk环境.只要在Backfire的 ...

  5. 关于buildroot移植的思考

    buildroot是一个成熟的SDK框架,基于它有了openwrt. 曾经有一个项目,需要将原有的OpenWrt SDK改造,并且将软件框架重新定义.尝试精简原来的OpenWrt,并且删除所有的软件包 ...

  6. Openwrt Image Builder/SDK 初探

    image builder和SDK既可以从官网上下载,又可以自己进行编译(make menuconfig).官网上下载的是预先帮你编译好的,这样可以大量节省自己编译源码花的时间,这两个东西相当于半成品 ...

  7. openwrt sdk compile

    recently ,bought a router : tl-wr741n-v5 hd my aim : let the router dail in neetkeeper environment : ...

  8. MTK 官方 openwrt SDK 使用

    来源 1.https://github.com/unigent/openwrt-3.10.14 上面有个   问题:SDK 缺少 linux-3.10.14-p112871.tar.xz 在 http ...

  9. openwrt sdk 编译工具 及 hello world

    需要先在 make menuconfig 中打开 sdk make -j4在 bin\targets\ramips\mt7620生成一个openwrt-sdk-ramips-mt7620_gcc-7. ...

随机推荐

  1. 如何实现Web聊天

    假设你web聊天不知道这件事情,那么最好的方法可能是:openfire+jsjac openfire它是java做开源xmppserver,jsjac它是javascript做开源的Web版本xmpp ...

  2. Android APK反编译详解(非常有用)

    如何学习最快呢?无疑是通过研究别人的源代码? 但是,获取别人的源代码,比较困难.本文,仅限于用于学习开发. 这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧 ...

  3. OpenWrt配置opkg.conf

    傻人干活才累. 用openwrt有一年多了, 数据传输一直使用wget从外部的webserver取. 这样的方法我个人认为还算轻松. 可是调试的多了,写大型一点的程序,总是这样就有点麻烦了. 安装软件 ...

  4. ios animation暂停pause、恢复resume

    项目以使用来控制动画,例如暂停.复苏继续等待,看看代码:(非常easy实现) -(void)pauseLayer:(CALayer*)layer { CFTimeInterval pausedTime ...

  5. 定制XP引导屏幕背景图像和替换windows这句话

    (一)带滚动条界面变化 1.制作640*480位图,4位置16肤色,尺寸小于200Kb. 2.位图名boot.bmp,并将其复制到C:/windows根文件夹 3.更改boot.ini档.我的电脑/属 ...

  6. 于ubuntu-kylin14.10下一个,无法使用apt-get具( libc6-i386 : 赖: libc6 (= 2.15-0ubuntu10.5) 但 2.19-0ubuntu6 一个已)

    这篇文章有xhz1234(徐洪志)书写.转载请注明出处. http://blog.csdn.net/xhz1234/article/details/37044531 作者:徐洪志 背景:安装wine. ...

  7. MIFARE系列7《安全》

    飞利浦的MIFARE卡因为它的高安全性在市场上得到广泛应用,比方我们乘车用的公交卡,学校和企业食堂的饭卡等等.它每一个扇区有独立的密匙(6个字节的password),在通信过程中首先要验证密匙才干读写 ...

  8. java多线程检测可用IP

    最近有一个问题进行系统性能优化的时候来到.解析分享给大家后,. 我们socket当建立连接,假设我们不能将计算机连接到指定的站点,那么这将导致系统卡socket的connect在此方法. 我们都知道s ...

  9. css+html菜单适应性学习的宽度

    本文就是利用css和html自适应于文本菜单的长度. 后效果图实现,例如下列: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvajkwMzgyOTE4Mg= ...

  10. linux_操作基本语句

    总结一下常用的和不常用的linux命令,有些命令不常用的,是要反复去看才能记住的. 1.最基础的ls命令,相当于win下的dir命令,常用参数有 -a,-l 2.cd命令,cd到一个目录,跟win下的 ...