前言
因工作需要,笔者需要一张算力比较强的板子,偶然看到了黑芝麻A1000开发板,马上入手了一张,进行基础验证。黑芝麻比较保持,虽然笔者入手已经近一月,到写本文档时,仍然未能成功注册官方论坛(论坛只对内部开发,无回复)。无奈笔者只能从第三方获取了点资料(从修改时间上看,基本上是2年前的),进行个人研究。因无人指导,又且资料不全,笔者的笔记仅供参考。
可能是笔者手头的资料不全吧,感觉官方很不友好,必需要使用交叉编译,且开发环境是放置在docker中的容器。
笔者对docker了解不多,第一次安装docker后,发现容器内是ubuntu18.04,无可视化界面,无法联网,无法远程登陆……总之问题不少。为方便自己开发,本次文档记录下,如何搭建一个ubuntu24.04的开发环境
一、获取黑芝麻A1000资源
从笔者获取的文档看,需要到黑芝麻的论坛上去下载对应资料
论坛地址:资料
可惜笔者没有啊(有谁能帮笔者注册个呢)
找到资源中/sdk_docker/document_release/bstos/[BST-OS-SDK-user-guide]BST-OS-SDK用户指南.pdf,这个文档记录了一些基本的东西,在开发前,可以参考下
decker的镜像在/sdk_docker/SDK-Docker-ec-3.2.1.0.zip里面,直接复制到ubuntu24.04中,自己找个地方,并解压就可以。解压完成后,得到a1000b-sdk-ec-3.2.1.0.tar和run_docker.sh两个文件
注:目录不要出现中文或空格
二、配置docker
1.安装docker
笔者直接执行以下命令,在线安装的
sudo apt-get install docker.io
笔者没有使用官方最新的安装包,这也可能是导致连网络都也没法使用的原因
2.修改启动脚本
启动脚本,就是解压出的文件run_docker.sh,使用文本编辑器打开,找到如下部分(基本上是最后面的部分)
修改后如下
解释下,使用-v参数,可以把docker里的系统镜像,与外部系统关联下
-v后面的参数,分两部分。使用冒号:分开
(1)冒号前面的部分,是主机的挂载点
若此挂载点以根目录开始,如/opt/bstos,等效于把主机的此目录,直接挂载到docker里的系统中
若此挂载点是个字符串,如bstos,等效于把docker里的系统中目录,直接挂载到主机的目录上(具体的目录,需要使用命令查询下)
(2)冒号后面的部分,对应docker里的系统中的挂载点
以本次为例,是把docker里的系统目录/opt/bstos,直接挂载到主机的目录上(具体的目录,需要使用命令查询下,下文有操作的)
3.加载并运行docker镜像
进入到解压目录,直接执行如下命令
./run_docker.sh
当然,若文件缺少可执行权限,需要自己添加下
接下来的加载时间会比较长,需要耐心等待下
运行成功后,直接进行docker镜像的shell中,使用的用户是root
关于docker的具体用法,请当你们自己查询
4.查询主机挂载目录
在主机的shell中,输入如下命令查询
sudo docker volume inspect bstos
以本次示例,笔者的输出如下
即把docker里的系统目录/opt/bstos,直接挂载到主机的/var/lib/docker/volumes/bstos/_data目录上
三、复制所需的交叉编译器文件
在主机创建目录/opt/bstos,并添加权限为可读写执行
注:目录一定要和镜像中的一样,否则可能会出错
然后把主机的/var/lib/docker/volumes/bstos/_data目录中的内容,复制到主机目录/opt/bstos中
复制的文件比较多,需要等一会
四、测试交叉编译器
打开主机的shell终端,新建个文本1111.c,输入如下内容
#include <stdio.h>
int main()
{
printf("test 111111\n");
return 0;
}
找到/opt/bstos/3.2.1.0/environment-setup-aarch64-bst-linux,增加可执行权限,并执行
chmod +x /opt/bstos/3.2.1.0/environment-setup-aarch64-bst-linux
source /opt/bstos/3.2.1.0/environment-setup-aarch64-bst-linux
查看执行后是否生效
然后编译下1111.c,执行以下命令
aarch64-bst-linux-gcc 1111.c --sysroot=/opt/bstos/3.2.1.0/sysroots/aarch64-bst-linux
因为未指定输出文件,所以生成a.out,并且在当前主机上无法正常执行
当前都符合预期,下一篇文档,记录下将生成的文件,放板子上运行
后记
从教程上看,笔者没有实际测试交叉编译器,需要后面完善
笔者比较好奇,官方没有提供win下,可以直接使用的交叉编译器吗?感觉应该有,但笔者目前没有得到而已