From 23075bd6937537b071bd3596eeb29b6be8d8f13f Mon Sep 17 00:00:00 2001 From: "H. Pitkala" Date: Mon, 1 May 2017 18:20:18 +0200 Subject: [PATCH] Added USB webcam config options to the build script --- tools/build-kernel-qemu | 59 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/tools/build-kernel-qemu b/tools/build-kernel-qemu index 88ed847..95eaa50 100755 --- a/tools/build-kernel-qemu +++ b/tools/build-kernel-qemu @@ -9,7 +9,8 @@ COMMIT=38f2800e6e94019a00a2880bfed8fba37aea2e5d COMMIT=raspberrypi-kernel_1.20161100-1 COMMIT="" INSTALL_PACKAGES="" -USE_GIT=1 +USE_GIT="" +USB_WEBCAM_MODULES="" # add USB & V4L modules for USB webcam support (didn't work as static) if [ -f build-kernel-qemu.conf ] ; then . build-kernel-qemu.conf @@ -26,7 +27,7 @@ if [ "$USE_GIT" ] ; then if [ ! -d linux ] ; then git clone https://github.com/raspberrypi/linux.git else - echo "using existing linux sources!" + echo "Using existing Linux sources!" fi cd linux if [ "$COMMIT" ] ; then @@ -44,7 +45,9 @@ patch -p1 < ../linux-arm.patch make ARCH=arm versatile_defconfig KERNEL_VERSION=$(make kernelversion) -echo "building qemu raspberry pi kernel kernel-qemu-$KERNEL_VERSION" +KERNEL_TARGET_FILE_NAME=../qemu-kernel-$KERNEL_VERSION +MODULES_INSTALL_PATH=../qemu-kernel-$KERNEL_VERSION-modules +echo "Building Qemu Raspberry Pi kernel qemu-kernel-$KERNEL_VERSION" cat >> .config << EOF CONFIG_CROSS_COMPILE="$TOOLCHAIN" @@ -89,9 +92,57 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y EOF +if [ $USB_WEBCAM_MODULES ] ; then +echo "Make sure you have drivers for your webcam selected in menuconfig" +echo >> .config << EOF +# won't work as statically linked +CONFIG_MEDIA_SUPPORT=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_MEDIA=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_CAPTURE_DRIVERS=m +CONFIG_V4L_USB_DRIVERS=m +CONFIG_USB_VIDEO_CLASS=m +CONFIG_VIDEO_CORE=m +CONFIG_VIDEO_VIDEOBUF2=m +CONFIG_INPUT_CORE=m + +CONFIG_USB=m +CONFIG_USB_STORAGE=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_VHCI_HCD=m +CONFIG_USB_GSPCA=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_VIDEO_GSPCA=m + +CONFIG_I2C=m + +# won't be accepted as modules so linking statically +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_VIDEO_UVC=y +EOF +fi + cat ../config_ip_tables >> .config make -j 4 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- menuconfig make -j 4 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- bzImage -cp arch/arm/boot/zImage ../kernel-qemu-$KERNEL_VERSION +cp arch/arm/boot/zImage $KERNEL_TARGET_FILE_NAME + +if [ $USB_WEBCAM_MODULES ] ; then + mkdir -p $MODULES_INSTALL_PATH + if [ ! -d $MODULES_INSTALL_PATH ] ; then + echo "Couldn't create webcam modules install directory $MODULES_INSTALL_PATH" + fi + make -j 4 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- modules + make -j 4 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- \ + INSTALL_MOD_PATH=$MODULES_INSTALL_PATH modules_install + echo "Copy modules to Raspberry to /lib/modules/$KERNEL_VERSION" +fi + cd ..