Link to home
Start Free TrialLog in
Avatar of asciiman
asciiman

asked on

Problem compiling ivtv modules -

I'm running a MythTV (www.mythtv.org) box featuring Suse 9.0 and a Hauppauge WinTV350 card. Since there are some troubles with the IvyTV 0.1.9 modules for the box, I would like to try the 0.2.0 version. Currently, Chris Kennedy is puming out a lot of release candidates.

As I compile the ivtv modules it remarks:
gcc -D__KERNEL__ -D__KERNEL_SYSCALLS__ -DMODULE -DMODVERSIONS -I/lib/modules/2.4.21-99-default/build/include -O2 -fomit-frame-pointer -march=i586 -mcpu=i586 -fno-strict-aliasing -Wno-unused -include /lib/modules/2.4.21-99-default/build/include/linux/modversions.h -DNEW_I2C   -c -o ivtv-kthreads.o ivtv-kthreads.c
ivtv-kthreads.c: In function `ivtv_dec_thread':
ivtv-kthreads.c:1121: error: structure has no member named `nice'
ivtv-kthreads.c: In function `ivtv_enc_thread':
ivtv-kthreads.c:1195: error: structure has no member named `nice'
make: *** [ivtv-kthreads.o] Error 1

Since this problem is not reported by others, plus the fact that this problem persisted in all Chris's release candidates tells me thet this is a problem with my box, not the software (and therefore will not be pached). Although I have a reasonal knowledge of Linux, my programming skills are limited to getting things compiled and installed. Any help is appreciated.

P.S.  I did uncomment the following line in Makefile2.4 since I use i2c 2.8.0+:
CFLAGS += -DNEW_I2C
ASKER CERTIFIED SOLUTION
Avatar of wesly_chen
wesly_chen
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of asciiman
asciiman

ASKER

Hi Wesly,
I'm pretty sure I'm NOT using a new tuner since the thing worked fine with ivtv0.1.9, which was not the case in the pvr_350_static thread. (Even the SE11 and E5- channels were tuned correctly)

Although the error occurs in the same module (kthreads), the error itself is totally different. I have enough programming experience to know that if the error is not completely equal, the origin can be very different.
I've solved the problem by hacking the source myself. It seems that there are some different semantics for different kernels. This is done by adding #ifdef and #ifndef compiler directives.  Unfortunately, when I change the environment variables (checked by the #if?def directives) then something else goes wrong. [Boy, I've got some weird kernel!] So by checking the line numbers, I manually changed #ifdef to #ifndef and vise versa, and voila! I had a compile and a nice working system.

So moderators, if you see this post. Please close this topic.