{"id":12438,"date":"2025-06-22T09:08:22","date_gmt":"2025-06-22T16:08:22","guid":{"rendered":"https:\/\/jasonsblog.ddns.net\/?p=12438"},"modified":"2025-06-22T09:08:22","modified_gmt":"2025-06-22T16:08:22","slug":"arch-needs-manual-firmware-update-intervention","status":"publish","type":"post","link":"https:\/\/jasonsblog.ddns.net\/index.php\/2025\/06\/22\/arch-needs-manual-firmware-update-intervention\/","title":{"rendered":"Arch Needs Manual Firmware Update Intervention"},"content":{"rendered":"\n<p>If you got errors when updating this morning, you need this manual intervention to uninstall the existing firmware package to pave way for the new one. And we also got Linux Kernel 6.15.3 finally, as I&#8217;ve been running it on my Debian systems for a couple days with <a href=\"https:\/\/xanmod.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Xanmod<\/a>.<\/p>\n\n\n\n<p><a href=\"https:\/\/archlinux.org\/news\/linux-firmware-2025061312fe085f-5-upgrade-requires-manual-intervention\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/archlinux.org\/news\/linux-firmware-2025061312fe085f-5-upgrade-requires-manual-intervention\/<\/a><\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_ab6ed3fb-dba8-48d9-8467-f10a8542c1dc\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<h2 class=\"wp-block-heading\">linux-firmware &gt;= 20250613.12fe085f-5 upgrade requires manual intervention<\/h2>\n\n\n\n<p>2025-06-21 &#8211; Jan Alexander Steffens<\/p>\n\n\n\n<p>With <code>20250613.12fe085f-5<\/code>, we split our firmware into several vendor-focused packages. <code>linux-firmware<\/code> is now an empty package depending on our default set of firmware.<\/p>\n\n\n\n<p>Unfortunately, this coincided with upstream reorganizing the symlink layout of the NVIDIA firmware, resulting in a situation that Pacman cannot handle. When attempting to upgrade from <code>20250508.788aadc8-2<\/code> or earlier, you will see the following errors:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>linux-firmware-nvidia: \/usr\/lib\/firmware\/nvidia\/ad103 exists in filesystem\nlinux-firmware-nvidia: \/usr\/lib\/firmware\/nvidia\/ad104 exists in filesystem\nlinux-firmware-nvidia: \/usr\/lib\/firmware\/nvidia\/ad106 exists in filesystem\nlinux-firmware-nvidia: \/usr\/lib\/firmware\/nvidia\/ad107 exists in filesystem\n<\/code><\/pre>\n\n\n\n<p>To progress with the system upgrade, first remove <code>linux-firmware<\/code>, then reinstall it as part of the upgrade:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># pacman -Rdd linux-firmware\n# pacman -Syu linux-firmware\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>If you got errors when updating this morning, you need this manual intervention to uninstall the existing firmware package to pave way for the new one. And we also got Linux Kernel 6.15.3 finally, as I&#8217;ve been running it on my Debian systems for a couple days with Xanmod. https:\/\/archlinux.org\/news\/linux-firmware-2025061312fe085f-5-upgrade-requires-manual-intervention\/ linux-firmware &gt;= 20250613.12fe085f-5 upgrade requires [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-12438","post","type-post","status-publish","format-standard","hentry","category-tech"],"blocksy_meta":[],"featured_image_src":null,"author_info":{"display_name":"Jason","author_link":"https:\/\/jasonsblog.ddns.net\/index.php\/author\/jturning\/"},"_links":{"self":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/12438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=12438"}],"version-history":[{"count":1,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/12438\/revisions"}],"predecessor-version":[{"id":12439,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/12438\/revisions\/12439"}],"wp:attachment":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=12438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/categories?post=12438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/tags?post=12438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}