在Raspberry Pi部署compass-CI

摘要

暑期参与了在树莓派上部署compass-CI的开源项目,该项目可被拆解为4个子任务,分别是:

-  测试机pxe启动

服务器端部署

-  串口日志收集

-  power reset

目前已经完成了第一个子任务,现在准备完成第二个子任务:compass-CI的服务器端部署

本文主要描述在服务前端部署过程中遇到的问题以及解决方案。

部署结果:

在基于raspbian的树莓派上部署compass-CI失败!

原因是运行compass-ci/ sparrow /4-docker/buildall脚本构建容器的过程中遇到类似于下图红框中的问题,求助未果卡壳。

为了完成中期报告(留一点时间整理文档)不得不停止在运行raspbian的树莓派上的部署compass-CI的工作,既:宣告第二步“服务器端部署”失败。

注意:本文档只针对使用raspbian lit 系统的树莓。

  1. Compass-CI服务端部署文档阅读

Compass-CI是一个开源项目,可以通过compass-CI/sparrow/install-tiny进行部署,首先阅读其内容针对树莓派的特点进行针对性的修改。

其内容为:

#!/bin/bash

# SPDX-License-Identifier: MulanPSL-2.0+

# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.

# For your reference only.

# It's better to run the below scripts step by step.



[[ $CCI_SRC ]] || export CCI_SRC=$(cd $(dirname $(realpath $0)); git rev-parse --sho$

cd $CCI_SRC/sparrow || exit



. 0-package/read-config

0-package/install

1-storage/tiny

1-storage/permission

2-network/br0

2-network/br1

2-network/iptables

2-network/nfs

2-network/cifs

3-code/git

3-code/dev-env

. /etc/profile.d/compass.sh

4-docker/buildall

5-build/ipxe

5-build/os-ready

5-build/register-account

7-systemd/systemd-setup

8-testbox/multi-docker

8-testbox/multi-qemu
    1. 缺少docker和ruby

如果你使用的是Raspberry Pi OS Lite(32-bit)版本的系统,直接运行compass-ci/ sparrow/install-tiny脚本会遇到:缺少docker和rwby环境的问题。

导致这个问题的原因是:

在0-package / install脚本中:

#!/bin/bash

# SPDX-License-Identifier: MulanPSL-2.0+

# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.



source /etc/os-release



. $(dirname ${BASH_SOURCE[0]})/os/${ID}



. $(dirname ${BASH_SOURCE[0]})/common

其中的${ID}在树莓派中的raspbian系统下是:raspbian

也就是说,在使用raspbian的树莓派上,这个脚本会去到0-package / os/文件夹下运行名为raspbian的脚本,而在原始的compass-CI的代码中,这个脚本不存在。

0-package / os/中默认的文件有:

 

图 1 XXX/os/文件夹下的默认文件

这意味着,后续的代码会在依赖没有装全的情况下运行!输出了大量异常报错。

从程序正确性的角度考虑,既然在/os/目录下没有找到部署所必须的系统依赖表,程序应该直接报错并终止运行,而不是让后面的代码继续运行,给出大量没有意义又具有迷惑性的输出结果。

因此文末后续的内容都主要是逐个运行脚本,确定到底缺少那些依赖,并在0-package /os/文件下编写raspbian脚本为运行raspbian的树莓派补全缺少的依赖。

由于直接运行compass-ci/ sparrow/install-tiny导致的错误大部分与docker和ruby有关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
51232是一种Raspberry Pi开发板型号,它可以与Simulink驱动程序块一起使用。Simulink是一种用于模拟、建模和代码生成的工具,而Raspberry Pi是一种可以运行Simulink模型的单板计算机。 Simulink驱动程序块是用于将Raspberry Pi的功能与Simulink模型集成的工具。它允许用户通过Simulink模型来控制和读取Raspberry Pi上的各种传感器和执行器。用户可以通过简单地将各种驱动程序块添加到Simulink模型中来实现与Raspberry Pi的通信和控制。 ADC表示模拟转数字转换器,DAC表示数字转模拟转换器,PWM表示脉冲宽度调制。Raspberry Pi上的ADC和DAC驱动程序块可以实现数据的模拟输入和输出。用户可以将传感器的模拟信号通过ADC转换为数字信号,并在Simulink模型中进行处理。类似地,用户可以使用DAC将模拟输出信号从Simulink模型发送到执行器。 PWM驱动程序块可以通过产生脉冲宽度调制信号来控制Raspberry Pi上的PWM输出引脚。PWM信号可以用于控制各种执行器,如电机和舵机。用户可以在Simulink模型中调整PWM信号的参数,并通过Raspberry Pi的PWM引脚将其输出。 总而言之,51232 Raspberry Pi Simulink驱动程序块可以实现与Simulink模型的综合,通过ADC和DAC驱动程序块进行模拟输入和输出,通过PWM驱动程序块控制PWM输出。这使得用户能够利用Simulink的功能来控制和监测Raspberry Pi上的各种设备和传感器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值