1. Do you know?
The driver is used to communicate with the hardware and provide a unified interface to the software layer. Usually, the initialization of the hardware has a standard process. You should operate to make the hardware work normally according to the standard process and these operations are cumbersome. Generally, only the hardware manufacturer understands the specific details. One of the main tasks of the driver is to ensure that the hardware works as expected according to the standard process and hardware communication.
We only provide the driver for the latest official kernel version image when the Pivariety camera is released. Please check the kernel version if the driver installation fails. You can choose to compile the kernel yourself if the kernel version used is not provided by us.
2. Kernel Driver building
There are two compilation methods.
3.1. The first way-Build from the kernel source
Please refer to the official documentation to compile the kernel.
NOTE: The instructions are divided into native builds and cross-compilation.
After obtaining the linux source code, add the arducam driver and device tree code through apply patch.
git clone https://github.com/ArduCAM/Arducam-Pivariety-V4L2-Driver.git cd <path>/linux patch -p1 -i <path>/Arducam-Pivariety-V4L2-Driver/patchs/arducam_driver.patch
3.2. The second way-Build from the kernel headers
NOTE: The following steps compile on Raspberry Pi.
3.2.1. Download the kernel source code
cd ~ sudo apt update && sudo apt install git bc bison flex libssl-dev sudo wget https://raw.githubusercontent.com/RPi-Distro/rpi-source/master/rpi-source -O /usr/local/bin/rpi-source && sudo chmod +x /usr/local/bin/rpi-source && /usr/local/bin/rpi-source -q --tag-update mkdir $(uname -r) rpi-source -d $(uname -r)
3.2.2. Compile the driver and device tree
cd ~ git clone https://github.com/ArduCAM/Arducam-Pivariety-V4L2-Driver.git cd Arducam-Pivariety-V4L2-Driver/src # compile dtbo patch -p1 -d /lib/modules/$(uname -r)/build -i $(pwd)/../patchs/arducam_device_tree.patch make -C /lib/modules/$(uname -r)/build dtbs sudo cp /lib/modules/$(uname -r)/build/arch/arm/boot/dts/overlays/arducam.dtbo /boot/overlays/arducam.dtbo # manully add dtoverlay=arducam in /boot/config.txt # compile arducam.ko make && sudo make install sudo depmod sudo modprobe arducam
At this point, your kernel driver building is complete!