笔者最近缺个路由器,又有个闲置的树莓派3,于是尝试用树莓派刷openwrt,变身具有“超级性能”的路由。

环境:

ubuntu kylin 16.0

步骤如下 :

一、准备编译环境及源码
二、编译
三、开机调试

=======

一、准备编译环境及下载源码

毫无疑问地为了编译我们需要一个装有linux的设备,笔者使用的是乌班图虚拟机。

1、下载编译环境

我们使用lede(似乎是openwrt的一个分支)的交叉编译链,网址如下:
buildsystem for the LEDE Linux distribution
把zip下载下来即可

然后下载njitclient-1.3的源码及makefile
njit8021xclient-1.3.tar.gz
Makefile-1.3.zip
在home目录下新建一个文件夹作为工作目录,假设名为openwrt。
将交叉编译链解压至该目录下,将njit-client的源码解压至交叉编译链的package文件夹内,再将下载的makefile-1.3解压至njit-clien的源码的文件夹内。

2、准备编译

打开终端,部分小伙伴需要安装以下的包

sudo apt-get install gcc binutils bzip2 flex python perl make find grep diff unzip gawk getopt subversion libz-dev libc

将工作目录下的文件feeds.conf.default复制一份,并改名为feeds.conf 。
之后在终端输入如下命令:

sudo make menuconfig

此时会打开编译的配置页面,推荐先用默认设置编译一次后再进行修改来安装自己想安装的包(包括njit-client)。这里推荐各位在网速较好的地方进行编译,因为第一次编译需要下载大量的文件,网络差可能会导致编译过程非常漫长甚至出错。

需要修改的设置如下:
必须修改的
并且推荐安装luci界面
luci选项
选第一项collect并“*”住luci
安装luci

接着是njit-client,它在network分类中
安装njit

接着保存设置并退出。

二、编译

在工作目录下输入如下命令:

sudo make V=s

V=s的意思是输出详细信息,对于debug非常重要(希望小伙伴一切顺利而用不上这点)
接着是漫长的等待过程,如果编译成功,会在工作目录的bin/targets/brcm2708/bcm2710目录内找到可以烧录的.img文件

三、开机调试

将.img烧录进sd卡,开机并用串口调试。

1、修改相关文件

vim /etc/config/network

将内容改为:

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd11:8629:b448::/48'

config interface 'lan'
         option type 'bridge'
#       option ifname 'eth0'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config interface wan
        option proto dhcp
        option ifname eth0

在此就不赘述vim的使用方法了,建议将option ipaddr ‘192.168.1.1’改为option ipaddr ‘192.168.2.1’这样即使接到其他路由器上也不会发生冲突。
PS:
“#”在shell中是注释,类似c的“//”
eth0是树莓派中openwrt的wan的位置

同理

vim /etc/config/wireless

将内容修改为:

config wifi-device radio0
        option type     mac80211
        option channel  11
        option hwmode   11g
        option path     'platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
        option htmode   HT20
        # REMOVE THIS LINE TO ENABLE WIFI:
#        option disabled 0

config wifi-iface
        option device   radio0
        option network  lan
        option mode     ap
        option ssid     [yourname] #这里输入wifi名
        option encryption psk2
        option key      [yourwifikey] #这里输入wifi密码

允许通过wan连接ssh

vim /etc/config/firewall

修改为:

#open ssh on wan interface
config rule                
        option src              wan
        option dest_port        22
        option target           ACCEPT     
        option proto

2、安装luci界面

安装后可以通过浏览器访问路由

/etc/init.d/uhttpd start
/etc/init.d/uhttpd enable

3、上网啦

将网线插入树莓派的网口,输入

njit-client [yourname] [yourkey] eth0

稍等片刻后就是愉快的通过校园网上网啦

4、为了方便,可以写一个开机启动的脚本,让其自动登录,也可以通过luci在浏览器命令其启动 在/etc/init.d/ 目录下建立一个自动运行脚本 njitclient:

vim /etc/init.d/ njitclient

内容为:

#!/bin/sh /etc/rc.common
 START=99

start() {
 njit-client [yourusername] [yourpassword] eth0 &  #“&”是在后台运行的意思
 }

stop() {
 killall njit-client
 killall udhcpc
 }

之后输入命令

chmod +x /etc/init.d/njitclient          #加上可执行属性
/etc/init.d/njitclient enable         #开启开机自动运行

部分小伙伴的开机启动可能会失败,可以在浏览器启动
选项如下
。。。
按start

PS:并未用光tf卡的空间,可以通过gparted增大空间:
图一

图二

以上啦,笔者也是新手,难免有疏漏错误之处,望各位大神指教

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐