Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 350211

Summary: media-video/em8300-modules fails to build with recent kernels / dxr3 is still v4l1
Product: Gentoo Linux Reporter: Stefan Foerster <sfoerster42>
Component: [OLD] UnspecifiedAssignee: Gentoo Media-video project <media-video>
Status: RESOLVED TEST-REQUEST    
Severity: normal CC: christoph.diesch, martin.dummer, vdr, yrusinov
Priority: High    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
URL: http://github.com/austriancoder/v4l2-em8300
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 413411    
Attachments: media-video/em8300-modules-9999.ebuild
media-video/em8300-libraries-9999.ebuild
em8300-libraries ebuild
em8300-modules ebuild

Description Stefan Foerster 2010-12-31 07:24:42 UTC
Under the current 2.6.36.x kernels, the em8300 modules no longer compile, despite the "em8300-modules-0.18.0-2.6.35.patch" patch. It seems that there had been some changes in the i2c API, since gcc reports errors like

/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_i2c.c:357: Fehler: Zu wenige Argumente für Funktion »i2c_new_probed_device«

i.e. too less arguments of function "i2c_new_probed_device" and also other i2c functions.

This also happens with version 0.17.4.

These modules are pulled in by mplayer with the use flag "X" set.

Reproducible: Always

Steps to Reproduce:
1.emerge em8300-modules-0.18.0

Actual Results:  
emerge did not succeed.

Expected Results:  
It should compile.

stefan stefan # emerge --info =media-video/em8300-modules-0.18.0
Portage 2.1.8.3 (default/linux/amd64/10.0, gcc-4.4.4, glibc-2.11.2-r3, 2.6.36.2 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-2.6.36.2-x86_64-Intel-R-_Xeon-TM-_CPU_3.20GHz-with-gentoo-2.0.1
Timestamp of tree: Thu, 30 Dec 2010 16:45:01 +0000
ccache version 2.4 [disabled]
app-shells/bash:     4.1_p7
dev-java/java-config: 2.1.11-r1
dev-lang/python:     2.6.5-r3, 3.1.3
dev-util/ccache:     2.4-r9
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.1-r1
sys-apps/sandbox:    2.4
sys-devel/autoconf:  2.13, 2.65-r1
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1-r1
sys-devel/gcc:       4.4.4-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.81-r2
virtual/os-headers:  2.6.30-r1
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/openvpn/easy-rsa /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=nocona -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/"
LANG="de_DE.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"                                                                                                                                                   
LINGUAS="de en fr es"                                                                                                                                                               
MAKEOPTS="-j5"                                                                                                                                                                      
PKGDIR="/usr/portage/packages"                                                                                                                                                      
PORTAGE_CONFIGROOT="/"                                                                                                                                                              
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"                                                                                                                                                                          
PORTAGE_TMPDIR="/var/tmp"                                                                                                                                                           
PORTDIR="/usr/portage"                                                                                                                                                              
PORTDIR_OVERLAY="/var/lib/layman/desktop-effects /var/lib/layman/games /var/lib/layman/hawking /var/lib/layman/java-overlay /var/lib/layman/kde /var/lib/layman/lisp /var/lib/layman/multimedia /var/lib/layman/science /var/lib/layman/thousand-parsec /var/lib/layman/turbogears2 /var/lib/layman/vmware /var/lib/layman/n4g /usr/local/portage"                      
SYNC="rsync://rsync11.de.gentoo.org/gentoo-portage"                                                                                                                                 
USE="3dnow X a52 aac aalib acl alsa amd64 arts asf berkdb bzip2 cairo cddb cdparanoia cdr cli consolekit cracklib crypt css cups cxx dbus device-mapper dri dv dvb dvd dvdr emerald evo extras faac faad fam ffmpeg firefox flac fontconfig fortran gcj gdbm gdu gif glitz gnome gpm gstreamer gtk hal handbook iconv ieee1394 imap ipv6 java joystick jpeg jpeg2k kde kontact kpathsea lame libnotify lirc mad mikmod mjpeg mmx mmxext mng modules mono mp3 mp4 mplayer mudflap multilib mysql ncurses networkmanager new-login nls nptl nptlonly nsplugin nvidia ogg opengl openmp pam pcre pdf perl png pnm policykit pop pppd pvr python qt3 qt3support qt4 quicktime readline reflection samba sasl sdl semantic-desktop session spell spl sql sqlite sse sse2 ssl ssse3 svg symlink sysfs tcpd theora threads tiff timidity transcode truetype twolame udev unicode v4l v4l2 vcd video vorbis webkit wxwidgets x264 xcb xcomposite xinerama xml xorg xscreensaver xv xvid xvmc zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de en fr es" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"                                                                
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS 

-------------------------------

stefan temp # cat build.log
 * CPV:  media-video/em8300-modules-0.18.0
 * REPO: gentoo
 * USE:  amd64 elibc_glibc kernel_linux multilib userland_GNU
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Found kernel object directory:
 *     /lib/modules/2.6.36.2/build
 * Found sources for kernel version:
 *     2.6.36.2
 * Checking for suitable kernel configuration options...                      [ ok ]
>>> Unpacking source...
>>> Unpacking em8300-0.18.0.tar.gz to /var/tmp/portage/media-video/em8300-modules-0.18.0/work
>>> Source unpacked in /var/tmp/portage/media-video/em8300-modules-0.18.0/work
>>> Preparing source in /var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules ...
 * Applying em8300-modules-0.18.0-2.6.35.patch ...                            [ ok ]
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules ...
make -j5 KERNEL_LOCATION=/usr/src/linux 
[ ! -x ./update_em8300_version.sh ] || ./update_em8300_version.sh em8300_version.h
make -C /usr/src/linux SUBDIRS=/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules modules
make[1]: Entering directory `/usr/src/linux-2.6.36.2'
  CC [M]  /var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/adv717x.o
  CC [M]  /var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/bt865.o
  CC [M]  /var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_main.o
  CC [M]  /var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_i2c.o
  CC [M]  /var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_audio.o
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_i2c.c: In Funktion »em8300_i2c_init1«:
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_i2c.c:357: Fehler: Zu wenige Argumente für Funktion »i2c_new_probed_device«
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_i2c.c: In Funktion »em8300_i2c_init2«:
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_i2c.c:428: Fehler: Zu wenige Argumente für Funktion »i2c_new_probed_device«
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_i2c.c:432: Fehler: Zu wenige Argumente für Funktion »i2c_new_probed_device«
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/adv717x.c:137: Fehler: »param_ops_output_mode_t« ist hier nicht deklariert (nicht in einer Funktion)
make[2]: *** [/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_i2c.o] Fehler 1
make[2]: *** Warte auf noch nicht beendete Prozesse...
make[2]: *** [/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/adv717x.o] Fehler 1
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/bt865.c:91: Fehler: »param_ops_output_mode_t« ist hier nicht deklariert (nicht in einer Funktion)
make[2]: *** [/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/bt865.o] Fehler 1
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_main.c:484: Fehler: unbekanntes Feld »ioctl« in Initialisierung angegeben
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_main.c:484: Warnung: Initialisierung von inkompatiblem Zeigertyp
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_main.c:587: Fehler: unbekanntes Feld »ioctl« in Initialisierung angegeben
/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_main.c:587: Warnung: Initialisierung von inkompatiblem Zeigertyp
make[2]: *** [/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules/em8300_main.o] Fehler 1
make[1]: *** [_module_/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.36.2'
make: *** [build] Fehler 2
 * ERROR: media-video/em8300-modules-0.18.0 failed:
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  54:  Called src_compile
 *   environment, line 3579:  Called die
 * The specific snippet of code:
 *       emake KERNEL_LOCATION="${KERNEL_DIR}" || die
 * 
 * If you need support, post the output of 'emerge --info =media-video/em8300-modules-0.18.0',
 * the complete build log and the output of 'emerge -pqv =media-video/em8300-modules-0.18.0'.
 * The complete build log is located at '/var/tmp/portage/media-video/em8300-modules-0.18.0/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/media-video/em8300-modules-0.18.0/temp/environment'.
 * S: '/var/tmp/portage/media-video/em8300-modules-0.18.0/work/em8300-0.18.0/modules'

--------------------
Comment 1 Arturo Sandrigo 2011-05-07 09:12:02 UTC
Same error here on x86 platform with kernel 2.6.37r4, any news on how to solve it ?
Comment 2 Thomas Kahle (RETIRED) gentoo-dev 2011-05-07 19:29:39 UTC
Please don't just add the x86 arch team because you see a bug on your x86 machine.  The archteam does keywording, not package maintainig.  You should never add any arch aliases yourself.
Comment 3 Patrick McMunn 2011-10-03 15:24:21 UTC
Just adding my 2 cents to help this bug move along... From what I understand, the reason em8300 is failing on modern kernels is their lack of V4L1 support. The project at http://dxr3.sourceforge.net/ has been inactive for over 3 years now, but fortunately there is a new project at https://github.com/austriancoder/v4l2-em8300 which is working on updating the program to support V4L2. Notes also indicate at least one of the 3 modules is going into the mainline kernel. Perhaps this information will help drive this bug forward a bit.

BTW, I think https://bugs.gentoo.org/show_bug.cgi?id=365971 is a duplicate.
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2011-10-03 20:24:57 UTC
*** Bug 365971 has been marked as a duplicate of this bug. ***
Comment 5 Samuli Suominen (RETIRED) gentoo-dev 2011-10-03 20:26:45 UTC
V4L2 work in progress: https://github.com/austriancoder/v4l2-em8300
Comment 6 Samuli Suominen (RETIRED) gentoo-dev 2011-10-03 20:38:34 UTC
I think vdr people should be involved here.

So if we go about removing em8300-libraries, em8300-modules, vdr-dxr3 and dxr3config. Then removing USE="dxr3" from every package, for now I've masked it in base/use.mask pending on if someone is willing to work on this.
Comment 7 Patrick McMunn 2011-10-03 22:55:26 UTC
I've emailed the developer for the current driver project. If I learn anything I'll post it here.
Comment 8 Christian Gmeiner 2011-10-04 13:54:30 UTC
Hi all,

let me introduce myself. I am a long time gentoo user (about 7 to 8 years) and I am the guy how wants to get the em8300 driver into mainline. I have cleaned up lot of code from the original driver but the hardest part is still left... the move to vb2. But... I have an other solution for this problem :)

https://github.com/austriancoder/em8300

For me the driver compiles fine on 3.1.0-rc8. So if it is wanted I could release a new version of the em8300 driver, which supports newer kernels.
Comment 9 Patrick McMunn 2011-10-06 16:13:12 UTC
At this time I can only confirm that the modules do indeed build and load into the kernel correctly. I'll try to do some further testing to see how they work and put my old DXR3 card to some use. I'll also attach some ebuilds if anyone else wants to do some testing.
Comment 10 Patrick McMunn 2011-10-06 16:14:26 UTC
Created attachment 288983 [details]
media-video/em8300-modules-9999.ebuild
Comment 11 Patrick McMunn 2011-10-06 16:15:40 UTC
Created attachment 288985 [details]
media-video/em8300-libraries-9999.ebuild
Comment 12 Samuli Suominen (RETIRED) gentoo-dev 2011-10-06 16:32:32 UTC
Any chance you could tag a release in github so we can supply pinpointed version in testing? I don't like live ebuilds in portage... while they are fine for bugzilla, overlays, forums, etc
Comment 13 Christian Gmeiner 2011-11-13 09:13:13 UTC
Hi all,

In the hg repository of the dxr3 driver [1] does support 3.0 kernels now. A new version should be released soon. My github repository will removed as it is not
needed any more.

[1] http://dxr3.hg.sourceforge.net/hgweb/dxr3/em8300/
Comment 14 Patrick McMunn 2012-03-04 02:52:20 UTC
Created attachment 304169 [details]
em8300-libraries ebuild
Comment 15 Patrick McMunn 2012-03-04 02:53:15 UTC
Created attachment 304171 [details]
em8300-modules ebuild
Comment 16 Patrick McMunn 2012-03-04 02:55:34 UTC
I apologize for the delay. The repository moved, and there was need of some more development. But the current commit builds with 3.2 series kernels. I just tested it on 3.2.6 and it builds fine. Hopefully this will get the dxr3 support working again for everyone who needs it.
Comment 17 Joerg Bornkessel (RETIRED) gentoo-dev 2012-03-04 04:07:25 UTC
added pmasked to the tree

em8300-libraries-0.18.0_p20120124
em8300-modules-0.18.0_p20120124

the libraries compiles fine

but i have problems to compile the module

Kernel = vanilla-sources-3.2.9

<snipp>
 CC [M]  /home/brummy/.tmp/portage/media-video/em8300-modules-0.18.0_p20120124/work/em8300-0.18.0_p20120124/modules/em8300_main.o
/home/brummy/.tmp/portage/media-video/em8300-modules-0.18.0_p20120124/work/em8300-0.18.0_p20120124/modules/em8300_main.c:73:2: Fehler: #error "This needs the I2C Bit Banging Interface in your Kernel"
</snapp>

I dont know what i have to to enable/disable in the kernel to get it work on
compile.

this is what i have enabled in the moment.

<snipp .config>
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_AMD756=m
CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_I801=m
</snapp>

CONFIG_CHECK="I2C_ALGOBIT"
is commented in the ebuild, bcs. there is no I2C_ALGOBIT in the kernel 3.2.9 anymore
and it fails in the prepare check

any hints?
Comment 18 Joerg Bornkessel (RETIRED) gentoo-dev 2012-03-04 04:14:05 UTC
> 
> CONFIG_CHECK="I2C_ALGOBIT"
> is commented in the ebuild, bcs. there is no I2C_ALGOBIT in the kernel 3.2.9
> anymore
> and it fails in the prepare check

grr, found it
it was disabled, 
will test the module ebuild later again
Comment 19 Joerg Bornkessel (RETIRED) gentoo-dev 2012-03-04 18:54:31 UTC
unmasked in pmask

em8300-libraries-0.18.0_p20120124
em8300-modules-0.18.0_p20120124

disabled the hg test for versioning
this needs a mercurial install on user system

on my localtest both packages compiles like a charm
anyway, i dont have the hardware to test it finaly
Comment 20 Samuli Suominen (RETIRED) gentoo-dev 2012-03-04 18:56:33 UTC
I think this was closed prematurarely as profiles/ is still unhandled for the restoration of USE="dxr3" which used to be unmasked on the arches em8300-librararies is keyworded for, amd64, ppc and x86
Comment 21 Samuli Suominen (RETIRED) gentoo-dev 2012-04-24 19:54:01 UTC
*** Bug 413391 has been marked as a duplicate of this bug. ***