[root@dywmac src]# git clone https://github.com/patjak/bcwc_pcie/
[root@dywmac src]# rpm -ivh http://dy.csie.cyut.edu.tw/kernel/ltml/RPMS/\ kernel-ml-devel-4.3.3-1.el6.elrepo.x86_64.rpm
[root@dywmac src]# cd /usr/src/bcwc_pcie [root@dywmac bcwc_pcie]# make make -C /lib/modules/4.3.3-1.el6.elrepo.x86_64/build M=/usr/src/bcwc_pcie modules make[1]: Entering directory `/usr/src/kernels/4.3.3-1.el6.elrepo.x86_64' CC [M] /usr/src/bcwc_pcie/fthd_ddr.o CC [M] /usr/src/bcwc_pcie/fthd_hw.o CC [M] /usr/src/bcwc_pcie/fthd_drv.o CC [M] /usr/src/bcwc_pcie/fthd_ringbuf.o CC [M] /usr/src/bcwc_pcie/fthd_isp.o /usr/src/bcwc_pcie/fthd_isp.c: In function ‘fthd_isp_cmd_channel_camera_config’: /usr/src/bcwc_pcie/fthd_isp.c:662:2: warning: ‘ret’ may be used uninitialized in this function [-Wmaybe-uninitialized] return ret; ^ CC [M] /usr/src/bcwc_pcie/fthd_v4l2.o /usr/src/bcwc_pcie/fthd_v4l2.c:298:2: warning: initialization from incompatible pointer type [enabled by default] .queue_setup = fthd_buffer_queue_setup, ^ /usr/src/bcwc_pcie/fthd_v4l2.c:298:2: warning: (near initialization for ‘vb2_queue_ops.queue_setup’) [enabled by default] CC [M] /usr/src/bcwc_pcie/fthd_buffer.o CC [M] /usr/src/bcwc_pcie/fthd_debugfs.o LD [M] /usr/src/bcwc_pcie/facetimehd.o Building modules, stage 2. MODPOST 1 modules WARNING: "__fentry__" [/usr/src/bcwc_pcie/facetimehd.ko] undefined! CC /usr/src/bcwc_pcie/facetimehd.mod.o LD [M] /usr/src/bcwc_pcie/facetimehd.ko make[1]: Leaving directory `/usr/src/kernels/4.3.3-1.el6.elrepo.x86_64'
[root@dywmac RPMS]# rpm -ivh kernel-ml-devel-4.4.5-1.el6.elrepo.x86_64.rpm
[root@dywmac RPMS]# cd /usr/src/bcwc_pcie/ [root@dywmac bcwc_pcie]# make make -C /lib/modules/4.4.5-1.el6.elrepo.x86_64/build M=/usr/src/bcwc_pcie modules make[1]: Entering directory `/usr/src/kernels/4.4.5-1.el6.elrepo.x86_64' CC [M] /usr/src/bcwc_pcie/fthd_ddr.o CC [M] /usr/src/bcwc_pcie/fthd_hw.o CC [M] /usr/src/bcwc_pcie/fthd_drv.o CC [M] /usr/src/bcwc_pcie/fthd_ringbuf.o CC [M] /usr/src/bcwc_pcie/fthd_isp.o /usr/src/bcwc_pcie/fthd_isp.c: In function ‘fthd_isp_cmd_channel_camera_config’: /usr/src/bcwc_pcie/fthd_isp.c:662:2: warning: ‘ret’ may be used uninitialized in this function [-Wmaybe-uninitialized] return ret; ^ CC [M] /usr/src/bcwc_pcie/fthd_v4l2.o CC [M] /usr/src/bcwc_pcie/fthd_buffer.o CC [M] /usr/src/bcwc_pcie/fthd_debugfs.o LD [M] /usr/src/bcwc_pcie/facetimehd.o Building modules, stage 2. MODPOST 1 modules WARNING: "__fentry__" [/usr/src/bcwc_pcie/facetimehd.ko] undefined! CC /usr/src/bcwc_pcie/facetimehd.mod.o LD [M] /usr/src/bcwc_pcie/facetimehd.ko make[1]: Leaving directory `/usr/src/kernels/4.4.5-1.el6.elrepo.x86_64'
[root@dywmac bcwc_pcie]# make install make -C /lib/modules/4.4.5-1.el6.elrepo.x86_64/build M=/usr/src/bcwc_pcie modules_install make[1]: Entering directory `/usr/src/kernels/4.4.5-1.el6.elrepo.x86_64' INSTALL /usr/src/bcwc_pcie/facetimehd.ko DEPMOD 4.4.5-1.el6.elrepo.x86_64 WARNING: /lib/modules/4.4.5-1.el6.elrepo.x86_64/extra/facetimehd.ko needs unknown symbol __fentry__ make[1]: Leaving directory `/usr/src/kernels/4.4.5-1.el6.elrepo.x86_64'
[root@dywmac bcwc_pcie]# modprobe facetimehd FATAL: Error inserting facetimehd (/lib/modules/4.4.5-1.el6.elrepo.x86_64/extra/facetimehd.ko): Unknown symbol in module, or unknown parameter (see dmesg)
[root@dywmac bcwc_pcie]# yum downgrade gcc-* libstdc++* cpp libgomp
__fentry__ 相關的錯誤訊息。
[root@dywmac bcwc_pcie]# make make -C /lib/modules/4.4.5-1.el6.elrepo.x86_64/build M=/usr/src/bcwc_pcie modules make[1]: Entering directory `/usr/src/kernels/4.4.5-1.el6.elrepo.x86_64' CC [M] /usr/src/bcwc_pcie/fthd_ddr.o CC [M] /usr/src/bcwc_pcie/fthd_hw.o CC [M] /usr/src/bcwc_pcie/fthd_drv.o CC [M] /usr/src/bcwc_pcie/fthd_ringbuf.o CC [M] /usr/src/bcwc_pcie/fthd_isp.o /usr/src/bcwc_pcie/fthd_isp.c: In function ‘fthd_isp_cmd_channel_camera_config’: /usr/src/bcwc_pcie/fthd_isp.c:647: warning: ‘ret’ may be used uninitialized in this function CC [M] /usr/src/bcwc_pcie/fthd_v4l2.o CC [M] /usr/src/bcwc_pcie/fthd_buffer.o CC [M] /usr/src/bcwc_pcie/fthd_debugfs.o LD [M] /usr/src/bcwc_pcie/facetimehd.o Building modules, stage 2. MODPOST 1 modules CC /usr/src/bcwc_pcie/facetimehd.mod.o LD [M] /usr/src/bcwc_pcie/facetimehd.ko make[1]: Leaving directory `/usr/src/kernels/4.4.5-1.el6.elrepo.x86_64'
[root@dywmac bcwc_pcie]# make install make -C /lib/modules/4.4.5-1.el6.elrepo.x86_64/build M=/usr/src/bcwc_pcie modules_install make[1]: Entering directory `/usr/src/kernels/4.4.5-1.el6.elrepo.x86_64' INSTALL /usr/src/bcwc_pcie/facetimehd.ko DEPMOD 4.4.5-1.el6.elrepo.x86_64 make[1]: Leaving directory `/usr/src/kernels/4.4.5-1.el6.elrepo.x86_64'
[root@dywmac bcwc_pcie]# modprobe facetimehd [root@dywmac bcwc_pcie]# lsmod | grep facetimehd facetimehd 69632 0 videobuf2_v4l2 28672 2 uvcvideo,facetimehd videobuf2_dma_sg 20480 1 facetimehd videobuf2_core 36864 3 uvcvideo,facetimehd,videobuf2_v4l2 videodev 180224 5 uvcvideo,facetimehd,videobuf2_v4l2,v4l2_common,videobuf2_core
[root@dywmac ~]# tail /var/log/messages Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: VDL set to: coarse=0x10008, fine=0x1011a Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Virtual VTT enabled Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: S2 DRAM memory address: 0x22159559 Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Rewrite DDR mode registers succeeded Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Full memory verification succeeded! (0) Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Direct firmware load for facetimehd/firmware.bin failed with error -2 Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Falling back to user helper Sep 21 08:52:18 localhost kernel: facetimehd: probe of 0000:02:00.0 failed with error -11 Sep 21 08:52:18 localhost firmware.sh[3287]: Cannot find firmware file 'facetimehd/firmware.bin' Sep 21 08:52:19 localhost pulseaudio[2965]: ratelimit.c: 28 events suppressed
[root@dywmac ~]# tail /var/log/messages Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: VDL set to: coarse=0x10008, fine=0x1011a Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Virtual VTT enabled Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: S2 DRAM memory address: 0x22159559 Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Rewrite DDR mode registers succeeded Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Full memory verification succeeded! (0) Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Direct firmware load for facetimehd/firmware.bin failed with error -2 Sep 21 08:52:18 localhost kernel: facetimehd 0000:02:00.0: Falling back to user helper Sep 21 08:52:18 localhost kernel: facetimehd: probe of 0000:02:00.0 failed with error -11 Sep 21 08:52:18 localhost firmware.sh[3287]: Cannot find firmware file 'facetimehd/firmware.bin' Sep 21 08:52:19 localhost pulseaudio[2965]: ratelimit.c: 28 events suppressed
/usr/src/bcwc_pcie/firmware,執行 make 進行編譯,出現錯誤。
[root@dywmac ~]# cd /usr/src/bcwc_pcie/firmware/ [root@dywmac firmware]# make Checking dependencies for driver download... /usr/bin/curl /usr/bin/xzcat /bin/cpio Downloading the driver, please wait... mv: cannot stat `System/Library/Extensions/AppleCameraInterface.kext /Contents/MacOS/AppleCameraInterface': No such file or directory make: *** [AppleCameraInterface] Error 1
[root@dywmac firmware]# curl -s -L -r "187085540-191012220" \ "https://support.apple.com/downloads/DL1858/en_US/osxupd10.11.3.dmg" \ | xzcat -q | cpio --format odc -i -d \ "./System/Library/Extensions/AppleCameraInterface.kext/Contents/MacOS/AppleCameraInterface" xzcat: (stdin): Unexpected end of input cpio: premature end of file