Skip to content

Commit

Permalink
package middleware and osdrv
Browse files Browse the repository at this point in the history
  • Loading branch information
scpcom committed Jan 26, 2025
1 parent 6b3a847 commit 9f8e4f1
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 18 deletions.
2 changes: 2 additions & 0 deletions configs/settings.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
KERNELREV="3"
FSBLVERSION=1.1.0
OSDRVVERSION=2024.10.14
MIDDLEWAREVERSION=2024.10.14
PACKAGES="busybox-static ca-certificates debian-archive-keyring dosfstools binutils file tree sudo bash-completion u-boot-menu openssh-server network-manager dnsmasq-base libpam-systemd ppp libengine-pkcs11-openssl iptables systemd-timesyncd vim usbutils parted exfatprogs systemd-sysv i2c-tools net-tools ifupdown ethtool avahi-utils sudo gnupg rsync gpiod u-boot-tools libubootenv-tool"

IMAGE_ADDITIONS="usb-gadget"
76 changes: 58 additions & 18 deletions scripts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,19 @@ CONFIG_SENSOR_LONTIUM_LT6911=y

MIDDLEWARE_ENV = $(OSDRV_ENV) $(SENSOR_ENV)

KO_DIRS = drivers/i2c \
drivers/input/touchscreen \
drivers/media/usb/gspca \
drivers/net/usb \
drivers/net/wireless \
drivers/pwm \
drivers/rtc \
drivers/spi \
drivers/video/backlight \
fs/efivarfs \
net/ipv4 \
net/wireless

ifndef BOARD
$(error $(red)BOARD is not set$(reset))
endif
Expand Down Expand Up @@ -61,6 +74,11 @@ define copy_header_action
@cp $(BUILDDIR)/kernel/include/uapi/linux/dma-buf.h ${1}/linux/
endef

define copy_ko_action
@mkdir -p $(BUILDDIR)/osdrv/ko
$(foreach kodir, $(KO_DIRS), find ${1}/lib/modules/*/kernel/$(kodir) -name '*.ko' -exec cp -f {} $(BUILDDIR)/osdrv/ko/ \; ;)
endef

$(BUILDDIR)/linux-prepare-checkout-stamp:
@echo "$(COLOUR_GREEN)Checking out Kernel for $(BOARD)$(END_COLOUR)"
@mkdir -p $(BUILDDIR)
Expand Down Expand Up @@ -91,6 +109,7 @@ $(BUILDDIR)/linux-compile-stamp: $(BUILDDIR)/linux-prepare-configure-stamp
@sed -i 's/packagename=linux-image.*/packagename=linux-image-$(BOARD)/' $(BUILDDIR)/kernel/scripts/package/mkdebian
@sed -i 's/packagename=linux-image-$$version/packagename=linux-image-$(BOARD)-$$version/' $(BUILDDIR)/kernel/scripts/package/builddeb
@cd $(BUILDDIR)/kernel && KCFLAGS=-Wno-attribute-alias ARCH=riscv CROSS_COMPILE="/host-tools/gcc/riscv64-linux-musl-x86_64/bin/riscv64-unknown-linux-musl-" KDEB_SOURCENAME=linux-$(BOARD) $(MAKE) -j$(NPROCS) O=$(BUILDDIR)/kernel/ bindeb-pkg
@cd $(BUILDDIR)/kernel && KCFLAGS=-Wno-attribute-alias ARCH=riscv CROSS_COMPILE="/host-tools/gcc/riscv64-linux-musl-x86_64/bin/riscv64-unknown-linux-musl-" KDEB_SOURCENAME=linux-$(BOARD) $(MAKE) -j$(NPROCS) O=$(BUILDDIR)/kernel/ modules_install INSTALL_MOD_PATH=$(BUILDDIR)/kernel/modules headers_install INSTALL_HDR_PATH=$(BUILDDIR)/kernel/riscv/usr
@cp $(BUILDDIR)/*.deb /output/
@touch $@

Expand All @@ -109,8 +128,9 @@ $(BUILDDIR)/osdrv-prepare-checkout-stamp:
@cd $(BUILDDIR)/osdrv && git checkout bbb5269
@touch $@

$(BUILDDIR)/osdrv-prepare-patch-stamp: $(BUILDDIR)/osdrv-prepare-checkout-stamp
$(BUILDDIR)/osdrv-prepare-patch-stamp: $(BUILDDIR)/osdrv-prepare-checkout-stamp $(BUILDDIR)/linux-compile-stamp
@echo "$(COLOUR_GREEN)Patching OSdrv for $(BOARD)$(END_COLOUR)"
$(call copy_ko_action, $(BUILDDIR)/kernel/modules)
@$(foreach file, $(wildcard /configs/common/patches/osdrv/*.patch), cd $(BUILDDIR)/osdrv && git apply --ignore-whitespace $(file);)
@$(foreach file, $(wildcard /configs/$(BOARD)/patches/osdrv/*.patch), cd $(BUILDDIR)/osdrv && git apply --ignore-whitespace $(file);)
@touch $@
Expand All @@ -124,7 +144,26 @@ $(BUILDDIR)/osdrv-compile-stamp: $(BUILDDIR)/osdrv-prepare-configure-stamp
@cd $(BUILDDIR)/osdrv && $(OSDRV_ENV) $(MAKE) KERNEL_DIR=$(BUILDDIR)/kernel INSTALL_DIR=$(BUILDDIR)/osdrv/ko all
@touch $@

osdrv: $(BUILDDIR)/osdrv-compile-stamp
$(BUILDDIR)/osdrv-package-stamp: $(BUILDDIR)/osdrv-compile-stamp
@echo "$(COLOUR_GREEN)Packaging OSdrv for $(BOARD)$(END_COLOUR)"
@mkdir -p $(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)
@cp -r /builder/deb/cvitek-osdrv/* $(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/
@mkdir -pv /$(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/mnt/system/ko/
@cp -p $(BUILDDIR)/osdrv/ko/*.ko /$(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/mnt/system/ko/
@rm -f /$(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/mnt/system/ko/soph_clock_cooling.ko
@rm -f /$(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/mnt/system/ko/soph_pwm.ko
@rm -f /$(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/mnt/system/ko/soph_rtc.ko
@rm -f /$(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/mnt/system/ko/soph_saradc.ko
@rm -f /$(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/mnt/system/ko/soph_wdt.ko
@mkdir -pv /$(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/mnt/system/ko/3rd/
@cp -p $(BUILDDIR)/osdrv/ko/3rd/*.ko /$(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/mnt/system/ko/3rd/
@sed -i 's/Version: 1.0.0/Version: $(OSDRVVERSION)/' $(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/DEBIAN/control
@sed -i 's/Package: cvitek-osdrv/Package: cvitek-osdrv-$(BOARD)/' $(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)/DEBIAN/control
@cd $(BUILDDIR)/package/ && dpkg-deb --build cvitek-osdrv-$(BOARD)-$(OSDRVVERSION)
@cp $(BUILDDIR)/package/cvitek-osdrv-$(BOARD)-$(OSDRVVERSION).deb /output/
@touch $@

osdrv: $(BUILDDIR)/osdrv-package-stamp

osdrv-clean:
@rm -rf $(BUILDDIR)/osdrv
Expand All @@ -138,7 +177,7 @@ $(BUILDDIR)/middleware-prepare-checkout-stamp:
@cd $(BUILDDIR)/middleware && git checkout 2c2a4da
@touch $@

$(BUILDDIR)/middleware-prepare-patch-stamp: $(BUILDDIR)/middleware-prepare-checkout-stamp
$(BUILDDIR)/middleware-prepare-patch-stamp: $(BUILDDIR)/middleware-prepare-checkout-stamp $(BUILDDIR)/osdrv-compile-stamp
@echo "$(COLOUR_GREEN)Patching Middleware for $(BOARD)$(END_COLOUR)"
mkdir -pv $(BUILDDIR)/kernel/riscv/usr/include/linux/
$(call copy_header_action, $(BUILDDIR)/kernel/riscv/usr/include)
Expand All @@ -162,7 +201,19 @@ $(BUILDDIR)/middleware-compile-stamp: $(BUILDDIR)/middleware-prepare-configure-s
@cd $(BUILDDIR)/middleware && $(MIDDLEWARE_ENV) $(MAKE) KERNEL_DIR=$(BUILDDIR)/kernel install DESTDIR=$(BUILDDIR)/middleware/install/system
@touch $@

middleware: $(BUILDDIR)/middleware-compile-stamp
$(BUILDDIR)/middleware-package-stamp: $(BUILDDIR)/middleware-compile-stamp
@echo "$(COLOUR_GREEN)Packaging Middleware for $(BOARD)$(END_COLOUR)"
@mkdir -p $(BUILDDIR)/package/cvitek-middleware-$(BOARD)-$(MIDDLEWAREVERSION)
@cp -r /builder/deb/cvitek-middleware/* $(BUILDDIR)/package/cvitek-middleware-$(BOARD)-$(MIDDLEWAREVERSION)/
@mkdir -pv /$(BUILDDIR)/package/cvitek-middleware-$(BOARD)-$(MIDDLEWAREVERSION)/mnt/system/
@rsync -avpPxH $(BUILDDIR)/middleware/install/system/ /$(BUILDDIR)/package/cvitek-middleware-$(BOARD)-$(MIDDLEWAREVERSION)/mnt/system/
@sed -i 's/Version: 1.0.0/Version: $(MIDDLEWAREVERSION)/' $(BUILDDIR)/package/cvitek-middleware-$(BOARD)-$(MIDDLEWAREVERSION)/DEBIAN/control
@sed -i 's/Package: cvitek-middleware/Package: cvitek-middleware-$(BOARD)/' $(BUILDDIR)/package/cvitek-middleware-$(BOARD)-$(MIDDLEWAREVERSION)/DEBIAN/control
@cd $(BUILDDIR)/package/ && dpkg-deb --build cvitek-middleware-$(BOARD)-$(MIDDLEWAREVERSION)
@cp $(BUILDDIR)/package/cvitek-middleware-$(BOARD)-$(MIDDLEWAREVERSION).deb /output/
@touch $@

middleware: $(BUILDDIR)/middleware-package-stamp

middleware-clean:
@rm -rf $(BUILDDIR)/middleware
Expand Down Expand Up @@ -294,23 +345,12 @@ $(BUILDDIR)/image-prepare-stamp:
@mmdebstrap -v --architectures=riscv64 --include="$(_PACKAGES)" noble "/rootfs/" "deb http://ports.ubuntu.com/ubuntu-ports/ noble main universe" "deb [signed-by=$(BUILDDIR)/public-key.asc] https://sophgo.my-ho.st:8443/ debian sophgo"
@touch $@

$(BUILDDIR)/image-addons-stamp: $(BUILDDIR)/image-prepare-stamp $(BUILDDIR)/fsbl-package-stamp $(BUILDDIR)/linux-compile-stamp $(BUILDDIR)/osdrv-compile-stamp $(BUILDDIR)/middleware-compile-stamp $(addon-targets)
$(BUILDDIR)/image-addons-stamp: $(BUILDDIR)/image-prepare-stamp $(BUILDDIR)/fsbl-package-stamp $(BUILDDIR)/linux-compile-stamp $(BUILDDIR)/osdrv-package-stamp $(BUILDDIR)/middleware-package-stamp $(addon-targets)
@ln -s busybox /rootfs/usr/bin/devmem
@echo "$(COLOUR_GREEN)Copying Middleware files for installation on $(BOARD)$(END_COLOUR)"
@mkdir -pv /rootfs/mnt/system/
@rsync -avpPxH $(BUILDDIR)/middleware/install/system/ /rootfs/mnt/system/
@echo "$(COLOUR_GREEN)Copying Ko files for installation on $(BOARD)$(END_COLOUR)"
@mkdir -pv /rootfs/mnt/system/ko/
@cp -p $(BUILDDIR)/osdrv/ko/*.ko /rootfs/mnt/system/ko/
@rm -f /rootfs/mnt/system/ko/soph_clock_cooling.ko
@rm -f /rootfs/mnt/system/ko/soph_pwm.ko
@rm -f /rootfs/mnt/system/ko/soph_rtc.ko
@rm -f /rootfs/mnt/system/ko/soph_saradc.ko
@rm -f /rootfs/mnt/system/ko/soph_wdt.ko
@mkdir -pv /rootfs/mnt/system/ko/3rd/
@cp -p $(BUILDDIR)/osdrv/ko/3rd/*.ko /rootfs/mnt/system/ko/3rd/
@echo "$(COLOUR_GREEN)Copying Deb files for installation on $(BOARD)$(END_COLOUR)"
@cp /output/cvitek-fsbl-$(BOARD)-*.deb /rootfs/tmp/install/
@cp /output/cvitek-osdrv-$(BOARD)-*.deb /rootfs/tmp/install/
@cp /output/cvitek-middleware-$(BOARD)-*.deb /rootfs/tmp/install/
@cp /output/linux-image-$(BOARD)-*.deb /rootfs/tmp/install/
@cp /output/linux-headers-*.deb /rootfs/tmp/install/
@cp /output/linux-libc-dev*.deb /rootfs/tmp/install/
Expand Down
6 changes: 6 additions & 0 deletions scripts/deb/cvitek-middleware/DEBIAN/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Package: cvitek-middleware
Architecture: riscv64
Maintainer: @scpcom
Priority: optional
Version: 1.0.0
Description: Middleware for the CV18xx and SG200X series of RISC-V SoC's
6 changes: 6 additions & 0 deletions scripts/deb/cvitek-osdrv/DEBIAN/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Package: cvitek-osdrv
Architecture: riscv64
Maintainer: @scpcom
Priority: optional
Version: 1.0.0
Description: OS drivers for the CV18xx and SG200X series of RISC-V SoC's

0 comments on commit 9f8e4f1

Please sign in to comment.