diff --git a/.gitignore b/.gitignore index 945e094f..dd5e8aa1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ buildroot-*/ output/ buildroot-* -.DS_Store \ No newline at end of file +.DS_Store +dl/ diff --git a/br-ext-chip-canaan/configs/k230_canmv_01studio_defconfig b/br-ext-chip-canaan/configs/k230_canmv_01studio_defconfig new file mode 100644 index 00000000..8b29582c --- /dev/null +++ b/br-ext-chip-canaan/configs/k230_canmv_01studio_defconfig @@ -0,0 +1,43 @@ +BR2_riscv=y +BR2_RISCV_ISA_RVC=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +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 diff --git a/general/package/Config.in b/general/package/Config.in index 1703eaeb..15870ee8 100644 --- a/general/package/Config.in +++ b/general/package/Config.in @@ -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" diff --git a/general/package/canaan_k230_sdk/Config.in b/general/package/canaan_k230_sdk/Config.in new file mode 100644 index 00000000..bb21458a --- /dev/null +++ b/general/package/canaan_k230_sdk/Config.in @@ -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 diff --git a/general/package/canaan_k230_sdk/canaan_k230_post-image.sh b/general/package/canaan_k230_sdk/canaan_k230_post-image.sh new file mode 100755 index 00000000..66ec453c --- /dev/null +++ b/general/package/canaan_k230_sdk/canaan_k230_post-image.sh @@ -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 diff --git a/general/package/canaan_k230_sdk/canaan_k230_sdk.mk b/general/package/canaan_k230_sdk/canaan_k230_sdk.mk new file mode 100644 index 00000000..b454a0c5 --- /dev/null +++ b/general/package/canaan_k230_sdk/canaan_k230_sdk.mk @@ -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)) diff --git a/general/package/canaan_k230_sdk/k230_env.env b/general/package/canaan_k230_sdk/k230_env.env new file mode 100644 index 00000000..1fd15347 --- /dev/null +++ b/general/package/canaan_k230_sdk/k230_env.env @@ -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