前言
工作原因需要使用讲USB转以太网AX8872C的驱动移植到android平台中,
android 版本: 4.4
内核版本
AM88772C的官网驱动下载
https://www.asix.com.tw/products.php?op=pItemdetail&PItemID=136;71;101&PLine=71
修改Makefile
对于下载到的驱动包,我把它放到 kernel/driver/net/usb
下面
TARGET = asix
OBJS = asix.o
PWD = $(shell pwd)
DEST = /lib/modules/$(CURRENT)/kernel/$(MDIR)
obj-m := $(TARGET).o
KSRC := /home/ljs/imx6_android4/filesystem/kernel_imx #这里最重要
default:
make -C $(KSRC) EXTRA_CFLAGS=-fno-pic M=$(PWD) modules
$(TARGET).o: $(OBJS)
$(LD) $(LD_RFLAG) -r -o $@ $(OBJS)
编译生成的ko文件加载的时候会报错
root@sabresd_6dq:/ # insmod /sdcard/asix.ko
[ 7199.002501] asix: Unknown symbol _GLOBAL_OFFSET_TABLE_ (err 0)
insmod: init_module '/sdcard/asix.ko' failed (No such file or directory)
解决这个问题,需要在编译的时候添加参数
EXTRA_CFLAGS=-fno-pic