How to get webcam working from my MacBook Pro on KDE

I installed openSUSE TW KDE desktop on my MacBook Pro, but the webcam doesn’t get recognized.

How can I get it to work?

@devguy Hi, you likely need the firmware extracted from the MacOS package. Check the output from journalctl -b to see if that’s what it’s looking for.

@devguy also have a read here https://forums.opensuse.org/t/2017-mbp-cant-get-webcam-to-work/152344

I’m not sure what you mean extracted or how to do this?

Also since I blew away apple partition, I guess I would have to reinstall it on an external SSD to boot off from and then extract? Still what is the process.

@devguy No, you should be able to download it, what version MacBook Pro?

I have the mid 2015 Intel based MacBook Pro

@malcolmlewis any idea where I can download working drivers for TW?

@devguy did you check the lsusb or journalctl -b output to identify the camera in use?

If it’s iSight, then google on “AppleUSBVideoSupport+download” should get you some hits as to possible locations…

I ran across the same issue last summer. I found a driver here GitHub - patjak/facetimehd: Reverse engineered Linux driver for the FacetimeHD (Broadcom 1570) PCIe webcam, but I never actually tried it

I tired both, but nothing comes up. According to this page

https://support.apple.com/en-gb/111955

I have a “720p FaceTime HD camera”.

I did a search using zipper and came across this

S | Name                   | Summary                                          | Type
--+------------------------+--------------------------------------------------+--------
  | facetimehd-firmware    | FacetimeHD firmware download and extraction tool | package
  | facetimehd-kmp-default | Kernel driver for the Apple FacetimeHD webcams   | package

Install both, but webcam is not detected when I try to do a web cam test using the browser.

@devguy anything in the journal output? Maybe run journalctl -f in a terminal and try your testing to see if any clues.

Also check if the kmp has loaded… lsmod | grep facetimehd

Thanks @6m-uTnj, I’ll might give this a try if I can’t find a prebuilt working package.

@devguy that is what you installed…

1 Like

@malcolmlewis it looks like the facetime module is loaded

$ lsmod|grep facetime
facetimehd            139264  0
videobuf2_dma_sg       20480  1 facetimehd
videobuf2_v4l2         45056  1 facetimehd
videodev              397312  2 videobuf2_v4l2,facetimehd
videobuf2_common       90112  4 videobuf2_v4l2,facetimehd,videobuf2_dma_sg,videobuf2_memops

When I start Brave and try to start a video call, journalctl only shows:

Jun 10 23:37:06 mac systemd[1689]: Started Brave Web Browser - Web Browser.
Jun 10 23:37:06 mac brave-browser-stable[3820]: MESA-INTEL: warning: Haswell Vulkan support is incomplete
Jun 10 23:37:06 mac brave-browser-stable[3820]: failed to open /usr/lib64/dri/hybrid_drv_video.so
Jun 10 23:37:07 mac brave-browser-stable[3820]: [3821:3821:0610/233707.435173:ERROR:sharing_service.cc(221)] Device registration failed with fatal error
Jun 10 23:37:19 mac kded6[1861]: Registering ":1.74/StatusNotifierItem" to system tray
Jun 10 23:37:24 mac kded6[1861]: Service  ":1.74" unregistered

lsusb doesn’t show any web cam

[Mon Jun 10 23:42:58][yadav@mac]:~
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05ac:8290 Apple, Inc. Bluetooth Host Controller
Bus 001 Device 003: ID 05ac:0274 Apple, Inc. Apple Internal Keyboard / Trackpad
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 05ac:8406 Apple, Inc. Internal Memory Card Reader

@devguy It’s likely a PCI device, check with /sbin/lspci -nnk

@malcolmlewis you’re correct. So what can I do to get the web cam to work. Any ideas?

04:00.0 Multimedia controller [0480]: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera [14e4:1570]
        Subsystem: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera [14e4:1570]
        Kernel modules: facetimehd
05:00.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
        Kernel driver in use: pcieport
06:00.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
        Kernel driver in use: pcieport
06:03.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
        Kernel driver in use: pcieport
06:04.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
        Kernel driver in use: pcieport
06:05.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
        Kernel driver in use: pcieport
06:06.0 PCI bridge [0604]: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013] [8086:156d]
        Kernel driver in use: pcieport
07:00.0 System peripheral [0880]: Intel Corporation DSL5520 Thunderbolt 2 NHI [Falcon Ridge 4C 2013] [8086:156c]
        Kernel driver in use: thunderbolt
        Kernel modules: thunderbolt

@devguy Hi, so that looks good, you need to have a read here https://github.com/patjak/facetimehd/wiki#known-issues

1 Like

Thank you @malcolmlewis, hopefully I can get this working.

Will give this a try after rebooting,

@malcolmlewis Known issues says “bdc_pci” module may be already loaded? but it’s not when I run:

@modprobe -r bdc_pci

Is there a way for me to load the FaceTime module or to check it’s loaded.

UPDATE: Found how to load the facetime moduel:

modprobe facetimehd

However the module is already loaded :frowning:

The only pci module I see loaded is this, not sure it might be causing the problem?

$ lsmod | grep pci
xhci_pci               24576  0
xhci_pci_renesas       24576  1 xhci_pci
xhci_hcd              389120  1 xhci_pci
usbcore               446464  9 xhci_hcd,usbhid,bcm5974,apple_mfi_fastcharge,usb_storage,brcmfmac,btusb,xhci_pci,uas