Skip to content
Open
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
buildroot-*/
output/
buildroot-*
.DS_Store
.DS_Store
dl/
8 changes: 7 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,13 @@ defconfig: prepare
prepare:
@if test ! -e $(TARGET)/buildroot-$(BR_VER); then \
wget -c -q $(BR_LINK)/$(BR_VER).tar.gz -O $(BR_FILE); \
mkdir -p $(TARGET); tar -xf $(BR_FILE) -C $(TARGET); fi
mkdir -p $(TARGET); tar -xf $(BR_FILE) -C $(TARGET); \
if grep "BR2_OPENIPC_SOC_FAMILY=\"k230\"" $(CONFIG) >/dev/null ; then \
$(TARGET)/buildroot-$(BR_VER)/support/scripts/apply-patches.sh -s \
$(TARGET)/buildroot-$(BR_VER)/ \
general/package/canaan_k230_sdk/buildroot_patch/ *.patch; fi; \
fi


help:
@printf "BR-OpenIPC usage:\n \
Expand Down
59 changes: 59 additions & 0 deletions br-ext-chip-canaan/configs/k230_canmv_01studio_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
BR2_riscv=y
BR2_RISCV_ISA_RVC=y
BR2_RISCV_ISA_RVV=y

# Toolchain
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://kendryte-download.canaan-creative.com/k230/downloads/dl/gcc/Xuantie-900-gcc-linux-6.6.0-glibc-x86_64-V3.0.2-20250410.tar.gz"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="riscv64-unknown-linux-gnu"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_6_6=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_TOOLCHAIN_EXTERNAL_FORTRAN=y
BR2_TOOLCHAIN_EXTERNAL_OPENMP=y

# Filesystem
BR2_TARGET_OPTIMIZATION="-mcpu=c908v -Wno-implicit-function-declaration -Wno-incompatible-pointer-types"
BR2_DL_DIR="$(TOPDIR)/../../dl"
BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/package/canaan_k230_sdk/canaan_k230_post-image.sh"



BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="300M"
BR2_PACKAGE_HOST_MOSQUITTO=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
BR2_OPENIPC_SOC_VENDOR="canaan"
BR2_OPENIPC_SOC_MODEL="k230"
BR2_OPENIPC_SOC_FAMILY="k230"






# Packages
BR2_PACKAGE_DROPBEAR_OPENIPC=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_JSONFILTER=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
BR2_PACKAGE_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC_WEBUI=y
#BR2_PACKAGE_MAJESTIC=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
BR2_PACKAGE_MOTORS=y
BR2_PACKAGE_OPUS_OPENIPC=y
#BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
BR2_PACKAGE_CANAAN_K230_SDK=y
1 change: 1 addition & 0 deletions general/package/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ source "$BR2_EXTERNAL_GENERAL_PATH/package/xiongmai-osdrv-xm530/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/xmdp/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/yaml-cli/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/zerotier-one/Config.in"
source "$BR2_EXTERNAL_GENERAL_PATH/package/canaan_k230_sdk/Config.in"

# Legacy
source "$BR2_EXTERNAL_GENERAL_PATH/package/legacy/ambarella-osdrv-s3l/Config.in"
Expand Down
25 changes: 25 additions & 0 deletions general/package/canaan_k230_sdk/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
menuconfig BR2_PACKAGE_CANAAN_K230_SDK
bool "canaan k230 sdk"
default n
help
canaan k230 SoCs SDK

https://github.com/kendryte/k230_linux_sdk/

if BR2_PACKAGE_CANAAN_K230_SDK
config BR2_PACKAGE_CANAAN_K230_SDK_BUILD_FROM_SRC
bool "k230 sdk build from source"
default n
help
canaan k230 SoCs SDK

https://github.com/kendryte/k230_linux_sdk/

config BR2_PACKAGE_CANAAN_K230_SDK_CONF
string "k230 sdk config"
default "k230_canmv_01studio_defconfig"
help
canaan k230 SoCs SDK

https://github.com/kendryte/k230_linux_sdk/
endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
From 99d0e3e9da9aaf4c4cbf6a4b10d2ad558e65ed61 Mon Sep 17 00:00:00 2001
From: wangjianxin <[email protected]>
Date: Fri, 30 May 2025 11:53:35 +0800
Subject: [PATCH] support gcc 14

---
toolchain/Config.in | 5 +++++
.../toolchain-external-custom/Config.in.options | 4 ++++
2 files changed, 9 insertions(+)
mode change 100644 => 100755 toolchain/Config.in
mode change 100644 => 100755 toolchain/toolchain-external/toolchain-external-custom/Config.in.options

diff --git a/toolchain/Config.in b/toolchain/Config.in
old mode 100644
new mode 100755
index bd4f80bd..d0483628
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -792,10 +792,15 @@ config BR2_TOOLCHAIN_GCC_AT_LEAST_13
bool
select BR2_TOOLCHAIN_GCC_AT_LEAST_12

+config BR2_TOOLCHAIN_GCC_AT_LEAST_14
+ bool
+ select BR2_TOOLCHAIN_GCC_AT_LEAST_13
+
# This order guarantees that the highest version is set, as kconfig
# stops affecting a value on the first matching default.
config BR2_TOOLCHAIN_GCC_AT_LEAST
string
+ default "14" if BR2_TOOLCHAIN_GCC_AT_LEAST_14
default "13" if BR2_TOOLCHAIN_GCC_AT_LEAST_13
default "12" if BR2_TOOLCHAIN_GCC_AT_LEAST_12
default "11" if BR2_TOOLCHAIN_GCC_AT_LEAST_11
diff --git a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
old mode 100644
new mode 100755
index 5554d567..838ac79a
--- a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
+++ b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
@@ -46,6 +46,10 @@ choice
Set to the gcc version that is used by your external
toolchain.

+config BR2_TOOLCHAIN_EXTERNAL_GCC_14
+ bool "14.x"
+ select BR2_TOOLCHAIN_GCC_AT_LEAST_14
+
config BR2_TOOLCHAIN_EXTERNAL_GCC_13
bool "13.x"
select BR2_TOOLCHAIN_GCC_AT_LEAST_13
--
2.46.0

31 changes: 31 additions & 0 deletions general/package/canaan_k230_sdk/canaan_k230_post-image.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash
DATE=$(date +%y.%m.%d)
FILE=${TARGET_DIR}/usr/lib/os-release

echo OPENIPC_VERSION=${DATE:0:1}.${DATE:1} >> ${FILE}
date +GITHUB_VERSION="\"${GIT_BRANCH-local}+${GIT_HASH-build}, %Y-%m-%d"\" >> ${FILE}
echo BUILD_OPTION=${OPENIPC_VARIANT} >> ${FILE}
date +TIME_STAMP=%s >> ${FILE}


k230_openipc_img_replace_rootfs()
{
cd ${BINARIES_DIR}
ext4_pos="$(fdisk -l sysimage-sdcard.img | grep sysimage-sdcard.img2 | cut -d ' ' -f2)"
dd if=rootfs.ext4 of=sysimage-sdcard.img seek=${ext4_pos} conv=notrunc
gzip -k -f sysimage-sdcard.img
chmod a+r sysimage-sdcard.img.gz
cd -
echo -e "k230 image is \033[31m ${BINARIES_DIR}/sysimage-sdcard.img.gz \033[0m"
}
k230_openipc_img_env_replace()
{
cd ${BINARIES_DIR}
mkenvimage -s 0x10000 -o env.env ${BR2_EXTERNAL}/package/canaan_k230_sdk/k230_env.env

dd if=env.env of=sysimage-sdcard.img seek=3840 conv=notrunc
cd -;
}

k230_openipc_img_env_replace
k230_openipc_img_replace_rootfs
33 changes: 33 additions & 0 deletions general/package/canaan_k230_sdk/canaan_k230_sdk.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
################################################################################
#
# canaan k230 sdk
#
################################################################################
CANAAN_K230_SDK_SITE =
CANAAN_K230_SDK_SOURCE =

k230_download_url := $(shell \
if curl --output /dev/null --silent --head --fail https://ai.b-bug.org/k230/downloads/dl/openipc ;then \
echo "https://ai.b-bug.org/k230/downloads/dl/openipc"; \
else \
echo "https://kendryte-download.canaan-creative.com/k230/dl/openipc";\
fi ; )


CANAAN_K230_SDK_EXTRA_DOWNLOADS := $(k230_download_url)/$(call qstrip ,$(BR2_PACKAGE_CANAAN_K230_SDK_CONF))/sysimage-sdcard.img.gz
CANAAN_K230_SDK_EXTRA_DOWNLOADS += $(k230_download_url)/$(call qstrip ,$(BR2_PACKAGE_CANAAN_K230_SDK_CONF))/rootfs.tar.xz

define CANAAN_K230_SDK_INSTALL_TARGET_CMDS
tar -xf $(CANAAN_K230_SDK_DL_DIR)/rootfs.tar.xz -C $(TARGET_DIR)
rm -rf $(TARGET_DIR)/var/run;
rm -rf $(TARGET_DIR)/etc/init.d/S30dbus;
rm -rf $(TARGET_DIR)/etc/init.d/S40bluetoothd;
rm -rf $(TARGET_DIR)/etc/init.d/S48sntp;
rm -rf $(TARGET_DIR)/etc/init.d/S49ntp;
rm -rf $(TARGET_DIR)/etc/init.d/S50crond;
rm -rf $(TARGET_DIR)/etc/init.d/S50sshd;
rm -rf $(TARGET_DIR)/etc/init.d/S50telnet;
gunzip -f -k -c $(CANAAN_K230_SDK_DL_DIR)/sysimage-sdcard.img.gz > $(BINARIES_DIR)/sysimage-sdcard.img
endef

$(eval $(generic-package))
34 changes: 34 additions & 0 deletions general/package/canaan_k230_sdk/k230_env.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
arch=riscv
autoload=0
baudrate=115200
board=k230
board_name=k230
bootcmd=run blinux;
bootcmd_baremetal= mmc dev ${mmc_boot_dev_num}; mmc read 0 0x5000 0xa000; boot_baremetal 1 0 1400000;
bootcmd_usb=run usb_load; bootm $kernel_addr - $dtb_addr
bootdelay=3
console_port=console=ttyS1,115200
cpu=k230
dtb_addr=0xa000000
fdt_high=0xa100000
fdtcontroladdr=80293880
gatewayip=10.99.105.254
ipaddr=10.99.105.44
kernel_addr=0xc100000
loadaddr=0xc000000
mmc_boot_dev_num=1
netmask=255.255.255.0
ramdisk_addr=0xa100000
serverip=10.10.1.94
vendor=canaan
quick_boot=false
k=Image
kilp32=Image_ilp32
nuttex=nuttx-7000000-uart2.bin
blinux=ext4load mmc ${mmc_boot_dev_num}:1 0x3000000 /fw_jump_add_uboot_head.bin && ext4load mmc ${mmc_boot_dev_num}:1 0x200000 /${k} && ext4load mmc ${mmc_boot_dev_num}:1 0x2200000 /k.dtb && bootm 0x3000000 - 0x2200000;
blinuxilp32= setenv k Image_ilp32 && run blinux;
bnuttx=ext4load mmc ${mmc_boot_dev_num}:1 0x7000000 /${nuttex} && boot_baremetal 0 0x${fileaddr} 0x${filesize};
ethaddr=22:22:22:22:22:22
wlandev=rtl8189fs-generic
wlanssid=H3C_wjx
wlanpass=123456789