怎么编译openwrt mt7620a 编译程序包

零基础openwrt固件编译_戴维营教育吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:9贴子:
零基础openwrt固件编译
零基础OpenWRT固件编译戴维营教育《物联网/智能家居开发》课程系列1.OpenWRT项目简介OpenWRT是一个专用于无线路由器设备的Linux发行版。支持众多的芯片方案的路由器设备,由x86到ARM,MIPS等等。目前稳定版本是: BARRIER BREAKER (14.07)目前开发版本是: Chaos Calmer (trunk)详细信息参看官方网址: 2.采用OpenWRT的智能路由器极路由小米路由优酷路由迅雷路由360安全路由华为荣耀立方联想NewWiFi其他商业WiFi广告定制路由…… ……3. 采用OpenWRT的开发板WRTNodeVoCore4. 获取OpenWRT的源代码我们可以去项目的官方网站获取其源代码,通过SVN或者GIT的方式,官方开发者网站:trunk (main development tree)Main repositorygit clone git://git.openwrt.org/openwrt.git14.07 branch (Barrier Breaker) - Main repositorygit clone git://git.openwrt.org/14.07/openwrt.git当然,在我们正式开始编译前我们需要把前提依赖环境和源码准备好,打开虚拟终端,执行如下命令:openwrt@cheetah-desktop:~$ sudo apt-get install git build-essential libncurses5-dev gawk libssl-openwrt@cheetah-desktop:~$ mkdir -p $HOME/openwrt@cheetah-desktop:~$ cd
$HOME/openwrt@cheetah-desktop:~/opensource$ git clone git://git.openwrt.org/openwrt.git##上面命令会克隆远程仓库到本地,根据网络环境情况需要较长时间。待源代码克隆下来之后,我们的源码和编译环境基本就OK了。5. OpenWRT官方固件编译进入源码目录下面进行软件包的更新与“安装”。openwrt@cheetah-desktop:~/opensource$openwrt@cheetah-desktop:~/opensource/openwrt$ ./scripts/feeds update -a;openwrt@cheetah-desktop:~/opensource/openwrt$ ./scripts/feeds install -a;执行上面的脚本之后就可以对我们中意的设备类型进行编译设置。如下命令进入终端下面的buildroot编译配置界面:我们教程所采用的设备的CPU芯片是MT7620系列(MT7620A/N),下面就开始为MT7620系列的设备进行最基本的配置,步骤如下:Target System (Atheros AR7xxx/AR9xxx) ---&回车进入下翻后空格选择Ralink RT288x/RT3xxx然后再回车后退,这时编译目标就是: Target System (Ralink RT288x/RT3xxx) ---&了。Subtarget (RT3x5x/RT5350 based boards) ---&回车进入下翻按空格选择(X) MT7620 based boards 然后回车后退,这时编译的子目标就是:Subtarget (MT7620 based boards) ---& 了。LuCI ---& 回车进去 1. Collections ---& 再回车进去再空格选择第一个&*& luci(new),然后在Exit一路后退到主菜单。在主菜单Exit退出配置并保存。That's All. 基本配置就是这么简单。下面开始我们人生的“第一次”路由器固件编译了,是不是很紧张阿? What Ever. 第一次总是要经历的,那就积极面对吧。我们用下面这个命令来进行编译固件:make V=s就这么一个命令就会开启整个编译构建系统,全自动的去为我们编译我们需要的固件。所以的所以,这个过程将会是一个漫长的等待。如果互联网网络比较通畅,那么咱们这第一次编译的时间大约要花2~3小时。因为构建系统需要去互联网上下载各种程序库源代码,然后再逐个编译,最后集成并组建出我们需要的固件。这段时间里,我们大可以出去湘江边溜达一圈,隔江望望毛主席,再回来咱们戴维营里看结果。溜达回来后,编译也许结束,等结束的这个时候,我们的固件会乖乖的躺在当前目录下的bin/ramips/这个路径下.openwrt@cheetah-desktop:~/opensource/openwrt$ ls bin/ramips/md5sums
openwrt-ramips-mt7620-rp_n53-squashfs-sysupgrade.binopenwrt-ramips-mt7620-ai-br100-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-rt-n14u-squashfs-sysupgrade.binopenwrt-ramips-mt7620-ArcherC20i-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-uImage.binopenwrt-ramips-mt7620-dir-810l-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-vmlinux.binopenwrt-ramips-mt-squashfs-factory.bin
openwrt-ramips-mt7620-vmlinux.elfopenwrt-ramips-mt-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-whr-1166d-squashfs-sysupgrade.binopenwrt-ramips-mt7620-Lenovo-y1-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-whr-300hp2-squashfs-sysupgrade.binopenwrt-ramips-mt7620-Lenovo-y1s-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-whr-600d-squashfs-sysupgrade.binopenwrt-ramips-mt7620-mlw221-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-wmr-300-squashfs-sysupgrade.binopenwrt-ramips-mt7620-mlwg2-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-wr8305rt-squashfs-sysupgrade.binopenwrt-ramips-mt7620-mt7620a_mt7530-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-wrtnode-squashfs-sysupgrade.binopenwrt-ramips-mt7620-mt7620a_mt7610e-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-wt3020-8M-squashfs-factory.binopenwrt-ramips-mt7620-mt7620a-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-wt3020-8M-squashfs-sysupgrade.binopenwrt-ramips-mt7620-mt7620a_v22sg-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.binopenwrt-ramips-mt7620-mzk-750dhp-squashfs-sysupgrade.bin
openwrt-ramips-mt7620-zbt-wa05-squashfs-sysupgrade.binopenwrt-ramips-mt7620-na930-squashfs-sysupgrade.bin
packagesopenwrt-ramips-mt7620-root.squashfs到了这一步,我们的MT7620系列芯片的路由器固件就都已经编译好了。我们可以选择我们合适型号的固件进行刷机了。 部分营员拿到的北京豌豆机器人小组的开发板WRTNode对应的固件文件是:openwrt-ramips-mt7620-wrtnode-squashfs-sysupgrade.bin 部分营员们拿到的铁盒子路由器是中性包装的工程产品,虽然和其他知名品牌的在外观上有差异,但是大可以不要在意这些区别。他们的配置都是差不多的。铁盒子型号WR8305RT对应的固件文件就是: openwrt-ramips-mt7620-wr8305rt-squashfs-sysupgrade.bin设备图片如下:WRTNodeWR8305RT谢谢各位,欢迎交流并指正。---- 大茶园丁
藤门留学汇聚美国TOP30名校招生办官员,无与伦比的权威性,藤门留学真正高端留学品牌!藤门留学招办专家团队均有10年以上的名校招办录取工作经验,高端留学服务至臻之选!
贴吧热议榜
使用签名档&&
保存至快速回贴嵌入式(1)
嵌入式c(2)
#PS:请尊重原创,不喜勿喷
#PS:要转载请注明出处,本人版权所有
#PS:这个只是 &《 &我自己 & &》理解,如果和你的原则相冲突,请
谅解,勿喷&
第一步,使用git clone 下载openwrt-sourcecode.
git clone :openwrt-mirror/openwrt.git
第二步,复制feeds.conf.default 到 feeds.conf,并修改你想要的包。
如我添加了8021x的认证包。
第三步,更新需要的包,并安装(使用feeds脚本)
&/pre&&pre name=&code& class=&plain&& ./scripts/feeds update -a ./scripts/feeds install -a
第四步,选择自自己的MCU-target(类似linux kernel 配置)
make menuconfig
1 为选择MCU系列
2 为选择MCU-Board
3 在network中,选择加入的8021x认证包
4 如果你有其他的配置,请自行根据需要选择。
5 退出保存.config
第五步,编译(make)
注意N为你计算机的cpu虚拟核数
注意在编译中会出一部分错误,大概是两类。
一为:缺少依赖,下面可以解决
解决办法:
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev
二为:自己添加包编译问题
解决办法:
去看你添加包的readme.md和google
下面说说编译完了,有些什么东西,而我们要的在哪里?
下图是编译完后,openwrt目录的变化,
下图是我们需要的openwrt固件
在bin/xxx/目录下
在bin/xxx/packages下,是所有的编译出来的ipk包。如下图我的8021x包的ipk包
在staging_dir下,是这个平台的lib,include文件,同时还有这个平台的交叉编译工具
最后,特别声明,刷机有风险,请各位谨
慎。如果刷机出现任何问题,我不负任何责
任(多查查资料多问问人)
#PS:请尊重原创,不喜勿喷
#PS:要转载请注明出处,本人版权所有
有问题请留言,看到后我会第一时间回复
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:9861次
排名:千里之外
原创:26篇
(1)(2)(3)(4)(4)(1)(1)(1)(2)(4)(2)(1)(1)(6)极由路1s(mt7620a)交叉编译go程序
起因,由于coolpy5核收转换到go语言开发,所以目前超人正在进行相关的技术攻关,在程序编写方面一切都相对顺利。由于coolpy5是一个真正的商业级性能的系统也考滤到coolpy之前的版本已经确定的coolpy是支持以家庭路由器为核心直接实现智能家居或智慧农业的离线解决方案,所以超人才进行了这一次技术预测试,也为以后coolpy这环节的闭环作准备工作。以下文章关于openwrt相关的基础将会略过,看不懂的朋友请自行查找相关知识点。
略过知识点:
1.linux基础(交叉编译基础)
2.openwrt管理(openwrt基础)
游戏开始:
1.首先通过putty连接到路由器看看路由器cpu架构/这里边有一个错误,你看到的所有cpu相关的描述都是mips字眼,其他极1s路由器的这个cpu(mt7620a)是mipsel架构,即在交叉编译时我们所设置的goarch参数应该是mips32le才正确,如果你使用的cpu是用mips的其他路由器请自然把这个参数设置为mips32即可。
2.go-mips32.git这个项目维护人数是400+人,我个人推测这可能是 golang团队牵头的,希望以后能正式集成到golang的新版本中。
//下载go-mips32源 git clone
cd go-mips32/src
//配置GO编译参数
export GOOS=linux
export GOARCH=mips32le &== Change to mips32 if mips
//执行编译
./make.bash
//创建编译后文件存放文件夹
sudo mkdir /opt/mipsgo
sudo cp -R * /opt/mipsgo
//go工程参数配置
export GOROOT=/opt/mipsgo
export PATH=/opt/mipsgo/bin:$PATH
3.编译go程序作为测试
mkdir /opt/slu
cd /opt/slu
vim main.go
//源代码&&&&&&&&&&&&&&&&&&&&&&.
package mainimport "fmt"func main() {
fmt.Println("")}
//源代码&&&&&&&&&&&&&&&&&&&
//保存退出
由于以上已经设置了path所以在编译打包go源代码时要直接在要打包的.go程序文件夹下直接执行go build指令即可go build main.go
在当前目录下会生成编译后的执行文件,这个文件就是我们的程序,可以直接在极路由1s的openwrt系统里运行
把main文件通过WinSCP上传到路由器文件系统
提权main文件,默认情况下main文件是没有执行权限的,所以通过指令提权让它可以被运行,修改成功后可以看到main文件显示为绿色。
执行main程序测试运行
已被打印出来,说明程序已正常运行。
Coolpy5将以上亿级的物联网运行设备为设计开发目标的物联网系统,将继续支持hub节点离线运行于由路器作为雾计算终端。
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。openwrt(2)
一.在/home/wfly/mt7620/op/openwrt/package/下 建立/test/files目录。
1.进入/test/files目录建立test.lua文件,如下:
module(&luci.controller.admin.test&, package.seeall)
function index()
local page
entry({&admin&, &test&}, alias(&admin&, &test&, &testconfig&), _(&test 管理&), 35).index = true
entry({&admin&, &test&, &testconfig&}, cbi(&admin_test/testconfig&), _(&test 管理&), 1)
2.建立testconfig.lua文件,如下:
local fs = require &nixio.fs&
if fs.access(&/etc/config/test&) then
m2 = Map(&test&, translate(&test 管理&),
translate(&test 管理!&))
s = m2:section(TypedSection, &test&, translate(&test 管理&))
s.anonymous = true
s.addremove = false
ts = s:option(Value, &time&, translate(&探针数据回传服务器间隔&),
translate(&探针数据回传服务器间隔&))
us = s:option(Value, &url&, translate(&探针数据回传服务器地址&),
translate(&探针数据回传服务器地址&))
ps = s:option(Value, &power&, translate(&探针探测范围&),
translate(&探针探测范围&))
function m2.on_commit(map)
3.建立test文件,如下:
config test test
option time
option url
option power
三.进入test目录,建立Makefile文件,如下:
include $(TOPDIR)/rules.mk
# Name and release number of this package
PKG_NAME:=test
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/test
SECTION:=utils
CATEGORY:=Utilities
TITLE:=test -- prints a snarky message
define Package/test/description
If you can't figure out what this program does, you're probably brain-dead and need immediate medical attention.
define Build/Prepare
define Build/Configure
define Build/Compile
define Package/test/install
$(INSTALL_DIR) $(1)/usr/lib/lua
mkdir -p $(1)/usr/lib/lua/test
$(INSTALL_DIR) $(1)/usr/lib/lua/test
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/admin
cp ./files/test.lua $(1)/usr/lib/lua/luci/controller/admin
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi
mkdir -p $(1)/usr/lib/lua/luci/model/cbi/admin_test
cp ./files/testconfig.lua $(1)/usr/lib/lua/luci/model/cbi/admin_test
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/config
cp ./files/test $(1)/etc/config
$(eval $(call BuildPackage,test))
四:进入openwrt根目录(我的是/home/wfly/mt7620/op/openwrt)
make package/test/compile 编译ipk包。
find -name test*.ipk 查看是否生成包。
&scp ./bin/ramips/packages/base/test_1_ramips_24kec.ipk root@192.168.1.1:~/ & 将生成的包上传到路由器。
opkg install test_1_ramips_24kec.ipk &安装ipk包。
效果如下:test管理即为添加模块。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3289次
排名:千里之外
原创:11篇
(3)(3)(3)(1)(1)

我要回帖

更多关于 openwrt mt7620 编译 的文章

 

随机推荐