lwfinger / rtl8192du

Source code for RTL8192DU device
77 stars 52 forks source link

Can't compile in 4.6.4-201.fc23.x86_64 (Fedora 23) #42

Open THN1 opened 8 years ago

THN1 commented 8 years ago

... make[2]: Entering directory '/home/user/media_build_experimental/linux' Patches for 4.6.4-201.fc23.x86_64 already applied. make[2]: Leaving directory '/home/user/media_build_experimental/linux' make -C /lib/modules/4.6.4-201.fc23.x86_64/build SUBDIRS=/home/user/media_build_experimental/v4l modules make[2]: Entering directory '/usr/src/kernels/4.6.4-201.fc23.x86_64' CC [M] /home/user/media_build_experimental/v4l/msp3400-driver.o In file included from :0:0: /home/user/media_build_experimental/v4l/compat.h:1463:1: error: redefinition of 'pci_zalloc_consistent' pci_zalloc_consistent(struct pci_dev hwdev, size_t size, ^ In file included from include/linux/pci.h:2022:0, from /home/user/media_build_experimental/v4l/compat.h:1459, from :0: include/linux/pci-dma-compat.h:23:1: note: previous definition of 'pci_zalloc_consistent' was here pci_zalloc_consistent(struct pci_dev hwdev, size_t size, ^ scripts/Makefile.build:291: recipe for target '/home/user/media_build_experimental/v4l/msp3400-driver.o' failed make[3]: * [/home/user/media_build_experimental/v4l/msp3400-driver.o] Error 1 Makefile:1433: recipe for target 'module/home/user/media_build_experimental/v4l' failed make[2]: * [module/home/user/media_build_experimental/v4l] Error 2 make[2]: Leaving directory '/usr/src/kernels/4.6.4-201.fc23.x86_64' Makefile:51: recipe for target 'default' failed make[1]: * [default] Error 2 make[1]: Leaving directory '/home/user/media_build_experimental/v4l' Makefile:28: recipe for target 'all' failed make: * [all] Error 2 make -C /home/user/media_build_experimental/v4l install make[1]: Entering directory '/home/user/media_build_experimental/v4l' removed directory: '/lib/modules/4.6.4-201.fc23.x86_64/updates/media' /sbin/depmod -a 4.6.4-201.fc23.x86_64 make -C firmware install make[2]: Entering directory '/home/user/media_build_experimental/v4l/firmware' Installing firmwares at /lib/firmware: vicam/firmware.fw ttusb-budget/dspbootcode.bin cpia2/stv0672_vp4.bin av7110/bootcode.bin make[2]: Leaving directory '/home/user/media_build_experimental/v4l/firmware' install -d -v /lib/modules/4.6.4-201.fc23.x86_64/updates/media install: creating directory '/lib/modules/4.6.4-201.fc23.x8664/updates/media' install .ko -> /lib/modules/4.6.4-201.fc23.x8664/updates/media/ install: cannot stat '.ko': No such file or directory Makefile:205: recipe for target 'install' failed make[1]: * [install] Error 1 make[1]: Leaving directory '/home/user/media_build_experimental/v4l' Makefile:17: recipe for target 'install' failed make: * [install] Error 2

THN1 commented 8 years ago

Same in Lubuntu 16.04.1 kernel 4.4.0-34

lwfinger commented 8 years ago

The problem with Ubuntu (and apparently Fedora) code is that they backport API changes. Once they do that, they break the macros that determine what capabilities should be found in that kernel version. As the API should NEVER be changed for a given kernel release, I will not fix this. You are on your own! My version compiles on kernel code that is properly updated.

I am not sure why they are calling the compat headers. I do not use those.

BobDodds commented 8 years ago

Well that explains why Ubuntu yakkety kernel 4.7.0 is no better on rtl8821ae loading but not making device, compared to various 4.4.0 kernels. I'll try to save myself by what you said.

Just to add to the fun, I discoverred that grub2 maintainers never test their code, they just keep writing those "search --no-floppy" grub.cfg lines and in all place about three bugs into every iso menuconfig in updated grub.cfg and one in non-iso, as of August 2016. I made the best of being stuck in grub prompt, actually ran "search --help", and discoverred people were getting (hd0,msdos1) reflected back into their mutual admiration society looking busy doing nothing, unless somebody really has anything on a higher number drive and/or partition, and then humptybuntudumpty done for a while.

THN1 commented 8 years ago

Hi, Lubuntu and Kubuntu (with Kernel 4.4.0) are fine now with the two patches provided here http://www.vdr-portal.de/board18-vdr-hardware/board102-dvb-karten/p1260506-aktuelle-treiber-für-octopus-ddbridge-cines2-ngene-ddbridge-duoflex-s2-duoflex-ct-cinect-max-s8-sowie-tt-s2-6400-teil-3/#post1260506 Fedora 23 with Kernel 4.6.7. still fails on module msp3400-driver.o with a redefinition of function pci_zalloc_consistent in the compat.h header. I have no idea how to go further and appreciate any possible advise. T.

lwfinger commented 8 years ago

Have you installed some "compat" package from Fedora? My copy of include/linux/compat.h has no mention of pzi_zalloc_consistent.

Two possible fixes: 1. Do you really have a Micronas MSP34XX audio decoder? If not, then disable it in the build. 2. Comment out the offending definition of pci_zalloc_consistent in include/linux/compat.h.

THN1 commented 8 years ago

Hi,

Fedora's just moving to kernel 4.7.2, will come back tomorrow

Thanks,

T


My last test (commenting out the offending function in compat.h gets me further, but then:

In file included from ./arch/x86/include/asm/processor.h:15:0, from ./arch/x86/include/asm/cpufeature.h:4, from ./arch/x86/include/asm/thread_info.h:52, from include/linux/thread_info.h:54, from ./arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:59, 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/user/media_build_experimental/v4l/compat.h:10, from :0: /home/user/media_build_experimental/v4l/videobuf-dma-sg.c: In function 'videobuf_dma_init_user_locked': ./arch/x86/include/asm/current.h:17:17: warning: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]

define current get_current()

             ^

/home/user/media_build_experimental/v4l/videobuf-dma-sg.c:184:23: note: in expansion of macro 'current' err = get_user_pages(current, current->mm, ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h:1459, from :0: include/linux/mm.h:1266:6: note: expected 'long unsigned int' but argument is of type 'struct taskstruct ' long get_user_pages(unsigned long start, unsigned long nr_pages, ^ In file included from ./arch/x86/include/asm/processor.h:15:0, from ./arch/x86/include/asm/cpufeature.h:4, from ./arch/x86/include/asm/thread_info.h:52, from include/linux/thread_info.h:54, from ./arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:59, 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/user/media_build_experimental/v4l/compat.h:10, from :0: ./arch/x86/include/asm/current.h:17:17: warning: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]

define current get_current()

             ^

/home/user/media_build_experimental/v4l/videobuf-dma-sg.c:184:32: note: in expansion of macro 'current' err = get_user_pages(current, current->mm, ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h:1459, from :0: include/linux/mm.h:1266:6: note: expected 'long unsigned int' but argument is of type 'struct mm_struct ' long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /home/user/media_build_experimental/v4l/videobuf-dma-sg.c:186:9: warning: passing argument 5 of 'get_userpages' makes pointer from integer without a cast [-Wint-conversion] rw == READ, 1, / force _/ ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h:1459, from :0: include/linux/mm.h:1266:6: note: expected 'struct page _' but argument is of type 'int' long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /home/user/media_build_experimental/v4l/videobuf-dma-sg.c:186:21: warning: passing argument 6 of 'get_userpages' makes pointer from integer without a cast [-Wint-conversion] rw == READ, 1, /* force / ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h:1459, from :0: include/linux/mm.h:1266:6: note: expected 'struct vm_areastruct *' but argument is of type 'int' long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /home/user/media_build_experimental/v4l/videobuf-dma-sg.c:184:8: error: too many arguments to function 'get_user_pages' err = get_user_pages(current, current->mm, ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h:1459, from :0: include/linux/mm.h:1266:6: note: declared here long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /home/user/media_build_experimental/v4l/videobuf-dma-sg.c: In function 'videobuf_dma_free': /home/user/media_build_experimental/v4l/videobuf-dma-sg.c:353:4: error: implicit declaration of function 'page_cache_release' [-Werror=implicit-function-declaration] page_cache_release(dma->pages[i]); ^ cc1: some warnings being treated as errors scripts/Makefile.build:297: recipe for target '/home/user/media_build_experimental/v4l/videobuf-dma-sg.o' failed make[4]: * [/home/user/media_build_experimental/v4l/videobuf-dma-sg.o] Error 1 Makefile:1433: recipe for target 'module/home/user/media_build_experimental/v4l' failed make[3]: * [module/home/user/media_build_experimental/v4l] Error 2 make[3]: Leaving directory '/usr/src/kernels/4.6.7-200.fc23.x86_64' Makefile:51: recipe for target 'default' failed make[2]: * [default] Error 2 make[2]: Leaving directory '/home/user/media_build_experimental/v4l' Makefile:28: recipe for target 'all' failed make[1]: * [all] Error 2 make[1]: Leaving directory '/home/user/media_build_experimental' Makefile:82: recipe for target 'default' failed make: *\ [default] Error 2

2016-09-03 19:31 GMT+02:00 lwfinger notifications@github.com:

Have you installed some "compat" package from Fedora? My copy of include/linux/compat.h has no mention of pzi_zalloc_consistent.

Two possible fixes: 1. Do you really have a Micronas MSP34XX audio decoder? If not, then disable it in the build. 2. Comment out the offending definition of pci_zalloc_consistent in include/linux/compat.h.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/lwfinger/rtl8192du/issues/42#issuecomment-244559253, or mute the thread https://github.com/notifications/unsubscribe-auth/AUC3qKntGxhWMvsg5S_aDIbWDnMoNpKJks5qma7rgaJpZM4Jj1-M .

THN1 commented 8 years ago

Same with 4.7.2-101.fc23.x86_64

I am running the LXDE WM, maybe this brings compatibility issues?

How can I list compat packages in YUM Extender? Some examples: compat-gnutls28 compat-libvpx1 pangox-compat perl-MRO-Compat polkit-pkla-compat rarian-compat

Does it help?

T.

2016-09-03 22:39 GMT+02:00 Thorsten Hitzemann thorsten.hitzemann@gmail.com :

Hi,

Fedora's just moving to kernel 4.7.2, will come back tomorrow

Thanks,

T


My last test (commenting out the offending function in compat.h gets me further, but then:

In file included from ./arch/x86/include/asm/processor.h:15:0, from ./arch/x86/include/asm/cpufeature.h:4, from ./arch/x86/include/asm/thread_info.h:52, from include/linux/thread_info.h:54, from ./arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:59, 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/user/media_build_experimental/v4l/compat.h:10, from :0: /home/user/media_build_experimental/v4l/videobuf-dma-sg.c: In function 'videobuf_dma_init_user_locked': ./arch/x86/include/asm/current.h:17:17: warning: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]

define current get_current()

             ^

/home/user/media_build_experimental/v4l/videobuf-dma-sg.c:184:23: note: in expansion of macro 'current' err = get_user_pages(current, current->mm, ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h: 1459, from :0: include/linux/mm.h:1266:6: note: expected 'long unsigned int' but argument is of type 'struct taskstruct ' long get_user_pages(unsigned long start, unsigned long nr_pages, ^ In file included from ./arch/x86/include/asm/processor.h:15:0, from ./arch/x86/include/asm/cpufeature.h:4, from ./arch/x86/include/asm/thread_info.h:52, from include/linux/thread_info.h:54, from ./arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:59, 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/user/media_build_experimental/v4l/compat.h:10, from :0: ./arch/x86/include/asm/current.h:17:17: warning: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]

define current get_current()

             ^

/home/user/media_build_experimental/v4l/videobuf-dma-sg.c:184:32: note: in expansion of macro 'current' err = get_user_pages(current, current->mm, ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h: 1459, from :0: include/linux/mm.h:1266:6: note: expected 'long unsigned int' but argument is of type 'struct mm_struct ' long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /home/user/media_build_experimental/v4l/videobuf-dma-sg.c:186:9: warning: passing argument 5 of 'get_userpages' makes pointer from integer without a cast [-Wint-conversion] rw == READ, 1, / force _/ ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h: 1459, from :0: include/linux/mm.h:1266:6: note: expected 'struct page _' but argument is of type 'int' long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /home/user/media_build_experimental/v4l/videobuf-dma-sg.c:186:21: warning: passing argument 6 of 'get_userpages' makes pointer from integer without a cast [-Wint-conversion] rw == READ, 1, /* force / ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h: 1459, from :0: include/linux/mm.h:1266:6: note: expected 'struct vm_areastruct *' but argument is of type 'int' long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /home/user/media_build_experimental/v4l/videobuf-dma-sg.c:184:8: error: too many arguments to function 'get_user_pages' err = get_user_pages(current, current->mm, ^ In file included from include/linux/scatterlist.h:7:0, from include/linux/dmapool.h:14, from include/linux/pci.h:1242, from /home/user/media_build_experimental/v4l/compat.h: 1459, from :0: include/linux/mm.h:1266:6: note: declared here long get_user_pages(unsigned long start, unsigned long nr_pages, ^ /home/user/media_build_experimental/v4l/videobuf-dma-sg.c: In function 'videobuf_dma_free': /home/user/media_build_experimental/v4l/videobuf-dma-sg.c:353:4: error: implicit declaration of function 'page_cache_release' [-Werror=implicit-function-declaration] page_cache_release(dma->pages[i]); ^ cc1: some warnings being treated as errors scripts/Makefile.build:297: recipe for target '/home/user/mediabuild experimental/v4l/videobuf-dma-sg.o' failed make[4]: * [/home/user/media_build_experimental/v4l/videobuf-dma-sg.o] Error 1 Makefile:1433: recipe for target 'module/home/user/media_build_experimental/v4l' failed make[3]: * [module/home/user/media_build_experimental/v4l] Error 2 make[3]: Leaving directory '/usr/src/kernels/4.6.7-200.fc23.x86_64' Makefile:51: recipe for target 'default' failed make[2]: * [default] Error 2 make[2]: Leaving directory '/home/user/media_build_experimental/v4l' Makefile:28: recipe for target 'all' failed make[1]: * [all] Error 2 make[1]: Leaving directory '/home/user/media_build_experimental' Makefile:82: recipe for target 'default' failed make: *\ [default] Error 2

2016-09-03 19:31 GMT+02:00 lwfinger notifications@github.com:

Have you installed some "compat" package from Fedora? My copy of include/linux/compat.h has no mention of pzi_zalloc_consistent.

Two possible fixes: 1. Do you really have a Micronas MSP34XX audio decoder? If not, then disable it in the build. 2. Comment out the offending definition of pci_zalloc_consistent in include/linux/compat.h.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/lwfinger/rtl8192du/issues/42#issuecomment-244559253, or mute the thread https://github.com/notifications/unsubscribe-auth/AUC3qKntGxhWMvsg5S_aDIbWDnMoNpKJks5qma7rgaJpZM4Jj1-M .