Thursday, March 17, 2011

Building driver for AverMedia A827 on Linux kernel 2.6.38

Vendor: AVerMedia
Product: AVerTV Hybrid Volar HX
Model: A827

This is a Analog+DVB-T USB TV receiver with official support for Linux up until 2009-11-26. The latest driver can be downloaded from the product page above.

The "Normal" automatic process of installing the driver fails for 2.6.38 kernel. Using the "Expert" process to extract the driver source code to a selected location allows one to compile the driver manually and track down the problems. First, the function calls for mutex initialization are gone and should be replaced with those of semaphore initialization. Second, the Teletext support is also gone and should be eliminated from the driver source code. These fixes are summarized in this patch.

However, compiling the driver with "make" results in the WARNINGs that the symbols "param_array_get" and "param_array_set" are undefined. This is due a prebuilt object file, "aver/osdep_dvb.o_shipped", that was built with an older version of kernel. Building this file requires some internal header files from kernel source tree that are not normally available in, e.g., linux-headers or kernel-headers packages. Provided that the kernel source tree for building the running kernel is installed/available in the system, the shipped object file can be removed. After this, the "make" command can complete without incidence. Installing the drivers ("averusbh826d.ko"  "h826d.ko") to the module directory, e.g., "/lib/modules/2.6.38/kernel/drivers/media/dvb/dvb-usb" and updating the module dependency with "depmod -a", the adapter seems to work normally afterwards.


Anonymous said...

Thanks for you patch.

Unknown said...

Hello, I tried to follow you instructions, but I am a n00b in installing kernel modules and stuff. Can't you just please upload the 2 working module files somewhere and tell me what to do with them? :-)
Many thanks for your help by the way.

cjj said...

Hi Szabó Péter,
Thanks for your interest. However, the module files are system/kernel dependent. And, mine is heavily customized. So, my files are unlikely to work under your system.

Unknown said...

Hi cjj,
Even applying the patch generated errors for me. I'll analyze them later (when I'll have more time) and let you know ... maybe you can help me or we can help others who read this. Now that Avermedia left us alone in this, we don't have much choice ...

Unknown said...

I was making mistakes with "patch" command, after correction everything went fine. Thanks for this article!

mut said...

another way: