Jump to content

    
Sign in to follow this  
Power

Пересобрать Kernel для совместимости драйвера

Recommended Posts

Собирается без проблем , нужна помощь устранить Unknown symbol in module для совместимости драйвера
Желательно подробно  (ранее этого не делал)
Возможно через команду cat /proc/kallsyms  , но точно не знаю

Share this post


Link to post
Share on other sites

VERSION = 3
PATCHLEVEL = 3
SUBLEVEL = 8
EXTRAVERSION = -2.0
Только Ваш вопрос не имеет значения , написал выше
версия и драйвер одинаковые (предыдущего и собираемого Kernel)

 

 

 

Edited by Power

Share this post


Link to post
Share on other sites
6 hours ago, Power said:

Версия 3.3 + Extraversion и драйвера одинаковая
disagrees about version of symbol module_layout
insmod: ERROR: could not insert module. Invalid module format

 

попробуйте

insmod -f module.ko

man insmod

 

 
Quote

 


       -f, --force
	      Attempt  load  the  module  even	if  the version of the running
	      kernel and the version of the kernel for which  the  module  was
	      compiled	do  not match.	This only overrides the kernel version
	      check, it has no effect on symbol name checks.   If  the	symbol
	      names in the module do not match the kernel then there is no way
	      to force insmod to load the module.


 

 

 

для modprobe тоже есть аналогичный ключ.

В ядре на котором хотите подгрузить "неродной" модуль должна быть включена поддержка для этого

[*] Enable loadable module support  --->

[*]   Forced module loading

Share this post


Link to post
Share on other sites

При включении в ядре
[*] Enable loadable module support  --->
[*]   Forced module loading
insmod -f module.ko
insmod: ERROR: could not insert module. Invalid module format

version magic 'preempt mod_unload modversions'
должно быть
mod_unload modversions
Что такое  version magic и preempt ?

Edited by Power

Share this post


Link to post
Share on other sites
1 hour ago, Power said:

version magic 'preempt mod_unload modversions'
должно быть
mod_unload modversions

Смените в ядре  Preemption Model чтобы как в модуле было

 Kernel Features  --->
 Preemption Model (Preemptible Kernel (Low-Latency Desktop))  --->

 

 

Share this post


Link to post
Share on other sites
On 1/25/2019 at 4:15 PM, gosha-z said:

А драйвер в исходниках или только бинарь?

Тогда сливайте воду:aggressive:- это вам не ВыньДа :beach:

 

On 1/26/2019 at 5:25 PM, Power said:

Как перенести все символы из модуля командой cat /proc/kallsyms ?
Так как лучше перенести все символы сразу , чтобы не было ошибок

 

 

Драйверы и модули ядра Linux

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this