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 802.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/3600/4300/4310/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

时间: 2024-08-09 14:41:30

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

OpenWRT开发之——SDK

为了达到自己编写一个程序打包成ipk,并能在OpenWRT上运行的目的.我在网上找了些学习的资料. 本人参考的是:如何在OpenWRT上做开发 感谢该网友的耐心解答.虽然有现成的步骤,博主还是喜欢亲自实践一下,写下自己的实践过程. 第一步:生成SDK make menuconfig 选上 "Build the OpenWRT SDK" 在 trunk目录下,执行: $ make menuconfig 选择对应的"Target System"与"Target

2017-9-16-MTK OpenWRT SDK Analysise for UBNT ERX

2017-9-16-MTK OpenWRT SDK Analysise for UBNT ERX mtk openwrt Reference mtk sdk linux3.10 - mt7621 hw nat code ubnt erx patch mt7621 hw nat patch ubnt erx recover to edgeos Plan Plan A Porting Linux-3.10 HW Nat support to Linux-4.4 Plan B Porting ubnt

Ubuntu 使用Openwrt SDK交叉编译ipk包过程全纪录(超多图)

刚刚买了一个网件wndr4300路由器,快递还没送来就已经开始琢磨刷机的事了.卖家提供了一个明月的op固件,里面功能超级多但是非常臃肿,我在hg255d上的使用经验告诉我这样臃肿的包非常耗费CPU资源,而且会导致网速变慢和无故重启.恩山上大神编译的几乎都是添加了很多应用的固件.而我只需要一个ss功能就够了,最好有luci界面,所以决定自己编译出ipk包放到路由器上使用opkg安装. 首先去openwrt ss的github官网,https://github.com/shadowsocks/ope

基于OpenWRT,实现360 P1路由器上的朋友专享网络 功能

笔者分析了360 P1路由器上的朋友专享网络功能,发现其主要由如下子功能组成: 1. APP点击“立即开启”,则路由器会多出一个新的SSID:360朋友专享网络-8463.此SSID不加密:同时,原有的主SSID不变 2. STA接入此新SSID后 u  可以获得IP地址,且获得的IP地址与接入主SSID设备获取的IP地址在同一个网段: u 可以访问外网: u 不可以访问360路由器的Web, u 无法ping通360路由器的ip地址 u 无法ping通其他连入此路由器的其他客户端(包括连入36

Openwrt 初探

最近想研究一下Openwrt,于是开始搭建openwrt环境,虽然现在没有现成的板子,但是 可以先编译起来. 看了别人的帖子,都推荐使用svn从官网下载源码, svn co svn://svn.openwrt.org/openwrt/trunk/ 但是实际测试发现它的速度太慢了,为了得到官方的源码,从github上找到了它: https://github.com/openwrt-mirror/openwrt 将它下载下来之后,要安装一些必要的包来编译它,我使用的是ubuntu12.04. sud

openwrt sdk compile

recently ,bought a router : tl-wr741n-v5 hd my aim : let the router dail in neetkeeper environment : unbuntu linux 14.04 1  compile openwrt sudo apt-get update sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install binutils sudo apt-g

Android开发之Buidler模式初探结合AlertDialog.Builder讲解

什么是Buidler模式呢?就是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们. 那么要为何使用Buidler呢? 是为了将构建复杂对象的过程和它的部件分开因为一个复杂的对象,不但有很多大量组成部分,如AlertDialog对话框,有很多组成部件,比如Tittle,Message,icon,PositiveButton等等,但远不止这些,如何将这些部件装配成一个A

OpenWRT SDK Compile Package Error : Package hello is missing dependencies for the following libraries: libc.so.6

在OpenWRT SDK 编译 hello demo的时候出现错误: Package hello is missing dependencies for the following libraries: libc.so.6 发现以前可以编译通过,现在编不过了,奇怪. 后来在网上找原因,有的说改 libc.provides 添加  libc.so.6 这样把编译的ipk安装到openwrt里运行时出错. 最后,自己发现了问题 : 我在package/hello/src下make过一下检查代码有没有

使用OpenWrt的SDK

原文: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 exi