设为首页 收藏本站
查看: 1413|回复: 0

[经验分享] wr720n v4 折腾笔记(五):终篇-编译安装openwrt附带njit

[复制链接]

尚未签到

发表于 2017-11-23 09:43:02 | 显示全部楼层 |阅读模式
前言:
  由于没有多余的U盘,所以想直接压缩生成一个带njit-client的openwrt固件。其中按照网上的教程走,遇到了一些问题,这里前面的步骤来源于网络。后面给出处理问题的方法。

一、准备工作

  • 准备一台运行Linux或者类Unix操作系统的PC,比如Ubuntu,Debian,Fedora,MAC OS,FreeBSD,Suse等。下文所列出命令都Ubuntu 16.04下的命令,其他linux发行版请到这里查看相关的命令。
  • 需要大约350MB硬盘空间,用于下载软件包(当然,选择编译的软件越多,需要下载的源代码包就越多,可能需要多达几个G的硬盘空间)。
  • 需要6~8GB可用硬盘空间,用于编译OpenWrt。
  • 一般情况下,我们还需要一个非root用户。
  • 最后是耐心和时间,OpenWrt边下载边编译,编译几个小时那是家常便饭,并且中间还有可能出错。
二、编译openwrt
1.安装 git 以获取源代码:
  在终端中运行:




1
2


sudo apt-get update
sudo apt-get install git-core
2.安装必要的编译工具:





1


sudo apt-get install libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev subversion
3.下载openwrt源代码,这里我下载的是trunk (main development tree) :





1


git clone git://git.openwrt.org/openwrt.git
  如果想下载Barrier Breaker 14.07 分支,就这样:





1


git clone git://git.openwrt.org/14.07/openwrt.git
4.更新下载和安装扩展软件包:
  假设你的工作目录为openwrt,进入openwrt目录:





1


cd openwrt
  然后把feeds.conf.default复制一份命名为feeds.conf:





1


cp feeds.conf.default feeds.conf
  (添加njit-client的源)打开feeds.conf,在最后加上一行





1


src-svn njit https://github.com/liuqun/openwrt-clients/trunk/njit
  然后是更新下载扩展软件包,并安装它们到package/feeds/目录:





1
2


./scripts/feeds update -a
./scripts/feeds install -a
5.配置openwrt
  现在开始配置OpenWrt,选择你需要目标平台,以及选择将要编译和添加进固件的软件包。运行命令:





1


make menuconfig
  若回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可。
  然后你就来到了这个界面:
DSC0000.png

  这个配置界面跟Linux内核的配置界面基本差不多,几乎每一项都有3个选择Y/M/N:

  • Y:选择Y,该软件将被编译,并且加入到你的目标固件里;
  • M:选择M,该软件包将会被编译,但不会被放入固件里。在需要它的时候,可以用OPKG软件包管理器进行安装;
  • N:选择N,该软件包将不会被编译,也不会被安装进固件。
  • /:搜索软件包。


  • 方向键是移动光标
  • 回车键是确认
  • 空格键是选择,可以代替Y/M/N键的使用
  例如我用的型号是D-LINK DIR-615 D4,到第一幅图Support Hardware那里查询对应的Target和Platform,查到之后选择对应的Target System和Subtarget和Target Profile,我选的是Ralink RT28XX/3XXX和RT305X和对应的Profile。
  又例如你是TP-LINK TL-MR3420,就这样选:





1
2


Target System ---> (X) Atheros AR71xx/AR7240/AR913x
Target Profile ---> (X) TP-LINK TL-MR3420 v1
  之后就是选择扩展软件包,按需要添加。

  • 添加LuCI(这样才自带网页GUI端):LuCI ->Collections -> <*> luci(就是找到luci然后按一下Y)
  • 添加LuCI的中文语言包:LuCI ->Translations -> <*> luci-i18n-chinese
  • 添加UTF8编码:Kernel modules -> Native Language Support -> <*> kmod-nls-utf8
  • 添加njit-client:Network -> <*> njit8021xclient
  • 下面的njit8021xclient-web也顺便选了吧,这个是一个简单的LuCI的配置界面
  其他的软件包就按需要添加吧,注意不要太多(我可怜的4M ROM…),不然编译到最后会提示文件太大无法创建。
  好了,选完之后回到主菜单,选Exit退出并保存,回到终端。
  (不装njit-client可忽略)如果你的系统是Ubuntu,那么在编译之前建议执行此操作





1


sudo mv /usr/bin/pcap-config /usr/bin/pcap-config.bak
  总之就是干掉pcap-config,否则编译会出错,就像这样:
  auth.c: In function ‘SendResponseIdentity’:
auth.c:432:11: error: invalid ‘asm’: invalid use of ‘%w’
  当时编译出错了真是折腾了好久,最后终于在这里看到了njit-client作者的解答。
  然后把默认的无线开启,这样刷机之后方便许多。打开package/kernel/mac80211/files/lib/wifi/mac80211.sh,将





1


option disabled 1
  的1改为0,编译出来就默认打开wifi了。
  下面的encryption也可以改下,不改就是默认没密码。
  要改的话,把none改为psk2,再加一行option key yourpassword即可。
  之后就是开始编译了:执行





1


make V=s
  其中“V=s”表示输出详细的debug信息,也可以直接执行make。
  编译完成之后,在 /openwrt/bin/ 下就会生成刷机用的.bin文件,在packages/下有软件包的.ipk文件。刷机方法就请自行百度了。
  刷完之后重启路由,把电脑本地连接的ip改为192.168.1.x,然后在浏览器中进入192.168.1.1就进入LuCI了。没有LuCI的就telnet 192.168.1.1自行配置吧。然后在浏览器里设置一些东西,例如刚进去就要改密码、改WAN口的IP(学校给的)、DNS、网关(学校给的)、MAC地址(如果校园网绑定了MAC)、设置DHCP服务(设完之后可以把本地连接的手动ip改回自动获取,DNS好像要用学校给的DNS)什么的,慢慢做吧。
  测试一下njit-client吧!在putty终端中执行





1


njit-client [username] [password] [interface] &    #改成自己的用户名和密码,接口必须对应
  试试吧!其中[interface]是接口,例如eth0,eth1,总之要对应你的WAN口,在luci里就可以查看,例如我就是eth0.2,ar71xx的多数是eth1。
DSC0001.png

  能连接上之后就做一个开机启动脚本吧~在路由器的 /etc/init.d/ 目录下建立一个自动运行脚本 njitclient,内容如下:





1
2
3
4
5
6
7
8
9
10
11
12


#!/bin/sh /etc/rc.common
#(c) 2010 ivan_wl
START=50

start() {
    njit-client [yourusername] [yourpassword] [interface] &    #这里自己改一下
}

stop() {
    killall njit-client
    killall udhcpc
}
  之后运行命令





1
2


chmod +x /etc/init.d/njitclient     #加上可执行属性
/etc/init.d/njitclient enable    #开启开机自动运行
后记
  我按照这个教程并没有成功,其中在编译的时候总是出现patch失败。
  因此我直接手动打patch,同时把patch删掉。
  最终的patch后的njit文件可以在这里下载:
  http://download.csdn.net/download/vspiders/10002510
  下载之后,替换掉dl文件夹里面的njit包,然后删掉feeds/njit/njit8021xclient/patch文件,正常编译即可。
  这里附上最终生成的固件:
  openwrt-ar71xx-generic-tl-wr720n-v4-squashfs-sysupgrade.bin

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-409775-1-1.html 上篇帖子: Python 之自动获取公网IP 下篇帖子: [BZOJ4196][Noi2015]软件包管理器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表