it's copy from install media of ubuntu. usually i use it with dkms to get my bcm43142 wifi card to work.
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
CFG80211 API is prefered for this kernel version
Using CFG80211 API
CC [M] /akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.o
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c: In function 'osl_dma_alloc_consistent':
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:603:14: error: implicit declaration of function 'pci_alloc_consistent'; did you mean 'osl_dma_alloc_consistent'? [-Werror=implicit-function-declaration]
603 | va = pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap);
| ^~~~~~~~~~~~~~~~~~~~
| osl_dma_alloc_consistent
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:603:12: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
603 | va = pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap);
| ^
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c: In function 'osl_dma_free_consistent':
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:616:9: error: implicit declaration of function 'pci_free_consistent'; did you mean 'osl_dma_free_consistent'? [-Werror=implicit-function-declaration]
616 | pci_free_consistent(osh->pdev, size, va, (dma_addr_t)pa);
| ^~~~~~~~~~~~~~~~~~~
| osl_dma_free_consistent
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c: In function 'osl_dma_map':
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:626:38: error: 'PCI_DMA_TODEVICE' undeclared (first use in this function); did you mean 'DMA_TO_DEVICE'?
626 | dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE;
| ^~~~~~~~~~~~~~~~
| DMA_TO_DEVICE
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:626:38: note: each undeclared identifier is reported only once for each function it appears in
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:626:56: error: 'PCI_DMA_FROMDEVICE' undeclared (first use in this function); did you mean 'DMA_FROM_DEVICE'?
626 | dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE;
| ^~~~~~~~~~~~~~~~~~
| DMA_FROM_DEVICE
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:659:17: error: implicit declaration of function 'pci_map_single'; did you mean 'dma_map_single'? [-Werror=implicit-function-declaration]
659 | return (pci_map_single(osh->pdev, va, size, dir));
| ^~~~~~~~~~~~~~
| dma_map_single
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c: In function 'osl_dma_unmap':
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:668:38: error: 'PCI_DMA_TODEVICE' undeclared (first use in this function); did you mean 'DMA_TO_DEVICE'?
668 | dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE;
| ^~~~~~~~~~~~~~~~
| DMA_TO_DEVICE
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:668:56: error: 'PCI_DMA_FROMDEVICE' undeclared (first use in this function); did you mean 'DMA_FROM_DEVICE'?
668 | dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE;
| ^~~~~~~~~~~~~~~~~~
| DMA_FROM_DEVICE
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:669:9: error: implicit declaration of function 'pci_unmap_single'; did you mean 'dma_unmap_single'? [-Werror=implicit-function-declaration]
669 | pci_unmap_single(osh->pdev, (uint32)pa, size, dir);
| ^~~~~~~~~~~~~~~~
| dma_unmap_single
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c: In function 'osl_reg_map':
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:945:17: error: implicit declaration of function 'ioremap_nocache'; did you mean 'ioremap_cache'? [-Werror=implicit-function-declaration]
945 | return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
| ^~~~~~~~~~~~~~~
| ioremap_cache
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:945:17: warning: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion]
945 | return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c: In function 'osl_os_get_image_block':
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:1079:35: warning: passing argument 2 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
1079 | rdlen = kernel_read(fp, fp->f_pos, buf, len);
| ~~^~~~~~~
| |
| loff_t {aka long long int}
In file included from ./include/linux/huge_mm.h:8,
from ./include/linux/mm.h:745,
from /akms/bcmwl-6.30.223.271+bdcom/src/include/linuxver.h:65,
from /akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:25:
./include/linux/fs.h:3033:43: note: expected 'void *' but argument is of type 'loff_t' {aka 'long long int'}
3033 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
| ^~~~~~
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:1079:44: warning: passing argument 3 of 'kernel_read' makes integer from pointer without a cast [-Wint-conversion]
1079 | rdlen = kernel_read(fp, fp->f_pos, buf, len);
| ^~~
| |
| char *
./include/linux/fs.h:3033:51: note: expected 'size_t' {aka 'long unsigned int'} but argument is of type 'char *'
3033 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
| ^~~~~~
/akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.c:1079:49: warning: passing argument 4 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
1079 | rdlen = kernel_read(fp, fp->f_pos, buf, len);
| ^~~
| |
| int
./include/linux/fs.h:3033:59: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'int'
3033 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
| ^~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:250: /akms/bcmwl-6.30.223.271+bdcom/src/shared/linux_osl.o] Error 1
make[1]: *** [Makefile:2014: /akms/bcmwl-6.30.223.271+bdcom] Error 2
make: *** [Makefile:140: all] Error 2