立创k230linux小核开发记录 --sdk源码及编译
下载Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V2.10.1-20240712.tar.gz 文件,解压缩到/opt/toolchain目录。k230d_canmv_defconfig是个例子,需要替换为正确的配置文件,比如替换为k230_canmv_defconfig。根据教程一步步,第一步是下载k230_linux_sdk的包,我直接github下载解压
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的包,我直接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 是个例子,请根据编译配置文件替换为正确名字
后续
更多推荐



所有评论(0)