Difference between revisions of "Template:FriendlyWrt21/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
 
(37 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==FriendlyWrt的使用==
 
==FriendlyWrt的使用==
 
===FriendlyWrt简介===
 
===FriendlyWrt简介===
FriendlyWrt是友善电子基于OpenWrt定制的系统,完全开源,用于企业物联网二次开发,个人定制NAS,家庭物联网网关等。<br />
+
FriendlyWrt是友善电子基于OpenWrt定制的系统,完全开源,用于企业物联网二次开发,个人定制NAS等。<br />
 
+
 
===首次开机的初始化===
 
===首次开机的初始化===
 
首次上电开机,系统需要做以下一些初始化工作: <br />
 
首次上电开机,系统需要做以下一些初始化工作: <br />
Line 12: Line 11:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===帐户与密码===
 
===帐户与密码===
默认是的密码是password(某些版本是空密码),请设置或更改一个较安全的密码用于web登录与ssh登录,建议在将{{{1}}}连接到互联网之前完成此设置。
+
默认的密码是password(某些版本是空密码),请设置或更改一个较安全的密码用于web登录与ssh登录,建议在将{{{1}}}连接到互联网之前完成此设置。
 
+
===连接网络===
+
用网线连接{{{1}}}的WAN口到你的主路由器,默认将从你的主路由器通过DHCP自动获取IP地址,请登入你的路由器后台查看并记住{{{1}}}的IP地址。
+
 
+
 
===登录FriendlyWrt===
 
===登录FriendlyWrt===
 
将电脑连接到 {{{1}}} 的LAN口,如果电脑没有网口,可将无线AP的LAN口与{{{1}}}的LAN口相连接,电脑再通过WiFi连接到无线AP,在电脑浏览器上输入以下网址即可进入FriendlyWrt管理页面: <br />
 
将电脑连接到 {{{1}}} 的LAN口,如果电脑没有网口,可将无线AP的LAN口与{{{1}}}的LAN口相连接,电脑再通过WiFi连接到无线AP,在电脑浏览器上输入以下网址即可进入FriendlyWrt管理页面: <br />
Line 23: Line 18:
 
* http://[fd00:ab:cd::1]
 
* http://[fd00:ab:cd::1]
 
以上是{{{1}}}的LAN口地址,WAN口会从你的主路由器动态获取IP地址。<br />
 
以上是{{{1}}}的LAN口地址,WAN口会从你的主路由器动态获取IP地址。<br />
 
 
===建议的安全性设置===
 
===建议的安全性设置===
 
以下设置事项非常建议在将 {{{1}}} 接入互联网之前完成,因为在空密码或弱密码的状态下将{{{1}}}接入互联网,极易受到网络攻击。
 
以下设置事项非常建议在将 {{{1}}} 接入互联网之前完成,因为在空密码或弱密码的状态下将{{{1}}}接入互联网,极易受到网络攻击。
Line 30: Line 24:
 
* 禁止从wan访问ssh,更换端口
 
* 禁止从wan访问ssh,更换端口
 
进入 系统->管理权->SSH访问,将接口限制为 lan,将端口设置为其他非常用端口,例如 23333。
 
进入 系统->管理权->SSH访问,将接口限制为 lan,将端口设置为其他非常用端口,例如 23333。
* 只允许本地设备访问luci
 
编辑 /etc/config/uhttpd,将原来的0.0.0.0和[::]地址改为本地lan的地址,例如:
 
<syntaxhighlight lang="text">
 
# HTTP listen addresses, multiple allowed
 
list listen_http 192.168.2.1:80
 
list listen_http [fd00:ab:cd::1]:80
 
 
# HTTPS listen addresses, multiple allowed
 
list listen_https 192.168.2.1:443
 
list listen_https [fd00:ab:cd::1]:443
 
</syntaxhighlight>
 
完成后重启服务:
 
<syntaxhighlight lang="text">
 
/etc/init.d/uhttpd restart
 
</syntaxhighlight>
 
 
* 检查防火墙设置
 
* 检查防火墙设置
默认情况下,FriendlyWrt会将WAN的入口流量设置为ACCEPT,这方便测试但降低了安全性,可以执行以下命令恢复成openwrt默认的设置,这时,管理页面只能通过 lan 口的设备访问:
+
根据实际情况调整设置
<syntaxhighlight lang="text">
+
{{#switch: {{{1}}}
uci set firewall.@zone[1].input='REJECT'
+
| NanoPi-R5S =
uci set firewall.@zone[1].output='ACCEPT'
+
===切换WAN口至其他物理网口===
uci set firewall.@zone[1].forward='REJECT'
+
默认情况下, WAN绑定在千兆的网口上, 如果需要将WAN改绑到2.5G的物理网口上, 可参考如下操作, 操作完成后, 最边上的2.5G网口(eth2)将作为WAN口:
uci commit firewall
+
* 将网线连接到中间的物理网口(即eth1), 在电脑浏览器上输入 192.168.2.1 进入 FriendlyWrt 页面;
fw3 reload
+
* 首页进入“网络”->"接口", 点击"设备", 在设备列表上, 点击 "br-lan" 边上的 "配置" 按钮, 找到"网桥端口", 点击弹出下拉菜单, 取消 "以太网适配器: eth2" 的钩选, 点击"保存", 这一步是把 eth2 从LAN中释放出来;
 +
* 首页进入“网络”->"接口", 点击"接口", 在接口列表上, 点击 "WAN" 边上的“编辑”按钮, 找到”设备”一栏, 选择 "eth2", 点击"保存";
 +
* 再点击 "WAN6" 边上的“编辑”按钮进行同样的操作, 找到”设备”一栏, 选择 "eth2", 点击"保存";
 +
* 首页进入“网络”->"接口", 点击"设备",  在设备列表上, 点击 "br-lan" 边上的 "配置" 按钮, 找到"网桥端口", 点击弹出下拉菜单, 增加钩选 "以太网适配器: eth0" 的钩选, 点击"保存", 这一步是把 eth0添加到 LAN;
 +
* 最后点击 FriendlyWrt 最底部的“保存并应用”按钮保存设置即可, 设置完成后, eth2是WAN, eth0和eth1是LAN;
 +
| #default =
 +
}}
 +
===更改LAN口的IP地址===
 +
1) 菜单栏导航到:"网络" -> "接口", 点击“LAN”右边的“编辑”按钮; <br />
 +
2) 在“常规设置”页面上找到“IPv4 地址”, 输入新的IP地址 (例如192.168.11.1), 然后点击“保存”, 再点击“保存并应用”; <br />
 +
3) 在弹出的“连接更改“询问界面上, 选择"Apply and revert on connectivity loss"; <br />
 +
4) 稍等片刻, 在电脑的浏览器上输入新的地址登录 FriendlyWrt; <br />
 +
===安全的关机操作===
 +
进入"服务"->"终端",输入poweroff命令敲回车,待led灯熄灭,再拔开电源。
 +
===恢复出厂设置===
 +
进入"系统"->"备份/升级",点击“执行重置“按钮,在弹出的询问界面上点击“确定”,设备会重启并擦除data分区, 所有的设置和数据都会被清除, 并恢复至出厂时的状态。<br />
 +
恢复出厂设置也可以通过命令行来操作, 进入“服务”-》“终端”界面, 输入如下命令:
 +
<syntaxhighlight lang="bash">
 +
firstboot && reboot
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===安全的关机操作===
 
进入ttyd终端,输入poweroff命令敲回车,待led灯熄灭,再拔开电源。
 
 
 
===安装软件包===
 
===安装软件包===
====更新可用软件包列表====
+
====设置第三方软件源====
安装软件前,先更新可用软件包列表:
+
进入菜单”系统“-》”软件包“, 在界面上点击”okpg配置“按钮, 在新弹出的界面上, 更改/etc/opkg/distfeeds.conf的文件内容即可, <br />
 +
比如要切换至国内腾讯源, 可以替换成如下内容, 然后点击 “保存” 按钮:
 
<syntaxhighlight lang="text">
 
<syntaxhighlight lang="text">
$ opkg update
+
src/gz openwrt_base https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/base
 +
src/gz openwrt_luci https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/luci
 +
src/gz openwrt_packages https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/packages
 +
src/gz openwrt_routing https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/routing
 +
src/gz openwrt_telephony https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/telephony
 +
src/gz friendlywrt_packages file://opt/packages
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
* 注意, friendlywrt_packages需要保留, 否则会缺少一些系统依赖;
====查看可安装的软件包====
+
* 如果你使用的是 friendlywrt 21.02 的固件, 则将上面的 23.05.2 替换成 21.02.5;
 +
* CPU架构可选择 aarch64_cortex-a53和aarch64_generic这两种;
 +
* 通过命令行切换国内源:
 
<syntaxhighlight lang="text">
 
<syntaxhighlight lang="text">
$ opkg list
+
sed -i -e 's/downloads.openwrt.org/mirrors.cloud.tencent.com/g' /etc/opkg/distfeeds.conf
 +
opkg update
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
====在线安装软件包====
====查看已安装的软件====
+
回到”软件包“界面, 点击 “更新列表” 更新软件包信息, 更新完成后, 就可以在“筛选器”一栏中输入软件包的关键字, 搜索软件包安装了。
<syntaxhighlight lang="text">
+
====安装离线ipk软件包====
$ opkg list-installed
+
在”软件包“界面上点击“上传软件包“, 定位你本地的ipk文件, 上传并安装即可。
</syntaxhighlight>
+
 
+
====安装软件====
+
<syntaxhighlight lang="text">
+
$ opkg install <包各称>
+
</syntaxhighlight>
+
 
+
====删除软件====
+
<syntaxhighlight lang="text">
+
$ opkg remove <包各称>
+
</syntaxhighlight>
+
 
+
 
===FriendlyWrt的一些常见问题===
 
===FriendlyWrt的一些常见问题===
 
* 无法拨号上网
 
* 无法拨号上网
 
** 进入“网络“->“防火墙“,将 “WAN区域“ 的“入站数据“,“出站数据“与“转发“均设置为 “接受”;
 
** 进入“网络“->“防火墙“,将 “WAN区域“ 的“入站数据“,“出站数据“与“转发“均设置为 “接受”;
 
** 如仍无法上网,可尝试关闭IPV6;
 
** 如仍无法上网,可尝试关闭IPV6;
 +
* 拨号成功,但没有外网流量
 +
** 进入"服务"->"终端",输入fw4 reload尝试重新加载一次防火墙设置;
 
* 无法开机,LED灯不亮
 
* 无法开机,LED灯不亮
 
** 尝试更换电源适配器和电缆,推荐使用 5V/2A 以上规格的电源供应;
 
** 尝试更换电源适配器和电缆,推荐使用 5V/2A 以上规格的电源供应;
Line 95: Line 87:
 
** 如果你的主网络是IPv4,而'''{{{1}}}'''工作在IPv6,电脑有可能无法连接互联网,建议关闭IPv6 (本WiKi后面有介绍方法),或将主路由切换到IPv6;
 
** 如果你的主网络是IPv4,而'''{{{1}}}'''工作在IPv6,电脑有可能无法连接互联网,建议关闭IPv6 (本WiKi后面有介绍方法),或将主路由切换到IPv6;
 
* 如果你有问题,或有更好的建议,欢迎发送邮件到 techsupport@friendlyarm.com;
 
* 如果你有问题,或有更好的建议,欢迎发送邮件到 techsupport@friendlyarm.com;
 
 
===禁用IPv6===
 
===禁用IPv6===
 
要关掉 IPv6,可在ssh终端输入如下命令:
 
要关掉 IPv6,可在ssh终端输入如下命令:
Line 104: Line 95:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
待{{{1}}}重启完毕,电脑也需要重新插拨一下网线(或重启网络端口)以便重新获得IP地址。
 
待{{{1}}}重启完毕,电脑也需要重新插拨一下网线(或重启网络端口)以便重新获得IP地址。
 
 
{{#switch: {{{1}}}
 
{{#switch: {{{1}}}
 
  | NanoPi-R5S =
 
  | NanoPi-R5S =
Line 115: Line 105:
 
你可以通过更改上面的配置文件改变它的行为.
 
你可以通过更改上面的配置文件改变它的行为.
 
}}
 
}}
 
+
===配置移远EC20(4G模块)拨号上网===
 +
* 进入“网络“->“接口“;
 +
* 点击 “WAN6“ 后面的 “删除“, 点击 "保存及应用";
 +
* 点击 “WAN“ 后面的 “编辑“,在 “设备“ 下拉选单中选择 "以太网适配器:wwan0",在“协议”下拉选单中选择“QMI蜂窝”,然后点击“切换协议“;
 +
* 在“调制解调器设备“下拉选单中选择”/dev/cdc-wdm0“,如果是中国联通,在“APN“中填入3gnet,如果是中国移动则填入cmnet,填写完成后,如下图所示:
 +
[[File:friendlywrt-ec20-config-cn.png|frameless|400px]]<br />
 +
* 点击“保存”关闭界面,最后点击下方的“保存并应用",FriendlyWrt后台会进行拨号上网,拨号成功的状态如下所示:
 +
[[File:friendlywrt-ec20-netstatus-cn.png|frameless|400px]]<br />
 +
* 连接到Lan的设备将可以连接互联网,如有WiFi模块,可进入“无线”界面开启无线AP功能,通过无线接入的设备亦可连接到互联网。
 
===使用USB2LCD查看IP和温度===
 
===使用USB2LCD查看IP和温度===
 +
在终端输入如下命令设置lcd2usb服务开机自动启动:
 +
<syntaxhighlight lang="text">
 +
. /root/setup.sh
 +
init_lcd2usb
 +
poweroff
 +
</syntaxhighlight>
 
将USB2LCD模块Plug到 {{{1}}} 的USB接口再开机,IP地址和CPU温度将显示在LCD上:<br />
 
将USB2LCD模块Plug到 {{{1}}} 的USB接口再开机,IP地址和CPU温度将显示在LCD上:<br />
 
{{#switch: {{{1}}}
 
{{#switch: {{{1}}}
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
[[File:R2S-usb2lcd-01.jpg|frameless|600px]]<br />
 
[[File:R2S-usb2lcd-01.jpg|frameless|600px]]<br />
 
  | #default =
 
  | #default =
 +
[[File:Xxx-usb2lcd-01.png|frameless|400px]]<br />
 
}}
 
}}
 
 
{{#switch: {{{1}}}
 
{{#switch: {{{1}}}
  | NanoPi-R4S =
+
  | NanoPi-R4S
 +
| NanoPi-R4SE =
 
===PWM风扇的调节===
 
===PWM风扇的调节===
 
(注:本章节的内容基于2021/08/31之后发布的固件,内核版本 kernel 5.10.xyz)
 
(注:本章节的内容基于2021/08/31之后发布的固件,内核版本 kernel 5.10.xyz)
Line 149: Line 155:
 
/usr/bin/fa-fancontrol-direct.sh
 
/usr/bin/fa-fancontrol-direct.sh
 
</syntaxhighlight>
 
</syntaxhighlight>
| #default =
 
}}
 
 
 
===读取EEPROM中的Mac Address===
 
===读取EEPROM中的Mac Address===
 
====命令行读取====
 
====命令行读取====
Line 167: Line 170:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
如果命令出错, 则表示没有内建EEPROM芯片.
 
如果命令出错, 则表示没有内建EEPROM芯片.
 +
| #default =
 +
}}
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S-Plus =
 +
===如何使用SDIO WiFi===
 +
====AP模式====
 +
* FriendlyWrt系统的无线功能默认是关闭状态, 要启用WiFi, 可点击“网络>无线”进入配置无线WiFi界面, 找到“无线未启用”那一行, 点击后面的“启用”按钮即可<br />
 +
* 启用后, 在手机上搜索连接名称类拟 FriendlyWrt-xx:yy:zz 名称的WiFi热点, 输入默认密码password即可连接<br />
 +
* {{{1}}}支持的SDIO WiFi型号为: rtl8822cs<br />
 +
====无线中继模式====
 +
[[File:R2S-Plus-RepeaterMode.jpg|frameless|600px]]
 +
* 连接到主无线路由器
 +
点击 "网络" -> "无线", 在界面上点击 "Generic MAC80211 802.11ac/b/g/n" 后面的 "扫描" 按钮扫描网络,点击无线路由器后面的 "加入网络" 按钮,<br />
 +
在加入网络的配置页面中,勾选 "重置无线配置",在 "WPA密钥"一栏中输入密钥,其他配置保持默认,点 "提交",<br />
 +
点击 "高级设置", 在 “接口名称” 中输入 "wlan0", 再点击 "保存",<br />
 +
最后点 "保存并应用", 连接成功后,可以在FriendlyWrt首页看到IP地址。
 +
* 创建无线热点
 +
点击 "网络" -> "无线",在界面上点击 "Generic MAC80211 802.11ac/b/g/n" 后面的 "添加" 按钮,将会弹出 "编辑无线网络" 页面,<br />
 +
在 "工作频率" 一栏中设置无线信道(例如"40 (5200 MHz)"),<br />
 +
在 "ESSID" 一栏中,输入热点名称,<br />
 +
在 "网络" 一栏中,钩选 "lan",<br />
 +
点击 "无线安全", 设置加密类型 (例如 "WPA2-PSK(强安全性)")和密钥,<br />
 +
点击 "高级设置", 在 “接口名称” 中输入 "wlan1", <br />
 +
然后点击 "保存", 然后点击 "保存并应用",<br />
 +
由于需要重启才能生效,点击 "系统" 选择 "重启"。
 +
| #default =
 +
}}
 +
{{#switch: {{{1}}}
 +
| NanoPC-T6
 +
| NanoPi-R5C =
 +
===如何使用M.2 WiFi===
 +
* {{{1}}}支持的M.2 WiFi型号为: rtl8822ce
 +
====AP模式====
 +
* FriendlyWrt系统的无线功能默认是关闭状态, 要启用WiFi, 可点击“网络>无线”进入配置无线WiFi界面, 找到“无线未启用”那一行, 点击后面的“启用”按钮即可<br />
 +
* 启用后, 在手机上搜索连接名称类拟 FriendlyWrt-xx:yy:zz 名称的WiFi热点, 输入默认密码password即可连接<br />
 +
====无线中继模式====
 +
[[File:NanoPiAPMode.jpg|frameless|600px]]
 +
* 连接到主无线路由器
 +
点击 "网络" -> "无线", 在界面上点击 "Generic MAC80211 802.11ac/b/g/n" 后面的 "扫描" 按钮扫描网络,点击无线路由器后面的 "加入网络" 按钮,<br />
 +
在加入网络的配置页面中,勾选 "重置无线配置",在 "WPA密钥"一栏中输入密钥,其他配置保持默认,点 "提交",<br />
 +
点击 "高级设置", 在 “接口名称” 中输入 "wlan0", 再点击 "保存",<br />
 +
最后点 "保存并应用", 连接成功后,可以在FriendlyWrt首页看到IP地址。
 +
* 创建无线热点
 +
点击 "网络" -> "无线",在界面上点击 "Generic MAC80211 802.11ac/b/g/n" 后面的 "添加" 按钮,将会弹出 "编辑无线网络" 页面,<br />
 +
在 "工作频率" 一栏中设置无线信道(例如"40 (5200 MHz)"),<br />
 +
在 "ESSID" 一栏中,输入热点名称,<br />
 +
在 "网络" 一栏中,钩选 "lan",<br />
 +
点击 "无线安全", 设置加密类型 (例如 "WPA2-PSK(强安全性)")和密钥,<br />
 +
点击 "高级设置", 在 “接口名称” 中输入 "wlan1", <br />
 +
然后点击 "保存", 然后点击 "保存并应用",<br />
 +
由于需要重启才能生效,点击 "系统" 选择 "重启"。
 +
| #default =
 +
}}
 
===如何使用USB WiFi===
 
===如何使用USB WiFi===
 
====如何在终端使用命令查询USB无线网卡型号====
 
====如何在终端使用命令查询USB无线网卡型号====
Line 173: Line 229:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
[[File:R2s-wrt-jellyfin-002.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-002.jpg|frameless|800px]]<br />
 
  | #default =
 
  | #default =
 
}}
 
}}
 
 
(2) 在开发板没有插入任何USB设备时输入以下命令以查看挂在USB主线上的现有设备<br />
 
(2) 在开发板没有插入任何USB设备时输入以下命令以查看挂在USB主线上的现有设备<br />
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 185: Line 241:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
[[File:R2swrt+usbwifi-09.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-09.jpg|frameless|800px]]<br />
Line 197: Line 254:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
[[File:R2swrt+usbwifi-10.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-10.jpg|frameless|800px]]<br />
 
  | #default =
 
  | #default =
 
}}
 
}}
 
 
(4) 以“0BDA:C811”或“VID_0BDA&PID_C811”作为关键词在搜索引擎上搜索,搜索结果显示VID_0BDA&PID_C811的对应WIFI芯片为Realtek 8811CU
 
(4) 以“0BDA:C811”或“VID_0BDA&PID_C811”作为关键词在搜索引擎上搜索,搜索结果显示VID_0BDA&PID_C811的对应WIFI芯片为Realtek 8811CU
 
 
====如何使用USB WiFi作为AP====
 
====如何使用USB WiFi作为AP====
 
(1) 把USB WiFi插入{{{1}}}的USB端口,推荐使用以下列表中支持AP模式的WiFi芯片模块:<br />
 
(1) 把USB WiFi插入{{{1}}}的USB端口,推荐使用以下列表中支持AP模式的WiFi芯片模块:<br />
 
[[File:R2swrt+usbwifi-20210831.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-20210831.jpg|frameless|800px]]<br />
<span style="color: blue; ">注:符合以上WiFi芯片型号并符合以上VID&PID信息的USB无线网卡都可以使用,支持的型号不局限于某个品牌某个型号</span>
+
<span style="color: blue; ">注:符合以上WiFi芯片型号并符合以上VID&PID信息的USB无线网卡都可以使用,支持的型号不局限于某个品牌某个型号</span><br/>
 
+
 
(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启{{{1}}}<br />
 
(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启{{{1}}}<br />
 
{{#switch: {{{1}}}
 
{{#switch: {{{1}}}
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
[[File:R2swrt+usbwifi-01.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-01.jpg|frameless|800px]]<br />
Line 223: Line 279:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
[[File:R2swrt+usbwifi-03.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-03.jpg|frameless|800px]]<br />
Line 231: Line 288:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
[[File:R2swrt+usbwifi-04.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-04.jpg|frameless|800px]]<br />
Line 239: Line 297:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
[[File:R2swrt+usbwifi-05.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-05.jpg|frameless|800px]]<br />
Line 249: Line 308:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
[[File:R2swrt+usbwifi-07.png|frameless|277px]]<br />
 
[[File:R2swrt+usbwifi-07.png|frameless|277px]]<br />
 
  | #default =
 
  | #default =
 
}}
 
}}
 
 
====常见的USB WiFi问题及应对方法====
 
====常见的USB WiFi问题及应对方法====
 
1) 建议在关机状态下插入usb wifi, 再上电开机,FriendlyWrt会自动生成配置文件 /etc/config/wireless,如果没有生成,通过 ifconfig -a 看看有没有 wlan0,如果没有 wlan0,通常是没有驱动。 <br />
 
1) 建议在关机状态下插入usb wifi, 再上电开机,FriendlyWrt会自动生成配置文件 /etc/config/wireless,如果没有生成,通过 ifconfig -a 看看有没有 wlan0,如果没有 wlan0,通常是没有驱动。 <br />
 
2) 如果 ifconfig -a 能看到 wlan0,但是热点没有正常工作,可以尝试更改 频道 和 国家代号,不合适的国家代号也会导致 WiFi 不工作。 <br />
 
2) 如果 ifconfig -a 能看到 wlan0,但是热点没有正常工作,可以尝试更改 频道 和 国家代号,不合适的国家代号也会导致 WiFi 不工作。 <br />
 
3) 某些USB WiFi(例如MTK MT7662)默认工作在CD-ROM模式,需要经过usb_modeswitch来进行切换,可以尝试自行添加 usb_modeswitch 配置到以下目录:/etc/usb_modeswitch.d 。<br />
 
3) 某些USB WiFi(例如MTK MT7662)默认工作在CD-ROM模式,需要经过usb_modeswitch来进行切换,可以尝试自行添加 usb_modeswitch 配置到以下目录:/etc/usb_modeswitch.d 。<br />
 
 
====更改系统默认的WiFi热点配置====
 
====更改系统默认的WiFi热点配置====
 
FriendlyWrt默认会为USB WiFi设置国家、热点名称等参数,目的是尽量的做到即插即用,但这不能保证所有的模块都能兼容此设置,你可以通过修改以下文件,来更改这些行为:
 
FriendlyWrt默认会为USB WiFi设置国家、热点名称等参数,目的是尽量的做到即插即用,但这不能保证所有的模块都能兼容此设置,你可以通过修改以下文件,来更改这些行为:
Line 264: Line 322:
 
/lib/wifi/mac80211.sh
 
/lib/wifi/mac80211.sh
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
===玩转Docker应用===
 
===玩转Docker应用===
 
{{#switch: {{{1}}}
 
{{#switch: {{{1}}}
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
====Docker使用:安装JellyFin影音服务器====
 
====Docker使用:安装JellyFin影音服务器====
 
=====安装JellyFin=====
 
=====安装JellyFin=====
 
(1) 准备一个已烧好FriendlyWrt的{{{1}}}(或任意H3/RK3399 平台的友善开发板),接上电源和网线,网线接入{{{1}}}的WAN口;
 
(1) 准备一个已烧好FriendlyWrt的{{{1}}}(或任意H3/RK3399 平台的友善开发板),接上电源和网线,网线接入{{{1}}}的WAN口;
 
 
(2) 在电脑端的浏览器输入 http://friendlywrt/ 或者开发板的IP地址即可进入FriendlyWrt管理页面,默认情况下,LAN口的IP地址为192.168.2.1,WAN会从你的主路由器动态获取IP地址;<br />
 
(2) 在电脑端的浏览器输入 http://friendlywrt/ 或者开发板的IP地址即可进入FriendlyWrt管理页面,默认情况下,LAN口的IP地址为192.168.2.1,WAN会从你的主路由器动态获取IP地址;<br />
 
[[File:R2s-001.jpg|frameless|800px]]<br />
 
[[File:R2s-001.jpg|frameless|800px]]<br />
 
 
(3) 点击上方菜单栏的“服务->ttyd”进入命令行界面;<br />
 
(3) 点击上方菜单栏的“服务->ttyd”进入命令行界面;<br />
 
 
[[File:R2s-wrt-jellyfin-002.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-002.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-003.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-003.jpg|frameless|800px]]<br />
 
(4) 输入以下命令安装JellyFin:
 
(4) 输入以下命令安装JellyFin:
 
 
创建一个目录用于存放 JellyFin 的配置:
 
创建一个目录用于存放 JellyFin 的配置:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
mkdir -p /jellyfin/config
 
mkdir -p /jellyfin/config
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
创建一个专门供JellyFin访问的目录,存放影片和视频:
 
创建一个专门供JellyFin访问的目录,存放影片和视频:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
mkdir -p /jellyfin/videos
 
mkdir -p /jellyfin/videos
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
然后安装JellyFin,请耐心等待安装过程:
 
然后安装JellyFin,请耐心等待安装过程:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
docker run --restart=always -d -p 8096:8096 -v /jellyfin/config:/config -v /jellyfin/videos:/videos jellyfin/jellyfin:10.1.0-arm64 -name myjellyfin
 
docker run --restart=always -d -p 8096:8096 -v /jellyfin/config:/config -v /jellyfin/videos:/videos jellyfin/jellyfin:10.1.0-arm64 -name myjellyfin
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
'''主要参数说明''':<br />
 
'''主要参数说明''':<br />
 
'''8096:8096''': 指定端口号为 8096,安装完后,可能通过 http://路由器IP:8096 访问jellyFin<br />
 
'''8096:8096''': 指定端口号为 8096,安装完后,可能通过 http://路由器IP:8096 访问jellyFin<br />
Line 305: Line 356:
 
(5) 等到可再次操作命令行界面时即完成安装,如下图:<br />
 
(5) 等到可再次操作命令行界面时即完成安装,如下图:<br />
 
[[File:R2s-wrt-jellyfin-005.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-005.jpg|frameless|800px]]<br />
 
 
=====为JellyFin添加媒体库=====
 
=====为JellyFin添加媒体库=====
 
(1) 在浏览器输入{{{1}}}的IP地址+端口8096 进入JellyFin界面:<br />
 
(1) 在浏览器输入{{{1}}}的IP地址+端口8096 进入JellyFin界面:<br />
 
如:192.168.1.126:8096 <br />
 
如:192.168.1.126:8096 <br />
 
[[File:R2s-wrt-jellyfin-015.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-015.jpg|frameless|800px]]<br />
 
 
(2) 点击右上角的“设置”图标进入控制台:<br />
 
(2) 点击右上角的“设置”图标进入控制台:<br />
 
[[File:R2s-wrt-jellyfin-016.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-016.jpg|frameless|800px]]<br />
 
 
(3) 点击左边的“媒体库”,然后点击“添加媒体库”:<br />
 
(3) 点击左边的“媒体库”,然后点击“添加媒体库”:<br />
 
[[File:R2s-wrt-jellyfin-017.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-017.jpg|frameless|800px]]<br />
 
 
(4) 建议打开“显示高级设置”选项,内容类型等选项根据情况选择,勾选“将媒体图像保存到媒体所在文件夹”的话JellyFin会在网上搜索电影封面等信息下载到媒体文件夹中,设置完成后点击“确定”:<br />
 
(4) 建议打开“显示高级设置”选项,内容类型等选项根据情况选择,勾选“将媒体图像保存到媒体所在文件夹”的话JellyFin会在网上搜索电影封面等信息下载到媒体文件夹中,设置完成后点击“确定”:<br />
 
[[File:R2s-wrt-jellyfin-018.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-018.jpg|frameless|800px]]<br />
 
 
[[File:R2s-wrt-jellyfin-019.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-019.jpg|frameless|800px]]<br />
 
 
(5) 设置完成后回到“控制台”,可看到“Scan media library”任务,即JellyFin正在扫描媒体库并下载媒体信息,视网络情况而定可能需要几分钟至几十分钟:<br />
 
(5) 设置完成后回到“控制台”,可看到“Scan media library”任务,即JellyFin正在扫描媒体库并下载媒体信息,视网络情况而定可能需要几分钟至几十分钟:<br />
 
[[File:R2s-wrt-jellyfin-020.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-020.jpg|frameless|800px]]<br />
 
 
(6) 扫描完成后返回主界面,可看到媒体库已添加成功:<br />
 
(6) 扫描完成后返回主界面,可看到媒体库已添加成功:<br />
 
[[File:R2s-wrt-jellyfin-021.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-021.jpg|frameless|800px]]<br />
 
 
=====在JellyFin下播放媒体=====
 
=====在JellyFin下播放媒体=====
 
======在电脑端播放媒体======
 
======在电脑端播放媒体======
 
在浏览器中输入{{{1}}}的IP地址+端口8096 进入JellyFin,点击媒体库中其中一部影片,即可开始播放:<br />
 
在浏览器中输入{{{1}}}的IP地址+端口8096 进入JellyFin,点击媒体库中其中一部影片,即可开始播放:<br />
 
[[File:R2s-wrt-jellyfin-022.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-022.jpg|frameless|800px]]<br />
 
 
======在手机端播放媒体======
 
======在手机端播放媒体======
 
(1) 从应用商店下载安装JellyFin APP,打开APP输入{{{1}}}的IP地址+端口8096登录进入:<br />
 
(1) 从应用商店下载安装JellyFin APP,打开APP输入{{{1}}}的IP地址+端口8096登录进入:<br />
 
[[File:R2s-wrt-jellyfin-035.jpg|frameless|280px]]  [[File:R2s-wrt-jellyfin-036.jpg|frameless|280px]]  <br />
 
[[File:R2s-wrt-jellyfin-035.jpg|frameless|280px]]  [[File:R2s-wrt-jellyfin-036.jpg|frameless|280px]]  <br />
 
 
(2) 点击媒体库可看到库中所有影片,点击其中一部影片可查看影片详情:<br />
 
(2) 点击媒体库可看到库中所有影片,点击其中一部影片可查看影片详情:<br />
 
[[File:R2s-wrt-jellyfin-037.jpg|frameless|280px]]  [[File:R2s-wrt-jellyfin-038.jpg|frameless|280px]]  [[File:R2s-wrt-jellyfin-039.jpg|frameless|280px]]<br />
 
[[File:R2s-wrt-jellyfin-037.jpg|frameless|280px]]  [[File:R2s-wrt-jellyfin-038.jpg|frameless|280px]]  [[File:R2s-wrt-jellyfin-039.jpg|frameless|280px]]<br />
 
+
(3) 点击播放按钮即可观看影片:<br />
(2) 点击播放按钮即可观看影片:<br />
+
 
[[File:R2s-wrt-jellyfin-040.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-040.jpg|frameless|800px]]<br />
 
 
详细使用教程请参考: [[How to setup JellyFin media system on NanoPi-R2S/zh]]
 
详细使用教程请参考: [[How to setup JellyFin media system on NanoPi-R2S/zh]]
 
  | #default =
 
  | #default =
Line 365: Line 404:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
===挂载外接存储设备===
 
===挂载外接存储设备===
 
(1) 把移动硬盘连接{{{1}}}作为外接存储设备,将移动硬盘插入{{{1}}}的USB接口,在FriendlyWrt中点击“系统->挂载点”进入挂载点设置界面:<br />
 
(1) 把移动硬盘连接{{{1}}}作为外接存储设备,将移动硬盘插入{{{1}}}的USB接口,在FriendlyWrt中点击“系统->挂载点”进入挂载点设置界面:<br />
 
[[File:R2s-wrt-jellyfin-006.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-006.jpg|frameless|800px]]<br />
 
 
(2) 在界面下方找到挂载点存储设备设置,点击“添加”按钮:<br />
 
(2) 在界面下方找到挂载点存储设备设置,点击“添加”按钮:<br />
 
[[File:R2s-wrt-jellyfin-007.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-007.jpg|frameless|800px]]<br />
 
 
(3) 在弹出的对话框中UUID一栏选中刚刚接入的移动硬盘 /dev/sda1(实际情况请根据自身设备选择,如硬盘有多个分区可能会显示sda1/sda2……等):<br />
 
(3) 在弹出的对话框中UUID一栏选中刚刚接入的移动硬盘 /dev/sda1(实际情况请根据自身设备选择,如硬盘有多个分区可能会显示sda1/sda2……等):<br />
 
[[File:R2s-wrt-jellyfin-008.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-008.jpg|frameless|800px]]<br />
 
 
(4) 在挂载点一栏中使用自定义,填入要挂载到的目标目录,这里以/jellyfin/videos 目录为例,勾选上方的“已启用”,然后点击“保存”:<br />
 
(4) 在挂载点一栏中使用自定义,填入要挂载到的目标目录,这里以/jellyfin/videos 目录为例,勾选上方的“已启用”,然后点击“保存”:<br />
 
[[File:R2s-wrt-jellyfin-009.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-009.jpg|frameless|800px]]<br />
 
 
[[File:R2s-wrt-jellyfin-010.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-010.jpg|frameless|800px]]<br />
 
 
(5) 设置完后点击“系统->重启”重启{{{1}}}使挂载点生效:<br />
 
(5) 设置完后点击“系统->重启”重启{{{1}}}使挂载点生效:<br />
 
[[File:R2s-wrt-jellyfin-011.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-011.jpg|frameless|800px]]<br />
 
 
(6) 重启后再回到“挂载点”界面可看到“已挂载的文件系统”中显示刚刚挂载的移动硬盘信息,即设置成功(以后需要再新增或删减编辑挂载点都可以在下面的“挂载点”设置中操作):<br />
 
(6) 重启后再回到“挂载点”界面可看到“已挂载的文件系统”中显示刚刚挂载的移动硬盘信息,即设置成功(以后需要再新增或删减编辑挂载点都可以在下面的“挂载点”设置中操作):<br />
 
'''注:每次操作后都需要重启后才能生效'''<br />
 
'''注:每次操作后都需要重启后才能生效'''<br />
Line 389: Line 423:
 
  | #default =
 
  | #default =
 
}}
 
}}
 +
 +
====使用外接硬盘来扩展Docker可用空间====
 +
* 先停止docker服务:
 +
<syntaxhighlight lang="bash">
 +
/etc/init.d/dockerd stop
 +
</syntaxhighlight>
 +
* 把原来的/opt目录改个名, 建一个空的/opt目录:
 +
<syntaxhighlight lang="bash">
 +
mv /opt /opt-old && mkdir /opt
 +
</syntaxhighlight>
 +
* 参考章节“8 初始化NVME固态硬盘和USB移动硬盘”, 将你的硬盘格式化为ext4, 然后挂载至 /opt 目录:
 +
[[File:Friendlywrt mount nvme opt-zh.jpg|frameless|500px]]
 +
* 输入命令 "mount | grep /opt" 确实一下硬盘被正常挂载到 /opt 下:
 +
<syntaxhighlight lang="bash">
 +
root@FriendlyWrt:~# mount | grep /opt
 +
/dev/nvme0n1p1 on /opt type ext4 (rw,relatime)
 +
root@FriendlyWrt:~#
 +
</syntaxhighlight>
 +
* 把原来 /opt 目录下的文件复制到新的 /opt 目录:
 +
<syntaxhighlight lang="bash">
 +
cp -af /opt-old/* /opt/ && rm -rf /opt-old
 +
</syntaxhighlight>
 +
* 操作完后, 重启
 +
<syntaxhighlight lang="bash">
 +
reboot
 +
</syntaxhighlight>
 +
* 重启后, 进入"Docker"->"概览"页面, 查看"Docker根目录"这一行的信息, 可以确认Docke空间已扩容:
 +
<!-- Docker->Overview, View "Docker Root Dir" -->
 +
[[File:Friendlywrt docker info-zh.jpg|frameless|500px]]
 +
====Docker的常见问题与解决办法====
 +
=====无法访问Docker提供的网络服务=====
 +
解决办法: <br />
 +
* 进入  "防火墙" 的设置,把 "转发" 设置成 "接受";
 +
* 关闭 ”软件流量分载“;
 
===挂载smbfs共享资源===
 
===挂载smbfs共享资源===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 396: Line 464:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
===使用Aria2下载网络资源===
 
===使用Aria2下载网络资源===
Line 423: Line 492:
 
  | NanoPi-R2S
 
  | NanoPi-R2S
 
  | NanoPi-R2C-Plus
 
  | NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 
  | NanoPi-R2C =
 
  | NanoPi-R2C =
 
===设置Samba网络文件共享===
 
===设置Samba网络文件共享===
Line 486: Line 556:
 
  | NanoPi-R2C-Plus =
 
  | NanoPi-R2C-Plus =
 
{{CPUOverClock/zh|NanoPi-R2C-Plus}}
 
{{CPUOverClock/zh|NanoPi-R2C-Plus}}
 +
| NanoPi-R2S-Plus
 +
{{CPUOverClock/zh|NanoPi-R2S-Plus}}
 
  | NanoPi-R4S =
 
  | NanoPi-R4S =
 +
| NanoPi-R5S =
 +
| NanoPi-R5C =
 
  | #default =
 
  | #default =
 
}}
 
}}
 
 
===使用sdk编译软件包===
 
===使用sdk编译软件包===
 
====安装编译环境====
 
====安装编译环境====
 
在64位的Ubuntu (版本18.04+)下载并运行如下脚本:
 
在64位的Ubuntu (版本18.04+)下载并运行如下脚本:
 
[https://github.com/friendlyarm/build-env-on-ubuntu-bionic How to setup the Compiling Environment on Ubuntu bionic]
 
[https://github.com/friendlyarm/build-env-on-ubuntu-bionic How to setup the Compiling Environment on Ubuntu bionic]
 
 
====在网盘上下载并解压sdk====
 
====在网盘上下载并解压sdk====
 
sdk位于网盘的toolchain目录,解压后,需要先下载feeds软件包:
 
sdk位于网盘的toolchain目录,解压后,需要先下载feeds软件包:
{{#switch: {{{1}}}
 
| NanoPi-R2S
 
| NanoPi-R2C-Plus
 
| NanoPi-R2C =
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
tar xvf ~/dvd/RK3328/toolchain/friendlywrt-kernel-5.x.y/openwrt-sdk-21.02.1-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64.tar.xz
+
tar xvf openwrt-sdk-*-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64.tar.xz
 
# 路径太长会导致有些包编译出错,所以这里改一下目录名
 
# 路径太长会导致有些包编译出错,所以这里改一下目录名
mv openwrt-sdk-21.02.1-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64 sdk
+
mv openwrt-sdk-*-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64 sdk
 
cd sdk
 
cd sdk
 
./scripts/feeds update -a
 
./scripts/feeds update -a
 
./scripts/feeds install -a
 
./scripts/feeds install -a
 
</syntaxhighlight>
 
</syntaxhighlight>
| #default =
 
<syntaxhighlight lang="bash">
 
tar xvf ~/dvd/FriendlyELEC-NanoPiR4S/toolchain/friendlywrt-kernel-5.x.y/openwrt-sdk-21.02.1-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64.tar.xz
 
# 路径太长会导致有些包编译出错,所以这里改一下目录名
 
mv openwrt-sdk-21.02.1-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64 sdk
 
cd sdk
 
./scripts/feeds update -a
 
./scripts/feeds install -a
 
</syntaxhighlight>
 
}}
 
 
 
 
====将软件包编译并打包成ipk文件====
 
====将软件包编译并打包成ipk文件====
 
此处以mwarning的示例作为演示,下载例子的源代码(共3个分别为example1, example2, example3),并拷到package目录:
 
此处以mwarning的示例作为演示,下载例子的源代码(共3个分别为example1, example2, example3),并拷到package目录:
Line 547: Line 603:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
$ find ./bin -name example*.ipk
 
$ find ./bin -name example*.ipk
./bin/packages/aarch64_cortex-a53/base/example2_0.1-1_aarch64_cortex-a53.ipk
+
./bin/packages/aarch64_generic/base/example3_1.0.0-220420.38257_aarch64_generic.ipk
./bin/packages/aarch64_cortex-a53/base/example3_0.1-1_aarch64_cortex-a53.ipk
+
./bin/packages/aarch64_generic/base/example1_1.0.0-220420.38257_aarch64_generic.ipk
./bin/packages/aarch64_cortex-a53/base/example1_0.1-1_aarch64_cortex-a53.ipk
+
./bin/packages/aarch64_generic/base/example2_1.0.0-220420.38257_aarch64_generic.ipk
 
</syntaxhighlight>
 
</syntaxhighlight>
 
====将编译生成的ipk安装到NanoPi上====
 
====将编译生成的ipk安装到NanoPi上====
 
可以用scp命令将ipk文件上传到NanoPi上:
 
可以用scp命令将ipk文件上传到NanoPi上:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
cd ./bin/packages/aarch64_cortex-a53/base/
+
cd ./bin/packages/aarch64_generic/base/
 
scp example*.ipk root@192.168.2.1:/root/
 
scp example*.ipk root@192.168.2.1:/root/
 
</syntaxhighlight>
 
</syntaxhighlight>
Line 560: Line 616:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
cd /root/
 
cd /root/
opkg install example2_0.1-1_aarch64_cortex-a53.ipk
+
opkg install example3_1.0.0-220420.38257_aarch64_generic.ipk
opkg install example3_0.1-1_aarch64_cortex-a53.ipk
+
opkg install example1_1.0.0-220420.38257_aarch64_generic.ipk
opkg install example1_0.1-1_aarch64_cortex-a53.ipk
+
opkg install example2_1.0.0-220420.38257_aarch64_generic.ipk
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
===使用 GitHub Actions 编译 FriendlyWrt===
 +
项目地址: https://github.com/friendlyarm/Actions-FriendlyWrt

Latest revision as of 09:18, 4 February 2024

1 FriendlyWrt的使用

1.1 FriendlyWrt简介

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

1.2 首次开机的初始化

首次上电开机,系统需要做以下一些初始化工作:
1)扩展根文件系统
2)初始化设置(会执行/root/setup.sh)
所以第一次开机需要等待片刻(约2~3分钟),再对FriendlyWrt进行设置,可以在openwrt网页上进入ttyd终端,当提示符显示为 root@FriendlyWrt 表示系统已经初始化完成。

root@FriendlyWrt

1.3 帐户与密码

默认的密码是password(某些版本是空密码),请设置或更改一个较安全的密码用于web登录与ssh登录,建议在将{{{1}}}连接到互联网之前完成此设置。

1.4 登录FriendlyWrt

将电脑连接到 {{{1}}} 的LAN口,如果电脑没有网口,可将无线AP的LAN口与{{{1}}}的LAN口相连接,电脑再通过WiFi连接到无线AP,在电脑浏览器上输入以下网址即可进入FriendlyWrt管理页面:

以上是{{{1}}}的LAN口地址,WAN口会从你的主路由器动态获取IP地址。

1.5 建议的安全性设置

以下设置事项非常建议在将 {{{1}}} 接入互联网之前完成,因为在空密码或弱密码的状态下将{{{1}}}接入互联网,极易受到网络攻击。

  • 设置一个安全的密码

进入 系统->管理权 界面设置密码。

  • 禁止从wan访问ssh,更换端口

进入 系统->管理权->SSH访问,将接口限制为 lan,将端口设置为其他非常用端口,例如 23333。

  • 检查防火墙设置

根据实际情况调整设置

1.6 更改LAN口的IP地址

1) 菜单栏导航到:"网络" -> "接口", 点击“LAN”右边的“编辑”按钮;
2) 在“常规设置”页面上找到“IPv4 地址”, 输入新的IP地址 (例如192.168.11.1), 然后点击“保存”, 再点击“保存并应用”;
3) 在弹出的“连接更改“询问界面上, 选择"Apply and revert on connectivity loss";
4) 稍等片刻, 在电脑的浏览器上输入新的地址登录 FriendlyWrt;

1.7 安全的关机操作

进入"服务"->"终端",输入poweroff命令敲回车,待led灯熄灭,再拔开电源。

1.8 恢复出厂设置

进入"系统"->"备份/升级",点击“执行重置“按钮,在弹出的询问界面上点击“确定”,设备会重启并擦除data分区, 所有的设置和数据都会被清除, 并恢复至出厂时的状态。
恢复出厂设置也可以通过命令行来操作, 进入“服务”-》“终端”界面, 输入如下命令:

firstboot && reboot

1.9 安装软件包

1.9.1 设置第三方软件源

进入菜单”系统“-》”软件包“, 在界面上点击”okpg配置“按钮, 在新弹出的界面上, 更改/etc/opkg/distfeeds.conf的文件内容即可,
比如要切换至国内腾讯源, 可以替换成如下内容, 然后点击 “保存” 按钮:

src/gz openwrt_base https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/base
src/gz openwrt_luci https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/luci
src/gz openwrt_packages https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/packages
src/gz openwrt_routing https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/routing
src/gz openwrt_telephony https://mirrors.cloud.tencent.com/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/telephony
src/gz friendlywrt_packages file://opt/packages
  • 注意, friendlywrt_packages需要保留, 否则会缺少一些系统依赖;
  • 如果你使用的是 friendlywrt 21.02 的固件, 则将上面的 23.05.2 替换成 21.02.5;
  • CPU架构可选择 aarch64_cortex-a53和aarch64_generic这两种;
  • 通过命令行切换国内源:
sed -i -e 's/downloads.openwrt.org/mirrors.cloud.tencent.com/g' /etc/opkg/distfeeds.conf
opkg update

1.9.2 在线安装软件包

回到”软件包“界面, 点击 “更新列表” 更新软件包信息, 更新完成后, 就可以在“筛选器”一栏中输入软件包的关键字, 搜索软件包安装了。

1.9.3 安装离线ipk软件包

在”软件包“界面上点击“上传软件包“, 定位你本地的ipk文件, 上传并安装即可。

1.10 FriendlyWrt的一些常见问题

  • 无法拨号上网
    • 进入“网络“->“防火墙“,将 “WAN区域“ 的“入站数据“,“出站数据“与“转发“均设置为 “接受”;
    • 如仍无法上网,可尝试关闭IPV6;
  • 拨号成功,但没有外网流量
    • 进入"服务"->"终端",输入fw4 reload尝试重新加载一次防火墙设置;
  • 无法开机,LED灯不亮
    • 尝试更换电源适配器和电缆,推荐使用 5V/2A 以上规格的电源供应;
    • 注意,部分Type-C接口的快速充电器会有延迟,可能需要几秒钟才开始提供电量;
  • 做二级路由时,电脑无法连接互联网
    • 如果你的主网络是IPv4,而{{{1}}}工作在IPv6,电脑有可能无法连接互联网,建议关闭IPv6 (本WiKi后面有介绍方法),或将主路由切换到IPv6;
  • 如果你有问题,或有更好的建议,欢迎发送邮件到 techsupport@friendlyarm.com;

1.11 禁用IPv6

要关掉 IPv6,可在ssh终端输入如下命令:

. /root/setup.sh
disable_ipv6
reboot

待{{{1}}}重启完毕,电脑也需要重新插拨一下网线(或重启网络端口)以便重新获得IP地址。

1.12 配置用户按键的功能

默认情况下, 用户按键配置成用于重启设备(软重启), 如下所示:

echo 'BTN_1 1 /sbin/reboot' >> /etc/triggerhappy/triggers.d/example.conf

你可以通过更改上面的配置文件改变它的行为.

1.13 配置移远EC20(4G模块)拨号上网

  • 进入“网络“->“接口“;
  • 点击 “WAN6“ 后面的 “删除“, 点击 "保存及应用";
  • 点击 “WAN“ 后面的 “编辑“,在 “设备“ 下拉选单中选择 "以太网适配器:wwan0",在“协议”下拉选单中选择“QMI蜂窝”,然后点击“切换协议“;
  • 在“调制解调器设备“下拉选单中选择”/dev/cdc-wdm0“,如果是中国联通,在“APN“中填入3gnet,如果是中国移动则填入cmnet,填写完成后,如下图所示:

Friendlywrt-ec20-config-cn.png

  • 点击“保存”关闭界面,最后点击下方的“保存并应用",FriendlyWrt后台会进行拨号上网,拨号成功的状态如下所示:

Friendlywrt-ec20-netstatus-cn.png

  • 连接到Lan的设备将可以连接互联网,如有WiFi模块,可进入“无线”界面开启无线AP功能,通过无线接入的设备亦可连接到互联网。

1.14 使用USB2LCD查看IP和温度

在终端输入如下命令设置lcd2usb服务开机自动启动:

. /root/setup.sh
init_lcd2usb
poweroff

将USB2LCD模块Plug到 {{{1}}} 的USB接口再开机,IP地址和CPU温度将显示在LCD上:
Xxx-usb2lcd-01.png


1.15 如何使用USB WiFi

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

(1) 点击“服务>ttyd”进入FriendlyWrt的命令行界面

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

lsusb

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

lsusb

可以看到多出一个设备,ID为0BDA:C811

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

1.15.2 如何使用USB WiFi作为AP

(1) 把USB WiFi插入{{{1}}}的USB端口,推荐使用以下列表中支持AP模式的WiFi芯片模块:
R2swrt+usbwifi-20210831.jpg
注:符合以上WiFi芯片型号并符合以上VID&PID信息的USB无线网卡都可以使用,支持的型号不局限于某个品牌某个型号
(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启{{{1}}}

(3) 点击“网络>无线”进入配置无线WiFi界面

(4) 点击“编辑”按钮可编辑WiFi设置

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

(4) 配置完成后使用手机端或电脑端搜索对应SSID的WiFi即可

1.15.3 常见的USB WiFi问题及应对方法

1) 建议在关机状态下插入usb wifi, 再上电开机,FriendlyWrt会自动生成配置文件 /etc/config/wireless,如果没有生成,通过 ifconfig -a 看看有没有 wlan0,如果没有 wlan0,通常是没有驱动。
2) 如果 ifconfig -a 能看到 wlan0,但是热点没有正常工作,可以尝试更改 频道 和 国家代号,不合适的国家代号也会导致 WiFi 不工作。
3) 某些USB WiFi(例如MTK MT7662)默认工作在CD-ROM模式,需要经过usb_modeswitch来进行切换,可以尝试自行添加 usb_modeswitch 配置到以下目录:/etc/usb_modeswitch.d 。

1.15.4 更改系统默认的WiFi热点配置

FriendlyWrt默认会为USB WiFi设置国家、热点名称等参数,目的是尽量的做到即插即用,但这不能保证所有的模块都能兼容此设置,你可以通过修改以下文件,来更改这些行为:

/lib/wifi/mac80211.sh

1.16 玩转Docker应用

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

请参考: How to setup JellyFin media system on NanoPi-R2S/zh

1.16.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.16.3 使用外接硬盘来扩展Docker可用空间

  • 先停止docker服务:
/etc/init.d/dockerd stop
  • 把原来的/opt目录改个名, 建一个空的/opt目录:
mv /opt /opt-old && mkdir /opt
  • 参考章节“8 初始化NVME固态硬盘和USB移动硬盘”, 将你的硬盘格式化为ext4, 然后挂载至 /opt 目录:

Friendlywrt mount nvme opt-zh.jpg

  • 输入命令 "mount | grep /opt" 确实一下硬盘被正常挂载到 /opt 下:
root@FriendlyWrt:~# mount | grep /opt
/dev/nvme0n1p1 on /opt type ext4 (rw,relatime)
root@FriendlyWrt:~#
  • 把原来 /opt 目录下的文件复制到新的 /opt 目录:
cp -af /opt-old/* /opt/ && rm -rf /opt-old
  • 操作完后, 重启
reboot
  • 重启后, 进入"Docker"->"概览"页面, 查看"Docker根目录"这一行的信息, 可以确认Docke空间已扩容:

Friendlywrt docker info-zh.jpg

1.16.4 Docker的常见问题与解决办法

1.16.4.1 无法访问Docker提供的网络服务

解决办法:

  • 进入 "防火墙" 的设置,把 "转发" 设置成 "接受";
  • 关闭 ”软件流量分载“;

1.17 挂载smbfs共享资源

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


1.18 使用sdk编译软件包

1.18.1 安装编译环境

在64位的Ubuntu (版本18.04+)下载并运行如下脚本: How to setup the Compiling Environment on Ubuntu bionic

1.18.2 在网盘上下载并解压sdk

sdk位于网盘的toolchain目录,解压后,需要先下载feeds软件包:

tar xvf openwrt-sdk-*-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64.tar.xz
# 路径太长会导致有些包编译出错,所以这里改一下目录名
mv openwrt-sdk-*-rockchip-armv8_gcc-11.2.0_musl.Linux-x86_64 sdk
cd sdk
./scripts/feeds update -a
./scripts/feeds install -a

1.18.3 将软件包编译并打包成ipk文件

此处以mwarning的示例作为演示,下载例子的源代码(共3个分别为example1, example2, example3),并拷到package目录:

git clone https://github.com/mwarning/openwrt-examples.git
cp -rf openwrt-examples/example* package/
rm -rf openwrt-examples/

再通过以下命令进入配置菜单:

make menuconfig

在菜单中选中以下我们要编译的软件包(默认实际上已经选中):

"Utilities" => "example1"
"Utilities" => "example3"
"Network" => "VPN" => "example2"

退出配置菜单的界面,在提示是否保存设置时需要选择Yes,然后执下以下命令,分别编译这三个软件包:

make package/example1/compile V=99
make package/example2/compile V=99
make package/example3/compile V=99

编译成功后,可以在bin目录下找到ipk文件,如下所示:

$ find ./bin -name example*.ipk
./bin/packages/aarch64_generic/base/example3_1.0.0-220420.38257_aarch64_generic.ipk
./bin/packages/aarch64_generic/base/example1_1.0.0-220420.38257_aarch64_generic.ipk
./bin/packages/aarch64_generic/base/example2_1.0.0-220420.38257_aarch64_generic.ipk

1.18.4 将编译生成的ipk安装到NanoPi上

可以用scp命令将ipk文件上传到NanoPi上:

cd ./bin/packages/aarch64_generic/base/
scp example*.ipk root@192.168.2.1:/root/

然后用opkg命令进行安装他们:

cd /root/
opkg install example3_1.0.0-220420.38257_aarch64_generic.ipk
opkg install example1_1.0.0-220420.38257_aarch64_generic.ipk
opkg install example2_1.0.0-220420.38257_aarch64_generic.ipk

1.19 使用 GitHub Actions 编译 FriendlyWrt

项目地址: https://github.com/friendlyarm/Actions-FriendlyWrt