Как изменить vmlinuz без перекомпиляции

Как изменить vmlinuz без перекомпиляции

В заголовке указано, что у меня зависли два файла vmlinuz для встроенной системы.

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

Первый vmlinuz поддерживает 4 последовательных порта и два VGA.

Второй vmlinuz поддерживает 6 последовательных портов и один VGA.

Я хочу иметь vmlinuz, который поддерживает 6 последовательных портов и два VGA.

Существует ли способ скопировать драйвер из второго vmlinuz в первый vmlinuz и заменить оригинальный внутри первого vmlinuz?

решение1

Существует ли способ скопировать драйвер из второго vmlinuz в первый vmlinuz и заменить оригинальный внутри первого vmlinuz?

За исключением обширного обратного проектирования и внесения двоичных исправлений, нет.

Мне нужен компьютер vmlinuzс поддержкой 6 последовательных портов и двух VGA.

Без источников этого, скорее всего, невозможно достичь.

Даже если у вас есть исходники, тот факт, что они предложили два ядра с разными возможностями (например, компромисс между последовательным интерфейсом и VGA), подразумевает, что могут быть аппаратные ограничения (ресурсы FPGA / CPLD?).

Не зная, что это за устройство, мы можем только предполагать.


Если производитель устройства выпустил исходные коды для BSP (например, Yocto), то вы можете изучить их оттуда, но вам все равно, вероятно, придется скомпилироватьчто-нибудь.


Если устройство поддерживается основным ядром (т.е. все исходники находятся врепозиторий kernel.org), то у вас может появиться возможность воссоздать конфигурацию и выполнить повторную сборку.

  1. Загрузите систему и запустите uname -r- это релиз ядра
    • Например, 4.15.0-48-genericуказывает наверсия 4.15выпускать
  2. Найдите файл с именем /proc/config.gz— во встроенной или более новой системе он может отсутствовать.
    • Его можно распаковать с помощью gzip -d < /proc/config.gz > ~/configи впоследствии использовать при настройке ядра.
    • Это доступно только при соответствующей настройке ядра.
      • Дистрибутивы все чаще отключают его для "проблемы безопасности"
      • Во встраиваемой системе его можно отключить, чтобы уменьшить размер образа ядра.

Другие места, где можно поискать конфигурацию ядра, включают в себя /bootи в соответствующем пакете (если вы используете дистрибутив).


Если один или оба из этих способов не дали результата, то вам, вероятно, не повезло.

Связанный контент