Difference between revisions of "Template:FriendlyWrt19/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
 
(40 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 />
 +
1)扩展根文件系统 <br />
 +
2)初始化设置(会执行/root/setup.sh) <br />
 +
所以第一次开机需要等待片刻(约2~3分钟),再对FriendlyWrt进行设置,可以在openwrt网页上进入ttyd终端,当提示符显示为 root@FriendlyWrt 表示系统已经初始化完成。
 +
<syntaxhighlight lang="text">
 +
root@FriendlyWrt
 +
</syntaxhighlight>
 
===帐户与密码===
 
===帐户与密码===
默认是空密码,请为root设置一个密码用于web登录与ssh登录。
+
默认的密码是password(某些版本是空密码),请设置或更改一个较安全的密码用于web登录与ssh登录,建议在将{{{1}}}连接到互联网之前完成此设置。
  
 
===连接网络===
 
===连接网络===
Line 10: Line 18:
  
 
===登录FriendlyWrt===
 
===登录FriendlyWrt===
在电脑浏览器上输入{{{1}}}的IP地址 或者 http://friendlywrt/ 即可进入FriendlyWrt管理页面,默认情况下,LAN口的IP地址为192.168.2.1,WAN会从你的主路由器动态获取IP地址。
+
将电脑连接到 {{{1}}} 的LAN口,如果电脑没有网口,可将无线AP的LAN口与{{{1}}}的LAN口相连接,电脑再通过WiFi连接到无线AP,在电脑浏览器上输入以下网址即可进入FriendlyWrt管理页面: <br />
 +
* http://friendlywrt/
 +
* http://192.168.2.1/
 +
* http://[fd00:ab:cd::1]
 +
以上是{{{1}}}的LAN口地址,WAN口会从你的主路由器动态获取IP地址。<br />
 +
 
 +
===建议的安全性设置===
 +
以下设置事项非常建议在将 {{{1}}} 接入互联网之前完成,因为在空密码或弱密码的状态下将{{{1}}}接入互联网,极易受到网络攻击。
 +
* 设置一个安全的密码
 +
进入 系统->管理权 界面设置密码。
 +
* 禁止从wan访问ssh,更换端口
 +
进入 系统->管理权->SSH访问,将接口限制为 lan,将端口设置为其他非常用端口,例如 23333。
 +
===安全的关机操作===
 +
进入ttyd终端,输入poweroff命令敲回车,待led灯熄灭,再拔开电源。
  
 
===安装软件包===
 
===安装软件包===
Line 39: Line 60:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
===使用USB2LCD查看IP===
+
===FriendlyWrt的一些常见问题===
在接上电源启动之前把USB2LCD模块插到 '''{{{1}}}''' 的USB接口,然后接上电源和网线,系统正常启动后,即可后LCD即会显示板子的温度和IP。<br />
+
* 无法拨号上网
 +
** 进入“网络“->“防火墙“,将 “WAN区域“ 的“入站数据“,“出站数据“与“转发“均设置为 “接受”;
 +
** 如仍无法上网,可尝试关闭IPV6;
 +
* 无法开机,LED灯不亮
 +
** 尝试更换电源适配器和电缆,推荐使用 5V/2A 以上规格的电源供应;
 +
** 注意,部分Type-C接口的快速充电器会有延迟,可能需要几秒钟才开始提供电量;
 +
* 做二级路由时,电脑无法连接互联网
 +
** 如果你的主网络是IPv4,而'''{{{1}}}'''工作在IPv6,电脑有可能无法连接互联网,建议关闭IPv6 (本WiKi后面有介绍方法),或将主路由切换到IPv6;
 +
* 如果你有问题,或有更好的建议,欢迎发送邮件到 techsupport@friendlyarm.com;
 +
 
 +
===让FriendlyWrt重新生成网络设置===
 +
此方法会触发 FriendlyWrt 重新识别硬件型号,并生成 /etc/config 下的网络配置,类拟但不完全等效于恢复出厂设置:<br />
 +
<syntaxhighlight lang="text">
 +
rm -rf /etc/board.json /etc/config/system /etc/config/network /etc/config/wireless /etc/firstboot_* /root/.friendlyelec
 +
reboot
 +
</syntaxhighlight>
 +
/root/setup.sh 初始化脚本会在下次开机时再次被执行,所以你可以通过此途径来调试  /root/setup.sh 脚本.
 +
 
 +
===禁用IPv6===
 +
要关掉 IPv6,可在ssh终端输入如下命令:
 +
<syntaxhighlight lang="text">
 +
sed -i -e "s/DISABLE_IPV6=0/DISABLE_IPV6=1/g" /root/setup.sh
 +
rm -rf /etc/board.json /etc/config/system /etc/config/network /etc/config/wireless /etc/firstboot_* /root/.friendlyelec
 +
reboot
 +
</syntaxhighlight>
 +
待{{{1}}}重启完毕,电脑也需要重新插拨一下网线(或重启网络端口)以便重新获得IP地址。
 +
 
 +
===配置用户按键的功能===
 +
默认情况下, 用户按键配置成用于重启设备(软重启), 如下所示:
 +
<syntaxhighlight lang="bash">
 +
echo 'BTN_1 1 /sbin/reboot' >> /etc/triggerhappy/triggers.d/example.conf
 +
</syntaxhighlight>
 +
你可以通过更改上面的配置文件改变它的行为.
 +
 
 +
===使用USB2LCD查看IP和温度===
 +
将USB2LCD模块Plug到 {{{1}}} 的USB接口再开机,IP地址和CPU温度将显示在LCD上:<br />
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 +
| NanoPi-R2C =
 
[[File:R2S-usb2lcd-01.jpg|frameless|600px]]<br />
 
[[File:R2S-usb2lcd-01.jpg|frameless|600px]]<br />
 +
| #default =
 +
}}
 +
 +
{{#switch: {{{1}}}
 +
| NanoPi-R4S =
 +
===PWM风扇的调节===
 +
(注:本章节的内容基于2021/08/31之后发布的固件,内核版本 kernel 5.10.xyz)
 +
* 当前PWM风扇的默认行为是: 上电开机稍等片刻(约20秒),风扇会先自动旋转约5秒时间,之后的行为,是由内核驱动,根据CPU温度来决定风扇的开关以及转速。<br />
 +
* 可以通过修改以下脚本:/usr/bin/fa-fancontrol.sh 来更改风扇的行为,例如要修改风扇开始工作时的CPU温度,可以修改以下两行:<br />
 +
<syntaxhighlight lang="text">
 +
echo 50000 > trip_point_3_temp  # 表示CPU温度到达50度时,风扇开始工作在最低转速
 +
echo 55000 > trip_point_4_temp  # 表示CPU温度到达55度时,风扇升至第二档及以上转速运行,并根据CPU降温情况自动调节至最高档(第4档),或降低转速
 +
</syntaxhighlight>
 +
* 如果需要调整各个档位的转速,可以修改内核dts文件,并重新编译内核来达到目的,具体的 dts 及修改位置可参考如下commit: https://github.com/friendlyarm/kernel-rockchip/commit/f74ac319f02e2d22cdd33227e7f167e4232809f9 <br />
 +
如下如示,cooling-levels 定义了4个档位,0为关闭,最高档的值为255:
 +
<syntaxhighlight lang="text">
 +
fan: pwm-fan {
 +
compatible = "pwm-fan";
 +
- /* FIXME: adjust leveles for the connected fan */
 +
- cooling-levels = <0 12 18 255>;
 +
+ cooling-levels = <0 18 102 170 255>;
 +
</syntaxhighlight>
 +
* 如你使用的内核版本是 4.19.xyz,此时的风扇是由应用层操作PWM来实现温控的,上述的内容不适用,需要去修改这个脚本:
 +
<syntaxhighlight lang="text">
 +
/usr/bin/fa-fancontrol-direct.sh
 +
</syntaxhighlight>
 +
| #default =
 +
}}
  
 
===如何使用USB WiFi===
 
===如何使用USB WiFi===
 
====如何在终端使用命令查询USB无线网卡型号====
 
====如何在终端使用命令查询USB无线网卡型号====
 
(1) 点击“服务>ttyd”进入FriendlyWrt的命令行界面<br />
 
(1) 点击“服务>ttyd”进入FriendlyWrt的命令行界面<br />
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 +
| NanoPi-R2C =
 
[[File:R2s-wrt-jellyfin-002.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-002.jpg|frameless|800px]]<br />
 +
| #default =
 +
}}
  
 
(2) 在开发板没有插入任何USB设备时输入以下命令以查看挂在USB主线上的现有设备<br />
 
(2) 在开发板没有插入任何USB设备时输入以下命令以查看挂在USB主线上的现有设备<br />
Line 52: Line 148:
 
lsusb
 
lsusb
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 +
| NanoPi-R2C =
 
[[File:R2swrt+usbwifi-09.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-09.jpg|frameless|800px]]<br />
 
+
| #default =
 +
}}
 
(3) 插入USB WiFi,再次输入以下命令<br />
 
(3) 插入USB WiFi,再次输入以下命令<br />
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 59: Line 161:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
可以看到多出一个设备,ID为0BDA:C811<br />
 
可以看到多出一个设备,ID为0BDA:C811<br />
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C-Plus
 +
| NanoPi-R2S-Plus
 +
| NanoPi-R2C =
 
[[File:R2swrt+usbwifi-10.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-10.jpg|frameless|800px]]<br />
 +
| #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芯片模块(以下列表基于rk3328-sd-friendlywrt-5.4-20200514.img固件经测试可用)<br />
+
(1) 把USB WiFi插入{{{1}}}的USB端口,推荐使用以下列表中支持AP模式的WiFi芯片模块:<br />
[[File:R2swrt+usbwifi-08.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>
  
(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启'''{{{1}}}'''<br />
+
(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启{{{1}}}<br />
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C =
 
[[File:R2swrt+usbwifi-01.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-01.jpg|frameless|800px]]<br />
 
<br />
 
<br />
 
[[File:R2swrt+usbwifi-02.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-02.jpg|frameless|800px]]<br />
 
+
| #default =
 +
}}
 
(3) 点击“网络>无线”进入配置无线WiFi界面<br />
 
(3) 点击“网络>无线”进入配置无线WiFi界面<br />
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C =
 
[[File:R2swrt+usbwifi-03.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-03.jpg|frameless|800px]]<br />
 
+
| #default =
 +
}}
 
(4) 点击“编辑”按钮可编辑WiFi设置<br />
 
(4) 点击“编辑”按钮可编辑WiFi设置<br />
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C =
 
[[File:R2swrt+usbwifi-04.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-04.jpg|frameless|800px]]<br />
 
+
| #default =
 +
}}
 
(5) 在“接口配置”中可设置WiFi 模式和SSID等,然后点击到“无线安全”项可修改加密方式和WiFi密码,默认密码为password,设置完成后点击“保存”<br />
 
(5) 在“接口配置”中可设置WiFi 模式和SSID等,然后点击到“无线安全”项可修改加密方式和WiFi密码,默认密码为password,设置完成后点击“保存”<br />
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C =
 
[[File:R2swrt+usbwifi-05.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-05.jpg|frameless|800px]]<br />
 
<br />
 
<br />
 
[[File:R2swrt+usbwifi-06.jpg|frameless|800px]]<br />
 
[[File:R2swrt+usbwifi-06.jpg|frameless|800px]]<br />
 
+
| #default =
 +
}}
 
(4) 配置完成后使用手机端或电脑端搜索对应SSID的WiFi即可<br />
 
(4) 配置完成后使用手机端或电脑端搜索对应SSID的WiFi即可<br />
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C =
 
[[File:R2swrt+usbwifi-07.png|frameless|277px]]<br />
 
[[File:R2swrt+usbwifi-07.png|frameless|277px]]<br />
 +
| #default =
 +
}}
 +
 +
====常见的USB WiFi问题及应对方法====
 +
1) 建议在关机状态下插入usb wifi, 再上电开机,FriendlyWrt会自动生成配置文件 /etc/config/wireless,如果没有生成,通过 ifconfig -a 看看有没有 wlan0,如果没有 wlan0,通常是没有驱动。 <br />
 +
2) 如果 ifconfig -a 能看到 wlan0,但是热点没有正常工作,可以尝试更改 频道 和 国家代号,不合适的国家代号也会导致 WiFi 不工作。 <br />
 +
3) 某些USB WiFi(例如MTK MT7662)默认工作在CD-ROM模式,需要经过usb_modeswitch来进行切换,可以尝试自行添加 usb_modeswitch 配置到以下目录:/etc/usb_modeswitch.d 。<br />
  
 
===玩转Docker应用===
 
===玩转Docker应用===
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| 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 />
Line 96: Line 234:
  
 
(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:
  
Line 125: Line 263:
  
 
=====为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 />
Line 148: Line 286:
 
=====在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 />
  
Line 162: Line 300:
  
 
详细使用教程请参考: [[How to setup JellyFin media system on NanoPi-R2S/zh]]
 
详细使用教程请参考: [[How to setup JellyFin media system on NanoPi-R2S/zh]]
 
+
| #default =
 +
====Docker使用:安装JellyFin影音服务器====
 +
请参考: [[How to setup JellyFin media system on NanoPi-R2S/zh]]
 +
}}
 
====Docker使用:安装个人网盘nextcloud====
 
====Docker使用:安装个人网盘nextcloud====
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 169: Line 310:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
安装完成后,使用8888端口进行访问。
 
安装完成后,使用8888端口进行访问。
 
 
<!--
 
<!--
 
===启动swap分区===
 
===启动swap分区===
Line 178: Line 318:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
-->
 
-->
 
+
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| 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 />
  
Line 194: Line 336:
 
[[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 />
  
Line 200: Line 342:
 
'''注:每次操作后都需要重启后才能生效'''<br />
 
'''注:每次操作后都需要重启后才能生效'''<br />
 
[[File:R2s-wrt-jellyfin-012.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-012.jpg|frameless|800px]]<br />
 
+
| #default =
 +
}}
 
===挂载smbfs共享资源===
 
===挂载smbfs共享资源===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
mount -t cifs //192.168.1.10/shared /movie -o username=xxx,password=yyy,file_mode=0644
 
mount -t cifs //192.168.1.10/shared /movie -o username=xxx,password=yyy,file_mode=0644
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C =
 
===使用Aria2下载网络资源===
 
===使用Aria2下载网络资源===
 
使用 Aria2 之前,需要先设置一个目录专门用于存放 Aria2 下载的文件,这个目录需要 让aria2 用户有读写权限,如果你是挂载外部的硬盘作为下载目录,硬盘建议格式化为 ext4 格式。<br />
 
使用 Aria2 之前,需要先设置一个目录专门用于存放 Aria2 下载的文件,这个目录需要 让aria2 用户有读写权限,如果你是挂载外部的硬盘作为下载目录,硬盘建议格式化为 ext4 格式。<br />
Line 213: Line 358:
 
chown aria2:aria2 /jellyfin/videos/Disk/download
 
chown aria2:aria2 /jellyfin/videos/Disk/download
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
[[File:R2s-wrt-jellyfin-047.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-047.jpg|frameless|800px]]<br />
 
 
(2) 点击“服务->Aria2”<br />
 
(2) 点击“服务->Aria2”<br />
 
[[File:R2s-wrt-jellyfin-048.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-048.jpg|frameless|800px]]<br />
 
 
(3) 勾选“已启用”复选框,将下载目录设置为/jellyfin/videos/Disk/download,然后点击“保存并应用”按钮:<br />
 
(3) 勾选“已启用”复选框,将下载目录设置为/jellyfin/videos/Disk/download,然后点击“保存并应用”按钮:<br />
 
[[File:R2s-wrt-jellyfin-049.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-049.jpg|frameless|800px]]<br />
 
 
(4) 保存完成后,点击 “AriaNg”即可进入 Aria2 前端界面,点击“新建”按钮即可创建下载任务:<br />
 
(4) 保存完成后,点击 “AriaNg”即可进入 Aria2 前端界面,点击“新建”按钮即可创建下载任务:<br />
 
[[File:R2s-wrt-jellyfin-050.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-050.jpg|frameless|800px]]<br />
 
 
===在Windows10系统下使用WinSCP共享文件===
 
===在Windows10系统下使用WinSCP共享文件===
(1)下载安装WinSCP后打开,新建一个连接,主机名填写'''{{{1}}}'''的IP地址,然后填写'''{{{1}}}'''的用户名和密码,默认用户名:root,密码为空,文件协议改为“SCP”,点击“登录”<br />
+
(1)下载安装WinSCP后打开,新建一个连接,主机名填写{{{1}}}的IP地址,然后填写{{{1}}}的用户名和密码,默认用户名:root,密码为空,文件协议改为“SCP”,点击“登录”<br />
 
+
使用WinSCP可以远程访问{{{1}}}并传输文件。 <br />
使用WinSCP可以远程访问'''{{{1}}}'''并传输文件。 <br />
+
 
'''WinSCP下载地址:'''https://winscp.net/eng/download.php<br />
 
'''WinSCP下载地址:'''https://winscp.net/eng/download.php<br />
 
[[File:R2s-wrt-jellyfin-013.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-013.jpg|frameless|800px]]<br />
 
+
(2) 登录后可看到左边是本地的目录,右边是{{{1}}}的文件目录,打开需要共享文件的目录,这里以/jellyfin/videos目录为例,把媒件文件拖到右边即可开始传输,等待文件传输完成:<br />
(2) 登录后可看到左边是本地的目录,右边是'''{{{1}}}'''的文件目录,打开需要共享文件的目录,这里以/jellyfin/videos目录为例,把媒件文件拖到右边即可开始传输,等待文件传输完成:<br />
+
 
[[File:R2s-wrt-jellyfin-014.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-014.jpg|frameless|800px]]<br />
 
+
| #default =
 +
}}
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S
 +
| NanoPi-R2C =
 
===设置Samba网络文件共享===
 
===设置Samba网络文件共享===
 
(1)在FriendlyWrt中点击上方菜单栏的“服务->网络共享”<br />
 
(1)在FriendlyWrt中点击上方菜单栏的“服务->网络共享”<br />
 
[[File:R2s-wrt-jellyfin-041.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-041.jpg|frameless|800px]]<br />
 
 
(2) 点击底部的“添加”按钮:<br />
 
(2) 点击底部的“添加”按钮:<br />
 
[[File:R2s-wrt-jellyfin-042.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-042.jpg|frameless|800px]]<br />
 
 
(3) 填写你要共享目录,这里以设置共享 /jellyfin/videos 目录为例(如目录文件夹有大小写请注意区分),填写完成后点击“保存并应用”:<br />
 
(3) 填写你要共享目录,这里以设置共享 /jellyfin/videos 目录为例(如目录文件夹有大小写请注意区分),填写完成后点击“保存并应用”:<br />
 
[[File:R2s-wrt-jellyfin-043.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-043.jpg|frameless|800px]]<br />
 
 
====在Windows10系统下访问Samba共享====
 
====在Windows10系统下访问Samba共享====
 
默认情况下,你的Windows10可能没有启动网络发现与共享,请先参考下面这二份文档,对你的Windows10做一些设置:<br />
 
默认情况下,你的Windows10可能没有启动网络发现与共享,请先参考下面这二份文档,对你的Windows10做一些设置:<br />
 
(1) 启用Samba v1/v2的访问:https://www.windowscentral.com/how-access-files-network-devices-using-smbv1-windows-10<br />
 
(1) 启用Samba v1/v2的访问:https://www.windowscentral.com/how-access-files-network-devices-using-smbv1-windows-10<br />
 
[[File:R2s-wrt-jellyfin-044.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-044.jpg|frameless|800px]]<br />
 
 
(2) 启用网络发现:https://www.dummies.com/computers/operating-systems/windows-10/how-to-enable-network-discovery-and-configure-sharing-options-in-windows-10/<br />
 
(2) 启用网络发现:https://www.dummies.com/computers/operating-systems/windows-10/how-to-enable-network-discovery-and-configure-sharing-options-in-windows-10/<br />
 
[[File:R2s-wrt-jellyfin-045.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-045.jpg|frameless|800px]]<br />
 
具体操作可以百度“Windows10 开启SMBv1” 与 "Win10启用网络发现"了解中文版的设置方法;<br />
 
具体操作可以百度“Windows10 开启SMBv1” 与 "Win10启用网络发现"了解中文版的设置方法;<br />
 
 
设置完成后,在资源管理器的地址栏输入 \\friendlywrt 即可访问共享目录, 用户名为root, 密码为password;<br />
 
设置完成后,在资源管理器的地址栏输入 \\friendlywrt 即可访问共享目录, 用户名为root, 密码为password;<br />
 
[[File:R2s-wrt-jellyfin-046.jpg|frameless|800px]]<br />
 
[[File:R2s-wrt-jellyfin-046.jpg|frameless|800px]]<br />
 
 
====在OS X系统下访问Samba共享====
 
====在OS X系统下访问Samba共享====
 
右击 Finder 图标,选择“连接到服务器“,输入地址 smb://root@friendlywrt 后点击“连接“按钮,<br/>
 
右击 Finder 图标,选择“连接到服务器“,输入地址 smb://root@friendlywrt 后点击“连接“按钮,<br/>
Line 262: Line 398:
 
====在Linux系统下访问Samba共享====
 
====在Linux系统下访问Samba共享====
 
在文件管理器的地址栏中输入 smb://root@friendlywrt 后敲回车,在提示输入密码时输入 password,最后点击 mnt 即可进入 /mnt/的共享目录。
 
在文件管理器的地址栏中输入 smb://root@friendlywrt 后敲回车,在提示输入密码时输入 password,最后点击 mnt 即可进入 /mnt/的共享目录。
 
 
===更改Mac地址===
 
===更改Mac地址===
 
注1:这里以更改WAN口的MAC地址为例进行说明;<br />
 
注1:这里以更改WAN口的MAC地址为例进行说明;<br />
Line 295: Line 430:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
以后开机都会自动应用新的MAC地址了。
 
以后开机都会自动应用新的MAC地址了。
 +
| #default =
 +
}}
 +
{{#switch: {{{1}}}
 +
| NanoPi-R2S =
 +
{{CPUOverClock/zh|NanoPi-R2S}}
 +
| NanoPi-R2C =
 +
{{CPUOverClock/zh|NanoPi-R2C}}
 +
| NanoPi-R4S =
 +
| #default =
 +
}}
  
===如何超频===
+
===使用sdk编译软件包===
=====选择合格的电源=====
+
====安装编译环境====
超频使用'''{{{1}}}'''需要保证有稳定可靠的电源供应,这包括标称真实,质量可靠的电源适配器,以及低阻抗的MicroUSB连接线(通俗讲就是铜芯足够粗),经我们测试,市面有如下可选:
+
在64位的Ubuntu (版本18.04+)下载并运行如下脚本:
[[File:R2spower4.jpg|frameless|800px]]<br />
+
[https://github.com/friendlyarm/build-env-on-ubuntu-bionic How to setup the Compiling Environment on Ubuntu bionic]
<b>友善定制版5v3a电源购买链接</b>:https://www.friendlyarm.com/index.php?route=product/product&product_id=141&search=USB&description=true&category_id=0 <br />
+
  
=====保证散热措施=====
+
====在网盘上下载并解压sdk====
超频会令'''{{{1}}}'''发热增加,必须使用金属外壳进行散热,或DIY使用风扇进行主动散热,旧版的塑料外壳没法胜任。<br />
+
sdk位于网盘的toolchain目录,解压后,需要先下载feeds软件包:
另外TF卡也建议使用能支持高温条件下正常工作的TF卡,可以选购行车记录仪专用的TF卡; <br />
+
{{#switch: {{{1}}}
[[File:Nanopir2s-working.jpg|frameless|500px]]<br />
+
| NanoPi-R2S
 
+
  | NanoPi-R2C =
====超频测试固件====
+
该FriendlyWrt固件已解锁1.51G的CPU频率,可从以下地址下载:https://pan.baidu.com/s/1qGf9LtNFzxrcDsIKHpRMlg 密码: 80gs<br />
+
登录FriendlyWrt的网页,点击菜单项 服务->ttyd 进入终端,输入以下命令:<br />
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
dd if=/dev/zero of=/dev/null bs=1M&
+
tar xvf ~/dvd/RK3328/toolchain/friendlywrt/openwrt-sdk-19.07.5-rockchip-rk3328_gcc-7.5.0_musl.Linux-x86_64.tar.xz
cat /sys/devices/system/cpu/cpu[04]/cpufreq/cpuinfo_cur_freq
+
# 路径太长会导致有些包编译出错,所以这里改一下目录名
 +
mv openwrt-sdk-19.07.5-rockchip-rk3328_gcc-7.5.0_musl.Linux-x86_64 sdk
 +
cd sdk
 +
./scripts/feeds update -a
 +
./scripts/feeds install -a
 
</syntaxhighlight>
 
</syntaxhighlight>
就可以看到'''{{{1}}}'''已经运行在 1.51G:<br />
+
| #default =
[[File:Nanopir2s-wrt-overclock.png|frameless|600px]]<br />
+
====超频前后的性能测试====
+
测试命令:
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
openssl speed -evp aes-256-gcm
+
tar xvf ~/dvd/FriendlyELEC-NanoPiR4S/toolchain/friendlywrt/openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64.tar.xz
 +
# 路径太长会导致有些包编译出错,所以这里改一下目录名
 +
mv openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64 sdk
 +
cd sdk
 +
./scripts/feeds update -a
 +
./scripts/feeds install -a
 
</syntaxhighlight>
 
</syntaxhighlight>
超频前的SSL性能(CPU主频:1.29G):
+
}}
 +
 
 +
 
 +
====将软件包编译并打包成ipk文件====
 +
此处以mwarning的示例作为演示,下载例子的源代码(共3个分别为example1, example2, example3),并拷到package目录:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
The 'numbers' are in 1000s of bytes per second processed.
+
git clone https://github.com/mwarning/openwrt-examples.git
type            16 bytes    64 bytes    256 bytes  1024 bytes  8192 bytes  16384 bytes
+
cp -rf openwrt-examples/example* package/
aes-256-gcm      68976.85k  189985.39k  342481.66k  432472.75k  466349.46k  466414.25k
+
rm -rf openwrt-examples/
 
</syntaxhighlight>
 
</syntaxhighlight>
超频后的SSL性能(CPU主频:1.51G):
+
再通过以下命令进入配置菜单:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
type            16 bytes    64 bytes    256 bytes  1024 bytes  8192 bytes  16384 bytes
+
make menuconfig
aes-256-gcm      80187.19k  222333.58k  399549.27k  504449.02k  542182.06k  545855.70k
+
 
</syntaxhighlight>
 
</syntaxhighlight>
可以看到aes-256-gcm该项的性能提升了16%。
+
在菜单中选中以下我们要编译的软件包(默认实际上已经选中):
====超频方法====
+
=====修改内核解锁更高的CPU频率=====
+
在FriendlyWrt Repo源代码的目录下,用vim打开以下文件:
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
vim kernel/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+
"Utilities" => "example1"
 +
"Utilities" => "example3"
 +
"Network" => "VPN" => "example2"
 
</syntaxhighlight>
 
</syntaxhighlight>
在文件中搜索文本 opp-1296000000,在opp-1296000000定义后面,增加CPU频率1.51G的定义,修改后的内容如下所示:
+
退出配置菜单的界面,在提示是否保存设置时需要选择Yes,然后执下以下命令,分别编译这三个软件包:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
        opp-1296000000 {
+
make package/example1/compile V=99
            opp-hz = /bits/ 64 <1296000000>;
+
make package/example2/compile V=99
            opp-microvolt = <1300000>;
+
make package/example3/compile V=99
            clock-latency-ns = <40000>;
+
        };
+
        opp-1512000000 {
+
            opp-hz = /bits/ 64 <1512000000>;
+
            opp-microvolt = <1450000>;
+
            clock-latency-ns = <40000>;
+
        };
+
 
</syntaxhighlight>
 
</syntaxhighlight>
修改完成后,重新编译内核,并制作SD固件:
+
编译成功后,可以在bin目录下找到ipk文件,如下所示:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
./build.sh kernel
+
$ find ./bin -name example*.ipk
./build.sh sd-img
+
./bin/packages/aarch64_cortex-a53/base/example2_0.1-1_aarch64_cortex-a53.ipk
 +
./bin/packages/aarch64_cortex-a53/base/example3_0.1-1_aarch64_cortex-a53.ipk
 +
./bin/packages/aarch64_cortex-a53/base/example1_0.1-1_aarch64_cortex-a53.ipk
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
====将编译生成的ipk安装到NanoPi上====
=====验证CPU是否超频成功=====
+
可以用scp命令将ipk文件上传到NanoPi上:
执行以下命令让CPU产生负载:
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
dd if=/dev/zero of=/dev/null bs=1M&
+
cd ./bin/packages/aarch64_cortex-a53/base/
 +
scp example*.ipk root@192.168.2.1:/root/
 
</syntaxhighlight>
 
</syntaxhighlight>
再用如下命令查看当前的CPU频率,可以看到频率已经是1.5G:
+
然后用opkg命令进行安装他们:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
root@FriendlyWrt:~# cat /sys/devices/system/cpu/cpu[04]/cpufreq/cpuinfo_cur_freq
+
cd /root/
1512000
+
opkg install example2_0.1-1_aarch64_cortex-a53.ipk
 +
opkg install example3_0.1-1_aarch64_cortex-a53.ipk
 +
opkg install example1_0.1-1_aarch64_cortex-a53.ipk
 
</syntaxhighlight>
 
</syntaxhighlight>

Latest revision as of 10:53, 4 December 2023

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 连接网络

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

1.5 登录FriendlyWrt

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

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

1.6 建议的安全性设置

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

  • 设置一个安全的密码

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

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

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

1.7 安全的关机操作

进入ttyd终端,输入poweroff命令敲回车,待led灯熄灭,再拔开电源。

1.8 安装软件包

1.8.1 更新可用软件包列表

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

$ opkg update

1.8.2 查看可安装的软件包

$ opkg list

1.8.3 查看已安装的软件

$ opkg list-installed

1.8.4 安装软件

$ opkg install <包各称>

1.8.5 删除软件

$ opkg remove <包各称>

1.9 FriendlyWrt的一些常见问题

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

1.10 让FriendlyWrt重新生成网络设置

此方法会触发 FriendlyWrt 重新识别硬件型号,并生成 /etc/config 下的网络配置,类拟但不完全等效于恢复出厂设置:

rm -rf /etc/board.json /etc/config/system /etc/config/network /etc/config/wireless /etc/firstboot_* /root/.friendlyelec
reboot

/root/setup.sh 初始化脚本会在下次开机时再次被执行,所以你可以通过此途径来调试 /root/setup.sh 脚本.

1.11 禁用IPv6

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

sed -i -e "s/DISABLE_IPV6=0/DISABLE_IPV6=1/g" /root/setup.sh
rm -rf /etc/board.json /etc/config/system /etc/config/network /etc/config/wireless /etc/firstboot_* /root/.friendlyelec
reboot

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

1.12 配置用户按键的功能

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

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

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

1.13 使用USB2LCD查看IP和温度

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



1.14 如何使用USB WiFi

1.14.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.14.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.14.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 玩转Docker应用

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

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

1.15.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 挂载smbfs共享资源

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



1.17 使用sdk编译软件包

1.17.1 安装编译环境

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

1.17.2 在网盘上下载并解压sdk

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

tar xvf ~/dvd/FriendlyELEC-NanoPiR4S/toolchain/friendlywrt/openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64.tar.xz
# 路径太长会导致有些包编译出错,所以这里改一下目录名
mv openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64 sdk
cd sdk
./scripts/feeds update -a
./scripts/feeds install -a


1.17.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_cortex-a53/base/example2_0.1-1_aarch64_cortex-a53.ipk
./bin/packages/aarch64_cortex-a53/base/example3_0.1-1_aarch64_cortex-a53.ipk
./bin/packages/aarch64_cortex-a53/base/example1_0.1-1_aarch64_cortex-a53.ipk

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

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

cd ./bin/packages/aarch64_cortex-a53/base/
scp example*.ipk root@192.168.2.1:/root/

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

cd /root/
opkg install example2_0.1-1_aarch64_cortex-a53.ipk
opkg install example3_0.1-1_aarch64_cortex-a53.ipk
opkg install example1_0.1-1_aarch64_cortex-a53.ipk