Openwrt Image Builder/SDK 初探
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 初探的更多相关文章
- Builder 模式初探
Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程.该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的 ...
- Microsoft Bot Builder Overview
微软机器人构建器概述 微软机器人Builder是一个强大的框架构建机器人可以处理自由交互和更多的引导,这种可能性是显式地显示给用户. 它很容易使用和利用c#写机器人提供一个自然的方式. 高级功能: 强 ...
- openwrt 上的 upnp wifi 音频推送 gmediarender
首先是必须启用的模块 Libraries ---> <*> libupnp Sound ---> <*> alsa-utils<*> madplay-a ...
- Openwrt:基于MT7628/MT7688的PWM驱动
前言 MT7628/MT7688的PWM驱动相关资料较少,官方的datasheet基本也是一堆寄存器,啃了许久,终于嚼出了味道.由于PWM存在IO口复用的问题,所以要提前配置好GPIO的工作方式,不然 ...
- menuconfig选项
打开一个典型的openwrt中package目录下都能发现两个相同点: ? package/<name> /Makefile ? package/<name> /patches ...
- 错误异常 (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 ...
- 第三篇:gradle 编译 Android app 概览
引言:经过上两篇的论述,我们已经从代码到架构都简单的熟悉了一遍,理论上,只要知道android app的编译过程,我们大可以自己写一份用gradle编译app的插件,插件内将将整个流程用Task的依赖 ...
- Office 365 机器人(Bot)开发入门
作者:陈希章 发表于 2017年7月29日 前言 作为人工智能技术的一个主要的表现形式,这些年机器人(bot)的应用越来越广泛.不管是有实物的,还是纯软件的,现在的机器人技术应该说已经走入寻常百姓家了 ...
- Bot Framework 搭建聊天机器人
这周我来跟大家分享的是在Microsoft Build 2016上发布的微软聊天机器人的框架. 现如今,各种人工智能充斥在我们的生活里.最典型的人工智能产品就是聊天机器人,它既可以陪我们聊天,也可以替 ...
随机推荐
- Scrum Master 面试题 – 你必须知道的22个Scrum基础知识
以下的22个问题基本上涵盖了Scrum所涉及的内容,如果你能够正确回答出所有问题,那么你已经具备了作为一名Scrum Master的基本素质:当然,作为一名合格的Scrum Master,更重要的是你 ...
- 6、软件配置工程师要阅读的书籍 - IT软件人员书籍系列文章
软件配置管理工程师的工作也是贯穿整个项目过程的.其主要针对项目中的各种文档.技术源码等等进行归档控制.一般的配置项比如需求说明书,概要设计,详细设计,测试文档,用户手册等,还有源代码管理,数据库文档文 ...
- 基于分布式、服务化的maven项目文件规划
引言 此文不是纯粹介绍maven概念,而是介绍一个具体的maven项目文件规划 这个规划可能适合于研发比较复杂的业务,这些业务有分布式和服务化的需要. 这个规划能够解决因为分布式和服务化要求而引起的项 ...
- 烂泥:nginx负载均衡
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 今天我们来学习下有关nginx的负载均衡配置.nginx的负载均衡是通过nginx的upstream模块和proxy_pass反向代理来实现的. 说明: ...
- ARM 汇编寻址方式
ARM支持9种寻址方式:立即数寻址,寄存器寻址,寄存器偏移寻址,寄存器间接寻址,基址变址寻址,多寄存器寻址,相对寻址,堆栈寻址,块拷贝寻址. 立即数寻址 将数据直接存放的指令中发给CPU,首先由于AR ...
- Linux IPC POSIX 共享内存
模型 #include <unistd.h> //for fstat() #include <sys/types.h> //for fstat() #include <s ...
- Windows 安装ELK
在Windows服务器上安装ELK logstash在windows平台下不能监控磁盘文件,用nxlog代替,监控文件并把内容发送到logstash 部署环境 Os :Windows 7 logsta ...
- PCI在linux系统中注册与注销示例
1. pci_driver结构struct pci_driver { struct list_head node; const char *name; const struct pc ...
- 解决为什么每次打开Eclipse新的workspace需要更新nexus-maven-repository-index问题
解决为什么每次打开Eclipse新的workspace需要更新nexus-maven-repository-index问题 新建一个Eclipse的workspace. 打开Window—>Pr ...
- Android 下载网络图片保存到本地
通过网络地址获取网络图片,点击下载将图片显示出来,然后点击图片将图片保存到本地. 首先需要在manifest上添加一些权限: <!-- 访问网络的权限 --> <uses-permi ...