Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Сборка ядра


Автор: Romikgy 29.7.2016, 10:53
Есть исходники ядра линукса с включенной поддержкой процессора, есть более новая версия ядра линукса , как перенести поддержку процессора из старой версии исходников в новую версию исходников?

Автор: xvr 29.7.2016, 11:10
В чем заключается 'поддержка процессора'? Если только в настройках ядра, то можно попытаться перенести конфиг файлы со старой версии в новую.
Если же были правки в тексте, то делаете diff на модифицированное старое ядро и пытаетесь применить его к новому ядру. Скорее всего придется много править руками по diff файлу - patch не обладает достаточным уровнем интелекта, что бы адаптироваться к чему угодно  smile 
Потом собираете то, что получилось, и пытаетесь запустить  smile 

Автор: Romikgy 29.7.2016, 11:20
Спасибо за быстрый ответ)
именно так и делал, сначала просто копировал , потом делал diff & patch , и после этого не собирается... как узнать что нужно поправить , что бы собралось???

Автор: xvr 29.7.2016, 20:33
Увы, этот процесс формализации не поддается. Смотреть на ошибки компиляции и править исходники после patch'а.
И даже если соберется, не факт что заработает  smile 

Цитата(Romikgy @  29.7.2016,  11:20 Найти цитируемый пост)
потом делал diff

Надеюсь, diff делался относительно той версии ядра от из которой делали 'версию для процессора'?


Автор: Romikgy 31.7.2016, 11:03
Цитата(xvr @  29.7.2016,  19:33 Найти цитируемый пост)
Надеюсь, diff делался относительно той версии ядра от из которой делали 'версию для процессора'?

конечно 

я думал , что есть какие то особенности добавления нового процессора в исходники... т.е. нужные директории ...

Автор: xvr 31.7.2016, 19:14
Все нужные директории должны были перенестись через diff (если конечно версии ядра не кардинально поменялись)


Цитата(Romikgy @  31.7.2016,  11:03 Найти цитируемый пост)
я думал , что есть какие то особенности добавления нового процессора в исходники... 

Возможно и есть, но я лично не в курсе. А в папочке Documentation в сорцах ядра не смотрели?

Автор: Romikgy 1.8.2016, 08:51
на что конкретно обратить внимание в Documentation  ?

Автор: xvr 1.8.2016, 11:27
На все подряд  smile 
Как минимум на папку kbuild (там описана структура Makefile'а и связанных с ним директорий). Еще можно покопаться в файле kernel-docs.txt (там ссылки на внешнюю документацию). Ну и посмотреть на CPU зависимые описания (их там очень много) - может найдутся какие нибудь упоминания об особенностях добавления CPU (они же их добавили, в конце концов  smile )

Автор: bsa 12.8.2016, 15:46
Не собираться может еще и потому, что изменена внутренняя структура ядра. В итоге, ряд полей структур переименован, ряд удален, у функций могли измениться аргументы... Короче, задачка нетривиальная. Хотя, если посмотреть на ошибки, то, возможно, все окажется не так уж и сложно. Хотя гарантий работы все равно никто не даст.

Автор: _zorn_ 15.8.2016, 08:55
Вспоминается очередное обновление ядра на убунте и вмваре smile
Они там туда сюда структуры трелюют (ядро линукс), а мне искать воркэраунды smile
Там в vmnet уже все обросло #ifdef'ами по части версии ядра (в вмваре).
Так что вникай в хедеры и правь исходники. Обратная совместимость не в главе угла.

Еще количество параметров у функции может туда сюда гонять smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)