1.这一段可参考,也可以直接跳过。vmware虚拟机走主机蓝色猫猫头,端口7890,混合,允许LAN连接。

进虚拟机安装 proxychains。

sudo apt update
sudo apt install proxychains -y

用nano修改添加全局代理环境变量,编辑 /etc/environment 文件:

sudo nano /etc/environment

把里面的地址和端口号改成主机电脑ip地址和蓝色猫猫头软件的端口号。

http_proxy="http://192.168.0.165:7890"
https_proxy="http://192.168.0.165:7890"
ftp_proxy="http://192.168.0.165:7890"
no_proxy="localhost,127.0.0.1"

环境变量立即执行。

source /etc/environment

2. 虚拟机安装docker

sudo apt update
sudo apt upgrade -y
sudo apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

添加docker公钥

sudo curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/docker-ce.gpg > /dev/null

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#加了权限,这个是官方源,不然的话换成下面的镜像源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#清华镜像源

安装docker ce和docker compose插件

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

然后使用docker version查询是否安装成功。

3.sdk编译

参考嘉楠教程K230 linux SDK使用指南 — K230 Linux SDK https://developer.canaan-creative.com/k230_linux/dev/zh/01_software/K230_linux_SDK%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.html#id10

 根据教程一步步,第一步是下载k230_linux_sdk的包,我直接github下载解压。

git clone git@github.com:kendryte/k230_linux_sdk.git

# git clone git@gitee.com:kendryte/k230_linux_sdk.git

cd k230_linux_sdk

下载Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V2.10.1-20240712.tar.gz 文件,解压缩到/opt/toolchain目录。 https://www.xrvm.cn/community/download?id=4333581795569242112 https://www.xrvm.cn/community/download?id=4333581795569242112安装依赖,我的系统是ubuntu 24.04

sudo apt-get install -y wget git sed make binutils build-essential diffutils gcc g++ bash patch gzip bzip2 perl tar cpio unzip rsync file bc findutils libncurses-dev python3 libssl-dev gawk cmake bison flex bash-completion parted curl

在安装好要求的文件之后,进入linux-sdk-dev文件夹直接起docker。

sudo docker build -f tools/docker/Dockerfile -t k230_used tools/docker 
#-t 这里镜像命名可以自己改

这里出现了超时。

把dockerfile改成24.04了,依旧超时。

应该是网络问题,所以直接选择配镜像源了。

sudo nano /etc/docker/daemon.json

进入之后加入如下配置(这个是我常用的一长条镜像源)

{
    "registry-mirrors": [
    "https://docker.hpcloud.cloud",
    "https://docker.m.daocloud.io",
    "https://docker.unsee.tech",
    "https://docker.1panel.live",
    "http://mirrors.ustc.edu.cn",
    "https://docker.chenby.cn",
    "http://mirror.azure.cn",
    "https://dockerpull.org",
    "https://dockerhub.icu",
    "https://hub.rat.dev",
    "https://proxy.1panel.live",
    "https://docker.1panel.top",
    "https://docker.m.daocloud.io",
    "https://docker.1ms.run",
    "https://docker.ketches.cn"
  ]
}

重启docker。

sudo systemctl daemon-reload
sudo systemctl restart docker

重新起docker。

sudo docker build -f tools/docker/Dockerfile -t k230_used tools/docker 
#-t 这里镜像命名可以自己改

结果我发现我这里还是不行....一直是ubuntu镜像拉不下来,所以我直接先把镜像拉到本地再起。

docker pull ubuntu:22.04  
# 观察是否成功,我这里是拉取成功了

sudo docker build -f tools/docker/Dockerfile -t k230_used tools/docker 
#再重新本地起docker -t 这里镜像命名可以自己改

#起成功后查询本地镜像
sudo docker images

这样就算成功了。

然后进入这个容器。

sudo docker run -it -h k230 -e uid=$(id -u) -e gid=$(id -g) -e user=${USER} -v ${HOME}:${HOME} -w $(pwd) k230_used:latest
-it:以交互模式运行容器,并分配一个伪终端。

-h k230:设置容器的主机名为 k230。

-e uid=$(id -u):将当前用户的 UID 作为环境变量传递到容器中。

-e gid=$(id -g):将当前用户的 GID 作为环境变量传递到容器中。

-e user=${USER}:将当前用户名作为环境变量传递到容器中。

-v ${HOME}:${HOME}:将宿主机的 HOME 目录挂载到容器的 HOME 目录。

-w $(pwd):设置容器的工作目录为当前宿主机的目录。

-k230_used:指定要运行的镜像。

补:docker常用指令。

sudo docker images #查询docker的image
sudo docker ps     #查询docker正在运行的容器 
sudo docker ps -a  #查询所有的docker容器

然后就是在容器里运行编译。

make CONF=k230d_canmv_defconfig #build k230d canmv image (kernel and rootfs both 64bit)
#make CONF=k230_canmv_01studio_defconfig # build 01studio canmv board
# make CONF=k230_canmv_defconfig # build k230 canmv image
# make CONF=k230d_canmv_ilp32_defconfig  #build k230d canmv 32bit rootfs;

编译输出文件

output/k230d_canmv_defconfig/images/sysimage-sdcard.img.gz

k230d_canmv_defconfig是个例子,需要替换为正确的配置文件,比如替换为k230_canmv_defconfig

sdk支持的所有配置文件见buildroot-overlay/configs目录

make CONF=k230d_canmv_defconfig 含义是使用k230d_canmv_defconfig配置文件

从嘉楠官网下载的就是这个文件,烧录前需要解压缩,烧录方法见后面

k230d_canmv_defconfig 是个例子,请根据编译配置文件替换为正确名字

后续

 

 

 

 

 

 

 

 

 

 

 

 

 

     

    Logo

    智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

    更多推荐