Neirop
1
I'm trying to build a custom openwrt with the kernel module required for the support of IMX219 camera on Raspberry Pi 5 with libcamera.
I listed these modules that doesn't appears in OpenWrt configuration menus and I think would be necessary:
- bcm2835-unicam
- pisp-be
- rp1-cfe
- v4l2-cci
- imx219
I tried to add stanzas for theses modules in the makefiles by following this example.
Here my patch for the 24.10 version.
I'm facing 2 problems, first if I don't select the camera-bcm2835
packages, I get this error:
ERROR: module '/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/linux-6.6.73/drivers/media/common/videobuf2/videobuf2-vmalloc.ko' is missing.
make[3]: *** [modules/video.mk:681: /home/ubuntu/openwrt/bin/targets/bcm27xx/bcm2712/packages/kmod-video-videobuf2_6.6.73-r1_aarch64_cortex-a76.ipk] Error 1
make[3]: Leaving directory '/home/ubuntu/openwrt/package/kernel/linux'
time: package/kernel/linux/compile#0.95#0.17#1.10
ERROR: package/kernel/linux failed to build.
I don't understand because I added the dependency kmod-video-videobuf2
for unicam-bcm2835
.
Second, I didn't find workaround, it looks like v4l2-cci is not compiled, but it is selected in menuconfig:
ERROR: module '/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/linux-6.6.73/drivers/media/v4l2-core/v4l2-cci.ko' is missing.
make[3]: *** [modules/video.mk:715: /home/ubuntu/openwrt/bin/targets/bcm27xx/bcm2712/packages/kmod-video-cci-i2c_6.6.73-r1_aarch64_cortex-a76.ipk] Error 1
make[3]: Leaving directory '/home/ubuntu/openwrt/package/kernel/linux'
time: package/kernel/linux/compile#0.95#0.15#1.08
ERROR: package/kernel/linux failed to build.
I don't really know how to "debug" makefiles, so I'm currently stuck.
I've seen those sorts of, random, package errors while building when the server is saturated.
And it has been a heavy couple days.
Everything else being equal and 'why now?'.
But let's show @brada4 as much of the output as you can.
1 Like
brada4
4
Bro is building out of the tree kmods, not clouds
1 Like
Neirop
5
Logs related to v4l2-cci:
SHELL= flock /home/ubuntu/openwrt/tmp/.root-copy.flock -c 'cp -fpR /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/.pkgdir/kernel/. /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/root-bcm27xx/'
touch /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/root-bcm27xx/stamp/.kernel_installed
rm -rf /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c
mkdir -p /home/ubuntu/openwrt/bin/targets/bcm27xx/bcm2712/packages /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/pkginfo
for mod in /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/linux-6.6.73/drivers/media/v4l2-core/v4l2-cci.ko; do if grep -q "${mod##/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/linux-6.6.73/}" "/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/linux-6.6.73/modules.builtin"; then echo "NOTICE: module '$mod' is built-in."; elif [ -e $mod ]; then mkdir -p /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c/lib/modules/6.6.73 ; cp -fpR -L $mod /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c/lib/modules/6.6.73/ ; else echo "ERROR: module '$mod' is missing." >&2; exit 1; fi; done;
mkdir -p /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c/etc/modules.d; ( echo "v4l2-cci"; ) > /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c/etc/modules.d/video-cci-i2c;
find /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| xargs -r rm -rf
( find /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c -name lib\*.so\* -or -name \*.ko | awk -F/ '{ print $NF }'; for file in /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/pkginfo/kmod-video-core.provides /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/pkginfo/kmod-regmap-i2c.provides; do if [ -f "$file" ]; then cat $file; fi; done; ) | sort -u > /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/pkginfo/kmod-video-cci-i2c.provides
( rm -f /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/pkginfo/kmod-video-cci-i2c.missing; ( export READELF=aarch64-openwrt-linux-musl-readelf OBJCOPY=aarch64-openwrt-linux-musl-objcopy XARGS="xargs -r"; /home/ubuntu/openwrt/scripts/gen-dependencies.sh "/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c"; ) | while read FILE; do grep -qxF "$FILE" /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/pkginfo/kmod-video-cci-i2c.provides || echo "$FILE" >> /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/pkginfo/kmod-video-cci-i2c.missing; done; if [ -f "/home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/pkginfo/kmod-video-cci-i2c.missing" ]; then echo "Package kmod-video-cci-i2c is missing dependencies for the following libraries:" >&2; cat "/home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/pkginfo/kmod-video-cci-i2c.missing" >&2; false; fi; )
export CROSS="aarch64-openwrt-linux-musl-" NO_RENAME=1 ; NM="aarch64-openwrt-linux-musl-nm" STRIP="/home/ubuntu/openwrt/staging_dir/host/bin/sstrip -z" STRIP_KMOD="/home/ubuntu/openwrt/scripts/strip-kmod.sh" PATCHELF="/home/ubuntu/openwrt/staging_dir/host/bin/patchelf" /home/ubuntu/openwrt/scripts/rstrip.sh /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c
install -d -m0755 /home/ubuntu/openwrt/bin/targets/bcm27xx/bcm2712/packages/tmp
mkdir -p /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c/CONTROL
(cd /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c/CONTROL; ( echo "$CONTROL"; printf "Description: "; echo "$DESCRIPTION" | sed -e 's,^[[:space:]]*, ,g'; ) > control; chmod 644 control; ( echo "#!/bin/sh"; echo "[ \"\${IPKG_NO_SCRIPT}\" = \"1\" ] && exit 0"; echo "[ -s "\${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; echo ". \${IPKG_INSTROOT}/lib/functions.sh"; echo "default_postinst \$0 \$@"; ) > postinst; ( echo "#!/bin/sh"; echo "[ -s "\${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; echo ". \${IPKG_INSTROOT}/lib/functions.sh"; echo "default_prerm \$0 \$@"; ) > prerm; chmod 0755 postinst prerm; )
/home/ubuntu/openwrt/staging_dir/host/bin/fakeroot /home/ubuntu/openwrt/staging_dir/host/bin/bash /home/ubuntu/openwrt/scripts/ipkg-build -m "" /home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/packages/ipkg-aarch64_cortex-a76/kmod-video-cci-i2c /home/ubuntu/openwrt/bin/targets/bcm27xx/bcm2712/packages
[ -f /home/ubuntu/openwrt/bin/targets/bcm27xx/bcm2712/packages/kmod-video-cci-i2c_6.6.73-r1_aarch64_cortex-a76.ipk ]
ERROR: module '/home/ubuntu/openwrt/build_dir/target-aarch64_cortex-a76_musl/linux-bcm27xx_bcm2712/linux-6.6.73/drivers/media/v4l2-core/v4l2-cci.ko' is missing.
make[3]: *** [modules/video.mk:715: /home/ubuntu/openwrt/bin/targets/bcm27xx/bcm2712/packages/kmod-video-cci-i2c_6.6.73-r1_aarch64_cortex-a76.ipk] Error 1
make[3]: Leaving directory '/home/ubuntu/openwrt/package/kernel/linux'
time: package/kernel/linux/compile#0.98#0.13#1.10
ERROR: package/kernel/linux failed to build.
make[2]: *** [package/Makefile:179: package/kernel/linux/compile] Error 1
make[2]: Leaving directory '/home/ubuntu/openwrt'
make[1]: *** [package/Makefile:173: /home/ubuntu/openwrt/staging_dir/target-aarch64_cortex-a76_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/ubuntu/openwrt'
make: *** [/home/ubuntu/openwrt/include/toplevel.mk:233: world] Error 2