This commit is contained in:
Lu Hui
2024-03-07 15:07:21 +08:00
parent 9abea77171
commit 00ac8f88f1
23 changed files with 281 additions and 120 deletions

View File

@@ -464,7 +464,8 @@ CONFIG_USB_F_RNDIS=y
CONFIG_USB_F_MASS_STORAGE=y
CONFIG_USB_F_FS=y
CONFIG_USB_F_UAC1=y
CONFIG_USB_F_UVC=y
# buggy driver, need fix
# CONFIG_USB_F_UVC is not set
CONFIG_USB_CONFIGFS=y
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
@@ -485,11 +486,8 @@ CONFIG_USB_CONFIGFS_F_UAC1=y
# CONFIG_USB_CONFIGFS_F_HID is not set
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_BUG=n
CONFIG_IO_URING=n
CONFIG_ADVISE_SYSCALLS=n
CONFIG_SIGNALFD=n
CONFIG_TIMERFD=n
CONFIG_EPOLL=n
# for licheervnano
CONFIG_FB_SIMPLE=y
@@ -647,6 +645,11 @@ CONFIG_LEDS_TRIGGER_CAMERA=y
CONFIG_LEDS_TRIGGER_ACTIVITY=y
CONFIG_LEDS_TRIGGER_NETDEV=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_V4L2_FLASH_LED_CLASS=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
# these driver may be broken jpeg driver
# CONFIG_FUSE_FS is not set
@@ -668,3 +671,6 @@ CONFIG_LEDS_TRIGGER_PANIC=y
# CONFIG_CGROUP_PIDS=y
# CONFIG_CGROUP_DEVICE=y
# CONFIG_CHECKPOINT_RESTORE=y
CONFIG_EPOLL=y
CONFIG_IO_URING=y
CONFIG_SIGNALFD=y

View File

@@ -1,4 +1,4 @@
<physical_partition type="sd">
<partition label="BOOT" size_in_kb="80960" readonly="false" file="boot.sd"/>
<partition label="ROOTFS" size_in_kb="734003200" readonly="false" file="rootfs.sd" />
<partition label="ROOTFS" size_in_kb="838860800" readonly="false" file="rootfs.sd" />
</physical_partition>

View File

@@ -1,2 +1,11 @@
CONFIG_UDHCPD=y
CONFIG_RX=y
CONFIG_DEFAULT_MODULES_DIR="/mnt/system/ko"
CONFIG_DEPMOD=y
CONFIG_FEATURE_MODPROBE_BLACKLIST=y
CONFIG_RUNSV=y
CONFIG_RUNSVDIR=y
CONFIG_SV=y
CONFIG_SVC=y
CONFIG_SVOK=y
CONFIG_SVLOGD=y

View File

@@ -0,0 +1,7 @@
#!/bin/sh
. /etc/profile
if [ -e /dev/console ]
then
login
fi

View File

@@ -3,11 +3,13 @@
if [ "$1" = "start" ]
then
. /etc/profile
printf "load kernel module: "
depmod -a
ls /etc/modules-load.d/*.conf | sort | while read conf
do
cat $conf | while read line
do
if [ -e /lib/modules ]
if [ -e /mnt/system/ko/modules.dep ]
then
modprobe $line
else
@@ -20,5 +22,6 @@ then
fi
done
done
echo "OK"
exit 0
fi

View File

@@ -3,8 +3,10 @@
if [ "$1" = "start" ]
then
. /etc/profile
printf "mounting filesystem : "
mkdir -p /boot
mount -t vfat /dev/mmcblk0p1 /boot
mount -t configfs configfs /sys/kernel/config
mount -t debugfs debugfs /sys/kernel/debug
echo "OK"
fi

View File

@@ -3,8 +3,28 @@
if [ "$1" = "start" ]
then
. /etc/profile
printf "copy config file from /boot: "
if [ -e /boot/sshd_config ]
then
cp -vf /boot/sshd_config /etc/ssh/sshd_config
fi
if [ -e /boot/input-event-daemon ]
then
chmod 0644 /etc/input-event-daemon.conf
else
chmod 0000 /etc/input-event-daemon.conf
fi
if [ -e /boot/rc.local ]
then
cp -vf /boot/rc.local /etc/rc.local
fi
if [ -e /boot/ttyGS0_handler.sh ]
then
cp /boot/ttyGS0_handler.sh /etc/ttyGS0_handler.sh
fi
if [ -e /boot/console_handler.sh ]
then
cp /boot/ttyGS0_handler.sh /etc/ttyGS0_handler.sh
fi
echo "OK"
fi

View File

@@ -2,50 +2,66 @@
if [ "$1" = "start" ]
then
. /etc/profile
if [ -e /boot/usb.host ]
then
exit 0
fi
. /etc/profile
cd /sys/kernel/config/usb_gadget
mkdir g0
cd g0
if [ -e /boot/usb.idVendor ]
echo "usb mode: host"
echo host > /proc/cviusb/otg_role
elif [ -e /boot/usb.dev ]
then
cat /boot/usb.idVendor > idVendor
else
echo 0123 > idVendor
echo "usb mode: device"
cd /sys/kernel/config/usb_gadget
mkdir g0
cd g0
if [ -e /boot/usb.idVendor ]
then
cat /boot/usb.idVendor > idVendor
else
echo 0123 > idVendor
fi
if [ -e /boot/usb.idProduct ]
then
cat /boot/usb.idProduct > idProduct
else
echo 4567 > idProduct
fi
mkdir strings/0x409
if [ -e /boot/usb.serialnumber ]
then
cat /boot/usb.serialnumber > strings/0x409/serialnumber
else
echo '0123456789ABCDEF' > strings/0x409/serialnumber
fi
if [ -e /boot/usb.manufacturer ]
then
cat /boot/usb.manufacturer > strings/0x409/manufacturer
else
echo 'sipeed' > strings/0x409/manufacturer
fi
if [ -e /boot/usb.product ]
then
cat /boot/usb.product > strings/0x409/product
else
echo 'licheervnano' > strings/0x409/product
fi
mkdir configs/c.1
if [ -e /boot/usb.GS0 ]
then
mkdir functions/acm.GS0
ln -s functions/acm.GS0 configs/c.1/
fi
if [ -e /boot/usb.rndis0 ]
then
mkdir functions/rndis.usb0
ln -s functions/rndis.usb0 configs/c.1/
fi
ls /sys/class/udc/ | cat > UDC
echo device > /proc/cviusb/otg_role
fi
if [ -e /boot/usb.idProduct ]
then
cat /boot/usb.idProduct > idProduct
else
echo 4567 > idProduct
fi
mkdir strings/0x409
if [ -e /boot/usb.serialnumber ]
then
cat /boot/usb.serialnumber > strings/0x409/serialnumber
else
echo '0123456789ABCDEF' > strings/0x409/serialnumber
fi
if [ -e /boot/usb.manufacturer ]
then
cat /boot/usb.manufacturer > strings/0x409/manufacturer
else
echo 'sipeed' > strings/0x409/manufacturer
fi
if [ -e /boot/usb.product ]
then
cat /boot/usb.product > strings/0x409/product
else
echo 'licheervnano' > strings/0x409/product
fi
mkdir functions/acm.GS0
mkdir functions/rndis.usb0
mkdir configs/c.1
ln -s functions/acm.GS0 configs/c.1/
ln -s functions/rndis.usb0 configs/c.1/
ls /sys/class/udc/ | cat > UDC
echo device > /proc/cviusb/otg_role
fi
if [ "$1" = "stop" ]
then
echo '' > /sys/kernel/config/usb_gadget/g0/UDC
echo host > /proc/cviusb/otg_role
fi

View File

@@ -5,6 +5,7 @@ then
. /etc/profile
if [ -e /boot/fb ]
then
echo "framebuffer enable"
insmod /mnt/system/ko/soph_fb.ko
# we need keep node /dev/fb0 open
# graphic layer will disable after node /dev/fb0 is closed

View File

@@ -5,6 +5,7 @@ then
. /etc/profile
if [ -e /boot/gt9xx ]
then
echo "load gt9xx touchscreen driver"
insmod /mnt/system/ko/3rd/gt9xx.ko
fi
exit 0

View File

@@ -13,8 +13,18 @@ hex2mac() {
if [ "${1}" = start ]
then
prefix=licheervnano
if [ -e /boot/hostname.prefix ]
then
prefix=$(cat /boot/hostname.prefix)
fi
old_hostname=$(cat /etc/hostname)
new_hostname=licheervnano-$(sha512sum /sys/class/cvi-base/base_uid | head -c 4)
new_hostname=${prefix}-$(sha512sum /sys/class/cvi-base/base_uid | head -c 4)
if [ -e /boot/hostname ]
then
new_hostname=$(cat /boot/hostname)
fi
if [ "${old_hostname}" != "${new_hostname}" ]
then
@@ -24,7 +34,7 @@ then
fi
echo "hostname: ${new_hostname}"
if [ -e /boot/ethmac ]
if [ -e /boot/eth.mac ]
then
new_ethmac=$(cat /boot/ethmac)
else
@@ -36,14 +46,17 @@ then
ifconfig eth0 up
echo "ethernet mac address: ${new_ethmac}"
if [ -e /boot/rndismac ]
if [ -e /boot/usb.rndis0 ]
then
new_rndismac=$(cat /boot/rndismac)
else
new_rndismac=$(hex2mac 48da356e$(sha512sum /sys/class/cvi-base/base_uid | head -c 4))
if [ -e /boot/usb.rndis0.mac ]
then
new_rndismac=$(cat /boot/usb.rndis0.mac)
else
new_rndismac=$(hex2mac 48da356e$(sha512sum /sys/class/cvi-base/base_uid | head -c 4))
fi
ifconfig usb0 down
ip link set usb0 address ${new_rndismac}
ifconfig usb0 up
echo "rndis mac address: ${new_rndismac}"
fi
ifconfig usb0 down
ip link set usb0 address ${new_rndismac}
ifconfig usb0 up
echo "rndis mac address: ${new_ethmac}"
fi

View File

@@ -3,10 +3,12 @@
. /etc/profile
start() {
printf "start ethernet: "
if [ ! -e /boot/eth.nodhcp ]
then
(udhcpc -i eth0 -t 10 -T 1 -A 5 -b -p /run/udhcpc.eth0.pid) &
fi
echo "OK"
}
stop() {

View File

@@ -15,31 +15,36 @@ gen_udhcpd_conf() {
}
start() {
if [ ! -e /boot/rndis.nodhcpd ]
if [ -e /boot/usb.rndis0 ]
then
if [ -e /boot/rndis.ipv4_prefix ]
printf "start usb rndis: "
if [ ! -e /boot/rndis.nodhcpd ]
then
ipv4_prefix=`cat /boot/rndis.ipv4_prefix`
else
id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2))
if [ "$id2" = "$id3" ]
if [ -e /boot/rndis.ipv4_prefix ]
then
id2=$((id2 + 1))
ipv4_prefix=`cat /boot/rndis.ipv4_prefix`
else
id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2))
if [ "$id2" = "$id3" ]
then
id2=$((id2 + 1))
fi
if [ "$id2" -ge 255 ]
then
id2=253
fi
if [ "$id3" -ge 255 ]
then
id3=254
fi
ipv4_prefix=10.$id2.$id3
fi
if [ "$id2" -ge 255 ]
then
id2=253
fi
if [ "$id3" -ge 255 ]
then
id3=254
fi
ipv4_prefix=10.$id2.$id3
gen_udhcpd_conf usb0 "${ipv4_prefix}" > /etc/udhcpd.usb0.conf
ip addr add $ipv4_prefix.1/24 dev usb0
udhcpd -S /etc/udhcpd.usb0.conf
fi
gen_udhcpd_conf usb0 "${ipv4_prefix}" > /etc/udhcpd.usb0.conf
ip addr add $ipv4_prefix.1/24 dev usb0
udhcpd -S /etc/udhcpd.usb0.conf
echo "ok"
fi
}

View File

@@ -43,6 +43,7 @@ start() {
then
cp /boot/wpa_supplicant.conf /etc/wpa_supplicant.conf
else
echo "wifi mode: sta"
ssid="licheervnano"
pass="licheervnano"
if [ -e /boot/wifi.ssid ]
@@ -71,6 +72,7 @@ start() {
then
cp /boot/hostapd.conf /etc/hostapd.conf
else
echo "wifi mode: ap"
id2=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 2))
id3=$(printf "%d" 0x$(sha512sum /sys/class/cvi-base/base_uid | head -c 4 | tail -c 2))
if [ "$id2" = "$id3" ]
@@ -114,6 +116,7 @@ start() {
udhcpd -S /etc/udhcpd.wlan0.conf
elif [ -e /boot/wifi.mon ]
then
echo "wifi mode: mon"
airmon-ng start wlan0
fi
}

View File

@@ -0,0 +1,9 @@
#!/bin/sh
if [ "${1}" = "start" ]
then
if [ ! -e /boot/rclocal.disable ]
then
sh /etc/rc.local &
fi
fi

View File

@@ -37,8 +37,8 @@ case "$1" in
wlan0_stat="wlan0 not found"
colorfg=$RED
fi
echo "$wlan0_stat" | fbbar 48 $colorfg $colorbg
echo "$wlan0_addr" | fbbar 64 $colorfg $colorbg
echo "$wlan0_stat" | fbbar 64 $colorfg $colorbg
echo "$wlan0_addr" | fbbar 80 $colorfg $colorbg
colorfg=0xFFFFFFFF
eth0_stat=$(ip link show eth0 | head -n 1)
eth0_addr=$(ip link show eth0 | tail -n 1)
@@ -47,8 +47,8 @@ case "$1" in
eth0_stat="eth0 not found"
colorfg=$RED
fi
echo "$eth0_stat" | fbbar 80 $colorfg $colorbg
echo "$eth0_addr" | fbbar 96 $colorfg $colorbg
echo "$eth0_stat" | fbbar 96 $colorfg $colorbg
echo "$eth0_addr" | fbbar 112 $colorfg $colorbg
wlan0_dl_start=$(cat /proc/uptime | awk -F. '{print $1}')
curl --interface wlan0 --max-time ${WLAN0_TIMEOUT} ${url} > /dev/null
if [ $? -ne 0 ]
@@ -68,7 +68,7 @@ case "$1" in
else
colorfg=$GREEN
fi
echo "wlan0 download test: ${wlan0_dl_time}" | fbbar 112 $colorfg $colorbg
echo "wlan0 download test: ${wlan0_dl_time}" | fbbar 128 $colorfg $colorbg
eth0_dl_start=$(cat /proc/uptime | awk -F. '{print $1}')
curl --interface eth0 --max-time ${ETH0_TIMEOUT} ${url} > /dev/null
if [ $? -ne 0 ]
@@ -88,7 +88,7 @@ case "$1" in
else
colorfg=$GREEN
fi
echo "eth0 download test: ${eth0_dl_time}" | fbbar 128 $colorfg $colorbg
echo "eth0 download test: ${eth0_dl_time}" | fbbar 144 $colorfg $colorbg
sleep 0.5
done
) &

View File

@@ -25,7 +25,9 @@ case "$1" in
else
colorfg=$RED
fi
echo "soc temp: $soc_temp | soc id: $(cat /sys/class/cvi-base/base_uid)" | fbbar 32 $colorfg $colorbg
echo "soc temp: $soc_temp" | fbbar 32 $colorfg $colorbg
colorfg=0xFFFFFFFF
echo "soc id: $(cat /sys/class/cvi-base/base_uid)" | fbbar 48 $colorfg $colorbg
sleep 1
done
) &

View File

@@ -1,42 +1,34 @@
# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
#
# Note: BusyBox init doesn't support runlevels. The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use
# sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id == tty to run on, or empty for /dev/console
# runlevels == ignored
# action == one of sysinit, respawn, askfirst, wait, and once
# process == program to run
# This inittab is a basic inittab sample for sysvinit, which mimics
# Buildroot's default inittab for BusyBox.
id:3:initdefault:
# Startup the system
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,rw /
::sysinit:/bin/mkdir -p /dev/pts /dev/shm
::sysinit:/bin/mount -a
::sysinit:/bin/mkdir -p /run/lock/subsys
::sysinit:/sbin/swapon -a
null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/etc/init.d/rcS
si0::sysinit:/bin/mount -t proc proc /proc
si1::sysinit:/bin/mount -o remount,rw /
si2::sysinit:/bin/mkdir -p /dev/pts /dev/shm
si3::sysinit:/bin/mount -a
si4::sysinit:/bin/mkdir -p /run/lock/subsys
si5::sysinit:/sbin/swapon -a
si6::sysinit:/bin/ln -sf /proc/self/fd /dev/fd 2>/dev/null
si7::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin 2>/dev/null
si8::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout 2>/dev/null
si9::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr 2>/dev/null
si10::sysinit:/bin/hostname -F /etc/hostname
rcS:12345:wait:/etc/init.d/rcS
# Put a getty on the serial port
console::askfirst:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL
ttyGS0::askfirst:/sbin/getty -L ttyGS0 0 vt100
sole::respawn:/sbin/getty -L console 0 vt100 -l /etc/console_handler.sh
acm::respawn:/sbin/getty -L ttyGS0 0 vt100 -l /etc/ttyGS0_handler.sh
# Stuff to do for the 3-finger salute
#::ctrlaltdel:/sbin/reboot
#ca::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
shd0:06:wait:/etc/init.d/rcK
shd1:06:wait:/sbin/swapoff -a
shd2:06:wait:/bin/umount -a -r
# The usual halt or reboot actions
hlt0:0:wait:/sbin/halt -dhp
reb0:6:wait:/sbin/reboot

View File

@@ -0,0 +1 @@
export PATH=/maixapp/apps/app_store/app_store:$PATH

View File

@@ -0,0 +1 @@
export PATH=/mnt/system/usr/bin:$PATH

View File

@@ -0,0 +1,8 @@
#!/bin/sh
echo "HELLO WORLD"
if [ -e /boot/maxicam ]
then
/maixapp/apps/launcher/launcher &
fi

View File

@@ -0,0 +1,7 @@
#!/bin/sh
. /etc/profile
if [ -e /dev/ttyGS0 ]
then
login
fi

View File

@@ -18,6 +18,7 @@ BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_TOOLCHAIN_EXTERNAL_OPENMP=y
# BR2_PACKAGE_HOST_GDB is not set
BR2_OPTIMIZE_2=y
BR2_TARGET_LDFLAGS="-mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d"
BR2_CCACHE=y
BR2_REPRODUCIBLE=y
@@ -31,7 +32,7 @@ BR2_PACKAGE_AIC8800_SDIO_FIRMWARE=y
BR2_PACKAGE_CVITEK_RISCV64_MUSL_SYSROOT=y
BR2_INIT_BUSYBOX=y
BR2_INIT_SYSV=y
BR2_ROOTFS_MERGED_USR=y
BR2_ENABLE_LOCALE_WHITELIST="C en_US en_US.utf8"
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
@@ -260,10 +261,62 @@ BR2_PACKAGE_PPPD=y
BR2_PACKAGE_NFTABLES=y
BR2_PACKAGE_IPTABLES=y
BR2_PACKAGE_IPTABLES_NFTABLES=y
BR2_PACKAGE_PYTHON_BSDIFF4=y
BR2_PACKAGE_PYTHON_BEAUTIFULSOUP4=y
BR2_PACKAGE_PYTHON_CFFI=y
BR2_PACKAGE_PYTHON_CRC16=y
BR2_PACKAGE_PYTHON_DBUS_FAST=y
BR2_PACKAGE_PYTHON_DATEUTIL=y
BR2_PACKAGE_PYTHON_DBUS_NEXT=y
BR2_PACKAGE_PYTHON_DJANGO=y
BR2_PACKAGE_PYTHON_FLASK=y
BR2_PACKAGE_PYTHON_EVDEV=y
BR2_PACKAGE_PYTHON_FLASK_BABEL=y
BR2_PACKAGE_PYTHON_FLASK_CORS=y
BR2_PACKAGE_PYTHON_FLASK_JSONRPC=y
BR2_PACKAGE_PYTHON_FLASK_LOGIN=y
BR2_PACKAGE_PYTHON_FLASK_SMOREST=y
BR2_PACKAGE_PYTHON_FLASK_SQLALCHEMY=y
BR2_PACKAGE_PYTHON_FLASK_WTF=y
BR2_PACKAGE_PYTHON_HWDATA=y
BR2_PACKAGE_PYTHON_PIP=y
BR2_PACKAGE_PYTHON_PEXPECT=y
BR2_PACKAGE_PYTHON_PSUTIL=y
BR2_PACKAGE_PYTHON_PYAES=y
BR2_PACKAGE_PYTHON_PYALSA=y
BR2_PACKAGE_PYTHON_PYDEVMEM=y
BR2_PACKAGE_PYTHON_PYUSB=y
BR2_PACKAGE_PYTHON_REQUESTS=y
BR2_PACKAGE_PYTHON_REQUESTS_OAUTHLIB=y
BR2_PACKAGE_PYTHON_REQUESTS_TOOLBELT=y
BR2_PACKAGE_PYTHON_SERIAL=y
BR2_PACKAGE_PYTHON_SERIAL_ASYNCIO=y
BR2_PACKAGE_PYTHON_WEBSOCKETS=y
BR2_PACKAGE_PYTHON_WEBSOCKET_CLIENT=y
BR2_PACKAGE_PYTHON_XMODEM=y
BR2_PACKAGE_PYTHON3_PY_PYC=y
BR2_PACKAGE_NCURSES_WCHAR=y
BR2_PACKAGE_LIBEDIT=y
BR2_PACKAGE_NGINX=y
BR2_PACKAGE_NGINX_HTTP=y
BR2_PACKAGE_NGINX_HTTP_DAV_MODULE=y
BR2_PACKAGE_NGINX_HTTP_MP4_MODULE=y
BR2_PACKAGE_NGINX_HTTP_FLV_MODULE=y
BR2_PACKAGE_NGINX_HTTP_GUNZIP_MODULE=y
BR2_PACKAGE_NGINX_STREAM=y
BR2_PACKAGE_NGINX_SELECT_MODULE=y
BR2_PACKAGE_NGINX_HTTP_FASTCGI_MODULE=y
BR2_PACKAGE_NGINX_HTTP_UWSGI_MODULE=y
BR2_PACKAGE_NGINX_HTTP_SCGI_MODULE=y
BR2_PACKAGE_RTC_TOOLS=y
BR2_PACKAGE_PICOCOM=y
BR2_PACKAGE_PYTHON_PYQT5=y
BR2_PACKAGE_PYTHON_PYQRCODE=y
BR2_PACKAGE_PYTHON_PYLIBFDT=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="640M"
BR2_TARGET_ROOTFS_EXT2_SIZE="768M"
BR2_ROOTFS_OVERLAY="$(TOPDIR)/board/cvitek/SG200X/overlay"
BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="$(TOPDIR)/board/cvitek/SG200X/busybox-extra.config"