ttoorrmmoozz
написал 25 января 2005 года в 15:16 (835 просмотров)
Ведет себя
неопределенно; открыл 21 тему в форуме, оставил 25 комментариев на сайте.
Ситуевина такая :
Вот чего-то мы захотели изменить в ядре .
Берем значится создаем новый каталог , сваливаем туда исходники ядра ,
его конфиг , запускаем тулзу типа xconfig , или же просто чего-то исправляем
в Makefile , компилируем , все ништяк , копируем новый образ в /boot ,
перезагружаемся — и нифига , все колом стоит .
А не забыли ли мы про загружаемые модули ?
Я имею в виду то , что лежит в каталоге /lib/modules ?
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Как, простите, стоит?!
Какой загрузчик у тебя? Если lilo, то после компиляции ядра, во-первых, необходимо прописать новое ядро в соответствующей секции; во-вторых, под рутом прогнать /sbin/lilo.
В каталоге /lib/modules должны лежать модули ядра, но всё зависит от того, как компилировал ядро. Рассказывай по шагам, что делалось.
Да не , я просто моделирую ситуацию , реально я пока ничего не делаю .
При настройке конфига мы устанавливаем опцию — поддержка загружаемых модулей .
Эта опция , как я понимаю , стоит по умолчанию во всех дистрибутивах , и нет особой нужды ее устанавливать вновь .
Допустим , я своими ручками подправил какой-то код в исходниках .
Запустил make.
Образ скомпилировался .
Вопрос первый — что компилируется в результате make ?
Только образ или что-то еще ?
Вопрос второй — если при этом произошла компиляция каких-то внешних загружаемых модулей (я не совсем уверен — это файлы с расширением .so ?) , их нужно копировать в /lib/modules ?
после команды 'make' скомпилируются модули и будут лежать в тех поддиректориях, в которых находятся их исходники. Чтобы они скопировались в /lib/modules, нужно прогнать команду 'make modules_install' (или же 'make install', если необходимо, чтобы вновь скомпилированное ядро тоже скопировалось в нужную дирекотрию (/boot))
Т.е. получается , что 'make modules_install' как бы является частью 'make install' ?
И запуская 'make install' , мы тем самым копируем модули , а не только образ ?
Нафик make install
Сначала распаковываем сырцы в /usr/src/linux-2.XX.XX
потом идем туда
cd /usr/src/linux-2.XX.XX
и пишем
make xconfig
как насладимся,
make bzImage && make modules && make modules_install
как все проработает,
cp arch/i386/boot/bzImage /boot/linux-2.XX.XX
emacs /etc/lilo.conf
lilo
reboot
Good Luck,
UT
Ну это тебе прямо в README к ядру ;)
Что такое «образ»?
Ну почему же? Ровно то же, как и действия руками, только несравнимо удобнее ;)
Одно время Мандрейк (у них перепатченное ядро) при прогонке make install разносил систему в щепки. Потом они, вроде, поправились, но все равно make install сам редактировал lilo.conf и прогонял lilo. Потому и нафик!
Good Luck,
UT
make install копирует ядро в корень /
а мне это не нравится (для этого есть /boot)
Ну, по мандрейку не стОит делать столь радикальные выводы, потому как я могу привести множество дистрибутивов, которые не «разносят систему в щепки» ;) Да и lilo.conf сами не редактируют.
Неправильный какой-то у тебя дистрибутив ;). Или исходники ядра… У меня почему-то всё копирует куда надо (т.е. в /boot)
Слака 10.0
исходники c kernel.org
вот так
Хм… Кучу раз брал исходники оттуда же (под разными дистрибутивами), всё у меня копируется в /boot (ну, не прям всё, а ядро ;)). Что я делаю не так?
Может у тебя установлена переменная окружения INSTALL_PATH=/boot
???
Нет, ничего такого не установлено.
На слаке нет скрипта kernelinstall в /bin или /sbin — в этом и отличие.
а Makefile поправить немного было не судьба?
Комментарии там к месту расставлены.
элементарное незнание того, что и где, к тому же и как. ;)
а вот в дебиане, если ставишь пакет ядра, конфиг lilo сам поправляется. так что ж теперь? ;)
я так думаю, что если стоял бы grub, было бы аналогично.
плохо разве?
В самом Makefile именно её можно выставить как удобно.
кроме того, некоторые особенности систем внутри ядерного Makefile учтены.
Кстати, никто не прбовал сделать `make rpm`? (или что-то подобное, см. внимательнее этот самый Makefile)
поудивляйтесь.
кстати, начиная с 2.6.8 появилась цель сборки и для debian пакета.
правда, make-kpkg для него куда более правильное решение….
(только опять же, несколько некорректно работающее с ядрами 2.6)
в общем-то, не правильно использовать в пакетно-ориентированных дистрибутивах `make {,modules_}install`.. потому как «сам себе злобный Буратино» получается..
А еще mkinitrd -o …
Вот такая у меня ерунда выскочила.
Что делать? Может пойти почитать Фак да и поставить себе 2.6.* ядро?
видимо, установить Tcl/Tk.
либо установить ncurses-dev, и пользоваться make menuconfig, не настолько оно и страшное. ;)
ps: -dev означает библиотеки и файлы заголовков, предназначенные для использования при компиляции программ.