• 开发环境构建


    开发环境构建

    来源 https://zhuanlan.zhihu.com/p/24403803

    无线路由器目前已经可以做很多的功能了,相应的扩展资源也越来越多。其中大部分都是直接基于OpenWRT平台直接进行开发的。笔者之前一直介绍的都是一些协议的理论知识,目前也更新一些笔者关于SDWN(Software Defined Wireless Networking)的实现中,所总结的一些实战类的笔记。笔者目前是采用WNDR3800作为硬件平台,性价比高。

    PS:由于路径问题,一般一个ubuntu系统只能够安装一个OpenWRT,否则会出现路径不匹配的问题。

    开发环境构建

    第一步:安装一些依赖包

    sudo apt-get install libncurses5-dev zlib1g-dev gawk flex patch git-core g++ subversion

    第二步:下载OpenWRT源码

    git clone git://git.openwrt.org/14.07/openwrt.git

    第三步:修改文件夹权限,为了编译方便,一般直接对源码文件夹赋予777的权限

    sudo chmod -R 777 openwrt

    第四步:修改feeds源,用以安装所需的package以及luci界面

    gedit feeds.conf.default

    打开文件后,注释掉一些不需要的源,一般使用前三个源即可

    第五步:更新与安装feeds包

    ./scripts/feeds update –a
    ./scripts/feeds install –a

    第六步:固件的编译设置,我们要设置如下内容。注意,空格键是选择是否安装模块,如果是“*”的话,那么就是默认安装,如果是“M”的话,那么就是要手动加载。回车键是用来选择是否进入子栏的,在配置完固件之后,需要手动保存后再离开。

    1)Target System类型为: Atheros AR7xx/AR9xx

    2)Target Profile类型为:NETGEAR WNDR3700/WNDR3800/WNDRMAC,这里根据路由器型号进行选择,我们采用的路由器为WNDR3800。

    3)Target Images类型为:squashfs,其余的选项不选

    4)分别选中 <Advanced configuration options(for developers)>,<Build the OpenWrt SDK>,<Build the OpenWrt based Toolchain>

    5)选择<Luci—Collections--(*)luci>,如下图(选择时要注意是选择了M还是*,因为这两种不同的选择方式编译完的固件是有不同的,这里还是强调全部用 *,否则刷机完之后,还需要手动加载Luci界面)

    6)保存退出

    7)如果需要装OVS的话,那么需要手动取消bridge,即在make menuconfig后手动执行以下指令。

    echo '#CONFIG_KERNEL_BRIDGE is not set' >> .config

    注意:每次 make menuconfig以后都要执行这条指令。


    第七步:在openwrt源码文件中,添加编译时候需要附加的模块。在openwrt编译过程中,会从互联网上自行下载一些模块,不过由于网络以及数据源的问题,有部分数据包直接下载是存在问题的。故本文已经将该版本openwrt所需要的数据包进行整理,并整理如下:

    openwrt文件1

    openwrt文件2

    上述文件解压缩以后,可以获得一个dl.tar.gz的文件,首先将其下载至本地,并传入开发环境中,然后用以下命令解压缩

    tar zvxf dl.tar.gz

    解压缩之后,可以获得一个名为dl的文件夹。此时需要将该文件夹与openwrt目录下的内容进行合并,比如可以用以下指令(如果在图形界面里面,手动拖拽文件夹也行)

    cp ./dl/* openwrt/dl/

    在openwrt编译过程中,如果dl目录中已经有下载好的模块,那么编译的时候就不会再行下载资源。

    第八步:编译openwrt固件。直接在openwrt根目录下,执行以下指令即可

    make V=99

    编译完的结果被保存在目录(openwrt/bin/ar71xx/)下,其中ar71xx路径名与固件配置时选择的芯片型号有关。以本文选择WNDR3800路由器为例,最后编译结果为

    openwrt-ar71xx-generic-wndr3800-squashfs-sysupgrade.bin

    将该文件拷出后,我们可以进行最后一步的刷机操作。

    ============ End

  • 相关阅读:
    通过注册表找网站绝对路径
    西普学院Crypto之用户名和密码
    西普学院Crypto之一段奇怪的代码
    西普学院Crypto之先有鸡还是先有蛋
    西普学院Crypto之摩擦摩擦
    西普学院Crypto之凯撒是罗马共和国杰出的军事统帅
    各类文件的文件头标志[转]
    收藏的几个脑图
    同源策略详解及绕过[转]
    Python学习#1
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/13726733.html
Copyright © 2020-2023  润新知