TW heads up - kernel firmware fails to install

error: unpacking of archive failed on file /usr/lib/firmware/qcom/LENOVO/21BX;633feb3b: cpio: File from package already exists as a directory in system error: kernel-firmware-qcom-20220930-1.1.noarch: install failed error: kernel-firmware-qcom-20220902-1.1.noarch: erase skipped (345/615) Installieren: kernel-firmware-qcom-20220930-1.1.noarch ........................................................................................................................[Fehler] Installation von kernel-firmware-qcom-20220930-1.1.noarch fehlgeschlagen: Fehler: Subprocess failed. Error: RPM fehlgeschlagen: Kommando mit Status 1 beendet. When removing the package manually: zypper rm kernel-firmware-qcom-20220902-1.1.noarch Reading installed packages... Resolving package dependencies... The following 2 packages are going to be REMOVED: kernel-firmware-all kernel-firmware-qcom 2 packages to remove. After the operation, 27.7 MiB will be freed. Continue? [y/n/v/...? shows all options] (y): looked a bit scary due to kernel-firmware-all removal, but worked. A 'zypper dup' afterwards installed everything properly akonadi users on Postgres - new postgres version needs conversion of the database! Cheers Axel

I just did "rm -rf /usr/lib/firmware/qcom/LENOVO/21BX" and select retry. The package was installed without a problem.

Am 07.10.22 um 11:36 schrieb Axel Braun:
Richard already acknowledged it: https://www.reddit.com/r/openSUSE/comments/xxcvb5/comment/irdrtyu/?context=3

Am Freitag, 7. Oktober 2022, 11:42:52 CEST schrieb Ben Greiner:
Richard already acknowledged it: https://www.reddit.com/r/openSUSE/comments/xxcvb5/comment/irdrtyu/?context=3
Is Reddit now the new factory list? If so, maybe I should subscribe there.....

Am Freitag, 7. Oktober 2022, 11:45:24 CEST schrieb Axel Braun:
Bug Reported at: https://bugzilla.opensuse.org/show_bug.cgi?id=1204103 At my side: $ sudo mv /usr/lib/firmware/qcom/LENOVO/21BX/ /usr/lib/firmware/qcom/LENOVO/21BX.sik solves the issue. Nice weekend Ub22

Op zaterdag 8 oktober 2022 10:29:49 CEST schreef ub22@gmx.net:
I did as root: rm -rf /usr/lib/firmware/qcom/LENOVO/21BX/ and zypper in -f kernel-firmware-all kernel-firmware-qcom kernel-firmware-all was removed when I removed kernel-firmware-qcom after which installing both did not work. After the above commands a zypper dup showed all was OK. -- fr.gr. member openSUSE Freek de Kruijf

Hi, Am Sonntag, 9. Oktober 2022, 11:59:22 CEST schrieb Berthold Höllmann:
$ sudo rpm -e --no-deps kernel-firmware-qcom
# rpm -e --no-deps kernel-firmware-qcom rpm: --no-deps: unknown option I think you mean: # rpm -e --nodeps kernel-firmware-qcom Nothing happens (no output)
# zypper verify Nope, installs firmware but w/o an error. But I have done before # rm -rf /usr/lib/firmware/qcom/LENOVO/21BX/ # zypper in -f kernel-firmware-all kernel-firmware-qcom What fixes the issue properly By the way, bug was fixed and should be rolled out with: https://bugzilla.opensuse.org/show_bug.cgi?id=1204103#c10 Regards Ub22

ub22@gmx.net writes:
Sorry, yes of course "--nodeps". While it is true, that "rpm -e --nodeps" gives no output, it is not correct, that nothing happens: $ sudo rpm -q kernel-firmware-qcom kernel-firmware-qcom-20220930-1.1.noarch $ sudo rpm -e --nodeps kernel-firmware-qcom $ sudo rpm -q kernel-firmware-qcom package kernel-firmware-qcom is not installed Why do you think, that "zypper verify" after "rpm -e --nodeps" does not solve the problem properly? I personally prefer using "rpm -e --nodeps" on package update problems. I am always afraid to do more harm using "rm -rf". Regards Berthold

On Sun, 09 Oct 2022 12:55:25 +0200, Berthold Höllmann wrote:
Agreed that "zypper verify" lets the system automatically take the proper action to re-install the package, avoiding human error. Another problem with doing "zypper install" is that it marks the package as user-installed. [1] It is better to leave the system knowing that the package is only installed to fulfill dependencies. [1] zypper(8), section "Automatically installed packages" -- Robert Webb

On Sun, 09 Oct 2022 12:34:55 +0200, ub22@gmx.net wrote:
Unfortunately, this workaround isn't 100% correct, although it works for most people (who don't need those firmware); when you do rm and update kernel-firmware-*, it'll lead to the missing files in the end. The reason is that rpm doesn't update things atomically but updates in two steps: at first, install the new package and either replaces the existing files or adds new files, then at next, uninstall the old package to remove files that are no longer required. When a package update contains the change from a directory to a symlink like this case, it hits a problem already at the first step, because you can't replace from a directory to a link without removing the rest. So, the "workaround" above is to remove the directory for avoiding this conflict in the first step. *HOWEVER* another infamous problem is the second step, the uninstall of old package. How it happens is like below. Suppose an old package containing a directory /a and two files /a/b and /a/c: /a /a/b /a/c and a new package changed to /a as a symlink to /A, while moving the files b and c under /A: /A /A/b /A/c /a -> /A Now, you perform "rm -rf /a" as a workaround, and update to the new package. At the first step of the update, it becomes identically with the new package: /A /A/b /A/c /a -> /A Then at the second step to uninstall the old package, it tries to remove files /a/b and /a/c, because those no longer belong to the package. Since /a/b and /a/c are reachable via a symlink /a, rpm still tries to delete those files, even though now they are /A/b and /A/c! So, after the second step, it's broken with missing files in the end: /A /a -> /A So, from that POV, uninstalling the old package beforehand (with rpm -e --nodeps) is a better workaround; then a messy problem above can be avoided. Or, skip the update until the new fixed package appears... Takashi

Am Montag, 10. Oktober 2022, 09:38:31 CEST schrieb Takashi Iwai:
Thanks Takashi for detailed explanation Means: $ sudo rpm -e --nodeps kernel-firmware-qcom $ sudo zypper verify Is the better quick fix. But like I saw in the ticket, the fix will be rolled out anyway in Factory and some days later I think in Tumbleweed. Ulf

Am 07.10.22 um 11:36 schrieb Axel Braun:
I had the same problem. Checked folder /usr/lib/firmware/qcom/LENOVO/21BX and found, that it already existed. So I renamed it, told zypper to retry the installation and it worked. Afterwards I found that the installation has created a symbolic link with the same name as the folder. That's why it failed in the first try. Regards, Oliver -- PGP Public Key available at https://pgp.mit.edu/ Key fingerprint = 3264 280C 05B1 572F 3F0B 42B8 1E7B 2D9D 063B D507

Hi Axel, On Fri, 07 Oct 2022, 11:36:18 +0200, Axel Braun wrote:
yeah, I took a different way however: before running 'zypper dup' I just removed the offending directory manually: # rm -rf /usr/lib/firmware/qcom/LENOVO/21BX That directory is now a symbolic link to ../sc8280xp/LENOVO/21BX - looks to me like a bug in the install script of the new package, it should remove it in its %prein section. Cheers. l8er manfred

I just did "rm -rf /usr/lib/firmware/qcom/LENOVO/21BX" and select retry. The package was installed without a problem.

Am 07.10.22 um 11:36 schrieb Axel Braun:
Richard already acknowledged it: https://www.reddit.com/r/openSUSE/comments/xxcvb5/comment/irdrtyu/?context=3

Am Freitag, 7. Oktober 2022, 11:42:52 CEST schrieb Ben Greiner:
Richard already acknowledged it: https://www.reddit.com/r/openSUSE/comments/xxcvb5/comment/irdrtyu/?context=3
Is Reddit now the new factory list? If so, maybe I should subscribe there.....

Am Freitag, 7. Oktober 2022, 11:45:24 CEST schrieb Axel Braun:
Bug Reported at: https://bugzilla.opensuse.org/show_bug.cgi?id=1204103 At my side: $ sudo mv /usr/lib/firmware/qcom/LENOVO/21BX/ /usr/lib/firmware/qcom/LENOVO/21BX.sik solves the issue. Nice weekend Ub22
participants (14)
-
Axel Braun
-
Axel Braun
-
Ben Greiner
-
Berthold Höllmann
-
Fabian Vogt
-
Freek de Kruijf
-
Luna Jernberg
-
Manfred Hollstein
-
Oliver Schwabedissen
-
Robert Webb
-
Stratos Zolotas
-
Takashi Iwai
-
ub22@gmx.net
-
Ulf