Linux中交叉编译8812au驱动-NanoPi Neo2

构建NanoPi Neo2交叉编译环境

# apt install build-essential

配置编译工具链

Linaro下载gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz ,解压到/opt

# tar xvf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz -C /opt

将/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin 添加到PATH中

$ export PATH=$PATH:/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin

编译内核

下载neo2官方内核并使用对应分支如:

$ cd ~/
$ git clone https://github.com/friendlyarm/linux.git
$ cd ~/linux
$ git checkout sunxi-4.11.y

编译

$ make sunxi_arm64_defconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
$ make Image dtbs modules ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

编译rtl88Xxau

$ cd ~/
$ git clone https://github.com/aircrack-ng/rtl8812au 
$ cd rtl8812au
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu KSRC=~/linux

若是载入ko时遇到version magic 的问题,可一尝试将~/linux/include/linux/vermagic.h 中UTS_RELEASE ” ” 改为目标系统对应的内核版本号 如 “4.14.52” ” “,再次编译后用modinfo查看vermagic。

$ modinfo 88Xxau.ko
name: 88XXau 
vermagic: 4.14.52 SMP mod_unload aarch64

Update 20190702

今天证实以上方法编译出来的ko,虽然可以成功载入,但是无线网卡插上去后实际不可用。

只能移步kernel.org下载对应版本的内核源代码,将下面的附件重命名为.config 复制到解压后的内核目录后编译。

config-neo2-aarch64

$ cd ~/
$ wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.14.52.tar.xz
$ tar xvf  linux-4.14.52.tar.xz 
$ cp config -neo2-aarch64.txt ~/linux-4.14.52/.config
$ cd ~/linux-4.14.52
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu
$ cd ~/rtl8812au 
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu KSRC=~/linux-4.14.52

使用frp实现内网穿透

frp,项目定义的 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议,在这里只是为了管理自己家中的一些设备,拿来做一些简单的tcp/udp穿透.。

frp分为服务端跟客户端两部分, 首先在一台有固定公网ip的机器上运行一个frps进程,最简单的配置文件即是默认的frps.ini:

[common]
bind_port = 7000

默认情况下,如果是直接运行frps不指定配置文件的话,就是起一个frps进程监听7000端口扥带连接。

还有一个关于是authentication timeout 的问题,就是客户端与服务端时间差过大(>15分钟)造成的,特殊情况下如果无法调整时间的话,可在frps配置文件中添加

authentication_timeout = 0

关闭时间差检测。

https://github.com/fatedier/frp#authentication

https://github.com/ioeory/frp/blob/master/README_zh.md#%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81

 

frps的其他配置:

 

在debian中安装resilio sync

一、添加官方提供给基于debian系的源,创建一个新文件(如/etc/apt/source.list.d/resilio-sync.list),或是直接写进去/etc/apt/source.list:

echo "deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free" | 
sudo tee /etc/apt/sources.list.d/resilio-sync.list

然后添加公钥:

wget -qO - https://linux-packages.resilio.com/resilio-sync/key.asc | apt-key add -

curl -LO http://linux-packages.resilio.com/resilio-sync/key.asc && apt-key add ./key.asc

二、更新源并安装resilio sync:

apt-get update
apt-get install resilio-sync

三、systemd以当前用户身份启动resilio sync服务:

默认情况下,开启rslsync自启,将会以rslsync用户身份启动,这意味着同步文件的时候,该目录owner需为rslsync用户。

编辑 /usr/lib/systemd/user/resilio-sync.service ,把WantedBy=multi-user.target替换为WantedBy=default.target保存后,执行

systemctl --user enable resilio-sync

Ok,最后如果你想要外界能够通过web管理resilio sync ,需要把resilio sync的监听端口改成0.0.0.0或是特定的外部ip而非127.0.0.1,配置文件位于~/.config/resilio-sync/config.json 内容类似于:

{
    "storage_path" : "/home/ioe/.config/resilio-sync/storage",
    "pid_file" : "/home/ioe/.config/resilio-sync/sync.pid",

    "webui" :
    {
    "listen" :"194.48.62.48:8888"
    }
}

然后启动resilio sync:

systemctl --user start resilio-sync

 

 

在控制台中重置OpenMediaVault webui管理员密码

通过ssh登录在openmediavault所在的服务器上,运行omv-firstaid,选中第三项 Change control panel administrator password,然后输入两次密码即可。还有如果你的账号因多次登录失败,有可能被禁用状态,也可以通过omv-firstaid来重置(reset failed login attemp counter)

Linux中ipv4优先

默认不修改情况下,如linux主机中有ipv6地址, 会优先走ipv6通道,例如debian的源dns解析会默认返回AAAA记录(ipv6),要使用ipv4 连接优先而不必禁用ipv6,需要修改gai.conf配置文件使其生效。

debian系:修改/etc/gai.conf,取消下面这一行的注释

precedence ::ffff:0:0/96  100

redhat系:修改/etc/gai.conf,添加如下内容

label       ::1/128        0
label       ::/0           1
label       2002::/16      2
label       ::/96          3
label       ::ffff:0:0/96  4
precedence  ::1/128        50
precedence  ::/0           40
precedence  2002::/16      30
precedence  ::/96          20
precedence  ::ffff:0:0/96  100

 

网络现状分析与解决方案

网络现状分析与解决方案
一、 网络现状
目前学院网络采用铁通光纤接入,20M下行,1.5-2M上行。客户端1000左右。日常在线用户400人左右。每天同时开放3个机房。每个机房90人,教师在线人数150人左右。
网络通过光猫到达学院接口,用华为USG5150防火墙做路由功能,下面连接安达通ADT-1200S做流量控制和网络认证。连接CISCO370M主交换,主交换机划分6个VLAN,211.81.182.182 、182、183、184、185、186网段。 阅读更多 网络现状分析与解决方案

ROS 内网访问本地公网IP

大概就是这么个意思,做完端口映射之后,内网用户无法通过公网IP访问映射的服务,如WEB、FTP等。

假设有内网地址是192.168.1.0/24网段,公网IP为15.61.84.63,做srcnat使内网用户可以访问互联网。此时添加一个DST-NAT端口映射8012端口到内网机器192.168.1.251:80,内网用户要使用15.61.84.63:8012访问的话,则需添加相应规则。 阅读更多 ROS 内网访问本地公网IP