Какое ядро ​​создавать при разработке модулей ядра с использованием библиотек xen? - PullRequest
0 голосов
/ 17 июня 2019

В настоящее время я разрабатываю модуль ядра, который будет работать в непривилегированном домене в Xen.Модуль должен вызвать

xen/grant_table.h: gnttab_grant_foreign_access()

Но когда я хочу вставить его, я получаю сообщение об ошибке:

Unknown symbol gnttab_grant_foreign_access (err 0)

Я проверил версии ядра, одну из которых я собрал, а другуюработает в непривилегированном домене, оба совпадают.Точнее, строки версий, сообщаемые uname -r и modinfo MODULE, равны./proc/kallsyms содержит список функций / символов, которые должны быть экспортированы ядром:

ffff00000853d088 T gnttab_grant_foreign_access

Мне кажется странным, что при запуске

nm MODULE

я получаю, что gnttab_grant_foreign_accessнеопределенный символ, но также printk не определен.

U gnttab_grant_foreign_access
U printk

В этом посте я прочитал, что модуль ядра должен быть построен на ядре DOM0, а не на непривилегированном домене.Поскольку это был единственный источник, который я смог найти, и документация по этой теме несколько редкая, я хотел бы спросить здесь, так ли это на самом деле?Это показалось бы мне странным, потому что я хочу загрузить модуль в ядро ​​версии A, но должен скомпилировать его для версии ядра B.

...