-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Documentation help proposed #17
Comments
Hi, the wiki is open for anyone to edit so please go ahead and add documentation there. You probably need to load a few modules before loading facetimehd:
It's possible you also need to unload a module that is for some odd reason is sharing the PCI ID with the webcam:
Hope that helps |
Thank you. It helps a lot. I'll add some generic instructions to get Linux installed, then the driver complied. I'll reinstall Fedora on my Mac to document the extra packages I pulled to get a working compile, then the modprobe order once I get it right. |
Hi guys, I'm a Web developer with a MacBook Pro 2013 and Linux installed, SM On Mon, Dec 21, 2015 at 10:08 PM, JPtheJP notifications@github.com wrote:
|
Hi saulm, Help greatly welcome. I am writing the English version of a Get Started for less technical users. I'll cover Fedora as I use it. I can translate to French but, well, first I have to make it work and will update the English version only up to this point. Test on Arch would be great. If we get someone working on Ubuntu we would have a decent coverage to start with. JP |
I am running debian so would be happy to try to do the documentation for that. |
I am running Arch and will try it too. Can help with docs. I have a problem though.... I entirely deleted OS X partition from my MBP and can't get to firmware as a result of that. Could anyone share it with me? |
I'm running Ubuntu 15.10 and I can test the driver, and like @slashrsm I also wiped all OSX partitions, so I can't extract the firmware using my own laptop. Also, is there a section in the docs on how to cleanly "uninstall" this driver? Asking because this is also my work computer :) |
I'd love to help with documentation, but I too don't have OS X installed. I personally don't know any dual-booting users either, and I don't think it's a common scenario at all, so maybe the main target should be extraction from the bootcamp zip (which would work universally) (see #14). |
I'm arch user, |
Hi, We'll figure out a way to get you, guys without OSX partition, the firmware dump. mandx, it is great to have some help on Ubuntu. I would advise to start testing out of an USB based installation if you can (check the Getting Started wiki), because work computer & in-progress driver testing might be problematic, mostly if testing lead to computer freeze. That being said, the compiled driver is a kernel module we manually load for testing. It should not load at boot by default, and can be deleted easily. I have to document, in the Getting Started Wiki page, what goes where when you compile the driver & how to remove it. hobarrera, yes there is a thread about what is the best way to extract the firmware out of the Windows boot-camp drivers. If someone has the knowledge to work on this, help is appreciated (I don't have such knowledge). The easy way so far is a dump out of a working OS X, plus see my first comment. gianlucapettinello, can you provide the link? Guys, add an entry in the Getting Started Wiki for the distro you want to document, so we know what is covered. Even if it is just the main title (Getting Started with XXX) and a "coming soon" line below. |
about translations: I'd suggest not to document in other languages than English, despites the good intentions and benefits, it's common to find outdated information after a few months and on this case when dealing with firmwares and HW, may increase the risk to damage something if the instructions are not 100% aligned. |
Hi edsiper. I agree, the focus now is to have documentation about how to compile and use the driver on major Linux distributions, all in English. Once the driver matures and we have a stable core documentation in English we can talk about translation. But good will is good will, we need it all! |
JPtheJP |
Hi gianlucapettinello, no we don't need the EFI firmware but the FaceTime Camera firmware dump, that is either in the Windows driver (thus the #14 issue, we don't know yet how to do it), or from the OS X driver (in 10.11.2, it is located in /System/Library/Extensions/AppleCameraInterface.kext/Contents/MacOS/AppleCameraInterface) and you dump the firmware with the extract_from_osx.sh script. |
Hi JptheJP, ok I will get it from the external hd installation when I have it on my hands (Jan 3rd 2016). Once I have dumped the firmware.bin, what I have to do next? |
Hi gianlucapettinello, we need patjak's input here. I am seeing the same as yourself: module compiled, loaded with dependancies and I see no /dev/video0. patjak, the question is: where/when do we need the firmware.bin file? I assumed it needed to be in the firmware subfolder at the time of compile, but is it so? Or has it to be placed somewhere & invoked another way? Looking at fthd_isp.c line 150: gianlucapettinello, I am pretty 100% sure that without the camera firmware, you cannot get the camera to work, so obviously you miss the firmware file, and we miss the proper way to use it :-) |
Hi all, the firmware goes in |
Hi patjak, Success!! So yes it helps. A lot. I had dmesg errors about missing firmware.bin file before. Now dmesg complains about a missing Llooking at More details:
Now that I copied the firmware at proper location: /lib/firmware/facetimehd/firmware.bin I am making progresses and see load errors with dmesg:
Looks like I miss a "1871_01XX.dat" firmware file. |
firmware.bin is required but the .dat files are optional. They are calibration files for the sensor and help to improve image quality. Did you try the webcam? Try |
Can you share firmware.bin? I'm impatient... of course if it doesn't violate any rule. Good work in any case! |
Sorry the license prevents us from doing that. |
I used streamer, which is part of the xawtv package (installed with all dependancies). I'll try mplayer next. I have to unload the facetimehd (modprobe -r facetimehd) then reload it (modprobe facetimehd) between EACH try. The camera initiates only ONCE, then I have to cycle the module. I could get a picture, and I tried a 5 seconds video, but only got like 3 frames. Hey, considering we're early to the party, it is great!!! |
Mplayer installed. mplayer tv:// just works well. Stream is clear, the video is perfectly usable. With mplayer, I can start mplayer, quit mplayer and restart it: the camera initiate and turns off properly, I don't have to unload/reload the facetimehd module. I could suspend the Mac, restart it. Then the /dev/video0 device was gone. I simply unloaded the facetimehd module, then re-loaded it, and it was working again. Congratulation to the developers, it is working! And now back to the less exciting task of daily using it to see how well it goes... |
Hi, I can confirm that the driver works quite well on my Macbook Pro (Retina 13", Early 2015) which is running Arch Linux. I compiled the driver, extracted the firmware from OS X (El Capitan), installed both the module and the firmware in Arch Linux, unloaded the bdc_pci module and modprobed the facetimehd module. The colours of the image are not very natural: the blue channel is really dark compared to the green and red ones. I also can't control the frame resolution or the FPS but hey, it actually works! And using qv4l2 I got a stable and smooth video stream of 1280x720 pixels at 30 FPS! So, congratulation to the devs! PS: I've created also a simple PKGBUILD (you can find it here ) for who want to try the driver under Arch, but you still need the firmware, though. |
mauritiusdadd, similar to my pkgbuild. Only remark make it independent of the kernel version. It is enough that you use uname -r instead of your kernel version. In additions you could keep the extraction of the firmware optional as it is not necessary to compile the module. Do you want me to work on your PKGBUILD? Thanks |
mauritiusdadd, when I tested I had natural light and it looked good. Now it's dark and with light bulbs I see the image is less great, and color a bit off, indeed. Still, it is WORKING!!!! |
|
Moved my Linux USB stick to the Retina MacBook Pro 15" (mid-2012, first gen) and booted it. The camera is working in there too :-) That sounds like a very good start. |
I was able to compile and load module on Arch with 4.2.5-1-ARCH kernel. I located module file in /lib/modules/4.2.5-1-ARCH/extramodules, ran depmod and was able to load it using @patjak's instructions. It works like a charm. I tried it with mplayer and with Google Hangouts in Chromium. I am willing to help with documentation for Arch. Thanks to all the devs, you are great. |
Yeah... Figured out shortly after I posted a comment. Thanks! |
I'd be happy to help with the Arch Linux part if you think it can be useful @slashrsm , or at least I can provide another machine to test it :) |
@franciscoj I added Arch section to the wiki. Feel free to try those steps and let me know if you notice any problems: https://github.com/patjak/bcwc_pcie/wiki/Get-Started#get-started-on-arch EDIT: It would be optimal if we'd create an official AUR package on aur.archlinux.org. Firmware part is most annoying IMO. If we'd figure out a way to streamline this process would be even better. |
I have the driver running on MacBook Air 11.6" on openSUSE Leap 42.1. It works well with mplayer. The installation of the driver on openSUSE Leap does not really differ from other distros, but I'd be happy to add a section for openSUSE to the wiki. |
beyerle, please do! :-) |
It's not working me on ArchLinux. Not sure if I did something wrong, or maybe there's some hardware deviation (most likely the former). I used this PKGBUILD here to build/install it, then
All I see in dmesg is:
Can another Arch user confirm if this works for them? |
Hi hobarrera. It looks like you load the v4l2-common and the two videobuf2-xxx modules, thus the entries you see in dmesg. It looks like you don't even load the facetimehd module. Can you check with lsmod what ends up being loaded and not? Then retry modprobe facetimehd or even insmod facetimehd (all dependancies should be there) and see if something shows up in dmesg. |
Actually, it did get inserted fine:
|
Hobarrera, did you modprobe -r bdc_pci? |
hobarrera, do you have a /dev/video0 entry? If not, the module can be loaded but failed to initialize (as when you don't have the firmware.bin). In fact, do you have the FacetimeHD firmware dump, firmware.bin file? |
Oops, nope. That did it. EDIT: I've added a note on this to the getting started guide. |
I've gotten it working on ubuntu 14.04 with a little bit of effort. The driver doesn't compile against the default 14.04 kernel (3.13) but I upgraded to the linux-image-generic-lts-vivid kernel (3.19) which is compatible. I didn't have an OS X partition, so I followed these instructions to install OS X onto an external drive to extract the firmware binary: https://support.apple.com/en-us/HT202796. |
Hi mauritiusdadd, I proposed in your git the mods to the PKGBUILD and install file that allow to compile also for kernel 4.2.5-1 and other kernel sources |
@gianlucapettinello : I'm sorry, but I don't see any comment/pull request in any of my github repository, can you elaborate on how/what/where you proposed? Also, having a single PKGBUILD for multiple kernels is Very Bad™: the ideal wold be having a separate package providing the firmware and then as many packages for the kernel module as may kernel versions exist. In fact, the module must be compiled using the kernel headers and the configuration of the kernel it should be installed in. |
This is pretty much how any other kernel-module-package works (see: broadcom-wl). It builds for the currently installed kernel by default, regardless of version.
I agree completely. I'd love to see bcwc-pcie-firmware on the AUR, and have this driver (all variants) depend on that. Especially since obtaining the firmware for every rebuild may not be feasible (and keeping expecting users to keep it around indefinitely is kind of a pain). |
I've published an ubuntu dkms package to a ppa in case it is useful for anyone else: https://launchpad.net/~psanford/+archive/ubuntu/facetimehd/ |
woohoo, it works on debian testing with a macbookpro retina 15" |
@psanford can you update for yakkety? |
@psanford Thanks for the PPA. It would be great if the PPA was updated automatically for new releases (I'm doing this with travis for my Haskell packages and it works pretty well). This might get more people to use the driver and, hopefully, motivate some to work on smoothing out the rough edges :) |
@psanford Is there a chance to update this, so that we have the latest version and the driver is re-installed every time there's a new kernel update? |
I don't have this hardware anymore so I'm not able to maintain the ppa. However if you install the driver via dkms it should automatically build new versions for any new kernels you install. |
I realize this is an older issue, but I can not get this to work using Cheese or mplayer. I had an ssl issue during compile, found the workaround for that, then I still can't get it to work. [root@fedora bcwc_pcie]# lsmod | grep facetimehd [root@fedora bcwc_pcie]# dmesg | grep facetimehd [root@fedora facetimehd]# ls /lib/firmware/facetimehd/ What am I missing? if someone can help me fix, I can update the docs! ty |
@BenjaminWLarson I'm no expert here, so I might be completely off, but this line looks relevant:
Sounds like you drivers are built for kernel 6.7.7, but you're running 6.7.10. You probably need to rebuild (you need to rebuild them on each kernel upgrade, ideally with something like DKMS. |
@WhyNotHugo - That sounds right... tried to recompile and it doesn't look right: [root@fedora bcwc_pcie]# make clean tried to follow the directions on that link and got an error missing a symbolic link [root@fedora bcwc_pcie]# dkms status I feel like I'm likely close, but no dice |
Okay, I'm in Google meet and it's working.... so that's interesting - guess I should try Zoom next. Will do and report my findings.... |
Yep works for Zoom too - so I guess it's good enough for video conferencing, which was my main goal. |
If anyone does have any ideas though I'm still curious. Thanks in advance! |
Hi,
I am not a developper but I'd be willing to help. I would like to write some documentation to help less technical users to install the driver on their Mac. I have a MacBook Air mid-2013 that I can use.
So far I managed to dump the firmware of my FaceTime under OSX then go back to linux and compile the module (on Fedora 23). I am now battling mod probe errors, module is not loading.
Let me know.
The text was updated successfully, but these errors were encountered: