我有一台运行 Ubuntu 22.04 服务器(内核 5.15)的 Raspberry Pi 4b 4GB,我在其上运行 ROS2 Humble 进行机器人技术开发(需要 22.04)。我最近买了一个 Raspberry Pi 相机模块 3 作为我的机器人的相机,但它在这个操作系统上无法正常工作。我通过运行 Raspbian 验证了这个硬件组合,相机运行正常。
在这个 GitHub 问题我尝试弄清楚如何让它工作,并被告知我运行的内核不包含 Sony IMX758 传感器所需的驱动程序。我被告知较新的内核版本可能会解决我的问题并内置驱动程序。
到目前为止,我一直在复制树莓派/Linux到Ubuntu 提供的 linux-raspi 内核在树枝上applied/ubuntu/jammy-updates 5.15.0-1035.38(已应用补丁)。这只起到了部分作用,最终并没有启用相机。
我可以使用 ubuntu 22.04 (jammy) 运行高于 5.15 的内核吗?我注意到 Ubuntu rpi-kernel repo 中有一个 6.2.X 内核,标记为 mantic (23.10) 和 lunar (23.04)。如果是这样,我是否从树莓派/Linux(它有 6.1y 分支,我想我必须重新编译,或者 Ubuntu 的linux-raspi 内核,哪一个选择更好?
据我所知,内核适用于任何发行版特定的定制,所以理论上我可以简单地从树莓派/Linux并将 .deb 补丁应用到 Ubuntu?
如果有人能就下一步行动提出建议,那就太好了。我的链接中有错误日志GitHub 问题以及更多诊断。
答案1
我可以通过安装软件包将内核更新到 6.2.0-1004-raspiLinux-镜像-6.2.0-1004-raspi使用 apt。这会使用预编译的图像更新我的内核。
我可以通过将 Ubuntu lunar 源添加到 来访问此包/etc/apt/sources-list
。我添加了以下几行:
# adding this to get the new 6.2.x kernel from lunar
deb http://ports.ubuntu.com/ubuntu-ports lunar main restricted
deb http://ports.ubuntu.com/ubuntu-ports lunar-updates main restricted
deb http://ports.ubuntu.com/ubuntu-ports lunar universe
deb http://ports.ubuntu.com/ubuntu-ports lunar-updates universe
deb http://ports.ubuntu.com/ubuntu-ports lunar multiverse
deb http://ports.ubuntu.com/ubuntu-ports lunar-updates multiverse
deb http://ports.ubuntu.com/ubuntu-ports lunar-backports main restricted
universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports lunar-security main restricted
deb http://ports.ubuntu.com/ubuntu-ports lunar-security universe
deb http://ports.ubuntu.com/ubuntu-ports lunar-security multiverse
然后我只需执行sudo apt update
,sudo apt install linux-image-6.2.0-1004-raspi
并在安装完成后重新启动。
atticus@rospi:~
$ uname -a
Linux rospi 6.2.0-1004-raspi #5-Ubuntu SMP PREEMPT Mon Apr 3 11:15:14 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
更新的内核并没有解决我想要修复的问题,因为我的 Raspberry Pi 相机模块 3 仍然无法在这个 Ubuntu 安装上运行,尽管存在正确的驱动程序,但我将创建一个关于该问题的新帖子。
atticus@rospi:~
$ libcamera-hello
Preview window unavailable
[0:13:33.922153143] [5185] INFO Camera camera_manager.cpp:284 libcamera v0.1.0+19-960d0c1e
[0:13:33.961853643] [5186] ERROR V4L2 v4l2_device.cpp:93 'imx708': Failed to open V4L2 device '': No such file or directory
[0:13:33.961984865] [5186] ERROR RPI vc4.cpp:209 Failed to register camera imx708: -22
ERROR: *** no cameras available ***