openwrt编译及第一个安装包教程
2017-09-02 16:56
861 查看
Date: 2017.03.14
Made:SuperDeverloper
Email: na1206@live.com
Target: For mt7688 based board
说明:本人在学习过程中走了不少弯路,希望本文档能为后来者提供便利。欢迎复制和使用本文档。本文档记录了搭建openwrt编译环境以及快速创建ipk包(openwrt上的安装程序)。本文档在实际应用中做过几次修改,以帮助使用者正确编译。
1.安装ubuntu16.04
Ubuntu常用命令:
设置ROOT权限:
开启SSH服务:
安装应用程序:
2.安装依赖包
在www.openwrt.com/download下载适合自己开发平台的工具包,复制到根目录下的/opt目录,解压:
至此开发环境搭建完成!!
3.编译openwrt
cd到openwrt根目录下
执行
在这里选择自己对应的平台就可以了
选择Exit退出,选YES保存配置
重点:
在openwrt根目录下执行
在openwrt根目录下执行
编译完成后在bin目录下生成相应文件,可烧写到板子上,烧写方法各自的板子自带教程,这里就不详细说明了
4.获取属于自己开发板的SDK包
在openwrt目录下执行
按空格键选择
保存并退出 执行make V=99
在bin目录下生成对应的OPENWRT-SDK文件,将此文件解压获得对应文件夹
复制文件夹到非openwrt目录更名为openwrt-sdk,cd进入此文件夹,执行make V=99 若编译无错误,说明获取openwrt sdk成功
5.第一个openwrt上的应用程序hello
在openwrt/package/utils/目录下任一复制一份文件夹到OPENWRT-SDK/package,以usbreset为例,该文件夹下结构简单,包含一个src文件夹和一份Makefile,src文件夹下有一份usbreset.c文件
i. 修改usbreset.c的文件名文hello.c
ii. 修改usbreset.c的文件内容
删除该文件所有内容并输入如下代码
保存并退出
iii. 修改Makefile文件
打开该文件,将所有usbreset字符全部替换为hello,
替换后的Makefile
其余地方不要做任何改动,保存并退出
在openwrt-sdk根目录下执行
在Utilities->中找到hello,并按空格键将hello前面标记成M
在openwrt-sdk/bin/base目录下生成hello***.ipk文件 //如果你复制的不是USBRESET文件,生成的文件所在路径可能不一样,但是都在bin目录下
6.上传ipk文件
在openwrt-sdk/bin/base 目录下执行
切换到openwrt操作
此openwrt接收到的文件保存在root/目录下
安装完成后输入
Openwrt在串口上输出Hello opwrt!!
以后要编写自己的程序就可以以此为模板进行编写,但是这个方法只能编写一个C文件的工程,要编写更大的工程需要深入学习下Makefile.当然,能找到合适的模板来改也是非常便捷的方式
本教程Over!!
Made:SuperDeverloper
Email: na1206@live.com
Target: For mt7688 based board
说明:本人在学习过程中走了不少弯路,希望本文档能为后来者提供便利。欢迎复制和使用本文档。本文档记录了搭建openwrt编译环境以及快速创建ipk包(openwrt上的安装程序)。本文档在实际应用中做过几次修改,以帮助使用者正确编译。
1.安装ubuntu16.04
Ubuntu常用命令:
设置ROOT权限:
$ sudo passwd root
开启SSH服务:
$ sudo apt-get install openssh-server $ service ssh start $ ps–e|grep ssh //查看SSH服务是否开启,注意保持联网
安装应用程序:
$ sudo apt-get install ****
2.安装依赖包
apt-get install g++ apt-get install libncurses5-dev apt-get install zlib1g-dev apt-get install bison apt-get install flex apt-get install unzip apt-get install autoconf apt-get install gawk apt-get install git apt-get install make apt-get install gettext apt-get install gcc apt-get install binutils apt-get install patch apt-get install bzip2 apt-get install libz-dev apt-get install subversion 以上软件安装完成,编译报错时安装以下文件 apt-get install libssl-dev
在www.openwrt.com/download下载适合自己开发平台的工具包,复制到根目录下的/opt目录,解压:
$tar jvxf ** //如果你的开发板提供了SDK,在SDK目录下会有这个工具包,在SDK/STAGING_DIR目录下
至此开发环境搭建完成!!
3.编译openwrt
cd到openwrt根目录下
cd /superwen/work/openwrt
执行
$ sudo make menuconfig
选择目标平台
Target System :RT288X/RT3xxx Subtarget : MT7688 based boards Target Profile: LinkIt7688
在这里选择自己对应的平台就可以了
选择Exit退出,选YES保存配置
重点:
在openwrt根目录下执行
$sudo make dirclean //不执行这一步会报错
在openwrt根目录下执行
make V=99 //第一次大概2-4小时能编译完成,之后再编译就快了
编译完成后在bin目录下生成相应文件,可烧写到板子上,烧写方法各自的板子自带教程,这里就不详细说明了
4.获取属于自己开发板的SDK包
在openwrt目录下执行
make menuconfig
按空格键选择
Build the Openwrt SDK Package the Openwrt-based Toolchain Advanced configuration options(for developers) -> Toolchain Options ->Build gdb //需要用空格键先选择上再回车进入下一级菜单,否则打开选项是空的
保存并退出 执行make V=99
在bin目录下生成对应的OPENWRT-SDK文件,将此文件解压获得对应文件夹
复制文件夹到非openwrt目录更名为openwrt-sdk,cd进入此文件夹,执行make V=99 若编译无错误,说明获取openwrt sdk成功
5.第一个openwrt上的应用程序hello
在openwrt/package/utils/目录下任一复制一份文件夹到OPENWRT-SDK/package,以usbreset为例,该文件夹下结构简单,包含一个src文件夹和一份Makefile,src文件夹下有一份usbreset.c文件
i. 修改usbreset.c的文件名文hello.c
ii. 修改usbreset.c的文件内容
删除该文件所有内容并输入如下代码
#include<stdio.h> int main(void){ printf(“Hello opwrt!!”); return 0; }
保存并退出
iii. 修改Makefile文件
打开该文件,将所有usbreset字符全部替换为hello,
替换后的Makefile
其余地方不要做任何改动,保存并退出
在openwrt-sdk根目录下执行
make menuconfig
在Utilities->中找到hello,并按空格键将hello前面标记成M
在openwrt-sdk/bin/base目录下生成hello***.ipk文件 //如果你复制的不是USBRESET文件,生成的文件所在路径可能不一样,但是都在bin目录下
6.上传ipk文件
在openwrt-sdk/bin/base 目录下执行
$ sudo scp hello***.ipk root@192.168.1.1: //OPWRT 的IP地址,别忘记冒号 输入密码后上传完成
切换到openwrt操作
此openwrt接收到的文件保存在root/目录下
# opkg install hello***.ipk
安装完成后输入
hello
Openwrt在串口上输出Hello opwrt!!
以后要编写自己的程序就可以以此为模板进行编写,但是这个方法只能编写一个C文件的工程,要编写更大的工程需要深入学习下Makefile.当然,能找到合适的模板来改也是非常便捷的方式
本教程Over!!
相关文章推荐
- 完全新手教程:编译openwrt全过程
- openwrt新手编译教程
- openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录 --- 实际是由于下载了错误的backfire源码包导致的
- 【原创教程】我制作的第一个wince视频教程出炉了——如何快速单独编译wince6.0 驱动
- 转:小白编译openwrt固件教程
- openwrt编译教程
- Openwrt 编译教程
- 微信iOS消息拦截插件教程-第一个tweak编译过程
- openwrt开发教程之下载配置编译openwrt(MT7621A)
- OpenWrt编译教程
- 完全新手教程:编译openwrt全过程
- 编译原理学习周入门教程--(9)编译程序第一个工作阶段-词法分析(NFA和DFA转换) .
- X86 openWRT 虚拟机编译教程 在ubuntu10中X86 OpenWRT的源码编译
- 用OpenWRT编译软件安装包
- openwrt编译基本教程
- openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录(转)