Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > Сборка ядра |
Автор: Romikgy 29.7.2016, 10:53 |
Есть исходники ядра линукса с включенной поддержкой процессора, есть более новая версия ядра линукса , как перенести поддержку процессора из старой версии исходников в новую версию исходников? |
Автор: xvr 29.7.2016, 11:10 |
В чем заключается 'поддержка процессора'? Если только в настройках ядра, то можно попытаться перенести конфиг файлы со старой версии в новую. Если же были правки в тексте, то делаете diff на модифицированное старое ядро и пытаетесь применить его к новому ядру. Скорее всего придется много править руками по diff файлу - patch не обладает достаточным уровнем интелекта, что бы адаптироваться к чему угодно ![]() Потом собираете то, что получилось, и пытаетесь запустить ![]() |
Автор: Romikgy 29.7.2016, 11:20 |
Спасибо за быстрый ответ) именно так и делал, сначала просто копировал , потом делал diff & patch , и после этого не собирается... как узнать что нужно поправить , что бы собралось??? |
Автор: xvr 29.7.2016, 20:33 |
Увы, этот процесс формализации не поддается. Смотреть на ошибки компиляции и править исходники после patch'а. И даже если соберется, не факт что заработает ![]() Надеюсь, diff делался относительно той версии ядра от из которой делали 'версию для процессора'? |
Автор: xvr 31.7.2016, 19:14 | ||
Все нужные директории должны были перенестись через diff (если конечно версии ядра не кардинально поменялись)
Возможно и есть, но я лично не в курсе. А в папочке Documentation в сорцах ядра не смотрели? |
Автор: Romikgy 1.8.2016, 08:51 |
на что конкретно обратить внимание в Documentation ? |
Автор: xvr 1.8.2016, 11:27 |
На все подряд ![]() Как минимум на папку kbuild (там описана структура Makefile'а и связанных с ним директорий). Еще можно покопаться в файле kernel-docs.txt (там ссылки на внешнюю документацию). Ну и посмотреть на CPU зависимые описания (их там очень много) - может найдутся какие нибудь упоминания об особенностях добавления CPU (они же их добавили, в конце концов ![]() |
Автор: bsa 12.8.2016, 15:46 |
Не собираться может еще и потому, что изменена внутренняя структура ядра. В итоге, ряд полей структур переименован, ряд удален, у функций могли измениться аргументы... Короче, задачка нетривиальная. Хотя, если посмотреть на ошибки, то, возможно, все окажется не так уж и сложно. Хотя гарантий работы все равно никто не даст. |
Автор: _zorn_ 15.8.2016, 08:55 |
Вспоминается очередное обновление ядра на убунте и вмваре ![]() Они там туда сюда структуры трелюют (ядро линукс), а мне искать воркэраунды ![]() Там в vmnet уже все обросло #ifdef'ами по части версии ядра (в вмваре). Так что вникай в хедеры и правь исходники. Обратная совместимость не в главе угла. Еще количество параметров у функции может туда сюда гонять ![]() |