Date: 2017.03.14
Made:SuperDeverloper
Email: [email protected]
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
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!!