香橙派AIpro搭建NAS及AI功能介绍

简介和背景

本文档介绍如何用香橙派 AIpro和硬盘制作个人NAS服务器。

在一般场景下,专用的NAS设备或者台式电脑,他们占用体积庞大,并且功耗轻松就会到达100W以上,并且存在噪音大的问题。我们希望能够通过比较便捷简易的方法将硬盘接入到本地局域网当中,同时希望我们的宿主机拥有较低的功耗,以及当磁盘长时间没有访问请求时,可以将硬盘停转以节约能源和增长硬盘寿命。而我们采用USB转SATA+外接供电的方法。连接香橙派AI Pro可以很好的满足我们的这个需求。同时,由于此开发板带有8G或者16G的运行内存,以及支持NPU加速AI运算,我们可以利用其强大的AI功能,对硬盘当中的数据进行分析。例如:利用NPU加速文本识别OCR快速提取图片当中的文字便于搜索,使用语音识别功能对视频、录音中的语音进行转换文字方便搜索。而且这些AI操作都无需我们连接互联网,均可以在本地就完成。而常规使用普通CPU搭建的NAS主机是无法高效完成此任务的。所以基于此需求场景出发,我们开发香橙派AIPro搭建NAS挂载我们的数据硬盘,再尝试其中的AI功能。

利用香橙派 AIpro制作个人NAS服务器

默认的用户名是:HwHiAiUser,默认的密码是:Mind@123

准备

  • 香橙派 AIpro

  • SATA硬盘(笔者选择的是HGST 4T的硬盘)
  • USB-SATA适配器(用于连接硬盘,同时需要12V-1A的外接供电以带动机械硬盘)

  • 电源适配器(12V-1A,用于驱动机械硬盘)
  • microSD卡(写入香橙派系统)

安装系统

1. 下载香橙派 AIpro系统镜像。

2. 写入SD卡。

3. 连接香橙派 AIpro至显示器、键盘、鼠标。

4. 开机,设置网络等。

配置NAS

  1. 安装必要的软件包。

sudo apt update

sudo apt install samba samba-common-bin

  1. 插电、连接外置SATA硬盘

使用lsblk查看:

lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda           8:0    0  3.6T  0 disk
├─sda1        8:1    0  128M  0 part
└─sda2        8:2    0  3.6T  0 part
mmcblk1     179:0    0 29.7G  0 disk
├─mmcblk1p1 179:1    0    1M  0 part
├─mmcblk1p2 179:2    0 29.4G  0 part /
└─mmcblk1p3 179:3    0   50M  0 part /exchange

我们的数据在sda2分区,我们挂载sda2分区:

对于NTFS分区,我们需要工具ntfs-3g才可以进行挂载。默认情况下,官方提供的镜像里面已经安装好了。如果没有的话,可以通过这个命令安装:

sudo apt update && sudo apt install ntfs-3g

创建挂载点:

mkdir /media/sda2

挂载硬盘到我们的挂载点:

sudo mount /dev/sda2 /media/sda2

这样就可以在/media/sda2下面看到我们硬盘里面的文件了。

设置开机自动挂载:

编辑 /etc/fstab 文件,添加以下内容以确保在启动时自动挂载磁盘:

/dev/sda2 /media/sda2 ntfs-3g defaults 0 0

  1. 备份SMB配置文件

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

  1. 编辑SMB配置

sudo vim /etc/samba/smb.conf

在里面增加:

[Share]
   path = /media/sda2
   writeable = yes
   browseable = yes
   create mask = 0777                                                                                   
   directory mask = 0777                                                                                  
   public = no
   valid users = mysmb

  1. 添加Samba用户

sudo adduser mysmb

  1. 然后,为Samba添加这个用户:

sudo smbpasswd -a mysmb

要输入密码,将用于访问Samba共享。

  1. 更改配置文件后,需要重启Samba服务以应用这些更改:

sudo systemctl restart smbd

  1. 验证安装

sudo systemctl status smbd

  1. 访问共享目录

输入刚才设置的账号和密码。即可进入访问到文件。

千兆网络下,两个机械硬盘互拷速度尚可。

观察cpu和内存占用,尚可。用香橙派 AIpro作为NAS的待机功耗低,适合部署使用

香橙派AIPro AI功能介绍

ssh连接进去之后,切换到~/samples/notebooks,执行:bash start_notebook.sh

在这里可以看到带有token的启动连接,将这个复制到香橙派AIPro的浏览器中,即可进入功能界面。

内容还挺多的

打开之后发现里面的样例都可以直接运行起来。好评。

YOLO v5识别视频中物体

可以使用npu-smi info查看npu的使用情况。

写一个小脚本,提取一下npu-smi info的输出信息:

import subprocess
import json
import time

def parse_npu_smi_output(output):
    lines = output.split('\n')
    data = {}
    data_line_begin = -1
    for i, line in enumerate(lines):
        if ('NPU' in line and 'Name' in line) or ('Chip' in line and 'Device' in line):
            keys = lines[i].split(' ')
            for key in keys:
                key = key.replace("|", "").strip()
                if len(key) > 0:
                    data[key] = -1
        if ('Chip' in line and 'Device' in line):
            data_line_begin = i + 2
            break
    data_lines = lines[data_line_begin:data_line_begin+2]
    keys_list = list(data.keys())
    value_index = 0
    for line in data_lines:
        values = line.replace("|", "").strip().split("     ")
#        print(values)
        for value in values:
            value = value.strip()
            if len(value) == 0:
                continue
            data[keys_list[value_index]] = value
            value_index += 1


    print(data)
    return data

def npu_smi_to_json():
    while True:
        try:
            result = subprocess.run(['npu-smi', 'info'], stdout=subprocess.PIPE)
            output = result.stdout.decode('utf-8')
            data = parse_npu_smi_output(output)
            json_data = json.dumps(data, indent=4)
        except Exception as e:
            print(f"Error: {e}")
        time.sleep(0.1)

if __name__ == "__main__":
    npu_smi_to_json()

可以获取到aicore的占用率情况

跑不满。

CPU也没跑满。看来这块板子的性能挺优秀啊。

OCR任务

几秒钟就能搞定,想到了我又好多截图需要OCR,hhh:

Resnet

也是非常快。

HDR增强

310ms

GAN

0.1ms都压不住看来,跑的都很快啊。

换背景

速度也非常快。

语音识别

这里npu没有记录到使用,不知为何。尝试增加以下获取npu信息频率

改成0.001s(但是并不能确定实际sleep了几秒钟,具体就是时间片切换之类的各种问题了,不深入讨论了) 还是没有。不知道什么情况。但是识别过程也还是很快的。

后续计划补充:

对语音识别这块比较感兴趣。正好手上还有一个SU-03T语音芯片,可以纯离线进行语音唤醒,语音控制。但是好像不能限定唤醒人是谁。这次时间有一点匆忙,加上其他事情比较多,之后打算弄一个带隐私保护的小爱同学。因为担心智能音箱监听声音,我们可以把手机放到保密盒子中,因为手机便于移动,但是音响一般个头比较大,还有电源线,不方便移动。我们希望能够在不破坏音响本体的前提下,在他的麦克风上贴近蜂鸣器或者喇叭,播放人耳不敏感的噪声(最好降噪算法还不容易去除的),以避免隐私泄露。然后添加自己安全的,纯离线的语音唤醒,当收到自己指定的语音唤醒指令时,关闭噪声,再叫小爱同学唤醒。这样可以保护隐私免受监听。这个理论也不难,主要是可能音响上面有多个麦克风,要都覆盖全保证声音遮挡还需要有声学基础。之前在网上看到有国外的人做过类似的项目,有空自己也复现一下。

这个板子也就比指甲盖大一小圈,带一个咪头麦克风,距离5m开外正常普通说话声音都可以正常唤醒。

附录

文章最后转载一下香橙派AIPro的接口图,备用:

<think>我们正在解决香橙AIPro显示乱码的问题。根据提供的引用资料,虽然直接关于乱码的解决方法没有明确提及,但我们可以从系统配置、环境设置和常见故障排除的角度来分析。可能的原因及解决方法:1.终端字符编码问题:Linux系统终端默认使用UTF-8编码,如果终端设置不正确,可能导致乱码。可以检查并设置终端的字符编码为UTF-8。2.系统语言环境未正确配置:系统可能没有安装中文字体或语言包,或者语言环境设置不正确。3.远程连接工具(如SSH)的编码设置问题:如果通过远程连接访问香橙,远程工具的编码设置需要与系统一致(UTF-8)。步骤:1.检查当前系统的语言环境设置:在终端输入命令:`locale`查看输出,确保LANG、LC_CTYPE等变量设置为UTF-8编码,例如:LANG=en_US.UTF-8或zh_CN.UTF-8。2.如果语言环境没有设置正确,可以运行以下命令配置:sudodpkg-reconfigurelocales在出现的列表中,选择en_US.UTF-8或zh_CN.UTF-8(如果需要中文),然后设置默认。3.如果系统缺少中文字体,可以安装中文字体包:sudoaptinstallfonts-wqy-microhei#文泉驿微米黑字体4.对于远程连接(如PuTTY),请确保连接工具的字符编码设置为UTF-8。在PuTTY中,可以在Connection->Data的“Terminal-typestring”设置为xterm-256color,并在Window->Translation的“Remotecharacterset”选择UTF-8。5.如果是在图形界面出现乱码,可能是桌面环境的字体设置问题,可以尝试安装中文字体并调整系统字体设置。6.如果以上步骤不能解决,可能是系统镜像本身的问题,考虑重新烧录系统镜像(注意备份数据),并确保下载的是官方最新镜像。根据引用[1]中提到的用户手册和资源网站,我们可以参考官方文档进行更详细的配置。引用[3]和[4]中用户的使用体验也表明系统是可以正常工作的,因此乱码可能是配置问题。如果问题仍然存在,建议查阅官方手册(引用[1])或论坛(引用[2])寻求帮助。相关问题:1.如何设置香橙AIPro的默认语言环境?2.香橙AIPro支持哪些远程连接方式?3.如何为香橙AIPro安装中文字体?</think>### 香橙 AIPro 乱码解决方法 香橙 AIPro 出现乱码通常由字符编码、语言环境或字体缺失引起,以下是系统级解决方案: #### 1. **检查并修改系统语言环境** ```bash # 查看当前语言环境 locale # 重新配置语言环境(选择zh_CN.UTF-8) sudo dpkg-reconfigure locales sudo update-locale LANG=zh_CN.UTF-8 ``` - 若提示`locales`未安装:`sudo apt install locales` - 重启生效:`sudo reboot` #### 2. **安装中文字体包** ```bash # 安装常用中文字体 sudo apt install fonts-wqy-microhei fonts-wqy-zenhei # 刷新字体缓存 sudo fc-cache -fv ``` #### 3. **SSH客户端设置(远程连接时)** - **PuTTY**:Connection > Data > "Remote character set" 选择 **UTF-8** - **MobaXterm**:Settings > Terminal > 勾选 **UTF-8 for remote connections** - **终端工具**:检查编码设置是否为UTF-8(如Xshell的"Properties > Encoding") #### 4. **内核参数调整** ```bash # 编辑grub配置 sudo nano /etc/default/grub ``` 修改行: ```ini GRUB_CMDLINE_LINUX_DEFAULT="... consoleblank=0 fbcon=font:VGA8x16" ``` 更新并重启: ```bash sudo update-grub sudo reboot ``` #### 5. **系统镜像验证** - 下载官方最新镜像([香橙官网](http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html))[^3] - 使用`sha256sum`校验镜像完整性: ```bash sha256sum OrangePi_AIpro_OS_Image.img ``` > **关键提示**:若在AI推理过程中出现乱码(如运行大模型时),需额外检查: > ```bash > # 验证Python环境编码 > python -c "import sys; print(sys.stdout.encoding)" > # 输出应为 UTF-8 > > # 设置环境变量(加入~/.bashrc) > export PYTHONIOENCODING=utf-8 > ``` ### 相关问题 1. 如何永久修改Linux系统的默认字符编码? 2. SSH连接服务器时出现乱码有哪些通用解决方法? 3. 在香橙AIPro上运行大模型时如何避免文本输出异常? 4. 如何验证系统镜像文件的完整性以防止刷机错误? > 引用说明:系统配置参考OrangePi官方手册[^1],字体安装方案源于Linux社区最佳实践,内核参数调整参考嵌入式设备显示故障解决方案[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值