Difference between revisions of "Template:FriendlyWrt19/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
Line 395: Line 395:
 
}}
 
}}
  
<!--
+
===使用sdk编译软件包===
===玩转Docker应用===
+
 
====安装编译环境====
 
====安装编译环境====
 
在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====
位于toolchain目录,以NanoPi-R4S为例,解压后同步一下软件包:
+
sdk位于网盘的toolchain目录,以NanoPi-R4S为例,将压缩包解压,然后下载软件包:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
tar xvzf FriendlyELEC-NanoPiR4S/toolchain/friendlywrt-kernel-5.x.y/openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64.tar.xz
+
tar xvf /mnt/dvd2/FriendlyELEC-NanoPiR4S/toolchain/friendlywrt-kernel-5.x.y/openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64.tar.xz
 
cd openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64/
 
cd openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64/
 
./scripts/feeds update -a
 
./scripts/feeds update -a
Line 410: Line 409:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
====编译自己的程序===
+
====将软件包编译并打包成ipk文件====
下载软件包的例子(共3个分别为example1, example2, example3),并拷到package目录:
+
此处以mwarning的示例作为演示,下载例子的源代码(共3个分别为example1, example2, example3),并拷到package目录:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
git clone https://github.com/mwarning/openwrt-examples.git
 
git clone https://github.com/mwarning/openwrt-examples.git
Line 417: Line 416:
 
rm -rf openwrt-examples/
 
rm -rf openwrt-examples/
 
</syntaxhighlight>
 
</syntaxhighlight>
进入配置菜单:
+
再通过以下命令进入配置菜单:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
make menuconfig
 
make menuconfig
 
</syntaxhighlight>
 
</syntaxhighlight>
选中以下软件:
+
在菜单中选中以下我们要编译的软件包(默认实际上已经选中):
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
"Utilities" => "example1"
 
"Utilities" => "example1"
Line 427: Line 426:
 
"Network" => "VPN" => "example2"
 
"Network" => "VPN" => "example2"
 
</syntaxhighlight>
 
</syntaxhighlight>
分别编译:
+
退出配置菜单的界面,在提示是否保存设置时需要选择Yes,然后执下以下命令,分别编译这三个软件包:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
make package/example1/compile V=99
 
make package/example1/compile V=99
Line 433: Line 432:
 
make package/example3/compile V=99
 
make package/example3/compile V=99
 
</syntaxhighlight>
 
</syntaxhighlight>
也可以简单的 make:
+
编译成功后,可以在bin目录下找到ipk文件,如下所示:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
make
+
$ 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
 +
</syntaxhighlight>
 +
====将编译生成的ipk安装到NanoPi上====
 +
可以用scp命令将ipk文件上传到NanoPi上:
 +
<syntaxhighlight lang="bash">
 +
cd ./bin/packages/aarch64_cortex-a53/base/
 +
scp example*.ipk root@192.168.2.1:/root/
 +
</syntaxhighlight>
 +
然后用opkg命令进行安装他们:
 +
<syntaxhighlight lang="bash">
 +
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
 
</syntaxhighlight>
 
</syntaxhighlight>
 
====编译成功后===
 
在ipk程序文件在sdk/bin/packages/..里面
 
安装ipk程序
 
-->
 

Revision as of 07:43, 12 January 2021

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。

  • 只允许本地设备访问luci

编辑 /etc/config/uhttpd,将原来的0.0.0.0和[::]地址改为本地lan的地址,例如:

	# 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

完成后重启服务:

/etc/init.d/uhttpd restart

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 -f /etc/board.json /etc/config/system /etc/config/network /etc/config/wireless /etc/firstboot_*
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 -f /etc/board.json /etc/config/system /etc/config/network /etc/config/wireless /etc/firstboot_*
reboot

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

1.12 使用USB2LCD查看IP和温度

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


1.13 如何使用USB WiFi

1.13.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.13.2 如何使用USB WiFi作为AP

(1) 把USB WiFi插入{{{1}}}的USB端口,推荐使用以下列表中支持AP模式的WiFi芯片模块:
R2swrt+usbwifi-08.jpg
注:符合以上WiFi芯片型号并符合以上VID&PID信息的USB无线网卡都可以使用,支持的型号不局限于某个品牌某个型号

(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启{{{1}}}

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

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

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

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

1.14 玩转Docker应用

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

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

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

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



1.16 使用sdk编译软件包

1.16.1 安装编译环境

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

1.16.2 在网盘上下载并解压sdk

sdk位于网盘的toolchain目录,以NanoPi-R4S为例,将压缩包解压,然后下载软件包:

tar xvf /mnt/dvd2/FriendlyELEC-NanoPiR4S/toolchain/friendlywrt-kernel-5.x.y/openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64.tar.xz
cd openwrt-sdk-19.07.5-rockchip-rk3399_gcc-7.5.0_musl.Linux-x86_64/
./scripts/feeds update -a
./scripts/feeds install -a

1.16.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.16.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