ArozOS+树莓派打造随身NAS(避坑专用)
- 前情提要
-
- 为什么要写这么一篇文章
- 为什么选择树莓派
- 为什么选择ArozOS
- 话不多说开整
-
- ArozOS简介
- 天才第一步,烧录装好库
- 第二步就是坑,我直呼好家伙
- 配置使用
- 更进一步:树莓派设置为AP
-
- 无板载WiFi设备
- 有板载WiFi
- 使用板载WiFi设置 AP
- To Be Continue…
前情提要
为什么要写这么一篇文章
- 百度关键词“树莓派 ArozOS”搜出来的都是同一篇文章套娃式转载,关键问题没有说清楚浪费非常多时间;
- 就这么同一篇文章,还把大量篇幅放在了硬件布置和外壳制作上,而且所述方法已经过时;
- 信息零散,逐个检索浪费时间;
- ArozOS虽然已经上线多年,但一直在测试版本中徘徊,近一年多才迈入1.0正式版本,还有很多不如意或待完善的地方(但这与ArozOS是个amazing project并不冲突,开发者是个好同志!),希望借此跟踪ArozOS的发展,也希望开发者能够将这个项目做大做强。
为什么选择树莓派
- 因为我手里暂时只有一块2G树莓派4B……
为什么选择ArozOS
- 轻量化,适合低功耗板子做随身NAS;
- 省电,且服务启动快适合配合电池做随身;
- Web Desktop模式有前景(个人感觉);
- 不得不承认,在1和2前提下开发者把功能、性能、能耗等的平衡做的十分不错。
- 注:本文仅实现软件功能,硬件布局和外壳设计等我整来块小板子再说,Raspberry Pi 4B块头太大了,绑上块硬盘能丑到连亲妈都认不得。
话不多说开整
ArozOS简介
- ArozOS专为Raspberry Pi设计,也可以在功能有限的其他ARM SBC甚至Windows / macOS上运行,详细内容可参考G站中文readme:https://github.com/tobychui/arozos/blob/master/README-CN.md;
- 项目仓库:https://github.com/tobychui/arozos;
- ArozOS官网:http://arozos.com/index.html(官网Documentation可能需要VPN才能正常打开,请各位大显神通);
- 套娃文章大赏:https://www.quwj.com/2020/12/17/raspberry-pi-pocket-cloud-server.html。
天才第一步,烧录装好库
- 树莓派直接烧录ArozOS镜像,镜像下载地址:https://www.mediafire.com/file/mmjyv77ei9fwab5/arozos_v1.109.7z/file;
- 打开ssh、设置网络、换源等方式与Raspberry Pi OS (Buster)完全一致;
- 启动并登录树莓派,默认用户名:
pi
,密码:raspberry
; - 使用
sudo raspi-config
命令进入设置; - 选择
7 Advanced Options
; - 选择
A1 Expand FileSystem Ensures that all of hte SD card storage is available to the OS
; - 保存设置,确认重启。
第二步就是坑,我直呼好家伙
树莓派重启很顺利,命令行蹭蹭往上刷,胜利的曙光即将占领智商高地,眼看着就要成功的我谁都开始不服了!
可转眼坑就跟幸福一样,来的太突然……
按照套娃教程,服务器启动之后,在电脑的网络邻居里会弹出新设备。
我兴冲冲打开网络,WTF里面除了本机和路由器啥都没有,就如同我一片空白的大脑。
确认树莓派端系统没问题,我开始面向“网络中为啥找不到网络设备”展开科研攻关,其中包括但不限于重启、网络调整、重装系统等基操。
然并卵。
偶然仔细阅读仓库README,发现https://github.com/tobychui/arozos#supported-startup-parameters设置参数中有如下一段:
-port intListening port (default 8080)
直接IP:8080
访问不就结了,整啥自行车……成功!
配置使用
- 首次运行服务通过
http://IP:8080
进入管理员注册页面,根据提示创建新账号并点击Create进入登录界面;
- 使用刚刚注册的管理员账号登录;
- 顺利进入系统界面,审美在线;
- 挂载硬盘,教程见B站【ArozOS教程】挂载USB存储设备到ArozOS【CC字幕】
更进一步:树莓派设置为AP
无板载WiFi设备
如Raspberry Pi Zero等未自带无线网卡的设备,需要插入外置USB网卡,具体操作后续更新,USB网卡选型疑似有坑。
有板载WiFi
- Raspberry Pi 4B及以下WiFi只有2.4G频段(最新出的键盘一体机Pi 400为双频WiFi),生产环境下该频段干扰非常大,文件传输速度波动明显,甚至会因掉线而中断,因此也可考虑使用USB无线网卡,但需要先禁用板载WiFi,否则USB无线网卡无法起效;
- 使用板载WiFi做AP。
使用板载WiFi设置 AP
温馨提示:配置AP时请保持WiFi处于非连接状态,否则配置必然失败。
- 确认无线网卡未被禁用:
ifconfig -a
查看是否有wlan0
项,有则未被禁用,否则需要使用ifconfig wlan0 up
命令启用; - 安装依赖项
- 安装network-manager
sudo apt-get install network-manager
- 安装git
sudo apt-get install git
- 安装依赖库
sudo apt-get install util-linux procps hostapd iproute2 iw haveged dnsmasq
如出现提示:
Job for dnsmasq.service failed because the control process exited with error code.See"systemctl status dnsmasq.service" amd "journalctl -xe" fro details.
;
输入systemctl status dnsmasq.service
或journalctl -xe
查看错误;
如错误显示为failed to create listening socket for port 53: 地址已在使用
;
参考该文章:《启动或重启 dnsmasq 提示端口 53 被占用的解决方案》
- 修改配置文件
- 修改NetworkManager配置文件
# 进入NetworkManager.conf编辑
sudo nano /etc/NetworkManager/NetworkManager.conf
# 向.conf文件写入下面一行内容
dns=dnsmasq
#重启network-manager服务
sudo service network-manager restart
- 修改dnsmasq配置文件
# 进入dnsmasq.conf编辑
sudo nano /etc/dnsmasq.conf
# 查找listen-address一行内容,设置为下面一行:
listen-address=127.0.0.1
# 重启dnsmasq服务
sudo /etc/init.d/dnsmasq restart
- 克隆create_ap项目
- 克隆 git 项目到本地进行编译
sudo git clone https://github.com/oblique/create_ap
cd create_ap
sudo make install
- 配置并启用热点
sudo create_ap wlan0 eth0 <SSID> <PASSWORD>
如出现
WARN
内容,可改用sudo create_ap --no-virt wlan0 eth0 <SSID> <PASSWORD>
;
确保进行本步骤前WiFi处于未连接状态,否则会出现Error
而无法向下进行。
- 配置AP服务
- 修改重启服务的配置,添加–no-virt参数。
# 进入create_ap.service文件编辑
sudo nano /usr/lib/systemd/system/create_ap.service
# 将ExecStart=/usr/bin/create_ap --config /etc/create_ap.conf修改为以下内容:
ExecStart=/usr/bin/create_ap --no-virt --config /etc/create_ap.conf
- 修改 create_ap.service 服务功能配置
# 进入create_ap.conf文件编辑
# 网关地址,私网为192/172/10等开头
GATEWAY=192.168.31.1
SSID=ArozOS
PASSPHRASE=12345678
- 设置开机任务
# 设置服务开机启动
systemctl enable create_ap.service
# 检查开机任务是否设置成功
systemctl enable create_ap.service
- 服务管理命令汇总
# 启动服务
systemctl start create_ap.service
# 关闭服务
systemctl stop create_ap.service
# 重启服务
systemctl restart create_ap.service
# 显示服务状态
systemctl status create_ap.service
# 禁用服务开机启动
systemctl disable create_ap.service
To Be Continue…
未来还有几个小目标需要达成:
- Raspberry Pi 4B 板载WiFi只有2.4G频段,生产环境下明显受干扰影响使用,另外4B终归太大不便携,下一步准备上BadUSB方案或Zero+USB HAT+USB无线网卡方案。前者可以通过USB与电脑组网,后者可以使用5G频段效果应该会有很大提升;
- 添加TLS做好https访问;
- Zero方案处理好后,当然还是要做好硬件部分和外壳的设计,做出产品原型;
- 据说树莓派可以实现无线网卡AP+STA模式共存,但效果很一般,准备测试一下效果有多一般;
- 重要的事情再多说一次,ArozOS的WebDesktop模式很棒,准备深入研究下OS本身以及平台程序的开发(Go+PHP+HTML+CSS+Javascript+……);
- 我们最近在做企业级NAS解决方案,也希望能够面向终端市场做出一些产品,突破群晖这一类产品在市场上一家或少数几家独大的局面,如果有幸能被感兴趣但朋友们看到,我们可私信聊一下,坐标深圳高新南欢迎交流。