trs писал(а):Драйвер не обычный пакет, а dkms, и исполняемых файлов не содержит.
При установке из пакета rpm копируются его исходные тексты в /usr/src
Далее происходит регистрация посредством команды dkms add (база данных dkms находится в /var/lib/dkms).
Поскольку dkms подразумевает, что исходники компилируемы, то сборка (dkms build) будет происходить при каждом запуске ОС, пока не завершится успешно.
Удилить мoжно из базы вручную, или (правильнее) командой dkms remove, или целиком пакет (urpme dkms-syntek, будут удалены и исходники из /usr/src).
До того, как исходники будут собираться и работать, смысл пакетировать их вряд ли имеется.
В каталоге с исходниками должен быть файл dkms.conf . В нём можно посмотреть команды для сборки драйвера (MAKE="...") и их использовать.
Устанваливать make install и удалять make uninstall (в общем случае, но бывают нюансы).
Спасибо.
Содержимое dkms.conf
Код: Выделить всё
PACKAGE_VERSION=3.0.0-3
# Items below here should not have to change with each driver version
PACKAGE_NAME=syntek
BUILT_MODULE_NAME[0]="stk11xx"
DEST_MODULE_LOCATION[0]="/kernel/3rdparty/syntek"
REMAKE_INITRD="no"
AUTOINSTALL=yes
В /usr/src исправил файл исходника,
Запустил make -f Makefile.standalone
получаю выхлоп:
Код: Выделить всё
# make -f Makefile.standalone
make -C /lib/modules/4.9.9-nrj-desktop-1rosa-x86_64/build SUBDIRS=/usr/src/syntek-3.0.0-3 modules
make[1]: вход в каталог «/usr/src/linux-4.9.9-nrj-desktop-1rosa-x86_64»
CC [M] /usr/src/syntek-3.0.0-3/stk11xx-usb.o
CC [M] /usr/src/syntek-3.0.0-3/stk11xx-v4l.o
CC [M] /usr/src/syntek-3.0.0-3/stk11xx-sysfs.o
In file included from ./include/linux/thread_info.h:11:0,
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/stat.h:18,
from ./include/linux/module.h:10,
from /usr/src/syntek-3.0.0-3/stk11xx-sysfs.c:34:
./include/linux/bug.h:37:45: ошибка: битовое поле «<anonymous>» имеет отрицательный размер
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
^
./include/linux/kernel.h:854:3: замечание: in expansion of macro «BUILD_BUG_ON_ZERO»
BUILD_BUG_ON_ZERO((perms) & 2) + \
^
./include/linux/sysfs.h:102:12: замечание: in expansion of macro «VERIFY_OCTAL_PERMISSIONS»
.mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
^
./include/linux/device.h:576:45: замечание: in expansion of macro «__ATTR»
struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _stor
^
/usr/src/syntek-3.0.0-3/stk11xx-sysfs.c:488:8: замечание: in expansion of macro «DEVICE_ATTR»
static DEVICE_ATTR(brightness, S_IRUGO | S_IWUGO, show_brightness, store_brig
^
./include/linux/bug.h:37:45: ошибка: битовое поле «<anonymous>» имеет отрицательный размер
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
^
./include/linux/kernel.h:854:3: замечание: in expansion of macro «BUILD_BUG_ON_ZERO»
BUILD_BUG_ON_ZERO((perms) & 2) + \
^
./include/linux/sysfs.h:102:12: замечание: in expansion of macro «VERIFY_OCTAL_PERMISSIONS»
.mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
^
./include/linux/device.h:576:45: замечание: in expansion of macro «__ATTR»
struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _stor
^
/usr/src/syntek-3.0.0-3/stk11xx-sysfs.c:489:8: замечание: in expansion of macro «DEVICE_ATTR»
static DEVICE_ATTR(contrast, S_IRUGO | S_IWUGO, show_contrast, store_contrast
^
./include/linux/bug.h:37:45: ошибка: битовое поле «<anonymous>» имеет отрицательный размер
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
^
./include/linux/kernel.h:854:3: замечание: in expansion of macro «BUILD_BUG_ON_ZERO»
BUILD_BUG_ON_ZERO((perms) & 2) + \
^
./include/linux/sysfs.h:102:12: замечание: in expansion of macro «VERIFY_OCTAL_PERMISSIONS»
.mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
^
./include/linux/device.h:576:45: замечание: in expansion of macro «__ATTR»
struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _stor
^
/usr/src/syntek-3.0.0-3/stk11xx-sysfs.c:490:8: замечание: in expansion of macro «DEVICE_ATTR»
static DEVICE_ATTR(whitebalance, S_IRUGO | S_IWUGO, show_whitebalance, store_
^
./include/linux/bug.h:37:45: ошибка: битовое поле «<anonymous>» имеет отрицательный размер
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
^
./include/linux/kernel.h:854:3: замечание: in expansion of macro «BUILD_BUG_ON_ZERO»
BUILD_BUG_ON_ZERO((perms) & 2) + \
^
./include/linux/sysfs.h:102:12: замечание: in expansion of macro «VERIFY_OCTAL_PERMISSIONS»
.mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
^
./include/linux/device.h:576:45: замечание: in expansion of macro «__ATTR»
struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _stor
^
/usr/src/syntek-3.0.0-3/stk11xx-sysfs.c:491:8: замечание: in expansion of macro «DEVICE_ATTR»
static DEVICE_ATTR(colour, S_IRUGO | S_IWUGO, show_colour, store_colour);
^
./include/linux/bug.h:37:45: ошибка: битовое поле «<anonymous>» имеет отрицательный размер
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
^
./include/linux/kernel.h:854:3: замечание: in expansion of macro «BUILD_BUG_ON_ZERO»
BUILD_BUG_ON_ZERO((perms) & 2) + \
^
./include/linux/sysfs.h:102:12: замечание: in expansion of macro «VERIFY_OCTAL_PERMISSIONS»
.mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
^
./include/linux/device.h:576:45: замечание: in expansion of macro «__ATTR»
struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _stor
^
/usr/src/syntek-3.0.0-3/stk11xx-sysfs.c:492:8: замечание: in expansion of macro «DEVICE_ATTR»
static DEVICE_ATTR(hflip, S_IRUGO | S_IWUGO, show_hflip, store_hflip);
^
./include/linux/bug.h:37:45: ошибка: битовое поле «<anonymous>» имеет отрицательный размер
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
^
./include/linux/kernel.h:854:3: замечание: in expansion of macro «BUILD_BUG_ON_ZERO»
BUILD_BUG_ON_ZERO((perms) & 2) + \
^
./include/linux/sysfs.h:102:12: замечание: in expansion of macro «VERIFY_OCTAL_PERMISSIONS»
.mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
^
./include/linux/device.h:576:45: замечание: in expansion of macro «__ATTR»
struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _stor
^
/usr/src/syntek-3.0.0-3/stk11xx-sysfs.c:493:8: замечание: in expansion of macro «DEVICE_ATTR»
static DEVICE_ATTR(vflip, S_IRUGO | S_IWUGO, show_vflip, store_vflip);
^
make[2]: *** [scripts/Makefile.build:294: /usr/src/syntek-3.0.0-3/stk11xx-sysfs.o] Ошибка 1
make[1]: *** [Makefile:1483: _module_/usr/src/syntek-3.0.0-3] Ошибка 2
make[1]: выход из каталога «/usr/src/linux-4.9.9-nrj-desktop-1rosa-x86_64»
make: *** [Makefile.standalone:13: driver] Ошибка 2
Ошибка, как я понимаю, из-за того, что изменён файл исходника, и что-то, где-то нужно сделать с версией?