当前位置: 首页 > news >正文

Docker搭建RK3568开发环境

推荐:Ubuntu 20.04 版本

Docker加速

# 编辑 Docker 配置文件
$ sudo vim /etc/docker/daemon.json# 加入以下配置项
{"registry-mirrors": ["https://dockerproxy.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com"]
}# 重启docker
$ sudo service docker restart

Docker容器创建

# 拉取Ubuntu镜像
docker pull ubuntu:20.04# 关联源码目录并启动Docker,挂载使用绝对路径
cd ~/Source/04-RK3568/02-Projects/SDK_RK3568_Linux_ATK
sudo docker run -it  -v ${PWD}:${PWD} --name Ubuntu20_RK3568 ubuntu:20.04# 环境依赖
apt-get update
apt-get install -y curl python2.7 python-pyelftools git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler python3-pip libncurses-dev python3-pyelftools vim mtd-utils# Docker 补充
apt install -y bc# 检出
cd /home/gaoyang3513/Source/04-RK3568/02-Projects/SDK_RK3568_Linux_ATK
.repo/repo/repo sync -l -j10

Python版本切换

# 添加
update-alternatives --install /usr/bin/python python /usr/bin/python2 100
update-alternatives --install /usr/bin/python python /usr/bin/python3 150# 切换
sudo update-alternatives --config python

Repo工具

mkdir ~/bin
export PATH=~/bin:$PATH# 下载
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
chmod a+x ~/bin/repo

Git

git config --global user.name "gaoyang3513"
git config --global user.email "gaoyang3513@163.com"git config --global core.editor vim

开发

编译

./build.sh lunch# 目标
3. BoardConfig-rk3568-atk-evb1-ddr4-v10.mk

在编译根文件系统的过程中会通过网络下载很多的第三方库文件;首先,下载过程会占用很多时间导致编译时间拉长;其次,如果用户的网络环境不稳定或者第三方库文件的下载源发生变更,很容易导致下载失败,进而导致根文件系统编译出错;所以,为了加快根文件系统的编译过程、也为了降低编译根文件系统时出现问题的概率, 我们可以预先把编译根文件系统所需的第三方库文件拷贝到 SDK 中。

在容器外执行

sudo tar -xzf ../../01-Resource/Alientek_RK3568/Disk_B/02-ATK-DLRK3568_SDK/linux_sdk/dl.tgz -C ./buildroot/

编译

./build.sh all

问题

技巧

# 新开
sudo docker exec -it Ubuntu20_RK3568 /bin/bash
http://www.lryc.cn/news/166481.html

相关文章:

  • 【GAMES202】Real-Time Ray Tracing 1—实时光线追踪1
  • Linux修复损坏的文件系统
  • 三分钟学会一个新技能——使用Java操作Redis
  • Java学习笔记------内部类
  • 面试题:问js的forEach和map的区别
  • Hadoop设置固定ip无效的解决办法
  • 论文解读 | 用于3D对象检测的PV-RCNN网络原创
  • kali安装volatility及插件mimikatz
  • 什么是阻塞队列?如何使⽤阻塞队列来实现⽣产者-消费者模型?哪个阻塞队列最常用?
  • Bean拷贝组件(注解驱动)方案设计与落地
  • hive的建表语句
  • 提升效率:PostgreSQL准确且快速的数据对比方法
  • 【轻NAS】Windows搭建可道云私有云盘,并内网穿透公网访问
  • 计算机网络 第一章:概述
  • centos7 firewalld ip转发设置、安装docker-compose出现错误、docker-compose部署Yapi
  • Cglib代理和JDK代理原理的区别
  • 论文阅读-A General Language for Modeling Social Media Account Behavior
  • Python中的异常处理4-3
  • Swift学习内容精选(一)
  • Marin说PCB之封装设计系列---(02)--异形焊盘的封装设计总结
  • SpringBoot使用AOP详解
  • 【Qt】QGroundControl入门1:介绍
  • 第36章_瑞萨MCU零基础入门系列教程之步进电机控制实验
  • 198.打家劫舍,213.打家劫舍II,337.打家劫舍III
  • msvcp140.dll是什么东西,如何解决msvcp140.dll丢失的问题的方法分享
  • 音视频 SDL vs2017配置
  • 前端面试要点
  • shell字符串处理之字符串比较
  • 怎么获取别人店铺的商品呢?
  • 【数据结构】二叉树的链式结构