Magewell driver compile on Debian

I have bought a Magewell Pro Dual HDMI for capture from my Sony camera, but I can’t seem to compile the drivers on Debian (Sid). I know it’s not supported, but I can’t get past an error that I can understand why it’s happening.

This is the output from the compile:

===================================================
      Magewell ProCapture Linux Driver Installer
===================================================

Checking for required tools ... Done.
Checking for required packages ... Done.
Checking for previous installation ... None
Beginning install, please wait... 
Creating build directory /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build ... Done.
Copying driver source into /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build ... Done.
Building module for kernel 5.9.0-2-amd64 ... 
ERROR: Failed to build module!

Please check mwcap_install.log for more details.
If you are experiencing difficulty with this installation
please contact [email protected]

mwcap_install.log

Checking for required tools ... Done.
Checking for required packages ... Done.
Checking for previous installation ... None
Beginning install, please wait... 
Creating build directory /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build ... Done.
Copying driver source into /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build ... '/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./Makefile' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./Makefile'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./ProCaptureLib_32.lib' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./ProCaptureLib_32.lib'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./ProCaptureLib_64.lib' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./ProCaptureLib_64.lib'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/Product.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/Product.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/ProductVer.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/ProductVer.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-common.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-common.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-dma-mem.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-dma-mem.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-edid.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-edid.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-event-ioctl.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-event-ioctl.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-fourcc.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-fourcc.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-hdmi-packets.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-hdmi-packets.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-iec60958.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-iec60958.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-linux.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-linux.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-procapture-extension-private.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-procapture-extension-private.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-procapture-extension.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-procapture-extension.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-sg.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-sg.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/mw-smpte.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/mw-smpte.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./public/win-types.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./public/win-types.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./res' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./res'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./res/Locking.png' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./res/Locking.png'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./res/NoSignal.png' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./res/NoSignal.png'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./res/OSDExample.png' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./res/OSDExample.png'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./res/Template.png' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./res/Template.png'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./res/Unsupported.png' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./res/Unsupported.png'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/audio-resample' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/audio-resample'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/audio-resample/resample.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/audio-resample/resample.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/alsa.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/alsa.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/alsa.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/alsa.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/capture.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/capture.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/capture.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/capture.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/mw-capture-impl.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/mw-capture-impl.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/mw-event-dev.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/mw-event-dev.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/mw-event-dev.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/mw-event-dev.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/mw-event-ioctl-priv.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/mw-event-ioctl-priv.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/mw-event-ioctl.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/mw-event-ioctl.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/mw-stream.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/mw-stream.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/parameter-manager.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/parameter-manager.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/v4l2-sg-buf.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/v4l2-sg-buf.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/v4l2-sg-buf.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/v4l2-sg-buf.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/v4l2.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/v4l2.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/v4l2.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/v4l2.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/avstream/xi-driver.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/avstream/xi-driver.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/dma' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/dma'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/dma/mw-dma-kernel.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/dma/mw-dma-kernel.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/dma/mw-dma-mem-priv.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/dma/mw-dma-mem-priv.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/dma/mw-dma-mem.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/dma/mw-dma-mem.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/dma/mw-dma-phy.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/dma/mw-dma-phy.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/dma/mw-dma-user.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/dma/mw-dma-user.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/front-end' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/front-end'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/front-end/front-end-types.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/front-end/front-end-types.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/ospi' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/ospi'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/ospi/linux-file.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/ospi/linux-file.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/ospi/linux-file.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/ospi/linux-file.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/ospi/ospi-linux.c' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/ospi/ospi-linux.c'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/ospi/ospi-linux.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/ospi/ospi-linux.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/ospi/ospi.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/ospi/ospi.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/picopng' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/picopng'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/picopng/picopng.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/picopng/picopng.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/supports' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/supports'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/supports/image-buffer.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/supports/image-buffer.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/supports/karray.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/supports/karray.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/supports/math.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/supports/math.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/supports/shared-image-buffer.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/supports/shared-image-buffer.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/supports/xi-notify-event.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/supports/xi-notify-event.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/supports/xi-timer.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/supports/xi-timer.h'
'/home/angus/Downloads/ProCaptureForLinux_4186/scripts/../src/./sources/xi-version.h' -> '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/./sources/xi-version.h'
Done.
Building module for kernel 5.9.0-2-amd64 ... make: Entering directory '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build'
cp ProCaptureLib_64.lib ProCaptureLib.o
make -C /lib/modules/5.9.0-2-amd64/build M=/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build modules
make[1]: Entering directory '/usr/src/linux-headers-5.9.0-2-amd64'
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/dma/mw-dma-mem.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/dma/mw-dma-user.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/dma/mw-dma-kernel.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/dma/mw-dma-phy.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/ospi/ospi-linux.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/ospi/linux-file.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/v4l2.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/v4l2-sg-buf.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/mw-event-dev.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/mw-event-ioctl.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/alsa.o
  CC [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/capture.o
/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/alsa.c: In function ‘_process_audio_frame’:
/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/alsa.c:260:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
  260 |             if (wChannelValid & 0x08) {
      |                ^
/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/alsa.c:266:9: note: here
  266 |         case 5:
      |         ^~~~
/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/alsa.c:268:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
  268 |             if (wChannelValid & 0x04) {
      |                ^
/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/alsa.c:274:9: note: here
  274 |         case 3:
      |         ^~~~
/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/alsa.c:276:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
  276 |             if (wChannelValid & 0x02) {
      |                ^
/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/sources/avstream/alsa.c:282:9: note: here
  282 |         case 1:
      |         ^~~~
  LD [M]  /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/ProCapture.o
  MODPOST /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/Module.symvers
/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/.ProCaptureLib.o.cmd: No such file or directory
make[3]: *** [/usr/src/linux-headers-5.9.0-2-common/scripts/Makefile.modpost:111: /home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build/Module.symvers] Error 1
make[2]: *** [/usr/src/linux-headers-5.9.0-2-common/Makefile:1709: modules] Error 2
make[1]: *** [/usr/src/linux-headers-5.9.0-2-common/Makefile:185: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.9.0-2-amd64'
make: *** [Makefile:32: all] Error 2
make: Leaving directory '/home/angus/Downloads/ProCaptureForLinux_4186/mwcap_build'

ERROR: Failed to build module!

It looks like everything goes as expected and then it tries to look for a file and it’s just not there for some reason. I don’t understand this compilation works. It is not like any C compilation I’ve ever done. I don’t understand how that file is made. If there was an issue with kernel compatibility, I’m sure I would be able to solve those issues, but this missing file thing has me confused.

I have just found a solution to my problem. And I hope someone else will find this and it solves the problem for them as well.

I grep'd for that file name that it was complaining about being missing

$ grep -Rn ProCaptureLib
src/Makefile:47:	cp $(ProCaptureLibFile) ProCaptureLib.o

One of the results was in a Makefile, I saw that it was cping this ProCaptureLib, so it’s not being compiled, so there will be no o.cmd. I added a touch .ProCaptureLib.o.cmd and then the compilation and installation worked. I am able to capture the video from the device.

I’m not happy with the hackyness of this solution. Obviously, because the file is not being compiled, it shouldn’t be looking for the o.cmd. It’s working now, so I’m not going to dig any further.

Hopefully, Magewell will have this fixed for the next driver release. I don’t see how I’m the only one who had this issue.

src/Makefile now looks like:

 46 ProCaptureLib.o:
 47         cp $(ProCaptureLibFile) ProCaptureLib.o
 48         touch .ProCaptureLib.o.cmd
 49 endif
2 Likes

I had exactly the same issue on Ubuntu 20 LTS. Your solution seems to have worked so thanks a lot it would have taken me days to sort this out…
Why they do not fix this crap I do not know the cards are very expensive , should cover for some serious testing.

I tip my hat to you sir. Thanks for sharing

1 Like