Я пытаюсь создать драйвер для Startech USB31000SW. Драйвер Linux включен, но он должен быть скомпилирован и установлен. При выполнении make
Я получаю следующие ошибки:
make -C /lib/modules/3.2.0-52-generic-pae/build SUBDIRS=/home/lars/Hämtningar/usbnet/Linux/Kernel 2.6.x_3.x modules
make[1]: Går till katalogen "/usr/src/linux-headers-3.2.0-52-generic-pae"
make[1]: *** Ingen regel för att skapa målet "2.6.x_3.x". Stannar.
make[1]: Lämnar katalogen "/usr/src/linux-headers-3.2.0-52-generic-pae"
make: *** [default] Error 2
Третья строка переводит в: Никакое правило создать цель
Согласно чтению меня регистрируют, источник ядра необходим, таким образом, я установил его от Синаптического.
Это - make-файл:
CURRENT = $(shell uname -r)
TARGET = ax88179_178a
OBJS = ax88179_178a.o
MDIR = drivers/net/usb
KDIR = /lib/modules/$(CURRENT)/build
SUBLEVEL= $(shell uname -r | cut -d '.' -f 3 | cut -d '.' -f 1 | cut -d '-' -f 1 | cut -d '_' -f 1)
USBNET = $(shell find $(KDIR)/include/linux/usb/* -name usbnet.h)
ifneq (,$(filter $(SUBLEVEL),14 15 16 17 18 19 20 21))
MDIR = drivers/usb/net
#USBNET = $(shell find $(KDIR)/$(MDIR)/* -name usbnet.h)
endif
#ifneq (,$(filter $(SUBLEVEL),21 22 23 24))
#USBNET = $(shell find $(KDIR)/$(MDIR)/* -name usbnet.h)
#endif
#$(if $(USBNET),,$(error $(KDIR)/$(MDIR)/usbnet.h not found. please refer to readme file for the detailed description))
EXTRA_CFLAGS = -DEXPORT_SYMTAB
PWD = $(shell pwd)
DEST = /lib/modules/$(CURRENT)/kernel/$(MDIR)
obj-m := $(TARGET).o
default:
make -C $(KDIR) SUBDIRS=$(PWD) modules
$(TARGET).o: $(OBJS)
$(LD) $(LD_RFLAG) -r -o $@ $(OBJS)
pw
install:
su -c "cp -v $(TARGET).ko $(DEST) && /sbin/depmod -a"
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
.PHONY: modules clean
-include $(KDIR)/Rules.make
Любые идеи приветствовались бы
Из Synaptic, пожалуйста, установите linux-headers-generic и build-essential и попробуйте снова. Если он все равно не скомпилируется, укажите ссылку на драйвер, чтобы мы могли выполнить дальнейшую стрельбу. Также пост:
lsusb
В этом дереве каталогов сборки не должно быть пробелов в именах каталогов. Когда вы удаляете пробел в имени каталога /home/lars/Hämtningar/usbnet/Linux/Kernel 2.6.x_3.x
(пробел между «Kernel» и «2.6.x_3.x»), он должен работать.
Это потому, что команда «make» не распознает опцию «2.6.x_3.x». «Make» должен создавать (компилировать) «модули», но он пытается создать «2.6.x_3.x» из-за пробелов в команде.