Все о Linux. LinuxRSP.Ru

[an error occurred while processing this directive]

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Инсталляция Linux-Kernel 2.4 на Redhat 7


Yuri N. Looshnya ten.n@t [при помощи www.linuxnewbie.org] Январь 25, 2001

Кто из истинных энтузиастов Linux хоть раз не "копался" в ядре? Таких практически нет. А кто из тех же энтузиастов не пробовал разобраться с новым, 2.4.0, ядром? Я тоже энтузиаст и тоже захотел с ним разобраться, точнее разобраться в его работе. Тем более, что я в данное время работаю на Redhat 7.0, который адаптирован к работе с 2.4-ядром. Почему бы не проверить уровень адаптации и заодно работу нового ядра?

В начале статьи хотелось бы сообщить всем, что НЕ обязательно бродить по сети в поисках чего-нибудь экзотического по поводу компиляции *инсталляции* нового ядра - можно просто почитать README и/или CHANGES - документацию, которая идет с новым ядром. Думаю, что вы найдете там много интересного для себя. По крайней мере, я сделал примерно так же - собрал кучу информации, потом выстроил ее в правильном порядке и получилось что-то типа "инсталляция шаг за шагом". Я не буду останавливаться на специфических вопросах для каждого ПК, которые вы можете прочесть в процессе установки нового ядра. Рекомендую вам использовать для этого "xconfig".


... Все эти "шаманства" были произведены на "только_что_проинсталлированном" Redhat 7 на AMD 700MHz с Voodoo 3 3000 PCI и 128MB RAM ...

Шаг 1. Вошел в систему как root.

Шаг 2. Загрузил "linux-2.4.0.tar.gz" в домашнюю директорию. Так как я вошел в систему как root, то домашней директорией будет /root.

Шаг 3. Распаковал "linux-2.4.0.tar.gz":

'tar xvzf linux-2.4.0.tar.gz'

Шаг 4. В результате третьего шага появилась новая директория "linux" в /root директории. Захожу в нее (можно с помощью 'cd') и запускаю 'make mrproper'.

Я не увидел ничего сложного во всем вышеперечисленном, тем более, что это описывается в README, которое поставляется с новым ядром.

Шаг 5. Дальше - интересней. Теперь необходимо загрузить апдейт "gcc" с http://www.redhat.com/support/errata/RHBA-2000-132.htm. Этот апдейт новее, чем рекомендует README. Файл 'gcc-2.96-69.i386.rpm' помещаю в /root. Инструкции по инсталляции/обновлению 'gcc' можно найти по тому же URL'у, на котором лежит апдейт. Почитав немного инструкции, делаю следующее:

'rpm -Fvh gcc-2.96-69.i386.rpm'

Шаг 6. Проверяю правильность установки/апдейта с помощью:

'gcc --version'

Шаг 7. Иду на http://www.kernel.org за 'util-linux 2.10o', так как это рекомендуется в CHANGES-файле (я имел 2.10m). Инсталлирую это:

'./configure'
'make'
'make install'

Для проверки правильности инсталляции использую:

'fdformat --version'

Шаг 8. Я также загрузил 'modutils-2.4.0', которые находятся на kernel.org в rpm-формате. Инсталляция:

'rpm -Fvh modutils-2.4.0.i386.rpm'

и проверка версии:

'insmod -V'
<--- в первой строке появившегося вы сможете увидеть версию modutils --- >

Шаг 9. Апдейт пришлось проделать с 'ksymoops-2.4.0-1.i386.rpm' и 'e2fsprogs-1.19-0.i386.rpm. Но, к сожалению, все оказалось не так просто: 'ksymoops' не захотел модернизироваться с помощью 'rpm -Fvh', а с помощью 'rpm -ivh' я получил "conflicts with file from package kernel-utils-2.2.16-22". Пришлось пропустить данную процедуру в надежде на хороший исход в дальнейшем :)

Шаг 10. По рекомендации 'CHANGES'-файла я зашел на ftp://rawhide.redhat.com/pub/rawhide/i386/RedHat/RPMS/ для обновления 'mkinitrd'. Данный пакет был загружен в rpm-формате и проинсталлирован:

'rpm -Fvh mkinitrd-2.9-1.i386.rpm'

Проверки версии после модернизации оказалась той, что нужно.

Шаг 11. Запуск 'make xconfig' для создания '.config'-файла в linux-директории.

Шаг 12. Важный шаг. Я просмотрел 'Makefile' для внесения в него кое-каких изменений. Дело в том, что строка 'export INSTALL_PATH=/boot' по умолчанию закомментирована (#). Так как я поместил ядро в директорию /root, то пришлось расскоментировать данную строку, чтобы мой Redhat поместил ядро в /boot-директорию, а не в /root.

Шаг 13. Запускаю 'make dep' - все пока чудесно!

Шаг 14. 'make bzImage' - error'ов нет ;)

Шаг 15. 'make modules' ...ok...

Шаг 16. После запуска 'make modules_install' и 3-секундного ожидания я подумал, что неплохо было бы сделать backup моей module-директории.

Шаг 17. Копирую мое новое ядро ('bzImage') в /home директорию как backup:

'cp /root/linux/arch/i386/boot/bzImage /home/bzImage'

Шаг 18. Копирую новое ядро в /boot директорию и переименовываю его 'mykernel-2.4.0':

'cp /root/linux/arch/i386/boot/bzImage /boot/mykernel-2.4.0'

Шаг 19. Теперь очередь за редактированием /etc/lilo.conf для загрузки по умолчанию нового ядра. Мой новый lilo.conf файл:

        boot=/dev/hda
        map=/boot/map
        install=/boot/boot.b
        prompt
        timeout=50
        message=/boot/message
        linear
        default=new

        image=/boot/mykernel-2.4.0
        label=new
        root=/dev/hda1
        read-only

        image=/boot/vmlinuz-2.2.16-22
        label=old
        root=/dev/hda1
        read-only

Шаг 20. Набираю в консоли 'lilo'. Получаю: 'Fatal:no images defined'. Все это случилось потому, что я забыл изменить строку 'default' с 'linux' на 'new' в lilo.conf. Когда я изменил это и запустил 'lilo' опять - все было прекрасно.

Шаг 21. Перезагрузка

Все работает чудесно. Если у вас возникли проблемы на этом уровне, то попробуйте загрузить модули с помощью 'modprobe'. Удачи


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2024 LinuxRSP