# Aubo Setup Patch for Astra Linux

Aubo 机器人控制柜 Astra Linux 系统配置脚本，自动完成系统安装、服务配置等操作。

## 功能特性

- 自动启用网络 apt 源
- 挂载 CDROM/ISO 作为安装源
- 安装必要的系统依赖包
- 配置 SSH 端口 (默认 8822)
- 安装触屏驱动
- 配置 GRUB 内核参数 (PARSEC 禁用、CPU 隔离)
- 下载安装 ARCS 控制系统
- 安装 CppMicroServices 依赖库
- 配置 Web 界面和 Nginx
- 安装实时测试工具 (cyclictest)

## 文件说明

| 文件 | 说明 |
|------|------|
| `setup_astra_linux.sh` | 主安装脚本 |
| `deploy.sh` | 部署脚本 (在目标机器运行) |
| `build.sh` | 打包脚本 |
| `config.sh` | 配置文件 (可自定义参数) |
| `nginx.zip` | Nginx 配置文件 (可选) |
| `.gitlab-ci.yml` | GitLab CI 配置 |

## 配置说明

编辑 `config.sh` 可自定义以下参数：

```bash
# SSH 端口
SSH_PORT=8822

# ARCS 版本
ARCS_VERSION="0.31.0-rc.89+6d5db69"

# CppMicroServices 下载链接
CPP_MICROSERVICES_URL="https://download.aubo-robotics.cn/sdk/CppMicroServices-4.0.0-Linux_x86_64+9f641ed.zip"

# GRUB 内核参数
GRUB_PARAMS_PARSEC="parsec.mac=0 parsec.execstack=1"
GRUB_PARAMS_ISOLCPUS="kthread_cpus=0,2,3 irqaffinity=0,2,3 isolcpus=1"

# Web 服务端口
WEB_PORT=8090

# ISO 挂载配置
ISO_MOUNT_POINT="/media/cdrom"
ISO_PATH=""  # 设置为 ISO 文件路径，如 "/mnt/usb/astra.iso"
```

## 使用方式

### 方式一：本地部署

1. 打包安装包
```bash
bash build.sh
```

2. 将生成的 `aubo-setup-patch-*.zip` 上传到目标机器

3. 解压并运行部署
```bash
unzip -o aubo-setup-patch-*.zip
sudo bash deploy.sh
```

### 方式二：GitLab CI 部署

1. 配置 GitLab CI/CD 变量：
   - `DEPLOY_HOST` - 目标服务器地址
   - `DEPLOY_USER` - SSH 用户名

2. 推送到 main 分支触发构建和部署

### ISO 镜像源配置

如需使用 ISO 文件作为安装源，在 `config.sh` 中设置：

```bash
ISO_PATH="/mnt/usb/astra.iso"
```

如需使用 CDROM，保持 `ISO_PATH=""` 即可。

## 安装流程

脚本自动执行以下步骤：

1. 启用网络 apt 源
2. 挂载 CDROM/ISO
3. 更新并升级系统
4. 安装依赖包
5. 配置 SSH 端口
6. 安装触屏驱动
7. 配置 GRUB 内核参数
8. 下载安装 ARCS
9. 安装 CppMicroServices
10. 配置 ARCS 服务
11. 配置 Web 界面
12. 配置 Nginx
13. 安装实时测试工具
14. 自动重启系统

## 注意事项

- 脚本需要 root 权限运行
- 安装过程中会自动重启系统
- 首次运行建议在测试环境验证

## 日志

安装日志保存在：`/var/log/aubo_setup_*.log`
