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

在编译时将image builder和sdk这两项勾上之后,它们就可以被编译出来的。
当然也可以从官网下载,不过官网编译出来的包只支持X64

最下面两个就是Image builder和SDK。

然后将它们分别解压,名字太长了,改的短一点:

这里的目录和Openwrt源码包是差不多的,不过Image builder只有打包功能,所以
不需要toolchain,只需要打包的一些工具和预编译好的一些二进制文件。

这里的packages目录和Openwrt源码不一样,这里是预先编译好的ipk,
而openwrt里面的packages目录是用来存放ipk包的一些Makefile和patch。

开始打包,首先,用make info来查看当前已经有的profile,也就是预定义的型号信息:

make info > info.txt

这里会输出很多行,这里选择一些自己感兴趣的行:

Current Target: "ar71xx (Generic)"
Default Packages: base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools kmod-gpio-button-hotplug swconfig kmod-ath9k wpad-mini uboot-envtools dnsmasq iptables ip6tables ppp ppp-mod-pppoe kmod-nf-nathelper firewall odhcpd odhcp6c
Available Profiles: Default:
Default Profile (all drivers)
Packages: kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev
Minimal:
Minimal Profile (no drivers)
Packages: -kmod-ath9k -wpad-mini
ath5k:
Atheros .11abg WiFi (ath5k)
Packages: kmod-ath5k -kmod-ath9k
CARAMBOLA2:
Carambola2 board from 8Devices
Packages: kmod-usb-core kmod-usb2
ALFAAP96:
ALFA Network AP96 board
Packages: kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-rtc-pcf2123
HORNETUB:
ALFA Network Hornet-UB board (8MB flash, 32MB ram)
Packages: kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
HORNETUBx2:
ALFA Network Hornet-UB-x2 board (16MB flash, 64MB ram)
Packages: kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
ALFANX:
ALFA Network N2/N5 board
Packages:
TLWA901:
TP-LINK TL-WA901N/ND
Packages:
TLWDR4300:
TP-LINK TL-WDR3500////MW4350R
Packages: kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
TLWDR4900V2:
TP-LINK TL-WDR4900v2
Packages: kmod-usb-core kmod-usb2 kmod-ledtrig-usbdev
TLWR740:
TP-LINK TL-WR740N/ND
Packages:
TLWR741:
TP-LINK TL-WR741N/ND
Packages:
TLWR743:
TP-LINK TL-WR743N/ND
Packages:
TLWR841:
TP-LINK TL-WR841N/ND
Packages:

这些列表应该是从根目录下面的.targetinfo提取的(文件管理器会把它隐藏)

其中Default Packages是默认会编译进二进制文件的ipk。然后下面每一个型号对应的
Packages是自己要增加的package

可以看到里面有TLWR740,那么开始编译:

make image PROFILE="TLWR740"

可以看到生成了一个bin文件夹。

准备开始刷机,刷机之前的系统(水星MW150R):

刷机之后:

原来是没有安装luci。
telnet成功,进一步说明了已经刷好了,但是缺少luci。

这里已经为我们准备好了luci:

那么将这些东西编译进去吧:

make image PROFILE="TLWR740" PACKAGES="luci-app-firewall luci-base luci-lib-ip luci-lib-nixio luci-mod-admin-full luci-proto-ppp luci-theme-bootstrap luci"

现在编译出来的bin从2.87MB涨到3.3MB了:

刷完之后luci出现了:

接下来用SDK做一个helloworld:

参考资料:http://jphome.github.io/blog/2014/03/29/openwrt_sdk.html

新建好相应的文件和目录之后,使用make V=99来生成:
最后得到一个ipk文件

把它编译进去:

make image PROFILE="TLWR740" PACKAGES="luci-app-firewall luci-base luci-lib-ip luci-lib-nixio luci-mod-admin-full luci-proto-ppp luci-theme-bootstrap luci helloworld"

刷完固件之后发现它已经在里面了。

然后执行helloword(可能telnet出问题了,h没有显示出来)

参考资料:

https://cokebar.info/archives/90

http://demon.tw/hardware/image-generator-image-builder-openwrt.html

http://blog.berry10086.com/Tech/Openwrt/tips-about-customize-openwrt/

http://www.it165.net/network/html/201303/1004.html

Openwrt Image Builder/SDK 初探的更多相关文章

  1. Builder 模式初探

    Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程.该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的 ...

  2. Microsoft Bot Builder Overview

    微软机器人构建器概述 微软机器人Builder是一个强大的框架构建机器人可以处理自由交互和更多的引导,这种可能性是显式地显示给用户. 它很容易使用和利用c#写机器人提供一个自然的方式. 高级功能: 强 ...

  3. openwrt 上的 upnp wifi 音频推送 gmediarender

    首先是必须启用的模块 Libraries ---> <*> libupnp Sound ---> <*> alsa-utils<*> madplay-a ...

  4. Openwrt:基于MT7628/MT7688的PWM驱动

    前言 MT7628/MT7688的PWM驱动相关资料较少,官方的datasheet基本也是一堆寄存器,啃了许久,终于嚼出了味道.由于PWM存在IO口复用的问题,所以要提前配置好GPIO的工作方式,不然 ...

  5. menuconfig选项

    打开一个典型的openwrt中package目录下都能发现两个相同点: ? package/<name> /Makefile ? package/<name> /patches ...

  6. 错误异常 (1)Android Studio错误提示:Gradle project sync failed. Basic functionality (eg. editing, debugging) will not work properly

    [已解决]Android Studio错误提示:Gradle project sync failed. Basic functionality (eg. editing, debugging) wil ...

  7. 第三篇:gradle 编译 Android app 概览

    引言:经过上两篇的论述,我们已经从代码到架构都简单的熟悉了一遍,理论上,只要知道android app的编译过程,我们大可以自己写一份用gradle编译app的插件,插件内将将整个流程用Task的依赖 ...

  8. Office 365 机器人(Bot)开发入门

    作者:陈希章 发表于 2017年7月29日 前言 作为人工智能技术的一个主要的表现形式,这些年机器人(bot)的应用越来越广泛.不管是有实物的,还是纯软件的,现在的机器人技术应该说已经走入寻常百姓家了 ...

  9. Bot Framework 搭建聊天机器人

    这周我来跟大家分享的是在Microsoft Build 2016上发布的微软聊天机器人的框架. 现如今,各种人工智能充斥在我们的生活里.最典型的人工智能产品就是聊天机器人,它既可以陪我们聊天,也可以替 ...

随机推荐

  1. Play Framework 第一个应用

    熟悉的Hello World 新创建一个工程,了解下重要文件的结构 .\app controllers\models\views 目前比较流行的MVC架构 .\conf application.con ...

  2. JAVA 8 方法引用 - Method References

    什么是方法引用 简单地说,就是一个Lambda表达式.在Java 8中,我们会使用Lambda表达式创建匿名方法,但是有时候,我们的Lambda表达式可能仅仅调用一个已存在的方法,而不做任何其它事,对 ...

  3. ORACLE查看表空间对象

    ORACLE如何查看表空间存储了那些数据库对象呢?可以使用下面脚本简单的查询表空间存储了那些对象: SELECT TABLESPACE_NAME       AS TABLESPACE_NAME    ...

  4. linux screen 命令详解[转]

    一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...

  5. CentOS 7最小化安装后找不到‘ifconfig’命令——修复小提示

    如果你不知道在哪里可以找到ifconfig命令,请按照以下简单的步骤来找到它.首先,让我们找出哪个包提供了ifconfig命令.要完成这项任务,输入以下命令: [root@jrserver app_f ...

  6. Windows Sever关于80端口之争

    默认情况下安装了IIS服务器角色的Windows系统,其80端口就被占用了.但是占用80端口的进程却不是WWW Service更不是IIS Admin Sevice,而是处于kernel地位的Http ...

  7. iOS上传App Store报错:this action cannot be completed -22421 解决方案

    最近swift项目升了xcode8,提交版本时,遇到这个: this action cannot be completed -22421 瞬间懵逼,连具体报错原因都没有,只有一个代码 22421,找了 ...

  8. C++之STL一般总结

    重新复习一下STL 什么是STL? STL(模板和标准模板库),实现与类型无关的算法和数据类型,需要将实现中的类型参数化,允许用户根据它的需要制定不同的类型. 一.一般介绍 STL(Standard ...

  9. jquery——九宫格大转盘抽奖

    一.用到的图片 二.代码如下,重点是js部分 <!DOCTYPE html> <html> <head> <meta http-equiv="Con ...

  10. Objective-C声明在头文件和实现文件中的区别

    Objective-C声明在头文件和实现文件中的区别 转自codecloud(有整理) 调试程序的时候,突然想到这个问题,百度一下发现有不少这方面的问答,粗略总结一下: 属性写在.h文件中和在.m文件 ...