Могу ли я обновить ядро ​​Linux с версии 2.6.32 до 3.0.7?

Могу ли я обновить ядро ​​Linux с версии 2.6.32 до 3.0.7?

В настоящее время я использую Angstrom Linux 2.6.32 на BeagleBoard-xM (архитектура ARM). Могу ли я обновить свое ядро ​​Linux с 2.6.32 до 3.0.7 и каков уровень сложности, если обновление возможно?

ПРАВКА №1:

Изображение, которое запускает BB-xM, было создано изНарциссс файлами загрузчика(x-load/u-boot/скрипты). Недавно я скачал исходники ядра 2.6.32.61 с kernel.org и скопировал их на /usr/srcBB-xM. После настройки ( make menuconfig), я собрал ( make) и установил ( make install) ядро ​​прямо на BB-xM(собственный набор инструментов).

ПРАВКА №2:

Я знаю, что внимание должно быть уделено также загрузчику, в случае, если его придется вручную настраивать, чтобы загрузить новое ядро. В исходном образе Angstrom bootкаталог содержал:

  • u-boot-scripts
  • MLO-beagleboard-1.5.0+r24+gitr04b1732220078d47c18a84cbafc52e45db71f13d-r24
  • u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75
  • uImage-2.6.32

После настройки и установки ядра 2.6.32.61 bootкаталог содержит:

root@beagleboard:/boot# ls
MLO
MLO-beagleboard-1.5.0+r24+gitr04b1732220078d47c18a84cbafc52e45db71f13d-r24
Module.symvers-2.6.32
System.map-2.6.32
System.map-2.6.32.61
System.map-2.6.32.61.old
config-2.6.32
u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75.bin
u-boot-scripts
u-boot.bin
uImage
uImage-2.6.32
vmlinux-2.6.32.61
vmlinux-2.6.32.61.old

Я не настраивал загрузчик, и BB-xM загружает только что настроенное ядро.

решение1

Я не пользователь платы Beagle, поэтому первое, что вам нужно сделать, это убедиться, что у вас есть соответствующий исходный код ядра. Исходный код Vanilla поддерживает различные чипы Cortex-A8 (ARMv7), включая "OMAP3 BeagleBoard", но я не могу сказать наверняка, достаточно ли этого без дополнительных патчей.

Ядро 3.x должно быть обратно совместимо с пользовательским пространством 2.6, поэтому не должно быть никаких проблем, если только Angstrom не полагается в какой-то значительной степени на функции, реализованные их собственными патчами (в этом случае вам нужно будет применить их). Это не проблема для основных дистрибутивов — хотя они и делают пользовательские патчи для своих ядер и рекомендуют вам использовать их пропатченные исходники, я никогда не сталкивался с проблемой при использовании ванильного дерева — но Angstrom несколько специализирован, я думаю. Если у Angstrom уже есть исходник 3.0.7, то все готово. Если нет, то, вероятно, не помешает попробовать исходник vanilla kernel.org (если он нормально загрузится, то, вероятно, дальше все будет в порядке).

Я предполагаю, что у вас уже есть рабочий инструментарий кросс-компилятора, который работает для BeagleBoard. Если нет, вам он понадобится (я могу дать несколько советов по этому поводу), так как это займет несколько часов непосредственно на BeagleBoard (на Raspberry Pi это, по-видимому, занимает 5+) и, скорее всего, будут некоторые пробы и ошибки. Однако на современной многоядерной машине с несколькими ГГц это не должно занять больше 10 минут, так что вам не придется каждый раз беспокоиться о конфигурации. Кросс-компиляция ядра относительно проста, так как у него нет никаких зависимостей сборки, которые бы уже не были частью инструментальной цепочки.

Некоторые подробности о настройке и компиляции ядра см.глянь сюда. Следуйте совету о том, чтобы не использовать make installв шаге № 5 (т. е. установите ядро ​​на BeagleBoard самостоятельно соответствующим образом; я не знаю, использует ли он обычный загрузчик и т. д.), и установите INSTALL_MOD_PATHsysroot вашего кросс-инструментария перед запуском make modules_install, например

export INSTALL_MOD_PATH=/x-tool/sysroot
make modules_install

Это оставит соответствующий каталог модулей, из /x-tool/sysroot/lib/modulesкоторого вы сможете скопировать данные непосредственно в каталог BeagleBoard /lib/modules.

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