Make use of the new and opensource libcamera software stack.

- Add libcamera
- Add libcamera-apps
- changes to rootfs to make use of the above

Needs testing and possible other fixes/changes
This commit is contained in:
j1nx 2022-05-13 10:38:25 +02:00
parent ca737cba2a
commit c0bc2b0f7c
8 changed files with 78 additions and 23 deletions

View File

@ -5,8 +5,8 @@
# and http://elinux.org/RPiconfig for a description of config.txt syntax
# We always use the same names, the real used variant is selected by
# BR2_PACKAGE_RPI_FIRMWARE_{DEFAULT,X,CD} choice
start_file=start.elf
fixup_file=fixup.dat
start_file=startx.elf
fixup_file=fixupx.dat
kernel=Image
@ -16,13 +16,14 @@ kernel=Image
# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
# disable_overscan=1
# Automatically load overlays for detected DSI displays
dtoverlay=vc4-fkms-v3d
# dtoverlay=vc4-kms-v3d
hdmi_drive=2
hdmi_group=2
hdmi_mode=14
max_framebuffers=2
# uncomment if you get no picture on HDMI for a default "safe" mode
# hdmi_safe=1
@ -42,6 +43,11 @@ dtoverlay=krnbt=on
# Enable the onboard soundcard
dtparam=audio=on
# Enable camera driver
# dtoverlay=imx219
# dtoverlay=ov5647
# camera_auto_detect=1
# Disable rainbow color splash
disable_splash=1

View File

@ -5,8 +5,8 @@
# and http://elinux.org/RPiconfig for a description of config.txt syntax
# We always use the same names, the real used variant is selected by
# BR2_PACKAGE_RPI_FIRMWARE_{DEFAULT,X,CD} choice
start_file=start4.elf
fixup_file=fixup4.dat
start_file=start4x.elf
fixup_file=fixup4x.dat
kernel=Image
@ -16,13 +16,17 @@ kernel=Image
# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
# disable_overscan=1
# Automatically load overlays for detected DSI displays
display_auto_detect=1
# Enable DRM VC4 V3D driver and setup the mode
dtoverlay=vc4-fkms-v3d
# dtoverlay=vc4-kms-v3d-pi4
hdmi_drive=2
hdmi_group=2
hdmi_mode=14
max_framebuffers=2
# uncomment if you get no picture on HDMI for a default "safe" mode
# hdmi_safe=1
@ -34,7 +38,7 @@ gpu_mem_512=128
gpu_mem_1024=128
# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console
# dtoverlay=miniuart-bt
dtoverlay=miniuart-bt
# enable autoprobing of Bluetooth driver without need of hciattach/btattach
dtoverlay=krnbt=on
@ -45,6 +49,7 @@ dtparam=audio=on
# Enable camera driver
# dtoverlay=imx219
dtoverlay=ov5647
# camera_auto_detect=1
# Disable rainbow color splash
disable_splash=1

View File

@ -9,6 +9,10 @@ image boot.vfat {
"rpi-firmware/config.txt",
"rpi-firmware/fixup.dat",
"rpi-firmware/start.elf",
"rpi-firmware/fixupcd.dat",
"rpi-firmware/startcd.elf",
"rpi-firmware/fixupx.dat",
"rpi-firmware/startx.elf",
"overlays",
"Image"
}

View File

@ -6,6 +6,10 @@ image boot.vfat {
"rpi-firmware/config.txt",
"rpi-firmware/fixup4.dat",
"rpi-firmware/start4.elf",
"rpi-firmware/fixup4cd.dat",
"rpi-firmware/start4cd.elf",
"rpi-firmware/fixup4x.dat",
"rpi-firmware/start4x.elf",
"rpi-firmware/overlays",
"Image"
}

View File

@ -0,0 +1 @@
blacklist bcm2835-v4l2

View File

@ -2,21 +2,38 @@ SUBSYSTEM=="input", GROUP="input", MODE="0660"
SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660"
SUBSYSTEM=="spidev", GROUP="spi", MODE="0660"
SUBSYSTEM=="bcm2835-gpiomem", GROUP="gpio", MODE="0660"
SUBSYSTEM=="argon-*", GROUP="video", MODE="0660"
SUBSYSTEM=="bcm2835-gpiomem", GROUP="gpio", MODE="0660"
SUBSYSTEM=="rpivid-*", GROUP="video", MODE="0660"
SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660"
SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c '\
chown -R root:gpio /sys/class/gpio && chmod -R 770 /sys/class/gpio;\
chown -R root:gpio /sys/devices/virtual/gpio && chmod -R 770 /sys/devices/virtual/gpio;\
chown -R root:gpio /sys$devpath && chmod -R 770 /sys$devpath\
'"
KERNEL=="vcsm-cma", GROUP="video", MODE="0660"
SUBSYSTEM=="dma_heap", GROUP="video", MODE="0660"
SUBSYSTEM=="vchiq", GROUP="video", MODE="0660"
KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\
SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660"
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="/bin/sh -c 'chgrp -R gpio /sys/class/gpio && chmod -R g=u /sys/class/gpio'"
SUBSYSTEM=="gpio", ACTION=="add", PROGRAM="/bin/sh -c 'chgrp -R gpio /sys%p && chmod -R g=u /sys%p'"
# PWM export results in a "change" action on the pwmchip device (not "add" of a new device), so match actions other than "remove".
SUBSYSTEM=="pwm", ACTION!="remove", PROGRAM="/bin/sh -c 'chgrp -R gpio /sys%p && chmod -R g=u /sys%p'"
KERNEL=="ttyAMA0", PROGRAM="/bin/sh -c '\
ALIASES=/proc/device-tree/aliases; \
if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \
if cmp -s $$ALIASES/uart0 $$ALIASES/serial0; then \
echo 0;\
elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then \
elif cmp -s $$ALIASES/uart0 $$ALIASES/serial1; then \
echo 1; \
else \
exit 1; \
fi\
'", SYMLINK+="serial%c"
KERNEL=="ttyAMA1", PROGRAM="/bin/sh -c '\
ALIASES=/proc/device-tree/aliases; \
if [ -e /dev/ttyAMA0 ]; then \
exit 1; \
elif cmp -s $$ALIASES/uart0 $$ALIASES/serial0; then \
echo 0;\
elif cmp -s $$ALIASES/uart0 $$ALIASES/serial1; then \
echo 1; \
else \
exit 1; \
@ -25,11 +42,17 @@ KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\
KERNEL=="ttyS0", PROGRAM="/bin/sh -c '\
ALIASES=/proc/device-tree/aliases; \
if cmp -s $ALIASES/uart1 $ALIASES/serial0; then \
if cmp -s $$ALIASES/uart1 $$ALIASES/serial0; then \
echo 0; \
elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then \
elif cmp -s $$ALIASES/uart1 $$ALIASES/serial1; then \
echo 1; \
else \
exit 1; \
fi \
'", SYMLINK+="serial%c"
ACTION=="add", SUBSYSTEM=="vtconsole", KERNEL=="vtcon1", RUN+="/bin/sh -c '\
if echo RPi-Sense FB | cmp -s /sys/class/graphics/fb0/name; then \
echo 0 > /sys$devpath/bind; \
fi; \
'"

View File

@ -470,15 +470,20 @@ BR2_PACKAGE_CAIRO_SCRIPT=y
BR2_PACKAGE_CAIRO_SVG=y
BR2_PACKAGE_GDK_PIXBUF=y
BR2_PACKAGE_GIFLIB=y
BR2_PACKAGE_LIBEPOXY=y
BR2_PACKAGE_LIBVA=y
BR2_PACKAGE_TIFF=y
BR2_PACKAGE_WAFFLE=y
BR2_PACKAGE_LIBCEC=y
BR2_PACKAGE_LIBINPUT=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_LIBFASTJSON=y
BR2_PACKAGE_YAJL=y
BR2_PACKAGE_LIBCAMERA_V4L2=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC=y
BR2_PACKAGE_LIBCAMERA_APPS=y
BR2_PACKAGE_LIBMATROSKA=y
BR2_PACKAGE_LIBMMS=y
BR2_PACKAGE_LIBMPEG2_BINS=y
@ -492,6 +497,7 @@ BR2_PACKAGE_LIBSHAIRPLAY=y
BR2_PACKAGE_BOOST_SYSTEM=y
BR2_PACKAGE_CMOCKA=y
BR2_PACKAGE_ELL=y
BR2_PACKAGE_GTEST=y
BR2_PACKAGE_LIBCAP_NG=y
BR2_PACKAGE_LINUX_PAM=y
BR2_PACKAGE_PROTOBUF=y

View File

@ -468,15 +468,20 @@ BR2_PACKAGE_CAIRO_SCRIPT=y
BR2_PACKAGE_CAIRO_SVG=y
BR2_PACKAGE_GDK_PIXBUF=y
BR2_PACKAGE_GIFLIB=y
BR2_PACKAGE_LIBEPOXY=y
BR2_PACKAGE_LIBVA=y
BR2_PACKAGE_TIFF=y
BR2_PACKAGE_WAFFLE=y
BR2_PACKAGE_LIBCEC=y
BR2_PACKAGE_LIBINPUT=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_LIBFASTJSON=y
BR2_PACKAGE_YAJL=y
BR2_PACKAGE_LIBCAMERA_V4L2=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC=y
BR2_PACKAGE_LIBCAMERA_APPS=y
BR2_PACKAGE_LIBMATROSKA=y
BR2_PACKAGE_LIBMMS=y
BR2_PACKAGE_LIBMPEG2_BINS=y
@ -490,6 +495,7 @@ BR2_PACKAGE_LIBSHAIRPLAY=y
BR2_PACKAGE_BOOST_SYSTEM=y
BR2_PACKAGE_CMOCKA=y
BR2_PACKAGE_ELL=y
BR2_PACKAGE_GTEST=y
BR2_PACKAGE_LIBCAP_NG=y
BR2_PACKAGE_LINUX_PAM=y
BR2_PACKAGE_PROTOBUF=y