The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Oracle Linux 6. Модуль ядра собирается под более старую версию."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Ядро)
Изначальное сообщение [ Отслеживать ]

"Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от Кочегар (ok), 07-Ноя-18, 05:21 
Здравствуйте!

Собираю модуль для 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

Откуда берётся информация о старом ядре? Где что поправить, чтобы собрать модуль под текущую версию ядра?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +1 +/
Сообщение от анонимус (??), 07-Ноя-18, 11:56 
rpm -qa kernel*  в помощь

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от ACCA (ok), 08-Ноя-18, 20:31 
> Если кратко, версия ядра 2.6.39-400.298.3.el6uek.x86_64, а модуль собирается под 2.6.32-696.23.1.el6.x86_64.
> Почему и как это исправить?

В /etc/sysconfig/kernel сделай DEFAULTKERNEL=kernel-uek

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от Кочегар (ok), 09-Ноя-18, 02:05 
> rpm -qa kernel*  в помощь

Удалил все rpm ядра 2.6.32-696. Не помогло.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от Кочегар (ok), 09-Ноя-18, 02:09 
> В /etc/sysconfig/kernel сделай DEFAULTKERNEL=kernel-uek

Там уже так и прописано.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от ACCA (ok), 09-Ноя-18, 19:31 
>> rpm -qa kernel*  в помощь
> Удалил все rpm ядра 2.6.32-696. Не помогло.

А kernel-devel и kernel-headers?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от КГБ СССР (?), 10-Ноя-18, 21:52 
А uname -r какое ядро показывает? Если не ошибаюсь, в Oracle Linux программы по умолчанию собираются под то ядро, которое сейчас загружено.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от КГБ СССР (?), 10-Ноя-18, 21:53 
А, вижу, пардон.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от pavlinux (ok), 14-Ноя-18, 03:16 
> в Oracle Linux программы по умолчанию собираются под то ядро, которое сейчас загружено.

Чо?! o.O


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от pavlinux (ok), 14-Ноя-18, 03:19 
> mxser: Unknown symbol __x86_indirect_thunk_rax (err 0)

Нифуя, Ораклы даже в 2.6.39 впихнули RETPOLINE

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от Кочегар (ok), 14-Ноя-18, 05:00 
>>> rpm -qa kernel*  в помощь
>> Удалил все rpm ядра 2.6.32-696. Не помогло.
> А kernel-devel и kernel-headers?

С ними интересная история.
kernel-devel-2.6.32-696 и kernel-headers-2.6.32-696 я удалил, но остался пакет kernel-headers-2.6.32-754.6.3.el6.x86_64, у него в зависимостях gcc. Пакета, полностью соответствующего версии ядра, в репозитории Oracle почему-то нет...

Вот список пакетов на текущий момент:
# rpm -qa | grep ^kernel | sort
kernel-headers-2.6.32-754.6.3.el6.x86_64
kernel-uek-2.6.39-400.17.1.el6uek.x86_64
kernel-uek-2.6.39-400.298.3.el6uek.x86_64
kernel-uek-firmware-2.6.39-400.17.1.el6uek.noarch
kernel-uek-firmware-2.6.39-400.298.3.el6uek.noarch

Самое интересное, что модуль собирается не для 2.6.32-754, всё равно под 2.6.32-696.
# 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
...
vermagic:       2.6.32-696.23.1.el6.x86_64 SMP mod_unload modversions

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

11. "Oracle Linux 6. Модуль ядра собирается под более старую версию."  +/
Сообщение от КГБ СССР (?), 14-Ноя-18, 09:07 
>> в Oracle Linux программы по умолчанию собираются под то ядро, которое сейчас загружено.
> Чо?! o.O

Ничо-ничо, то я про своё думал.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру