香橙派AI Pro综合开发笔记 - 1

香橙派AI Pro综合开发笔记 - 1

0. 系统初始化与基础连接

0.1 硬件连接与首次启动

  1. 硬件准备:将存储有官方Ubuntu系统镜像的TF卡插入香橙派卡槽,通过HDMI线连接显示器,连接USB键盘鼠标,最后连接电源适配器。
  2. 系统启动:上电后,系统将自动启动。首次启动可能需完成新用户创建、语言时区设置等初始化配置。默认用户通常为 orangepi,部分镜像可能为 HwHiAiUser
  3. 网络连接(桌面环境)
    • 点击桌面右上角网络图标,选择可用的Wi-Fi网络或插入网线进行有线连接。
    • 打开终端,使用 hostname -I 命令验证网络连通性并获取IP地址。此IP将用于后续SSH远程连接。

0.2 基础系统配置与问题诊断

  • 更新软件源:为避免后续安装软件失败,首先应更新软件包列表。
    1
    sudo apt update
  • 音频设备检测失败问题:在执行智能音箱项目时,若 aplay -l 命令返回 no soundcards found,表明系统未正确识别或驱动音频硬件。
    • 解决方案A(安装驱动)
      1
      2
      sudo apt install -y alsa-base alsa-utils pulseaudio
      sudo reboot
    • 解决方案B(根本性解决):若方案一无效,最可靠的方案是更换为香橙派官方推荐或社区验证过音频功能完整的系统镜像,并重新刷写系统。这是解决因内核配置或驱动缺失导致硬件识别问题的最有效路径。

0.3 关键初始操作

  • 修改默认密码:为安全起见,应立即修改默认用户密码。
    1
    passwd
  • 开启SSH服务(为后续远程开发准备)
    1
    sudo systemctl enable --now ssh

1. C++开发环境搭建与编译

1.1 安装编译器与基础工具

  1. 安装GCC/G++编译器
    1
    2
    sudo apt update
    sudo apt install -y g++ build-essential
  2. 验证安装
    1
    g++ --version

1.2 编写与编译单文件程序

  1. 使用编辑器创建C++源文件
    1
    nano hello.cpp
  2. 输入示例代码
    1
    2
    3
    4
    5
    #include <iostream>
    int main() {
    std::cout << "Hello, Orange Pi!" << std::endl;
    return 0;
    }
  3. 保存并编译:使用 g++ 将源代码编译为可执行文件。
    1
    g++ hello.cpp -o hello
  4. 运行程序
    1
    ./hello

1.3 管理多文件项目

对于涉及多个源文件的项目,推荐使用 MakefileCMake 管理编译流程。

  1. 使用Makefile示例:创建名为 Makefile 的文件(无扩展名)。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CXX = g++
    TARGET = myapp
    SRCS = main.cpp utils.cpp

    $(TARGET): $(SRCS)
    $(CXX) $(SRCS) -o $(TARGET)

    clean:
    rm -f $(TARGET)
  2. 执行编译与清理
    1
    2
    3
    make      # 编译
    ./myapp # 运行
    make clean # 清理生成的文件

2. CasaOS系统管理面板部署

2.1 安装CasaOS

CasaOS是一个直观的家庭服务器管理面板,可极大简化后续服务的部署。

1
curl -fsSL https://get.casaos.io | sudo bash

2.2 访问失败问题诊断与解决

安装完成后,在浏览器使用 http://<香橙派IP> 访问可能失败,需按以下流程排查:

  1. 检查服务状态:使用 systemctl 命令而非有问题的 casaos service 命令。

    1
    sudo systemctl status casaos
    • 若服务未运行,则启动并启用自启:
      1
      sudo systemctl enable --now casaos
  2. 检查端口监听:CasaOS默认监听80端口。确认服务正确绑定到所有网络接口(0.0.0.0::),而非仅本地(127.0.0.1)。

    1
    sudo netstat -tunlp | grep :80
  3. 关键故障:服务仅监听本地地址:若 netstat 显示CasaOS仅绑定到 127.0.0.1,表明安装不完整。

    • 解决方案:彻底卸载后重装。
      1
      2
      3
      4
      5
      6
      7
      # 停止服务并卸载
      sudo systemctl stop casaos
      curl -fsSL https://get.casaos.io/uninstall | sudo bash
      # 清理残留Docker容器(如果有)
      sudo docker rm -f $(sudo docker ps -a -q --filter="ancestor=casaos") 2>/dev/null || true
      # 重新执行安装命令
      curl -fsSL https://get.casaos.io | sudo bash
  4. 检查防火墙:如果系统防火墙启用,需放行80端口。

    1
    2
    sudo ufw allow 80
    sudo ufw status

2.3 初始化设置

在浏览器成功访问后,按界面提示创建CasaOS管理员账户。

3. 基于Nextcloud的私有云盘部署

3.1 通过CasaOS安装Nextcloud

  1. 登录CasaOS,进入“App Store”。
  2. 搜索“Nextcloud”,点击安装。
  3. 在安装配置页面,务必记录或自定义管理员账号密码,并修改默认端口(如从8080改为8088),以避免与系统其他服务冲突。

3.2 解决“不信任的域名”错误

安装后通过 http://<IP>:<端口> 访问,可能提示“不信任的域名”。

  • 原因:访问地址未添加到Nextcloud的信任域列表。
  • 解决方案:通过Nextcloud内置的 occ 命令行工具修正。
    1. 进入Nextcloud容器并执行命令:
      1
      2
      3
      docker exec -it nextcloud /bin/bash
      cd /var/www/html
      php occ config:system:set trusted_domains 1 --value="你的IP:端口"
    2. 重启容器使配置生效:
      1
      docker restart nextcloud

3.3 修复配置文件语法错误

在修正信任域过程中,可能因手动编辑导致 /var/www/html/config/config.php 文件出现语法错误(如 ParseError)。

  • 诊断:在容器内运行语法检查。
    1
    php -l /var/www/html/config/config.php
  • 修复:典型的错误是数组元素格式错误或重复的配置键。
    1. 备份原配置
    2. 使用 sednano 直接编辑文件,确保:
      • 每个数组项以逗号分隔。
      • trusted_domains 等键名唯一。
      • 数组括号正确匹配。
    3. 有效修复示例:删除重复的 trusted_domains 配置块,并确保格式正确。
      1
      2
      3
      4
      5
      6
      # 进入容器编辑配置文件
      docker exec -it nextcloud /bin/bash
      cd /var/www/html/config
      cp config.php config.php.backup
      # 使用sed删除可能重复的错误行(例如37-41行)
      sed -i '37,41d' config.php

3.4 配置外部存储与Windows访问

  1. 挂载外部存储目录:在Nextcloud网页端,“设置”->“外部存储”中,添加本地目录(如/data/cloud_files),实现文件统一管理。
  2. 在Windows中映射网络驱动器
    • 在Nextcloud“设置”底部获取WebDAV URL。
    • 在Windows“此电脑”中,“映射网络驱动器”,输入URL并凭据,即可像本地磁盘一样访问。

下一篇