openwrt编译及第一个安装包教程

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

openwrt编译及第一个安装包教程_第1张图片

在这里选择自己对应的平台就可以了
选择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               //需要用空格键先选择上再回车进入下一级菜单,否则打开选项是空的

openwrt编译及第一个安装包教程_第2张图片

保存并退出 执行make V=99

在bin目录下生成对应的OPENWRT-SDK文件,将此文件解压获得对应文件夹
openwrt编译及第一个安装包教程_第3张图片
复制文件夹到非openwrt目录更名为openwrt-sdk,cd进入此文件夹,执行make V=99 若编译无错误,说明获取openwrt sdk成功
openwrt编译及第一个安装包教程_第4张图片

5.第一个openwrt上的应用程序hello

在openwrt/package/utils/目录下任一复制一份文件夹到OPENWRT-SDK/package,以usbreset为例,该文件夹下结构简单,包含一个src文件夹和一份Makefile,src文件夹下有一份usbreset.c文件
openwrt编译及第一个安装包教程_第5张图片
i. 修改usbreset.c的文件名文hello.c
ii. 修改usbreset.c的文件内容
删除该文件所有内容并输入如下代码

#include
int main(void){
        printf(“Hello opwrt!!”);
        return 0;
}

保存并退出
iii. 修改Makefile文件
打开该文件,将所有usbreset字符全部替换为hello,
openwrt编译及第一个安装包教程_第6张图片

替换后的Makefile
openwrt编译及第一个安装包教程_第7张图片
其余地方不要做任何改动,保存并退出
在openwrt-sdk根目录下执行

make menuconfig

在Utilities->中找到hello,并按空格键将hello前面标记成M
在openwrt-sdk/bin/base目录下生成hello***.ipk文件 //如果你复制的不是USBRESET文件,生成的文件所在路径可能不一样,但是都在bin目录下
openwrt编译及第一个安装包教程_第8张图片

6.上传ipk文件
在openwrt-sdk/bin/base 目录下执行

     $ sudo scp hello***.ipk root@192.168.1.1:                //OPWRT 的IP地址,别忘记冒号
       输入密码后上传完成

openwrt编译及第一个安装包教程_第9张图片

切换到openwrt操作
此openwrt接收到的文件保存在root/目录下
# opkg install hello***.ipk
安装完成后输入

    hello

openwrt编译及第一个安装包教程_第10张图片
Openwrt在串口上输出Hello opwrt!!
以后要编写自己的程序就可以以此为模板进行编写,但是这个方法只能编写一个C文件的工程,要编写更大的工程需要深入学习下Makefile.当然,能找到合适的模板来改也是非常便捷的方式

本教程Over!!

你可能感兴趣的:(openwrt教程)