Привет друзья wink
Где можно найти подробное описание процесса обновления ядра в Слаке? (желательно на русском языке)
Я погуглил, но там все очень поверхностно...
Заранее благодарю за помощь.
Slackware kernel upgrade
Karen, дык... а что по гентушной доке не получается? А зачем вам это? Патрег классно собирает ядра, лучше не лезьте. (открою тайну, Патрег ядра собирает как Линус, ванильные. Т.е. без новых багофич).
Я помнится собирал. На 10.2. Устал кровь из глаз выжимать... Впрочем, почитайте: http://linuxforum.ru/viewtopic.php?pid=114524#p114524
Это на случай если вдруг в моей версии ядра обнаружится критическая уязвимость, ведь в такой ситуации надо срочно обновлятся? Не так ли? И если не сложно, в двух словах можешь объяснить когда надо менять ядро на более новую версию а когда нет?
У меня web + mail сервер на слаке.
И если не сложно, в двух словах можешь объяснить когда надо менять ядро на более новую версию а когда нет?
У меня web + mail сервер на слаке.
подпишитесь на почтовую рассылку: http://slackware.com/lists/
как только появится новое ядро/патчи - вам придёт письмо.
ядро ставится как обычная программа, пакетом. только надо перезагрузится.
Karen, кстати, чуть не забыл: зайдите на http://slackware.com/getslack/ и скачайте все патчи для своей версии (можно конечно не все, а только те, которые для установленных пакетов. Список в /var/log/package. но лучше все).
и затем зайдите в каталог со скаченными пакетами и там
[console]# upgradepkg *.t?z[/console]
это текущие обновления. Совет: качать лучше не из России. Например мне быстрее всего было из Норвегии.
На всякий случай упомяну, что патчи уязвимостей выпускаются по мере обнаружения таковых, наполняя каталог /patches соответствующего каталога дистрибутива, собранные пакеты в /patches/packages, исходники -- в /patches/source -- всё банально предсказуемо.
Как пример: недавно выходившее обновление в связи с уязвимостью http://mirror.yandex.ru/slackware/slackware64-13.1/patches/packages/linux-2.6.33.4-2/
Если используется skackpkg, то # slackpkg update && slackpkg upgrade-all вполне справляются с работой по обновлению, включая пакеты ядра.
По поводу того, откуда качать: думаю, многим подойдёт не упомянутое на http://slackware.com/getslack/ зеркало yandex-а {http,ftp,rsync}://mirror.yandex.ru/slackware/
Касательно вопроса в первоначальной формулировке, то процессы собственно сборки (make) и собственно установки (make modules_install && make install или ручные вариации на подобную тему) действительно просты.
А вот процесс конфигурирования ядра зачастую требует несравнимо больших познаний, времени и сил. Можно положиться на различные технические решения (в частности, make oldconfig), но нужно быть готовым к тому, что процесс окажется тем сложнее, а результат может оказаться тем хуже, чем дальше собираемое ядро от базового.
bormant, согласен. только дополню, что по вашей ссылке 64х битная версия. Она не пойдёт для 32х битной системы.
(для вас это конечно очевидно, но...)
Вот сейчас кажется понятно smile )
Огромное вам спасибо wink
Патрег классно собирает ядра, лучше не лезьте. (открою тайну, Патрег ядра собирает как Линус, ванильные. Т.е. без новых багофич).
Повторить действия Патрега (на примере 13.1) при желании не составит большего труда.
Сначала скачивается последнее ядро с http://kernel.org, после устанавливается программа meld - http://repository.slacky.eu/slackware-13.1/development/meld/1.4.0/meld-1.4.0-i686-1sl.txz
Потом из работающего ядра вытаскивается текущая конфигурация:
[console]# zcat /proc/config.gz > /home/Пользователь/.config_seichas[/console]
Дальше распаковывается архив с новым ядром:
[console]$ tar xjvz Название архива с новым ядром.tar.bz2[/console]
копируется .config нового ядра в домашнюю папку юзера:
[console]$ cp /home/Пользователь/Папка с ядром/.config /home/Пользователь/.config_new[/console]
Запускается meld от пользователя:
[console]$ meld /home/Пользователь/.config_seichas /home/Пользователь/.config_new[/console]
Работа в meld интуитивно понятна, из конфига старого ядра в конфиг нового ядра добавляется всё что нехватает в новом (с помощью стрелочек) и сохраняется.
от рута копируется распакованный каталог с новым ядром по пути:
[console]# cp /home/Пользователь/Распакованный каталог с новым ядром /usr/src/Название нового ядра[/console]
Запускается mc и символическая ссылка /usr/src/linux меняется на (каталог с названием ядра или на образ ядра? Надо уточнить у кого-нибудь) p.s. Лично я её вообще не меняю, но так делать - не правильно. Просто когда-то кто-то давным-давно сказал что так неправильно, и все хором начали повторять что не правильно. Почему? Неизвестно, но раз так принято, то не будем спорить с большинством. :)
В каталоге с новым ядром /usr/src/Новое ядро редактируется файл Makefile и в строчке ЕXTRAVERSION = (На примере на данный момент последнего нестабильного ядра -rc2_I_like_a_leaf_in_the wind - watch_how_I_sing (Или что нибудь другое - зависит от фантазии, у меня к примеру просто и без затей - -rc2my)
Дальнейшие шаги стандартные и уже описаны в этой теме выше:
[console]make mrproper
make menuconfig[/console]
Выбирается пункт внизу Load alternative configuration file
В появившемся псевдо окошке пишется путь до отредактированного в meld и сохранённого файла /home/Пользователь/.config_new
После загрузки нового конфига и возврата в главное меню menuconfig выбирается пункт Save an alternative configure file и сохраняется под названием - .config (обязательное условие)
и:
[console]make && make modules && make modules_install && make install && make[/console]
После срочно залезаешь на форум http://linuxforum.ru ищешь тех кто разбирается в настройке ядра, к примеру - drBatty и пристаёшь к нему с глупыми вопросами, что надо и нужно делать дальше, и всё ли было сделано правильно :)
По поводу meld -- чем не угодил # make oldconfig ?
По поводу сначала создания .config, а затем вызова # make mrproper -- точно понимаете, что происходит, ничего не перепутали?
Не проще было
# cd /usr/src/linux-2.6.N.M/
# zcat /proc/config.gz > .config
# make oldconfig
# make menuconfig # если нужно что-то поменять
# make bzImage && make modules_install
а зачем вообще нужен oldconfig?
make oldconfig
пытается перенести в текущую конфигурацию настройки из существующего .config. Не секрет, что от версии к версии опции меняются, что-то добавляется, что-то удаляется. make oldconfig принимает подходящие настройки из .config и задаёт вопросы только по поводу новых параметров.
По поводу meld -- чем не угодил # make oldconfig ?
По поводу сначала создания .config, а затем вызова # make mrproper -- точно понимаете, что происходит, ничего не перепутали?
Не проще было
# cd /usr/src/linux-2.6.N.M/
# zcat /proc/config.gz > .config
# make oldconfig
# make menuconfig # если нужно что-то поменять
# make bzImage && make modules_install
Может быть так будет и лучше. У меня почему то просто команда make bzimage не срабатывает
bzImage
bzimage
теперь видно разницу?
странно, вот bzimage логически понятно - создать образ ядра используя архиваторный алгоритм .bz2, а bzlmage не лезет ни в какие ворота
Спасибо за подсказку.
Будьте внимательнее, там I (i заглавная), а не l (L малая). Подберите шрифт, в котором глифы хорошо различимы -- избавитесь хотя бы от этой проблемы.
Каталог с названием ядра или на образ ядра? Надо уточнить у кого-нибудь
[console]file[/console]
что пишет?
создать образ ядра используя архиваторный алгоритм .bz2, а bzlmage не лезет ни в какие ворота
образ по ихнему "имидж", неужели не знали? ;)
make oldconfig
пытается перенести в текущую конфигурацию настройки из существующего .config. Не секрет, что от версии к версии опции меняются, что-то добавляется, что-то удаляется. make oldconfig принимает подходящие настройки из .config и задаёт вопросы только по поводу новых параметров.
Я почему-то думал, что oldconfig задаёт ВСЕ вопросы.
Может во времена 2.2 и 2.4 он так делел? Никто не помнит?
Так что ж тут помнить, достаточно забрать тарболы с kernel.org и посмотреть в Documentation/kbuild/commands.txt, в этой части они одинаковы в 2.4, 2.2:
Here are the targets available at the top level:
make config, make oldconfig, make menuconfig, make xconfig
...
oldconfig line-oriented interface, re-uses old values