I'm currently using Ubuntu 22.04 LTS and I think I have the same problem as yours. I've made some (small) changes to /boot/firmware/config.txt and it works for me.
This is my config file:
[all]
kernel=vmlinuz
cmdline=cmdline.txt
initramfs initrd.img followkernel
[pi4]
max_framebuffers=2
arm_boost=1
[all]
# Enable the audio output, I2C and SPI interfaces on the GPIO header. As
these
# parameters related to the base device-tree they must appear *before* any
# other dtoverlay= specification
dtparam=audio=on
dtparam=i2c_arm=on
dtparam=spi=on
# Comment out the following line if the edges of the desktop appear outside
# the edges of your display
disable_overscan=1
# If you have issues with audio, you may try uncommenting the following
line
# which forces the HDMI output into HDMI mode instead of DVI (which doesn't
# support audio output)
#hdmi_drive=2
[cm4]
# Enable the USB2 outputs on the IO board (assuming your CM4 is plugged
into
# such a board)
dtoverlay=dwc2,dr_mode=host
[all]
# Enable the KMS ("full" KMS) graphics overlay, leaving GPU memory as the
# default (the kernel is in control of graphics memory with full KMS)
#dtoverlay=vc4-kms-v3d
dtoverlay=vc4-fkms-v3d
max_framebuffers
# Autoload overlays for any recognized cameras or displays that are
attached
# to the CSI/DSI ports. Please note this is for libcamera support, *not*
for
# the legacy camera stack
camera_auto_detect=1
display_auto_detect=1
# Config settings specific to arm64
arm_64bit=1
dtoverlay=dwc2
#overclocking
over_voltage=5
arm_freq=2000
# uncomment if hdmi display is not detected
hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode
hdmi_group=2
hdmi_mode=82
hdmi_enable_4k60=1
gpu_mem=256
gpu_freq=500
start_x=1
So, basically, I've copied the whole config file from my Raspberry Pi OS on the other hard drive (with some minor adaptations for Ubuntu 22.04 LTS ofcourse).
Oh, and I'm using RealVNC Server instead of Teamviewer.