Здравствуйте!Собираю модуль для MOXA CP-168U V2.
Если кратко, версия ядра 2.6.39-400.298.3.el6uek.x86_64, а модуль собирается под 2.6.32-696.23.1.el6.x86_64. Почему и как это исправить?
# uname -srv
Linux 2.6.39-400.298.3.el6uek.x86_64 #1 SMP Mon Feb 26 09:51:27 PST 2018
# lspci | grep -i Moxa
0a:01.0 Serial controller: Moxa Technologies Co Ltd CP-168U V2 Smart Serial Board (8-port RS-232)
make и make install проходит без ошибок.
Пытаюсь загрузить модуль:
# modprobe mxser
FATAL: Error inserting mxser (/lib/modules/2.6.39-400.298.3.el6uek.x86_64/misc/mxser.ko): Invalid module format
# modprobe -f --force-modversion -v mxser
insmod /lib/modules/2.6.39-400.298.3.el6uek.x86_64/misc/mxser.ko
FATAL: Error inserting mxser (/lib/modules/2.6.39-400.298.3.el6uek.x86_64/misc/mxser.ko): Unknown symbol in module, or unknown parameter (see dmesg)
# dmesg | tail -n 15
mxser: disagrees about version of symbol module_layout
mxser: module_layout: kernel tainted.
Disabling lock debugging due to kernel taint
mxser: version magic '2.6.32-696.23.1.el6.x86_64 SMP mod_unload modversions ' should be '2.6.39-400.298.3.el6uek.x86_64 SMP mod_unload modversions '
mxser: Unknown symbol copy_from_user (err 0)
mxser: Unknown symbol __x86_indirect_thunk_rax (err 0)
mxser: Unknown symbol _spin_unlock_irqrestore (err 0)
mxser: Unknown symbol per_cpu__kernel_stack (err 0)
mxser: Unknown symbol copy_to_user (err 0)
mxser: Unknown symbol per_cpu__cpu_number (err 0)
mxser: Unknown symbol param_array_set (err 0)
mxser: Unknown symbol _spin_lock_irqsave (err 0)
mxser: Unknown symbol param_array_get (err 0)
mxser: Unknown symbol _spin_lock (err 0)
mxser: Unknown symbol per_cpu__current_task (err 0)
# modinfo /lib/modules/2.6.39-400.298.3.el6uek.x86_64/misc/mxser.ko
filename: /lib/modules/2.6.39-400.298.3.el6uek.x86_64/misc/mxser.ko
license: GPL
description: MOXA Smartio/Industio Family Multiport Board Device Driver
author: Eric Lo
retpoline: Y
srcversion: 3CE3F561C181235A1B926B4
alias: pci:v00001393d00001120sv*sd*bc*sc*i*
alias: pci:v00001393d00001023sv*sd*bc*sc*i*
alias: pci:v00001393d00001143sv*sd*bc*sc*i*
alias: pci:v00001393d00001044sv*sd*bc*sc*i*
alias: pci:v00001393d00001380sv*sd*bc*sc*i*
alias: pci:v00001393d00001341sv*sd*bc*sc*i*
alias: pci:v00001393d00001142sv*sd*bc*sc*i*
alias: pci:v00001393d00001080sv*sd*bc*sc*i*
alias: pci:v00001393d00001043sv*sd*bc*sc*i*
alias: pci:v00001393d00001682sv*sd*bc*sc*i*
alias: pci:v00001393d00001181sv*sd*bc*sc*i*
alias: pci:v00001393d00001022sv*sd*bc*sc*i*
alias: pci:v00001393d00001021sv*sd*bc*sc*i*
alias: pci:v00001393d00001180sv*sd*bc*sc*i*
alias: pci:v00001393d00000001sv*sd*bc*sc*i*
alias: pci:v00001393d00001042sv*sd*bc*sc*i*
alias: pci:v00001393d00001340sv*sd*bc*sc*i*
alias: pci:v00001393d00001321sv*sd*bc*sc*i*
alias: pci:v00001393d00001681sv*sd*bc*sc*i*
alias: pci:v00001393d00001041sv*sd*bc*sc*i*
alias: pci:v00001393d00001020sv*sd*bc*sc*i*
alias: pci:v00001393d00001140sv*sd*bc*sc*i*
alias: pci:v00001393d00001141sv*sd*bc*sc*i*
alias: pci:v00001393d00001320sv*sd*bc*sc*i*
alias: pci:v00001393d00001040sv*sd*bc*sc*i*
alias: pci:v00001393d00001680sv*sd*bc*sc*i*
depends:
vermagic: 2.6.32-696.23.1.el6.x86_64 SMP mod_unload modversions
parm: ioaddr:array of int
parm: ttymajor:int
parm: calloutmajor:int
parm: verbose:int
Откуда берётся информация о старом ядре? Где что поправить, чтобы собрать модуль под текущую версию ядра?