Template:FriendlyWrt19/zh

From FriendlyARM WiKi
Jump to: navigation, search

1 FriendlyWrt的使用

1.1 FriendlyWrt简介

FriendlyWrt是友善电子基于OpenWrt定制的系统,完全开源,用于企业物联网二次开发,个人定制NAS,家庭物联网网关等。

1.2 帐户与密码

默认是空密码,请为root设置一个密码用于web登录与ssh登录。

1.3 连接网络

用网线连接{{{1}}}的WAN口到你的主路由器,默认将从你的主路由器通过DHCP自动获取IP地址,请登入你的路由器后台查看并记住{{{1}}}的IP地址。

1.4 登录FriendlyWrt

在电脑浏览器上输入{{{1}}}的IP地址 或者 http://friendlywrt/ 即可进入FriendlyWrt管理页面,默认情况下,LAN口的IP地址为192.168.2.1,WAN会从你的主路由器动态获取IP地址。

1.5 安装软件包

1.5.1 更新可用软件包列表

安装软件前,先更新可用软件包列表:

$ opkg update

1.5.2 查看可安装的软件包

$ opkg list

1.5.3 查看已安装的软件

$ opkg list-installed

1.5.4 安装软件

$ opkg install <包各称>

1.5.5 删除软件

$ opkg remove <包各称>

1.6 使用USB2LCD查看IP

在接上电源启动之前把USB2LCD模块插到 {{{1}}} 的USB接口,然后接上电源和网线,系统正常启动后,即可后LCD即会显示板子的温度和IP。
R2S-usb2lcd-01.jpg

1.7 如何使用USB WiFi

1.7.1 如何在终端使用命令查询USB无线网卡型号

(1) 点击“服务>ttyd”进入FriendlyWrt的命令行界面
R2s-wrt-jellyfin-002.jpg

(2) 在开发板没有插入任何USB设备时输入以下命令以查看挂在USB主线上的现有设备

lsusb

R2swrt+usbwifi-09.jpg

(3) 插入USB WiFi,再次输入以下命令

lsusb

可以看到多出一个设备,ID为0BDA:C811
R2swrt+usbwifi-10.jpg

(4) 以“0BDA:C811”或“VID_0BDA&PID_C811”作为关键词在搜索引擎上搜索,搜索结果显示VID_0BDA&PID_C811的对应WIFI芯片为Realtek 8811CU

1.7.2 如何使用USB WiFi作为AP

(1) 把USB WiFi插入NanoPi R2S,推荐使用以下列表中支持AP模式的WiFi芯片模块(以下列表基于rk3328-sd-friendlywrt-5.4-20200514.img固件经测试可用)
R2swrt+usbwifi-08.jpg
注:符合以上WiFi芯片型号并符合以上VID&PID信息的USB无线网卡都可以使用,支持的型号不局限于某个品牌某个型号

(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启NanoPi R2S
R2swrt+usbwifi-01.jpg

R2swrt+usbwifi-02.jpg

(3) 点击“网络>无线”进入配置无线WiFi界面
R2swrt+usbwifi-03.jpg

(4) 点击“编辑”按钮可编辑WiFi设置
R2swrt+usbwifi-04.jpg

(5) 在“接口配置”中可设置WiFi 模式和SSID等,然后点击到“无线安全”项可修改加密方式和WiFi密码,默认密码为password,设置完成后点击“保存”
R2swrt+usbwifi-05.jpg

R2swrt+usbwifi-06.jpg

(4) 配置完成后使用手机端或电脑端搜索对应SSID的WiFi即可
R2swrt+usbwifi-07.png

1.8 玩转Docker应用

1.8.1 Docker使用:安装JellyFin影音服务器

1.8.1.1 安装JellyFin

(1) 准备一个已烧好FriendlyWrt的NanoPi R2S(或任意H3/RK3399 平台的友善开发板),接上电源和网线,网线接入NanoPi R2S的WAN口;

(2) 在电脑端的浏览器输入 http://friendlywrt/ 或者开发板的IP地址即可进入FriendlyWrt管理页面,默认情况下,LAN口的IP地址为192.168.2.1,WAN会从你的主路由器动态获取IP地址;
R2s-001.jpg

(3) 点击上方菜单栏的“服务->ttyd”进入命令行界面;
R2s-wrt-jellyfin-002.jpg
R2s-wrt-jellyfin-003.jpg

(4) 输入以下命令安装JellyFin:

创建一个目录用于存放 JellyFin 的配置:

mkdir -p /jellyfin/config

创建一个专门供JellyFin访问的目录,存放影片和视频:

mkdir -p /jellyfin/videos

然后安装JellyFin,请耐心等待安装过程:

docker run --restart=always -d -p 8096:8096 -v /jellyfin/config:/config -v /jellyfin/videos:/videos jellyfin/jellyfin:10.1.0-arm64 -name myjellyfin

主要参数说明
8096:8096: 指定端口号为 8096,安装完后,可能通过 http://路由器IP:8096 访问jellyFin
/jellyfin/videos: 指定用于存放影片的目录,本地目录为 /jellyfin/videos,在jellyFin界面上可以通过路径 /videos访问到这些影片
R2s-wrt-jellyfin-004.jpg

(5) 等到可再次操作命令行界面时即完成安装,如下图:
R2s-wrt-jellyfin-005.jpg

1.8.1.2 为JellyFin添加媒体库

(1) 在浏览器输入NanoPi R2S的IP地址+端口8096 进入JellyFin界面:
如:192.168.1.126:8096
R2s-wrt-jellyfin-015.jpg

(2) 点击右上角的“设置”图标进入控制台:
R2s-wrt-jellyfin-016.jpg

(3) 点击左边的“媒体库”,然后点击“添加媒体库”:
R2s-wrt-jellyfin-017.jpg

(4) 建议打开“显示高级设置”选项,内容类型等选项根据情况选择,勾选“将媒体图像保存到媒体所在文件夹”的话JellyFin会在网上搜索电影封面等信息下载到媒体文件夹中,设置完成后点击“确定”:
R2s-wrt-jellyfin-018.jpg

R2s-wrt-jellyfin-019.jpg

(5) 设置完成后回到“控制台”,可看到“Scan media library”任务,即JellyFin正在扫描媒体库并下载媒体信息,视网络情况而定可能需要几分钟至几十分钟:
R2s-wrt-jellyfin-020.jpg

(6) 扫描完成后返回主界面,可看到媒体库已添加成功:
R2s-wrt-jellyfin-021.jpg

1.8.1.3 在JellyFin下播放媒体
1.8.1.3.1 在电脑端播放媒体

在浏览器中输入NanoPi R2S的IP地址+端口8096 进入JellyFin,点击媒体库中其中一部影片,即可开始播放:
R2s-wrt-jellyfin-022.jpg

1.8.1.3.2 在手机端播放媒体

(1) 从应用商店下载安装JellyFin APP,打开APP输入NanoPi R2S的IP地址+端口8096登录进入:
R2s-wrt-jellyfin-035.jpg R2s-wrt-jellyfin-036.jpg

(2) 点击媒体库可看到库中所有影片,点击其中一部影片可查看影片详情:
R2s-wrt-jellyfin-037.jpg R2s-wrt-jellyfin-038.jpg R2s-wrt-jellyfin-039.jpg

(2) 点击播放按钮即可观看影片:
R2s-wrt-jellyfin-040.jpg

详细使用教程请参考: How to setup JellyFin media system on NanoPi-R2S/zh

1.8.2 Docker使用:安装个人网盘nextcloud

mkdir /nextcloud -p
docker run -d -p 8888:80  --name nextcloud  -v /nextcloud/:/var/www/html/ --restart=always --privileged=true  arm64v8/nextcloud

安装完成后,使用8888端口进行访问。

1.9 启动swap分区

在命令行执行以下命令,然后重启:

/etc/enable-swap.sh
reboot

1.10 挂载外接存储设备

(1) 把移动硬盘连接NanoPi R2S作为外接存储设备,将移动硬盘插入NanoPi R2S的USB接口,在FriendlyWrt中点击“系统->挂载点”进入挂载点设置界面:
R2s-wrt-jellyfin-006.jpg

(2) 在界面下方找到挂载点存储设备设置,点击“添加”按钮:
R2s-wrt-jellyfin-007.jpg

(3) 在弹出的对话框中UUID一栏选中刚刚接入的移动硬盘 /dev/sda1(实际情况请根据自身设备选择,如硬盘有多个分区可能会显示sda1/sda2……等):
R2s-wrt-jellyfin-008.jpg

(4) 在挂载点一栏中使用自定义,填入要挂载到的目标目录,这里以/jellyfin/videos 目录为例,勾选上方的“已启用”,然后点击“保存”:
R2s-wrt-jellyfin-009.jpg

R2s-wrt-jellyfin-010.jpg

(5) 设置完后点击“系统->重启”重启NanoPi R2S使挂载点生效:
R2s-wrt-jellyfin-011.jpg

(6) 重启后再回到“挂载点”界面可看到“已挂载的文件系统”中显示刚刚挂载的移动硬盘信息,即设置成功(以后需要再新增或删减编辑挂载点都可以在下面的“挂载点”设置中操作):
注:每次操作后都需要重启后才能生效
R2s-wrt-jellyfin-012.jpg

1.11 挂载smbfs共享资源

mount -t cifs //192.168.1.10/shared /movie -o username=xxx,password=yyy,file_mode=0644

1.12 使用Aria2下载网络资源

使用 Aria2 之前,需要先设置一个目录专门用于存放 Aria2 下载的文件,这个目录需要 让aria2 用户有读写权限,如果你是挂载外部的硬盘作为下载目录,硬盘建议格式化为 ext4 格式。
下面以 /jellyfin/videos/Disk/download 目录为例,点击上方菜单栏“服务->ttyd”, 输入以下命令创建目录,并设置目录拥有者为 aria2:

mkdir -p /jellyfin/videos/Disk/download
chown aria2:aria2 /jellyfin/videos/Disk/download

R2s-wrt-jellyfin-047.jpg

(2) 点击“服务->Aria2”
R2s-wrt-jellyfin-048.jpg

(3) 勾选“已启用”复选框,将下载目录设置为/jellyfin/videos/Disk/download,然后点击“保存并应用”按钮:
R2s-wrt-jellyfin-049.jpg

(4) 保存完成后,点击 “AriaNg”即可进入 Aria2 前端界面,点击“新建”按钮即可创建下载任务:
R2s-wrt-jellyfin-050.jpg

1.13 在Windows10系统下使用WinSCP共享文件

(1)下载安装WinSCP后打开,新建一个连接,主机名填写NanoPi R2S的IP地址,然后填写NanoPi R2S的用户名和密码,默认用户名:root,密码为空,文件协议改为“SCP”,点击“登录”

使用WinSCP可以远程访问NanoPi R2S并传输文件。
WinSCP下载地址:https://winscp.net/eng/download.php
R2s-wrt-jellyfin-013.jpg

(2) 登录后可看到左边是本地的目录,右边是NanoPi R2S的文件目录,打开需要共享文件的目录,这里以/jellyfin/videos目录为例,把媒件文件拖到右边即可开始传输,等待文件传输完成:
R2s-wrt-jellyfin-014.jpg

1.14 设置Samba网络文件共享

(1)在FriendlyWrt中点击上方菜单栏的“服务->网络共享”
R2s-wrt-jellyfin-041.jpg

(2) 点击底部的“添加”按钮:
R2s-wrt-jellyfin-042.jpg

(3) 填写你要共享目录,这里以设置共享 /jellyfin/videos 目录为例(如目录文件夹有大小写请注意区分),填写完成后点击“保存并应用”:
R2s-wrt-jellyfin-043.jpg

1.14.1 在Windows10系统下访问Samba共享

默认情况下,你的Windows10可能没有启动网络发现与共享,请先参考下面这二份文档,对你的Windows10做一些设置:
(1) 启用Samba v1/v2的访问:https://www.windowscentral.com/how-access-files-network-devices-using-smbv1-windows-10
R2s-wrt-jellyfin-044.jpg

(2) 启用网络发现:https://www.dummies.com/computers/operating-systems/windows-10/how-to-enable-network-discovery-and-configure-sharing-options-in-windows-10/
R2s-wrt-jellyfin-045.jpg
具体操作可以百度“Windows10 开启SMBv1” 与 "Win10启用网络发现"了解中文版的设置方法;

设置完成后,在资源管理器的地址栏输入 \\friendlywrt 即可访问共享目录, 用户名为root, 密码为password;
R2s-wrt-jellyfin-046.jpg

1.14.2 在OS X系统下访问Samba共享

右击 Finder 图标,选择“连接到服务器“,输入地址 smb://root@friendlywrt 后点击“连接“按钮,
在要求输入用户名与密码时,输入用户名为root, 密码为password,最后点击 mnt 即可进入 /mnt/的共享目录。

1.14.3 在Linux系统下访问Samba共享

在文件管理器的地址栏中输入 smb://root@friendlywrt 后敲回车,在提示输入密码时输入 password,最后点击 mnt 即可进入 /mnt/的共享目录。

1.15 编译FriendlyWrt

请参考: How to Build FriendlyWrt/zh

1.16 更改Mac地址

注1:这里以更改R2S的WAN口的MAC地址为例进行说明;
注2:MAC的格式是严格的,不能胡乱编造,格式不合规的地址会导致无法接入网络,建议参考其他设备的MAC地址,做少量修改作为新的MAC地址;

新建一个服务文件 /etc/init.d/custom-mac,内容如下,其中的MAC地址,请替换成你需要更改的MAC地址,eth0更改为你想要更换MAC地址的网口(例如R2S的WAN口对应eth0):

#!/bin/sh /etc/rc.common
# Copyright (C) 2014 OpenWrt.org
 
START=94
STOP=15
 
start() {
    ifconfig eth0 down
    ifconfig eth0 hw ether 80:1F:12:EF:BC:99
    ifconfig eth0 up
}
 
stop() {
    echo "Stop."
}

运行一下服务,测试一下MAC地址有没有按预期改变,除了用ifconfig命令查看,如果你的NanoPi的WAN口连接的是主路由器,推荐登录主路由器的后台去确认新的MAC地址是否已生效:

chmod 755 /etc/init.d/custom-mac
/etc/init.d/custom-mac start
ifconfig eth0 | grep HWaddr

如果一切正常,再执下以下命令,让该服务开机自动运行:

/etc/init.d/custom-mac enable

以后开机都会自动应用新的MAC地址了。

1.17 如何超频

1.17.1 选择合格的电源

超频使用R2S需要保证有稳定可靠的电源供应,这包括标称真实,质量可靠的电源适配器,以及低阻抗的MicroUSB连接线(通俗讲就是铜芯足够粗),经我们测试,市面有如下可选: R2spower4.jpg
友善定制版5v3a电源购买链接https://www.friendlyarm.com/index.php?route=product/product&product_id=141&search=USB&description=true&category_id=0

1.17.2 保证散热措施

超频会令NanoPi-R2S发热增加,必须使用金属外壳进行散热,或DIY使用风扇进行主动散热,旧版的塑料外壳没法胜任。
另外TF卡也建议使用能支持高温条件下正常工作的TF卡,可以选购行车记录仪专用的TF卡;
Nanopir2s-working.jpg

1.17.3 超频测试固件

该FriendlyWrt固件已解锁1.51G的CPU频率,可从以下地址下载:https://pan.baidu.com/s/1qGf9LtNFzxrcDsIKHpRMlg 密码: 80gs
登录FriendlyWrt的网页,点击菜单项 服务->ttyd 进入终端,输入以下命令:

dd if=/dev/zero of=/dev/null bs=1M&
cat /sys/devices/system/cpu/cpu[04]/cpufreq/cpuinfo_cur_freq

就可以看到 R2S 已经运行在 1.51G:
Nanopir2s-wrt-overclock.png

1.17.4 超频前后的性能测试

测试命令:

openssl speed -evp aes-256-gcm

超频前的SSL性能(CPU主频:1.29G):

The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-256-gcm      68976.85k   189985.39k   342481.66k   432472.75k   466349.46k   466414.25k

超频后的SSL性能(CPU主频:1.51G):

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-256-gcm      80187.19k   222333.58k   399549.27k   504449.02k   542182.06k   545855.70k

可以看到aes-256-gcm该项的性能提升了16%。

1.17.5 超频方法

1.17.5.1 修改内核解锁更高的CPU频率

在FriendlyWrt Repo源代码的目录下,用vim打开以下文件:

vim kernel/arch/arm64/boot/dts/rockchip/rk3328.dtsi

在文件中搜索文本 opp-1296000000,在opp-1296000000定义后面,增加CPU频率1.51G的定义,修改后的内容如下所示:

        opp-1296000000 {
            opp-hz = /bits/ 64 <1296000000>;
            opp-microvolt = <1300000>;
            clock-latency-ns = <40000>;
        };
        opp-1512000000 {
            opp-hz = /bits/ 64 <1512000000>;
            opp-microvolt = <1450000>;
            clock-latency-ns = <40000>;
        };

修改完成后,重新编译内核,并制作SD固件:

./build.sh kernel
./build.sh sd-img
1.17.5.2 验证CPU是否超频成功

执行以下命令让CPU产生负载:

dd if=/dev/zero of=/dev/null bs=1M&

再用如下命令查看当前的CPU频率,可以看到频率已经是1.5G:

root@FriendlyWrt:~# cat /sys/devices/system/cpu/cpu[04]/cpufreq/cpuinfo_cur_freq
1512000