FriendlyWrt/zh
Contents
- 1 FriendlyWrt的使用
- 1.1 FriendlyWrt简介
- 1.2 首次开机的初始化
- 1.3 帐户与密码
- 1.4 登录FriendlyWrt
- 1.5 建议的安全性设置
- 1.6 更改LAN口的IP地址
- 1.7 安全的关机操作
- 1.8 恢复出厂设置
- 1.9 安装软件包
- 1.10 FriendlyWrt的一些常见问题
- 1.11 禁用IPv6
- 1.12 配置用户按键的功能
- 1.13 配置移远EC20(4G模块)拨号上网
- 1.14 使用USB2LCD查看IP和温度
- 1.15 如何使用M.2 WiFi
- 1.16 如何使用USB WiFi
- 1.17 玩转Docker应用
- 1.18 挂载smbfs共享资源
- 1.19 使用sdk编译软件包
- 1.20 使用 GitHub Actions 编译 FriendlyWrt
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登录,建议在将NanoPC-T6连接到互联网之前完成此设置。
1.4 登录FriendlyWrt
将电脑连接到 NanoPC-T6 的LAN口,如果电脑没有网口,可将无线AP的LAN口与NanoPC-T6的LAN口相连接,电脑再通过WiFi连接到无线AP,在电脑浏览器上输入以下网址即可进入FriendlyWrt管理页面:
- http://friendlywrt/
- http://192.168.2.1/
- http://[fd00:ab:cd::1]
以上是NanoPC-T6的LAN口地址,WAN口会从你的主路由器动态获取IP地址。
1.5 建议的安全性设置
以下设置事项非常建议在将 NanoPC-T6 接入互联网之前完成,因为在空密码或弱密码的状态下将NanoPC-T6接入互联网,极易受到网络攻击。
- 设置一个安全的密码
进入 系统->管理权 界面设置密码。
- 禁止从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.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/base src/gz openwrt_luci https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/luci src/gz openwrt_packages https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/packages src/gz openwrt_routing https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/routing src/gz openwrt_telephony https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/aarch64_cortex-a53/telephony src/gz friendlywrt_packages file://opt/packages
- 注意, friendlywrt_packages需要保留, 否则会缺少一些系统依赖;
- 如果你使用的是 friendlywrt 21.02 的固件, 则将上面的 23.05.4 替换成 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,而NanoPC-T6工作在IPv6,电脑有可能无法连接互联网,建议关闭IPv6 (本WiKi后面有介绍方法),或将主路由切换到IPv6;
- 如果你有问题,或有更好的建议,欢迎发送邮件到 techsupport@friendlyarm.com;
1.11 禁用IPv6
要关掉 IPv6,可在ssh终端输入如下命令:
. /root/setup.sh disable_ipv6 reboot
待NanoPC-T6重启完毕,电脑也需要重新插拨一下网线(或重启网络端口)以便重新获得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后台会进行拨号上网,拨号成功的状态如下所示:
- 连接到Lan的设备将可以连接互联网,如有WiFi模块,可进入“无线”界面开启无线AP功能,通过无线接入的设备亦可连接到互联网。
1.14 使用USB2LCD查看IP和温度
在终端输入如下命令设置lcd2usb服务开机自动启动:
. /root/setup.sh init_lcd2usb poweroff
将USB2LCD模块Plug到 NanoPC-T6 的USB接口再开机,IP地址和CPU温度将显示在LCD上:
1.15 如何使用M.2 WiFi
- NanoPC-T6支持的M.2 WiFi型号为: rtl8822ce
1.15.1 AP模式
- FriendlyWrt系统的无线功能默认是关闭状态, 要启用WiFi, 可点击“网络>无线”进入配置无线WiFi界面, 找到“无线未启用”那一行, 点击后面的“启用”按钮即可
- 启用后, 在手机上搜索连接名称类拟 FriendlyWrt-xx:yy:zz 名称的WiFi热点, 输入默认密码password即可连接
1.15.2 无线中继模式
- 连接到主无线路由器
点击 "网络" -> "无线", 在界面上点击 "Generic MAC80211 802.11ac/b/g/n" 后面的 "扫描" 按钮扫描网络,点击无线路由器后面的 "加入网络" 按钮,
在加入网络的配置页面中,勾选 "重置无线配置",在 "WPA密钥"一栏中输入密钥,其他配置保持默认,点 "提交",
点击 "高级设置", 在 “接口名称” 中输入 "wlan0", 再点击 "保存",
最后点 "保存并应用", 连接成功后,可以在FriendlyWrt首页看到IP地址。
- 创建无线热点
点击 "网络" -> "无线",在界面上点击 "Generic MAC80211 802.11ac/b/g/n" 后面的 "添加" 按钮,将会弹出 "编辑无线网络" 页面,
在 "工作频率" 一栏中设置无线信道(例如"40 (5200 MHz)"),
在 "ESSID" 一栏中,输入热点名称,
在 "网络" 一栏中,钩选 "lan",
点击 "无线安全", 设置加密类型 (例如 "WPA2-PSK(强安全性)")和密钥,
点击 "高级设置", 在 “接口名称” 中输入 "wlan1",
然后点击 "保存", 然后点击 "保存并应用",
由于需要重启才能生效,点击 "系统" 选择 "重启"。
1.16 如何使用USB WiFi
1.16.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.16.2 如何使用USB WiFi作为AP
(1) 把USB WiFi插入NanoPC-T6的USB端口,推荐使用以下列表中支持AP模式的WiFi芯片模块:
注:符合以上WiFi芯片型号并符合以上VID&PID信息的USB无线网卡都可以使用,支持的型号不局限于某个品牌某个型号
(2) 插入USB WiFi后,点击上方菜单栏的“系统>重启”,点击“执行重启”按钮重启NanoPC-T6
(3) 点击“网络>无线”进入配置无线WiFi界面
(4) 点击“编辑”按钮可编辑WiFi设置
(5) 在“接口配置”中可设置WiFi 模式和SSID等,然后点击到“无线安全”项可修改加密方式和WiFi密码,默认密码为password,设置完成后点击“保存”
(4) 配置完成后使用手机端或电脑端搜索对应SSID的WiFi即可
1.16.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.16.4 更改系统默认的WiFi热点配置
FriendlyWrt默认会为USB WiFi设置国家、热点名称等参数,目的是尽量的做到即插即用,但这不能保证所有的模块都能兼容此设置,你可以通过修改以下文件,来更改这些行为:
/lib/wifi/mac80211.sh
1.17 玩转Docker应用
1.17.1 Docker使用:安装JellyFin影音服务器
请参考: How to setup JellyFin media system on NanoPi-R2S/zh
1.17.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.17.3 使用外接硬盘来扩展Docker可用空间
- 先停止docker服务:
/etc/init.d/dockerd stop
- 把原来的/opt目录改个名, 建一个空的/opt目录:
mv /opt /opt-old && mkdir /opt
- 参考章节“8 初始化NVME固态硬盘和USB移动硬盘”, 将你的硬盘格式化为ext4, 然后挂载至 /opt 目录:
- 输入命令 "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空间已扩容:
1.17.4 Docker的常见问题与解决办法
1.17.4.1 无法访问Docker提供的网络服务
解决办法:
- 进入 "防火墙" 的设置,把 "转发" 设置成 "接受";
- 关闭 ”软件流量分载“;
1.18 挂载smbfs共享资源
mount -t cifs //192.168.1.10/shared /movie -o username=xxx,password=yyy,file_mode=0644
1.19 使用sdk编译软件包
1.19.1 安装编译环境
在64位的Ubuntu (版本18.04+)下载并运行如下脚本: How to setup the Compiling Environment on Ubuntu bionic
1.19.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.19.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.19.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