Требуется пропатчить и пересобрать ядро. Задача простая, берем текущее ядро, делаем oldconfig, патчим нужный файлик в исходниках, пересобираем и пускаем.
Инструкцию по пересборке взял отсюда:
http://pingvinus.ru/note/linux-kernel-compileСистема Mythbuntu 11.10, ядро 3.0.0-12-generic
Все проходит нормально, oldconfig, нужный мне патчик, запускаю компиляцию:
sudo make-kpkg --initrd --append-to-version=-mykernel kernel_image kernel_headers
все *.o компилятся нормально (небольшое кол-во warnings не в счет), однако потом ошибка:
... skipped ...
CC [M] lib/zlib_deflate/deflate.o
CC [M] lib/zlib_deflate/deftree.o
CC [M] lib/zlib_deflate/deflate_syms.o
LD [M] lib/zlib_deflate/zlib_deflate.o
Building modules, stage 2.
MODPOST 3428 modules
WARNING: arch/x86/platform/olpc/olpc-xo1.o(.data+0x0): Section mismatch in reference from the variable cs5535_pms_drv to the function .devinit.text:olpc_xo1_probe()
The variable cs5535_pms_drv references
the function __devinit olpc_xo1_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
WARNING: arch/x86/platform/olpc/olpc-xo1.o(.data+0x4): Section mismatch in reference from the variable cs5535_pms_drv to the function .devexit.text:olpc_xo1_remove()
The variable cs5535_pms_drv references
the function __devexit olpc_xo1_remove()
If the reference is valid then annotate the
variable with __exit* (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
... skipped ... (еще 32 WARNING)
WARNING: drivers/video/vesafb.o(.exit.text+0x40): Section mismatch in reference from the function vesafb_remove() to the (unknown reference) .init.data:(unknown)
The function __exit vesafb_remove() references
a (unknown reference) __initdata (unknown).
This is often seen when error handling in the exit function
uses functionality in the init path.
The fix is often to remove the __initdata annotation of
(unknown) so it may be used outside an init section.
WARNING: drivers/video/vesafb.o(.exit.text+0x4b): Section mismatch in reference from the function vesafb_remove() to the variable .init.data:vesafb_fix
The function __exit vesafb_remove() references
a variable __initdata vesafb_fix.
This is often seen when error handling in the exit function
uses functionality in the init path.
The fix is often to remove the __initdata annotation of
vesafb_fix so it may be used outside an init section.
ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined!
make[2]: *** [__modpost] Error 1
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-source-3.0.0'
make: *** [debian/stamp/build/kernel] Error 2
Как это исправить?
Upd: Где же достопочтенные гуру?
Upd2: Люди, хоть посоветуйте, куда обратиться с этим багом, а то я уже начинаю подозревать, что в этот раздел вообще никто не заходит ...