Помогите с скриптом компиляции ядра Linux - PullRequest
0 голосов
/ 05 декабря 2010

я написал скрипт для компиляции ядра:

cd /usr/src/linux-2.4.18-14custom
make bzImage
make modules
make modules_install
cd arch/i386/boot
yes|cp bzImage /boot/vmlinuz-2.4.18-14custom
cd /boot
yes|mv 2.4.18-14custom.img 2.4.18-14custom.img.back
mkinitrd 2.4.18-14custom.img 2.4.18-14custom
reboot

, если я выполняю каждую строку в консоли, это работает, но когда я помещаю их все в скрипт, он выполняет только эти 2 строки и завершается:

    make bzImage
    make modules

есть идеи, как это работает?

1 Ответ

0 голосов
/ 14 декабря 2010

сборка ядра

make -C /usr/src/linux help показывает опции для сборки и установки ядра.

  • initramfs допускает встроенный эквивалент initrd, который не требует усилий после сборки. Я не знаю, было ли это перенесено на Linux-2.4; но почему 2,4?

  • Используйте make all install modules_install для установки всего. Может быть, 2.4 Makefiles требует отдельную цель "modules".

После переключения на initramfs, вероятно, все можно выполнить одной командой make:

 make -C /usr/src/linux  all install modules_install

Сценарии

Пример сценария установки приведен в arch / i386 / boot / install.sh . Также, посмотрите Makefile в том же каталоге, чтобы увидеть, как все это работает. Если существует общесистемный installkernel сценарий ( / sbin / installkernel в Gentoo) или пользовательский $ HOME / bin / installkernel, который будет использоваться.

Сценарий, изначально размещенный с этим вопросом, будет работать в надлежащих условиях. Я управлял этим; но фальсифицировал mkinitrd и пропустил перезагрузку.

  • Скрипт не проверяет наличие ошибок. Он должен остановиться, если make потерпел неудачу, и не потерпеть неудачу, если старые файлы для mv или cp не существуют.
  • косметика: yes|mv и yes|cp следует заменить на cp -f и mv -f. См. Справочные страницы (или mv --help, cp --help).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...