我知道这里有几个问题与我似乎在问的问题相同。我已经尝试过这些建议1和2,但它们在这种情况下不起作用。这是发生的事情:
pi@raspberrypi0w:~ $ sudo apt -t bullseye-backports install udev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libudev1
The following packages will be upgraded:
libudev1 udev
2 upgraded, 0 newly installed, 0 to remove and 35 not upgraded.
Need to get 1,654 kB of archives.
After this operation, 511 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://deb.debian.org/debian bullseye-backports/main armhf udev armhf 252.5-2~bpo11+1 [1,554 kB]
Get:2 http://deb.debian.org/debian bullseye-backports/main armhf libudev1 armhf 252.5-2~bpo11+1 [100 kB]
Fetched 1,654 kB in 1s (1,267 kB/s)
Reading changelogs... Done
(Reading database ... 43648 files and directories currently installed.)
Preparing to unpack .../udev_252.5-2~bpo11+1_armhf.deb ...
Unpacking udev (252.5-2~bpo11+1) over (247.3-7+rpi1+deb11u2) ...
Preparing to unpack .../libudev1_252.5-2~bpo11+1_armhf.deb ...
Unpacking libudev1:armhf (252.5-2~bpo11+1) over (247.3-7+rpi1+deb11u2) ...
Setting up libudev1:armhf (252.5-2~bpo11+1) ...
Setting up udev (252.5-2~bpo11+1) ...
Segmentation fault
Job for systemd-udevd.service failed because a fatal signal was delivered to the control process.
See "systemctl status systemd-udevd.service" and "journalctl -xe" for details.
invoke-rc.d: initscript udev, action "restart" failed.
● systemd-udevd.service - Rule-based Manager for Device Events and Files
Loaded: loaded (/lib/systemd/system/systemd-udevd.service; static)
Active: activating (start) since Tue 2024-04-09 07:36:27 UTC; 130ms ago
TriggeredBy: ● systemd-udevd-control.socket
● systemd-udevd-kernel.socket
Docs: man:systemd-udevd.service(8)
man:udev(7)
Main PID: 8773 ((md-udevd))
Tasks: 1
CPU: 45ms
CGroup: /system.slice/systemd-udevd.service
└─8773 (md-udevd)
Apr 09 07:36:28 raspberrypi0w systemd[1]: Stopped Rule-based Manager for Device Events and Files.
Apr 09 07:36:28 raspberrypi0w systemd[1]: Starting Rule-based Manager for Device Events and Files...
Apr 09 07:36:28 raspberrypi0w systemd[1]: systemd-udevd.service: Main process exited, code=killed, status=11/SEGV
Apr 09 07:36:28 raspberrypi0w systemd[1]: systemd-udevd.service: Failed with result 'signal'.
Apr 09 07:36:28 raspberrypi0w systemd[1]: Failed to start Rule-based Manager for Device Events and Files.
Apr 09 07:36:28 raspberrypi0w systemd[1]: systemd-udevd.service: Scheduled restart job, restart counter is at 5.
Apr 09 07:36:28 raspberrypi0w systemd[1]: Stopped Rule-based Manager for Device Events and Files.
Apr 09 07:36:28 raspberrypi0w systemd[1]: systemd-udevd.service: Start request repeated too quickly.
Apr 09 07:36:28 raspberrypi0w systemd[1]: systemd-udevd.service: Failed with result 'signal'.
Apr 09 07:36:28 raspberrypi0w systemd[1]: Failed to start Rule-based Manager for Device Events and Files.
dpkg: error processing package udev (--configure):
installed udev package post-installation script subprocess returned error exit status 1
Processing triggers for libc-bin (2.31-13+rpt2+rpi1+deb11u8) ...
Processing triggers for man-db (2.9.4-2) ...
Processing triggers for initramfs-tools (0.140) ...
Errors were encountered while processing:
udev
E: Sub-process /usr/bin/dpkg returned an error code (1)
尝试的“恢复”并不是很有趣:
pi@raspberrypi0w:~ $ apt install ${udev}/bullseye
Illegal instruction
我尝试了其他一些“回归”:
pi@raspberrypi0w:~ $ sudo apt install udev
Illegal instruction
pi@raspberrypi0w:~ $ sudo apt-get install udev/stable
Illegal instruction
pi@raspberrypi0w:~ $ sudo apt-get install udev/old-stable
Illegal instruction
“分段错误”——听起来很严重:)。我不确定这是什么意思;即系统是否自动拒绝udev
升级并自动恢复?——或者是我介入了?我等了几分钟并尝试了这个:
$ systemctl status systemd-udevd.service
● systemd-udevd.service - Rule-based Manager for Device Events and Files
Loaded: loaded (/lib/systemd/system/systemd-udevd.service; static)
Active: failed (Result: signal) since Tue 2024-04-09 07:36:28 UTC; 28min ago
TriggeredBy: ● systemd-udevd-control.socket
● systemd-udevd-kernel.socket
Docs: man:systemd-udevd.service(8)
man:udev(7)
Process: 8776 ExecStart=/lib/systemd/systemd-udevd (code=killed, signal=SEGV)
Main PID: 8776 (code=killed, signal=SEGV)
CPU: 199ms
Apr 09 07:36:28 raspberrypi0w systemd[1]: systemd-udevd.service: Scheduled restart job, restart counter is at 5.
Apr 09 07:36:28 raspberrypi0w systemd[1]: Stopped Rule-based Manager for Device Events and Files.
Apr 09 07:36:28 raspberrypi0w systemd[1]: systemd-udevd.service: Start request repeated too quickly.
Apr 09 07:36:28 raspberrypi0w systemd[1]: systemd-udevd.service: Failed with result 'signal'.
Apr 09 07:36:28 raspberrypi0w systemd[1]: Failed to start Rule-based Manager for Device Events and Files.
我昨晚有一个很好的(图像)备份,所以如果我杀死了我的操作系统,我可以恢复。但是,如果可能的话,我更愿意在不求助于备份的情况下修复此问题。
我应该怎么办?
在能够运行的设置上
udev
,您发现的其他帖子确实提供了将软件包升级恢复到向后移植的正确方法:或者可能
(使用适当的代号或同义词)。这里有一个警告,Debian 不支持软件包降级;它们在大多数情况下都能正常工作,但如果不能正常工作,也不是一个错误。
你不能这样做,因为
udev
你不会跑。你最终会遇到这种情况,因为 Debianarmhf
架构以 ARMv7 为目标,而第一代 Raspberry Pi(包括 Zero W)则实现 ARMv6;这些系统上合适的 Debian 架构是armel
. 作为一般规则,您不能将 Debian 向后移植与其他发行版混合搭配,即使它是 Debian 衍生版本。Raspbian 的情况更是如此,因为架构定义不同。要在不重新安装的情况下解决此问题,您必须下载适当的
udev
软件包,并手动提取其二进制文件;然后它们就可以使用了,这将允许正确地恢复包。鉴于您热衷于使用向后移植的软件包,您最好使用Raspberry Pi 的 Debian 映像重新安装。(这将为您提供比 Debian 11 和向后移植更新的软件包,因此您甚至可能不需要向后移植!)