wr720n v4 折腾笔记(五):终篇-编译安装openwrt附带njit

前言:

由于没有多余的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

若回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可。

然后你就来到了这个界面:

这个配置界面跟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。

能连接上之后就做一个开机启动脚本吧~在路由器的 /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

时间: 2024-10-10 20:51:59

wr720n v4 折腾笔记(五):终篇-编译安装openwrt附带njit的相关文章

wr720n v4 折腾笔记(一):安装Openwrt

好久没有写过文章了,今天先来个引子:wr720n v4版本安装openwrt 最近弄了个路由器wr720n,想抓包做点东西,于是就先从刷固件openwrt开始吧. 所需工具: 1.wr720n v4路由器 2.网线一根 3.下载附件:固件合集 4.电脑一台 0x01 刷入openwrt 网上教程很多,就是针对openwrt的资源文件太少了,因为这个GB百度云的网盘都给取消掉了.这里我就再次将资源打包下,见附件. 首先刷入openwrt固件. 正常连接路由器,访问192.168.1.253,随便设

马哥linux学习笔记:源码编译安装

由于rpm包在作者制作封装的时候已经把程序的一些特性固定了,如果我们根据自己的需求,需要运用程序的一些没有普适性相关特性,就需要下载程序的源码手动编译安装了,这里只是简单的介绍一下C代码的程序包编译安装方法. 为了能更直观的看到源码编译安装的过程,我演示一下在centos7.2环境中编译安装httpd2.2: 首先,编译的前提是得有称手的工具及环境了,编译c源代码就需要用到开发工具,make,gcc了,环境就需要开发库跟头文件了,如果系统中没有这些,就需要yum安装了. 这里我运行yum gro

Hadoop学习笔记(一)——编译安装和配置

近期工作调动.打算补一下大数据处理的知识.可能会陆续涉及hadoop.mongodb.ddbs等. 首先Apache提供二进制的Hadoop版本号是32位的.在启动时总是有警告,所以想自己编译一遍.部分内容来源于网络. 0.环境说明: 操作系统环境: ububtu 14.04 LTS 64位操作系统 JDK环境: java version "1.7.0_55" Java(TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSp

锋利的jQuery--编写jQuery插件(读书笔记五)[完结篇]

1.表单验证插件Validation   2.表单插件Form 3.动态事件绑定插件livequery 可以为后来的元素绑定事件 类似于jQuery中的live()方法 4.jQuery UI   5.jQuery Cookie   6.遮罩层插件:thickbox 7.编写jQuery插件 <1>编写插件的目的:给已经有的一些列方法或函数做一个封装,一遍在其他地方使用,方便后期维护和提高开发效率. <2>三种类型的插件 a:封装对象方法的插件 jQuery.fn.extend()

Apache应用和优化篇:编译安装以及重新认识PHP

1.进入php源码包,执行命令 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/myapache/bin/apxs     #把php作为一个模块加载在apache中 sudo make && sudo make install 2.如果编译php提示缺少xml2,可以执行apt-get install libxml2 libxml2-dev 编译完成,查看apache配置文件,会增加一个 libphp7.so 3.a

LAMP架构(1)编译安装

LAMP(LINUX APACHE MYSQL PHP)版本选择须知 php 5.5 开始就不支持windows2003了;PHP5.5 不支持apache2.2了 换句话说,根据php5_module模块,可以知道当前版本php支持哪种Apache 所以,Apache/PHP的搭配有以下几种情况: 1.php5.2支持Apache2.0和Apache2.2;2.php5.3.php5.4同时支持Apache2.2和Apache2.4;3.php5.5只支持Apache2.4;除非你自己手动编译

ffmpeg 编译安装, 视频合并

演示环境:CentOS 7  下载视频文件: [[email protected] ~]# wget http://he.yinyuetai.com/uploads/videos/common/CDF2014EE2B807C14EB06DDFA6A9D362.flv [[email protected] ~]# wget http://sh.yinyuetai.com/uploads/videos/common/3A37014EE2B807B94477C00DCB8A246D.mp4 [[ema

CentOS5.8 + Nginx + MySQL + PHP + Xcache编译安装

大纲 一.环境准备 二.Nginx编译安装 三.MySQL通用二进制包安装 四.PHP编译安装 五.Xcache编译安装

编译安装LAM(MySQL)P

编译安装LAM(MySQL)P Linux+Apache+MySQL+PHP,其中MySQL逐渐被Mariadb取代.这里依旧使用MySQL进行编译,MySQL在国内下载镜像站点,目前好像就只有mirrors.sohu.com依旧提供.这里都是选择的比较稳定的版本进行编译. 一.环境和软件包版本介绍 1. Linux :         [[email protected] ~]# cat /etc/redhat-release          CentOS release 6.8 (Fina