# AverTV Volar Hybrid Max H826 USB - Can't compile driver

## gaussian

Hello,

I have the following problem while compiling the driver for this adapter:

```

make -C /lib/modules/2.6.39-gentoo-r3/source O=/lib/modules/2.6.39-gentoo-r3/build SUBDIRS=`pwd` 

make[1]: Entering directory `/usr/src/linux-2.6.39-gentoo-r3'

  CC [M]  /home/leandro/Downloads/H826D-expert-install/aver/averusb-mod.o

In file included from /home/leandro/Downloads/H826D-expert-install/aver/averusb-mod.c:128:0:

/home/leandro/Downloads/H826D-expert-install/aver/osdep.c:89:28: fatal error: linux/smp_lock.h: No such file or directory

compilation terminated.

make[3]: *** [/home/leandro/Downloads/H826D-expert-install/aver/averusb-mod.o] Error 1

make[2]: *** [_module_/home/leandro/Downloads/H826D-expert-install] Error 2

make[1]: *** [sub-make] Error 2

make[1]: Leaving directory `/usr/src/linux-2.6.39-gentoo-r3'

make: *** [default] Error 2

```

From a research I did before I get that the file smp_lock.h is gone since 2.6.39.  So, any idea on how I can compile the driver for this adapter? (brand new by the way......  :Crying or Very sad:  )

----------

## krinn

I'm afraid you have to use an older kernel or a driver sources that aim a recent one

The good part is that you have the source you could hack to make them work with recent kernel, the bad part is that is something way over common user skills.

If you belong to that group of user (like me), pray a kernel dev own that device too, that's a skill everyone should have  :Smile: 

edit : i forgot, but i suppose you've check the newer kernel don't have driver for your device ?

----------

## gaussian

Thank you krim: I was thinking about different alternatives:

1- install kernel 2.6.38. Complile the driver. Use it with the new kernel 2.6.39 (I am not sure if this can be done....)

2- install a virtual machine with kernel 2.6.38 so I will be able to compile the driver and  use the device.

3- install a windows xp virtual machine. 

What do you think it's the best alternative.??

The last driver the company release was in 2009. Linux is certainly not a priority. On the other hand I don't have the skill to hack the new kernel even if I have the sources. 

Thank for your help again.

----------

## krinn

why goes to some too tricky things like that ?

you can use a .38 versions that then support your device and keep using that kernel as it's not an old version (yep, not yet), you won't see a difference.

and you also can use another kernel version that will of course not support your device, but if you feel better with a top recent kernel (or if you have a need a recent kernel have but not an old one)

it's just adding 2 lines in your grub.conf, not a big deal.

----------

## gaussian

Still have probrems with kernel 2.6.38

```

make -C /lib/modules/2.6.38-gentoo-r6/source O=/lib/modules/2.6.38-gentoo-r6/build SUBDIRS=`pwd` 

make[1]: Entering directory `/usr/src/linux-2.6.38-gentoo-r6'

  CC [M]  /home/leandro/Downloads/H826D-expert-install/aver/averusb-mod.o

In file included from /home/leandro/Downloads/H826D-expert-install/aver/averusb-mod.c:128:0:

/home/leandro/Downloads/H826D-expert-install/aver/osdep.c: In function 'AVerH826D_SysSemInit':

/home/leandro/Downloads/H826D-expert-install/aver/osdep.c:435:3: error: implicit declaration of function 'init_MUTEX'

/home/leandro/Downloads/H826D-expert-install/aver/osdep.c:439:3: error: implicit declaration of function 'init_MUTEX_LOCKED'

At top level:

cc1: warning: unrecognized command line option "-Wno-unused-but-set-variable"

make[3]: *** [/home/leandro/Downloads/H826D-expert-install/aver/averusb-mod.o] Error 1

make[2]: *** [_module_/home/leandro/Downloads/H826D-expert-install] Error 2

make[1]: *** [sub-make] Error 2

make[1]: Leaving directory `/usr/src/linux-2.6.38-gentoo-r6'

make: *** [default] Error 2

```

I am ussing gcc 4.5.3. 

Thanks again for your help.

----------

