嵌入式开发环境问题-docker容器开发RV1126

嵌入式开发环境问题-docker容器开发RV1126 V 2023-11-30 11:48:53 970

文章目录

前沿

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。嵌入式开发环境中,对于linux系统依赖关系,本方案解决在不同系统中 使用docker 安装相对应所需容器,彻底解决linux系统环境干扰问题。

1. docker 拉取ubuntu20.04 镜像

1.1 拉取ubuntu 镜像文件
docker pull ubuntu:20.04
1.2 查看环境中存在的系统镜像
docker images

2. 根据镜像制作docker 容器

2.1 制作容器命令
docker run --name=ubuntu_rk -it -v /ihoment/youjie/20_docker:/share ubuntu:20.04 /bin/bash

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
—name=”nginx-lb”: 为容器指定一个名称;
—dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
—dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=”ritchie”: 设置环境变量;
—env-file=[]: 从指定文件读入环境变量;
—cpuset=”0-2” or —cpuset=”0,1,2”: 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
—net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
—link=[]: 添加链接到另一个容器;
—expose=[]: 开放一个端口或一组端口;
—volume , -v: 绑定一个卷

退出容器

exit

查看创建容器

2.2 权限配置

容器中没有sudo 命令
apt-get 安装 需要sudo
使用root 用户进入容器

docker start ubuntu_rk
docker exec -it ubuntu_rk /bin/bash
apt-get update
apt-get install sudo
apt-get install wget

依次安装sudo 和wget
创建用户

useradd -d /home/youjie youjie

设置密码

passwd youjie

创建主目录

mkdir -p /home/youjie
chown youjie:youjie /home/youjie

添加sudo 权限

usermod -aG sudo youjie

退出root用户

exit

使用普通用户进入

 docker exec -it --user youjie ubuntu_rk /bin/bash

docker 中用户管理和宿主机管理有很多文章,暂不深入了解。

2.3 ubuntu 环境安装

2.3.1 更新源
备份源

sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak

更新腾讯源

sudo wget -O /etc/apt/sources.list http://mirrors.cloud.tencent.com/repo/ubuntu20_sources.list

更新apt

sudo apt-get clean all && sudo apt-get update

2.3.2 对比文件权限
宿主机和docker环境 用户名一致。没有文件权限问题。

3 RV1126 开发环境

3.1 apt安装
sudo apt-get install lib32gcc-7-dev g++-7 libstdc++-7-dev git-core gitk git-gui gcc-arm-linux-gnueabihf fakeroot cmake flex bison liblz4-tool libtool keychain u-boot-tools device-tree-compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev autoconf libsigsegv2 m4 intltool libdrm-dev curl sed make binutils build-essential bash patch gzip gawk bzip2 perl tar cpio python unzip rsync file bc libncurses5 libglib2.0-dev libgtk2.0-dev libglade2-dev cvs rsync openssh-client subversion asciidoc w3m dblatex graphviz libssl-dev expect fakeroot cmake flex bison liblz4-tool libssl-dev expect fakeroot cmake flex bison liblz4-tool time
3.2 源码下载

安装repo

git clone http://mirrors.ustc.edu.cn/aosp/git-repo.git ~/.bin/repo
echo "export PATH=~/.bin/repo:$PATH" >> ~/.bashrc
source ~/.bashrc

安装conda python 环境

bash Anaconda3-2020.07-Linux-x86_64.sh
source ~/.bashrc
conda config --set auto_activate_base false
source ~/.bashrc

python 环境

echo "export PATH=~/anaconda3/bin:$PATH" >> ~/.bashrc

下载源码

repo init --no-clone-bundle --repo-url https://gitlab.com/firefly-linux/git-repo.git -u https://gitlab.com/firefly-linux/manifests.git -b master -m rv1126_rv1109_linux_release.xml

同步代码

repo sync -c
# 编译 CORE-1126-JD4 固件 适配的屏幕为 DM-M10R800 V2 屏幕模组
./build.sh device/rockchip/rv1126_rv1109/aio-rv1126-jd4-BE-45.mk
./build.sh
3.3 兼容性问题

3.3.1 gwak 版本过高

sudo apt-get remove gwak 删除系统默认

https://mirrors.ustc.edu.cn/ubuntu/pool/main/g/gawk/ 下载

https://mirrors.ustc.edu.cn/ubuntu/pool/main/g/gawk/gawk_4.1.3%2Bdfsg.orig.tar.xz

tar -xvf gawk_4.1.3+dfsg.orig.tar.xz
cd gawk-4.1.3/
mkdir build && cd build
../configure
make
sudo make install
source ~/.bashrc
gawk -V # 版本4.1

3.3.2 expect 问题
can’t find package Expect while executing “package require Expect” (file “/usr/bin/unbuffer” line 6)问题解决

原因:使用conda时,conda自带的expect覆盖了原有的expect命令,产生了冲突。

解决方式:
重新安装expect命令
conda install -c eumetsat expect
再次使用unbuffer时恢复正常。

4 编译OK,保存容器

进入容器命令

docker exec -it --user youjie ubuntu_rk /bin/bash
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
V
红包 1 1 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
V
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区