Chromecast Fails to Work in Chromium or Chrome on F31

I have installed on a work laptop F31 XFCE spin. We use this computer to do presentations, normally plugged into a projector, but sometimes we cast a Google Presentation to a TV with a Chromecast. I know the Chromecast is working fine. A Windows 10 computer running Google Chrome was able to cast to the Chromecast/TV combo just fine. Both computers are connected to the same network interface as the Chromecast as well.

My F31 XFCE computer has both Chromium and Chrome installed. Neither of the browsers see the Chromecast device on the network. When I attempt to “cast” to a device it searches and comes back saying “No devices found”. I installed Chromium from the F31 repos, and I installed Chrome from the Google download rpm that they provide so I know I’m using the lastest stable versions.

Are there some security settings in F31 that I might need to adjust to make this work?

1 Like

I don’t experience this on chrome, but on chromium-freeworld when using F31 with gnome.
There is an open source project ‘fx cast’ which aims to bring chromecast to firefox.
I know, this doesn’t seem to be a proper solution, but might be still useful to others.

May I ask how you installed Chrome?

  • My Chrome install seems to have the same issue as my Chromium install from the default F31 repos.

Also it sounds like casting fails when you use chromium-freeworld from the RPMFusion repos, is that correct?

  • If that is correct it wouldn’t help to uninstall chromium from the default F31 repos and reinstall from the RPMFusion repos.

This same machine had Lubuntu 19.04 on it, with Chromium installed, and casting worked great. I switched it over to F31 because I’m on Fedora at home and have become more familiar with managing Fedora systems. I don’t know what Fedora could be doing differently from the Ubuntu when it comes to Chromium or Chrome and casting, that is why I wondered if there was a Fedora security setting that might be getting in the way.

Ok, an update. I decided to try Chrome again after @locke had mentioned that it worked. I had to boot up the computer (I did not reboot after installing Chrome earlier). When I booted up:

  1. Chrome (installed from the Google provided rpm on their Chrome site) worked as expected. It connected to the Chromecast, and I was able to cast a Google Slides presentation to the TV.

  2. Chromium still failed to find the Chromecast, even though Chrome had just connected to it. Then when I went back into Chrome its casting ability was now broke again. It could no longer find the Chromecast after Chromium had attempted to find it and failed. After rebooting Chrome once again could connect to the Chromecast.

  • My current work around is this. I uninstalled Chromium from the standard F31 repos, and I will just run Chrome on this work computer.
  • I’m thinking that some library or proprietary bit was removed from the standard F31 repo version of Chromium that is needed for casting to work with a Chromecast. I guessing Ubuntu has chosen to leave that library or bit in their built version of Chromium in their repos and that is why casting works fine from the Ubuntu family with Chromium or Chrome.
  • I’m not sure why attempting to cast from Chromium in F31 then breaks Chrome’s casting ability until a reboot.

If others can verify this behavior, perhaps I will file a bug with the Fedora devs to see if there is an easy fix.

1 Like

I decided to file a bug report to get the eyes of the developers on this issue since it sounds like both @locke and I have the same issue.

https://bugzilla.redhat.com/show_bug.cgi?id=1769970

2 Likes

This seems to be related to mDNS discovery.
I recommend to replace the default resolver with systemd-resolved and nss-resolve which should work better for mDNS, especially in the dual-stack mode:

sudo systemctl --now enable systemd-resolved.service
sudo ln -r -s -f /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
sudo sed -i -r -e "s/^(hosts:\s*).*/\1files mymachines resolve [!UNAVAIL=return] dns myhostname/" /etc/nsswitch.conf