最近在做移远AG550Q-CN车规级5G模组开发,需要对固件包做签名操作,SecBoot Docker镜像提供了签名工具运行的所有依赖环境。
镜像下载:
sudo docker pull registry.cn-hangzhou.aliyuncs.com/quectel/ubuntu:secboot_v2
安装Docker:
sudo apt-get install docker.io
启动Docker:(假设签名工具所在目录为~/work/AG550/SecBoot)
docker run -it -v ~/work/AG550/SecBoot:/media --name secboot registry.cn-hangzhou.aliyuncs.com/quectel/ubuntu:secboot_v2
可能出现如下错误:
此时执行docker version,会有如下"Got permission denied"错误:
docker进程使用 Unix Socket 而不是TCP端口。而默认情况下,Unix socket 属于root用户,因此需要 root权限才能访问,处理方法如下:
i. 添加docker用户组
sudogroupadd docker
ii. 检查当前用户是否在用户组,其中XXX是用户名
sudogpasswd -a $XXX docker
iii. 将当前用户添加至docker用户组
sudogpasswd -a $USER docker
iv. 查看是否添加成功
cat /etc/group | grep ^docker
v. 重启docker
service docker restart
vi. 更新docker用户组
newgrp docker
vii. 检查是否更新成功
再次执行docker version,发现不再出现"Got permission denied"权限报错
此时再启动Docker:(假设签名工具所在目录为~/work/AG550/SecBoot)
docker run -it -v ~/SecBoot:/media --name secboot registry.cn-hangzhou.aliyuncs.com/quectel/ubuntu:secboot_v2
已经可正常运行