ArozOS+树莓派打造随身NAS(避坑专用)

ArozOS+树莓派打造随身NAS(避坑专用)

  • 前情提要
    • 为什么要写这么一篇文章
    • 为什么选择树莓派
    • 为什么选择ArozOS
  • 话不多说开整
    • ArozOS简介
    • 天才第一步,烧录装好库
    • 第二步就是坑,我直呼好家伙
    • 配置使用
  • 更进一步:树莓派设置为AP
    • 无板载WiFi设备
    • 有板载WiFi
    • 使用板载WiFi设置 AP
  • To Be Continue…

前情提要

为什么要写这么一篇文章

  1. 百度关键词“树莓派 ArozOS”搜出来的都是同一篇文章套娃式转载,关键问题没有说清楚浪费非常多时间;
  2. 就这么同一篇文章,还把大量篇幅放在了硬件布置和外壳制作上,而且所述方法已经过时;
  3. 信息零散,逐个检索浪费时间;
  4. ArozOS虽然已经上线多年,但一直在测试版本中徘徊,近一年多才迈入1.0正式版本,还有很多不如意或待完善的地方(但这与ArozOS是个amazing project并不冲突,开发者是个好同志!),希望借此跟踪ArozOS的发展,也希望开发者能够将这个项目做大做强。

为什么选择树莓派

  1. 因为我手里暂时只有一块2G树莓派4B……

为什么选择ArozOS

  1. 轻量化,适合低功耗板子做随身NAS;
  2. 省电,且服务启动快适合配合电池做随身;
  3. Web Desktop模式有前景(个人感觉);
  4. 不得不承认,在1和2前提下开发者把功能、性能、能耗等的平衡做的十分不错。
  5. :本文仅实现软件功能,硬件布局和外壳设计等我整来块小板子再说,Raspberry Pi 4B块头太大了,绑上块硬盘能丑到连亲妈都认不得。

话不多说开整

ArozOS简介

  1. ArozOS专为Raspberry Pi设计,也可以在功能有限的其他ARM SBC甚至Windows / macOS上运行,详细内容可参考G站中文readme:https://github.com/tobychui/arozos/blob/master/README-CN.md;
  2. 项目仓库:https://github.com/tobychui/arozos;
  3. ArozOS官网:http://arozos.com/index.html(官网Documentation可能需要VPN才能正常打开,请各位大显神通);
  4. 套娃文章大赏:https://www.quwj.com/2020/12/17/raspberry-pi-pocket-cloud-server.html。

天才第一步,烧录装好库

  1. 树莓派直接烧录ArozOS镜像,镜像下载地址:https://www.mediafire.com/file/mmjyv77ei9fwab5/arozos_v1.109.7z/file;
  2. 打开ssh、设置网络、换源等方式与Raspberry Pi OS (Buster)完全一致;
  3. 启动并登录树莓派,默认用户名:pi,密码:raspberry
  4. 使用sudo raspi-config命令进入设置;
  5. 选择7 Advanced Options
  6. 选择A1 Expand FileSystem Ensures that all of hte SD card storage is available to the OS
  7. 保存设置,确认重启。

第二步就是坑,我直呼好家伙

树莓派重启很顺利,命令行蹭蹭往上刷,胜利的曙光即将占领智商高地,眼看着就要成功的我谁都开始不服了!

可转眼坑就跟幸福一样,来的太突然……

按照套娃教程,服务器启动之后,在电脑的网络邻居里会弹出新设备。
其他设备中显示ArozOS(AR100)
我兴冲冲打开网络,WTF里面除了本机和路由器啥都没有,就如同我一片空白的大脑。
啥都没有,就如同我一片空白的大脑
确认树莓派端系统没问题,我开始面向“网络中为啥找不到网络设备”展开科研攻关,其中包括但不限于重启、网络调整、重装系统等基操。

然并卵。

偶然仔细阅读仓库README,发现https://github.com/tobychui/arozos#supported-startup-parameters设置参数中有如下一段:

-port intListening port (default 8080)

直接IP:8080访问不就结了,整啥自行车……成功!

配置使用

  1. 首次运行服务通过http://IP:8080进入管理员注册页面,根据提示创建新账号并点击Create进入登录界面;
    首次运行服务进入管理员注册页面
  2. 使用刚刚注册的管理员账号登录;用户登录界面
  3. 顺利进入系统界面,审美在线;
  4. 挂载硬盘,教程见B站【ArozOS教程】挂载USB存储设备到ArozOS【CC字幕】

更进一步:树莓派设置为AP

无板载WiFi设备

如Raspberry Pi Zero等未自带无线网卡的设备,需要插入外置USB网卡,具体操作后续更新,USB网卡选型疑似有坑。

有板载WiFi

  1. Raspberry Pi 4B及以下WiFi只有2.4G频段(最新出的键盘一体机Pi 400为双频WiFi),生产环境下该频段干扰非常大,文件传输速度波动明显,甚至会因掉线而中断,因此也可考虑使用USB无线网卡,但需要先禁用板载WiFi,否则USB无线网卡无法起效;
  2. 使用板载WiFi做AP。

使用板载WiFi设置 AP

温馨提示:配置AP时请保持WiFi处于非连接状态,否则配置必然失败。

  1. 确认无线网卡未被禁用:ifconfig -a查看是否有wlan0项,有则未被禁用,否则需要使用ifconfig wlan0 up命令启用;
  2. 安装依赖项
  • 安装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.servicejournalctl -xe查看错误;
如错误显示为failed to create listening socket for port 53: 地址已在使用
参考该文章:《启动或重启 dnsmasq 提示端口 53 被占用的解决方案》

  1. 修改配置文件
  2. 修改NetworkManager配置文件
# 进入NetworkManager.conf编辑
sudo nano /etc/NetworkManager/NetworkManager.conf
# 向.conf文件写入下面一行内容
dns=dnsmasq
#重启network-manager服务
sudo service network-manager restart
  1. 修改dnsmasq配置文件
# 进入dnsmasq.conf编辑
sudo nano /etc/dnsmasq.conf
# 查找listen-address一行内容,设置为下面一行:
listen-address=127.0.0.1
# 重启dnsmasq服务
sudo /etc/init.d/dnsmasq restart
  1. 克隆create_ap项目
  2. 克隆 git 项目到本地进行编译
sudo git clone https://github.com/oblique/create_ap
cd create_ap
sudo make install
  1. 配置并启用热点
sudo create_ap wlan0 eth0 <SSID> <PASSWORD>

如出现WARN内容,可改用sudo create_ap --no-virt wlan0 eth0 <SSID> <PASSWORD>
确保进行本步骤前WiFi处于未连接状态,否则会出现Error而无法向下进行。

  1. 配置AP服务
  2. 修改重启服务的配置,添加–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
  1. 修改 create_ap.service 服务功能配置
# 进入create_ap.conf文件编辑
# 网关地址,私网为192/172/10等开头
GATEWAY=192.168.31.1
SSID=ArozOS
PASSPHRASE=12345678
  1. 设置开机任务
# 设置服务开机启动
systemctl enable create_ap.service
# 检查开机任务是否设置成功
systemctl enable create_ap.service
  1. 服务管理命令汇总
# 启动服务
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…

未来还有几个小目标需要达成:

  1. Raspberry Pi 4B 板载WiFi只有2.4G频段,生产环境下明显受干扰影响使用,另外4B终归太大不便携,下一步准备上BadUSB方案或Zero+USB HAT+USB无线网卡方案。前者可以通过USB与电脑组网,后者可以使用5G频段效果应该会有很大提升;
  2. 添加TLS做好https访问;
  3. Zero方案处理好后,当然还是要做好硬件部分和外壳的设计,做出产品原型;
  4. 据说树莓派可以实现无线网卡AP+STA模式共存,但效果很一般,准备测试一下效果有多一般;
  5. 重要的事情再多说一次,ArozOS的WebDesktop模式很棒,准备深入研究下OS本身以及平台程序的开发(Go+PHP+HTML+CSS+Javascript+……);
  6. 我们最近在做企业级NAS解决方案,也希望能够面向终端市场做出一些产品,突破群晖这一类产品在市场上一家或少数几家独大的局面,如果有幸能被感兴趣但朋友们看到,我们可私信聊一下,坐标深圳高新南欢迎交流。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注