PINE64
WIFI driver compilation - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: ROCK64 (https://forum.pine64.org/forumdisplay.php?fid=85)
+--- Forum: Rock64 Hardware and Accessories (https://forum.pine64.org/forumdisplay.php?fid=89)
+--- Thread: WIFI driver compilation (/showthread.php?tid=6716)



WIFI driver compilation - wsk - 10-28-2018

Hello everyone,

I have a Rock64 board and have two USB wifi adapters, one with rtl8192SU chip and the other with rtl8192EU. I have spent several days trying to compile the drivers for both and changed the system from debian to ubunto and back. I cannot get the system to compile the drivers. I followed the threads here and the readme on github for several versions. Nothing is working. Can anyone direct me to a tutorial about the preparation of the system for compiling the drivers that would be enough to get this to work? I now have armbian. I successfully installed the .deb driver but it cannot identify the hardware and the driver does not show in the sysotem.

Any help is appriciated.


RE: WIFI driver compilation - wsk - 11-01-2018

Ok... the eu version is working now

first i tried some tutorials here and it didn't work. I used the modifications below for the post:

https://forum.pine64.org/showthread.php?tid=5768&highlight=rtl8192eu


Quote:3) Using your text editor, edit some entries in file called Makefile so that it can run without error on Rock64.

[Disable energy saving around line 40]

CONFIG_POWER_SAVING = y
     ↓
CONFIG_POWER_SAVING = n 


[Change platform setting around line 53]

CONFIG_PLATFORM_I386_PC = y
     ↓
CONFIG_PLATFORM_I386_PC = n


[Add the following platform setting immediately under the above line]

CONFIG_PLATFORM_ARM_PC = y


[Add the following command around line 662]

ifeq ($(CONFIG_PLATFORM_ARM_PC), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
SUBARCH := arm64
ARCH ?= arm64
CROSS_COMPILE ?=
KVER ?= $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build/
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
endif


[Remove "modules" part from the following command around line 1065]

$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd)  modules
                  ↓
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd)

 
I got errors about the scripts in the headers. It seems the version I was using had missing files (armbian desktop). I had tried other versions with not success. So to resolve this I downloaded the full source and applied the following three commands:

make oldconfig

make prepare
make scripts

then I copied the whole source into the headers directory. I know this is probably too much but i got errors when I tried to copy the scripts only.


Once this was done I got a few formatting error in the code (for loops and if statements). I had to put curly brackets around the concerned code. I compiled successfully. 

make install


Now dmesg gave a version magic error. The version was not correct and would appear every time. So finally I applied this fix:

http://billauer.co.il/blog/2013/10/version-magic-insmod-modprobe-force/



Quote:This solution holds for the 3.3.0 kernel, but probably works on others as well.
The file you want to edit is /usr/src/kernels/{your version}/include/generated/utsrelease.h and just add the ‘+’ sign to the end of the version number. E.g.
#define UTS_RELEASE "3.3.0-xxx+"



and it worked.