linux-firmware-raspi2 conflicts with linux-firmware over brcmfmac43430-sdio.bin

Bug #1691729 reported by Sebastian Unger
72
This bug affects 13 people
Affects Status Importance Assigned to Milestone
linux-firmware-raspi2 (Ubuntu)
Fix Released
Undecided
Ryan Finnie

Bug Description

I just tried to do a fresh install of xenial on a raspberry pi (I'm not using a pre-made image but rather create a full install from scratch using debootstrap etc) and it failed because it couldn't install linux-firmware-raspi2 (1.20161020-0ubuntu1~0.2~rpi3) because the file /lib/firmware/brcm/brcmfmac43430-sdio.bin was already owned by linux-firmware 1.157.10.

This caused me to go back to my already installed and running RPI and sure enough, it was stuck on linux-firmware 1.157.8.

linux-firmware-raspi2 should probably not include this file if it already is in linux-firmware. Alternatively it should use dpkg-divert to divert linux-firmware's version of the file out of the way.

Revision history for this message
Sebastian Unger (sebunger44) wrote :

Actually it wasn't stuck. It has now tried to install 1.157.10 and failed as well.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in linux-firmware-raspi2 (Ubuntu):
status: New → Confirmed
Revision history for this message
hackeron (hackeron) wrote :

Any solution to this? - Experiencing the same problem:

# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  linux-firmware
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
18 not fully installed or removed.
Need to get 0 B/38.7 MB of archives.
After this operation, 5624 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
(Reading database ... 105518 files and directories currently installed.)
Preparing to unpack .../linux-firmware_1.157.10_all.deb ...
Unpacking linux-firmware (1.157.10) over (1.157.8) ...
dpkg: error processing archive /var/cache/apt/archives/linux-firmware_1.157.10_all.deb (--unpack):
 trying to overwrite '/lib/firmware/brcm/brcmfmac43430-sdio.bin', which is also in package linux-firmware-raspi2 1.20161020-0ubuntu1~0.2~rpi3
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)

Revision history for this message
Sebastian Unger (sebunger44) wrote :

For every-body who has this issue, the following command works around it until the package maintainers find a solution:

sudo dpkg-divert --divert /lib/firmware/brcm/brcmfmac43430-sdio-2.bin --package linux-firmware-raspi2 --rename --add /lib/firmware/brcm/brcmfmac43430-sdio.bin

Please note that this will set up a diversion for the conflicting file in your system and may have to be un-done once a permanent solution is found. If the chosen solution is to remove the file from linux-firmware and leave it in linux-firmware-raspi2, then the file /lib/firmware/brcm/brcmfmac43430-sdio.bin will end up missing in your system. In this case you can remove the diversion by replacing --add with --remove in the above command.

Revision history for this message
hackeron (hackeron) wrote :

Thank you for the workaround, that's very helpful :)

Revision history for this message
Avio (aviopene) wrote :

Thanks! The diversion worked for me as well.

Revision history for this message
Paolo Pisati (p-pisati) wrote :

The linux-firmware-raspi2 1.20161020-0ubuntu1~0.2~rpi3 is not the same linux-firmware-raspi2 that you find in the archive: it is actually a package from a PPA - you should contact the author and work out the problem with him.

https://launchpad.net/~ubuntu-raspi2/+archive/ubuntu/ppa-rpi3/+packages

Changed in linux-firmware-raspi2 (Ubuntu):
assignee: nobody → Ryan Finnie (fo0bar)
Revision history for this message
Neil Bryan (cambesol) wrote :

I need a headless, minimal install of Ubuntu to run on a Raspberry Pi 3. I followed the instructions here:

https://medium.com/a-swift-misadventure/how-to-setup-your-raspberry-pi-2-3-with-ubuntu-16-04-without-cables-headlessly-9e3eaad32c01

and initially chose the most recent of the Ubuntu Server Classic images suggested:

http://cdimage.ubuntu.com/ubuntu/releases/16.04/release/ubuntu-16.04.2-preinstalled-server-armhf+raspi2.img.xz

Unfortunately, this failed to boot and I have the impression it got stuck during the boot process
as the current consumption remains static on my PSU at ~283mA, whereas on a running Pi, it varies during the boot-phase.

I tried the next suggested image:

http://www.finnie.org/software/raspberrypi/ubuntu-rpi3/ubuntu-16.04-preinstalled-server-armhf+raspi3.img.xz

This indeed booted and I ssh'd into the board to continue the setup. I ran:

sudo apt-get update

followed by:

sudo apt-get upgrade

This fails with the following:

Preparing to unpack .../linux-firmware_1.157.11_all.deb ...
Unpacking linux-firmware (1.157.11) over (1.157) ...
dpkg: error processing archive /var/cache/apt/archives/linux-firmware_1.157.11_all.deb (--unpack):
 trying to overwrite '/lib/firmware/brcm/brcmfmac43430-sdio.bin', which is also in package linux-firmware-raspi2 1.20160503+6832d9a-0ubuntu1~rpi1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)

Followed by:

Errors were encountered while processing:
 /var/cache/apt/archives/linux-firmware_1.157.11_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

I expect that this is the same problem described by this bug report, but with a more recent version of linux-firmware.

I have now installed Ubuntu Mate 16.04 so that I can continue working, but it comes with LibreOffice, Firefox etc, etc, which I really have no use for. The purpose of this comment is to confirm that the issue persists, and to inquire if there is any visibility as to when the package may be fixed. Thank you all for you efforts. Neil.

Revision history for this message
bitinerant (bitinerant) wrote :

I had this very same issue when upgrading a Pi 2 image of Ubuntu Server 16.04.3 to Pi 3. The directions are here: https://wiki.ubuntu.com/ARM/RaspberryPi#line-105

The work-around in comment #4 worked well and is very much appreciated.

Revision history for this message
cgtobi (cgtobi) wrote :

This is still the case with linux-firmware 1.157.14.

Preparing to unpack .../linux-firmware_1.157.14_all.deb ...
Unpacking linux-firmware (1.157.14) over (1.157.8) ...
dpkg: error processing archive /var/cache/apt/archives/linux-firmware_1.157.14_all.deb (--unpack):
 trying to overwrite '/lib/firmware/brcm/brcmfmac43430-sdio.bin', which is also in package linux-firmware-raspi2 1.20161020-0ubuntu1~0.2~rpi3
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)

Revision history for this message
Jim Burd (jimburd) wrote :

The workaround (in Comment #4) is not working for me. I'm running on a Raspberry Pi 3 Model B. I've been working on this for several days and trying different variations in the order I do things (rebooting or not after upgrade, etc.), and eventually I always end up with a SD image that will not boot. Which makes sense, I guess, since this involves a firmware image.

Here's what I get when I try the workaround:

  ubuntu@ubuntu:~$ sudo dpkg-divert --divert /lib/firmware/brcm/brcmfmac43430-sdio-2.bin --package linux-firmware-raspi2 --rename --add /lib/firmware/brcm/brcmfmac43430-sdio.bin
  sudo: unable to resolve host ubuntu
  Adding 'diversion of /lib/firmware/brcm/brcmfmac43430-sdio.bin to /lib/firmware/brcm/brcmfmac43430-sdio-2.bin by linux-firmware-raspi2'
  Ignoring request to rename file '/lib/firmware/brcm/brcmfmac43430-sdio.bin' owned by diverting package 'linux-firmware-raspi2'

Things still work OK at that point, and I can reboot. But the very next time I run 'sudo apt-get upgrade' the process runs a long time (updating all kinds of things that were not being upgraded before I typed in the workaround), and when it is finally done, the Pi will no longer boot up after a reboot.

I'm guessing that the reason it fails for me is that "Ignoring request to rename file" message (which I've not seen anyone else mention). But I have no idea what to do about it.

Revision history for this message
Blake Hannaford (blake-hannaford) wrote :

although the "diversion" workaround results in a nice-looking upgrade output. The system fails to reboot for me as well.

Revision history for this message
Jon David Sawyer (badquanta) wrote :

I can confirm all of what Blake & Jim said, just tried it too. Raspberry Pi 3, Mainline Distro. Pi did not come back from reboot. Re-imaging now. May "freeze" these packages as a work around and not attempt a dist-upgrade.

Revision history for this message
Jon David Sawyer (badquanta) wrote :

armbian-config -> System -> Freeze

Revision history for this message
Blake Hannaford (blake-hannaford) wrote :

Jon,
    Does armbian-config work on ubuntu 16.04? Does that command freeze all SW or allow you to specify?
THX

Revision history for this message
Slawomir Gajowniczek (imkebe) wrote :

Same for me. Doesn't boot. Need to re-imaging.

Revision history for this message
Dave Jones (waveform) wrote :

The current versions of linux-firmware-raspi2 for bionic and eoan (1.20190215-0ubuntu0.18.04.1 and 1.20190819-0ubuntu2 respectively) shouldn't conflict in this manner; neither include the -sdio.bin files, just the configuration text files and related .clm-blob files. Is anyone still seeing this issue with the latest versions?

Revision history for this message
Chris E (cbz) wrote :

Getting this in 18.04.5

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic

The following packages will be upgraded:
  linux-firmware-raspi2
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
189 not fully installed or removed.
Need to get 0 B/5,200 kB of archives.
After this operation, 290 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 169253 files and directories currently installed.)
Preparing to unpack .../linux-firmware-raspi2_1.20200601+arm64-0ubuntu2~18.04.1_armhf.deb ...
Leaving 'diversion of /lib/firmware/brcm/brcmfmac43455-sdio.bin to /lib/firmware/brcm/brcmfmac43455-sdio.bin.distrib by linux-firmware-raspi2'
Leaving 'diversion of /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt to /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt.distrib by linux-firmware-raspi2'
Leaving 'diversion of /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt to /lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt.distrib by linux-firmware-raspi2'
dpkg-divert: error: 'diversion of /lib/firmware/brcm/brcmfmac43430-sdio.bin to /lib/firmware/brcm/brcmfmac43430-sdio.bin.distrib by linux-firmware-raspi2' clashes with 'diversion of /lib/firmware/brcm/brcmfmac43430-sdio.bin to /lib/firmware/brcm/brcmfmac43430-sdio-2.bin by linux-firmware-raspi2'
dpkg: error processing archive /var/cache/apt/archives/linux-firmware-raspi2_1.20200601+arm64-0ubuntu2~18.04.1_armhf.deb (--unpack):
 new linux-firmware-raspi2 package pre-installation script subprocess returned error exit status 2
Removing 'diversion of /lib/firmware/brcm/brcmfmac43430-sdio.bin to /lib/firmware/brcm/brcmfmac43430-sdio-2.bin by linux-firmware-raspi2'
dpkg-divert: error: rename involves overwriting '/lib/firmware/brcm/brcmfmac43430-sdio.bin' with
  different file '/lib/firmware/brcm/brcmfmac43430-sdio-2.bin', not allowed
dpkg: error while cleaning up:
 new linux-firmware-raspi2 package post-removal script subprocess returned error exit status 2
Errors were encountered while processing:
 /var/cache/apt/archives/linux-firmware-raspi2_1.20200601+arm64-0ubuntu2~18.04.1_armhf.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Revision history for this message
Dave Jones (waveform) wrote :

This issue was fixed in 4-0ubuntu0~18.04.1

Changed in linux-firmware-raspi2 (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.