2012-06-24 4 views
1

Я начал читать книгу «Основные драйверы устройств Linux». Я следую процессу компиляции и загрузки в новое ядро. Однако я не могу загрузиться в недавно скомпилированное ядро ​​- я выбираю новое ядро ​​в grub, а затем ... ничего ... экран остается неизменным.Загрузка только что скомпилированного ядра Linux

Вот шаги, я принимаю, как описано в книге (я использую ядро ​​2.6.24, как это то, что книга основана на) -

  • кд/USR/SRC/linux- 2.6.24 (база дир ядра я скачал)
  • сделать чистый
  • сП арка/x86/конфиги/i386_defconfig .config
  • делают bzImage сП арка/x86/загрузки/bzImage/загрузки/vmlinuz

В книге говорится, что «вам может потребоваться предупредить загрузчика о появлении нового загрузочного образа. Если вы используете загрузчик GRUB, он автоматически определяет это ».

Ну, это не получилось автоматически в моем случае, так как не было возможности выбрать это ядро ​​в GRUB. Поэтому я сделал это вручную, набрав update-grub в терминале. И это тоже не сработало. Однако, как только я сменил имя файла vmlinuz на vmlinuz-2.6.24 и набрал update-grub, он поднял его. Итак, на странице 11 книги, похоже, уже осталось несколько вещей ...

В книге говорится, что затем перезагрузите компьютер.

В любом случае, теперь я могу выбрать это ядро ​​в GRUB, но, как я уже сказал выше, doeesn't правильно загружается, экран просто гаснет и никогда не изменяется. Так что я чего-то не хватает? Я точно следовал инструкциям в книге.

+1

Попробуйте запустить новое ядро ​​с аргументом «verbose». Возможно, он расскажет вам что-то еще, что происходит. – morsik

+0

Это не связано с программированием и должно быть задано в [unix.stackexchange.com] (http: //unix.stackexchange.com) –

+0

Я чувствую, что вопрос на границе связан с программированием, поэтому его место здесь. (Это зависит от конфигурации и сборки, и плакат хочет закодировать драйвер ....). –

ответ

3

Большинство автоматических установок Чипы включают в себя параметры ядра, чтобы скрыть сообщения, сгенерированные в попытках ядра для загрузки. Например:

/boot/vmlinuz-x.x.x.x-generic root=UUID=something ro quiet splash 

В то время как на меню личинки линии ядра, которое вы хотите загрузить, нажмите «е», чтобы временно изменить его, и удалять такие параметры, как тихое и всплеск (но оставить ро).

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

1

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

Вы можете либо сконфигурировать ваше ядро ​​соответствующим образом (тщательно включив как ядро, не встроенные модули, основные драйверы) для вашего конкретного оборудования, либо использовать процедуру для сборки пакета ядра с его initrd.

Вы должны найти процедуру, подходящую для вашего распространения и обычаев Linux, например. что-то вроде this или that. Я использую на Debian:

time fakeroot make-kpkg -j2 --initrd --revision=3.4.2 --append-to-version=-amd64 binary 
+0

У вас есть идеи, почему автор не включил такую ​​информацию в книгу? Я не могу понять, почему он оставил необходимые инструкции для загрузки ядра ... –

+0

Спросите автора книги, я не знаю. Возможно, книга очень старая. Ядро 2.6.24 было выпущено в 2008 году. Предлагаю изучить и улучшить более новое ядро ​​(3.4.4 - текущий). –

+0

Просто попробовал учебник на этой странице - http://linuxtweaking.blogspot.ie/2010/05/how-to-compile-kernel-on-ubuntu-1004.html - и у меня такая же проблема. Может ли это иметь какое-либо отношение к тому факту, что Im использует виртуальный бокс для запуска Linux? –

Смежные вопросы