Compiling TV4l drivers failure

Hi, I’ve got a Hauppage WinTV card that I’m trying to get working with OSMC on rpi1.

dmesg:

[    2.877124] usb 1-1.5.3: new high-speed USB device number 6 using dwc_otg
[    2.978072] usb 1-1.5.3: New USB device found, idVendor=2040, idProduct=0264
[    2.978107] usb 1-1.5.3: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[    2.978124] usb 1-1.5.3: Product: soloHD
[    2.978137] usb 1-1.5.3: Manufacturer: HCW
[    2.978154] usb 1-1.5.3: SerialNumber: 0011513355   

This is apparently supported in Linux since 11/2015:
http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-soloHD

…but apparently not in OSMC yet? (I have 4.3.3-3)

So I am following the LinuxTV method to build the latest em28xx module and have installed the OSMC src and the drivers install scripts from How to Obtain, Build and Install V4L-DVB Device Drivers - LinuxTVWiki

But the build is failing with this memory.h missing header file. I have found lots of similar errors but no clear resolution yet.

 make[2]: Entering directory '/usr/src/rbp2-headers-4.3.3-3-osmc'
      CC [M]  /home/osmc/Build/media_build/v4l/msp3400-driver.o
    In file included from ./arch/arm/include/asm/page.h:163:0,
                     from ./arch/arm/include/asm/thread_info.h:17,
                     from include/linux/thread_info.h:54,
                     from include/asm-generic/preempt.h:4,
                     from arch/arm/include/generated/asm/preempt.h:1,
                     from include/linux/preempt.h:64,
                     from include/linux/spinlock.h:50,
                     from include/linux/seqlock.h:35,
                     from include/linux/time.h:5,
                     from include/linux/input.h:11,
                     from /home/osmc/Build/media_build/v4l/compat.h:10,
                     from <command-line>:0:
    ./arch/arm/include/asm/memory.h:22:25: fatal error: mach/memory.h: No such file or directory
     #include <mach/memory.h>

Any help appreciated!

Em28xx should be built and activated for some time already.

You probably need a different driver?

Can you post the last lines of dmesg after plugging it in please?
In your output there is no mention of a em28xx product. They might have changed chipsets with your device.

Also please lsusb output.

lsusb

Bus 001 Device 006: ID 2040:0264 Hauppauge

dmesg is only this.

[61763.983934] usb 1-1.5.3: new high-speed USB device number 7 using dwc_otg
[61764.085263] usb 1-1.5.3: New USB device found, idVendor=2040, idProduct=0264
[61764.085305] usb 1-1.5.3: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[61764.085321] usb 1-1.5.3: Product: soloHD
[61764.085336] usb 1-1.5.3: Manufacturer: HCW
[61764.085350] usb 1-1.5.3: SerialNumber: 0011513355

The above linuxTV post indicated that it should be em28xx, but the driver required a patch for this hw?

Oh. I see. If a patch is needed you really need to build by yourself.
The problem is probaably related to:
https://discourse.osmc.tv/t/solved-sources-for-4-3-3-3-missing-in-package-repository

Maybe Sam has an idea.

if its source it should be pushed into apt

http://ftp.fau.de/osmc/osmc/apt/pool/main/r/rbp1-source-4.3.3-3-osmc/

its in the repo atleast so if thats the issue just manually install the deb package

OK have now got it working. I was getting a few things wrong.

  1. I was using the rpi2 source but have OSMC on rpi1, so had to get the right source from the deb posted above by @Toast, then install it with dpkg --install xxx.deb

  2. This post Tutorial: Compiling a working kernel driver for rtl8192eu was useful in getting the compile to work and avoid the missing mach/memory.h file (see step 3 in that post). Though maybe I didn’t need it any more as I was using the wrong source in the first place?

  3. The other page I used was How to Obtain, Build and Install V4L-DVB Device Drivers - LinuxTVWiki. It took a long time to compile all of this on the Pi - Surely there’s a way to just compile the one you need? There probably is, but I just haven’t found it yet!

So with the update drivers compiled and loaded, the stick is now recognised and the right firmware loaded (though with warnings about using the drivers on an old kernel version)

  1. Finally, and not really relatedly, USE SHIELDED Coax cable!! I can’t tell you how long I spent mucking about with the aerial cable, only to realise that is was running alongside a power extension cable which must have been messing up the signal. This is the FIRST thing to check if your OSMC says “no input detected” from TVHeadEnd