1

Привет друзья    wink

Где можно найти подробное описание процесса обновления ядра в Слаке? (желательно на русском языке)

Я погуглил, но там все очень поверхностно...

Заранее благодарю за помощь.

2

Karen, дык... а что по гентушной доке не получается? А зачем вам это? Патрег классно собирает ядра, лучше не лезьте. (открою тайну, Патрег ядра собирает как Линус, ванильные. Т.е. без новых багофич).

Я помнится собирал. На 10.2. Устал кровь из глаз выжимать... Впрочем, почитайте: http://linuxforum.ru/viewtopic.php?pid=114524#p114524

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

3

Это на случай если вдруг в моей версии ядра обнаружится критическая уязвимость, ведь в такой ситуации надо срочно обновлятся? Не так ли? И если не сложно, в двух словах можешь объяснить когда надо менять ядро на более новую версию а когда нет?
У меня web + mail сервер на слаке.

4

Karen пишет:

И если не сложно, в двух словах можешь объяснить когда надо менять ядро на более новую версию а когда нет?
У меня web + mail сервер на слаке.

подпишитесь на почтовую рассылку: http://slackware.com/lists/
как только появится новое ядро/патчи - вам придёт письмо.
ядро ставится как обычная программа, пакетом. только надо перезагрузится.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

5

Karen, кстати, чуть не забыл: зайдите на http://slackware.com/getslack/ и скачайте все патчи для своей версии (можно конечно не все, а только те, которые для установленных пакетов. Список в /var/log/package. но лучше все).
и затем зайдите в каталог со скаченными пакетами и там

 Консоль:
# upgradepkg *.t?z

это текущие обновления. Совет: качать лучше не из России. Например мне быстрее всего было из Норвегии.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

6 (14.12.2010 11:09:43 отредактировано bormant)

На всякий случай упомяну, что патчи уязвимостей выпускаются по мере обнаружения таковых, наполняя каталог /patches соответствующего каталога дистрибутива, собранные пакеты в /patches/packages,  исходники -- в /patches/source -- всё банально предсказуемо.
Как пример: недавно выходившее обновление в связи с уязвимостью http://mirror.yandex.ru/slackware/slack … .6.33.4-2/
Если используется skackpkg, то # slackpkg update && slackpkg upgrade-all вполне справляются с работой по обновлению, включая пакеты ядра.

По поводу того, откуда качать: думаю, многим подойдёт не упомянутое на http://slackware.com/getslack/ зеркало yandex-а {http,ftp,rsync}://mirror.yandex.ru/slackware/

7

Касательно вопроса в первоначальной формулировке, то процессы собственно сборки (make) и собственно установки (make modules_install && make install или ручные вариации на подобную тему) действительно просты.
А вот процесс конфигурирования ядра зачастую требует несравнимо больших познаний, времени и сил. Можно положиться на различные технические решения (в частности, make oldconfig), но нужно быть готовым к тому, что процесс окажется тем сложнее, а результат может оказаться тем хуже, чем дальше собираемое ядро от базового.

8

bormant, согласен. только дополню, что по вашей ссылке 64х битная версия. Она не пойдёт для 32х битной системы.
(для вас это конечно очевидно, но...)

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

9

Вот сейчас кажется понятно  smile )

Огромное вам спасибо  wink

10 (06.02.2011 15:05:50 отредактировано townsman)

drBatty пишет:

Патрег классно собирает ядра, лучше не лезьте. (открою тайну, Патрег ядра собирает как Линус, ванильные. Т.е. без новых багофич).

Повторить действия Патрега (на примере 13.1) при желании не составит большего труда.
Сначала скачивается последнее ядро с http://kernel.org, после устанавливается программа meld - http://repository.slacky.eu/slackware-1 … 86-1sl.txz
Потом из работающего ядра вытаскивается текущая конфигурация:

 Консоль:
# zcat /proc/config.gz > /home/Пользователь/.config_seichas

Дальше распаковывается архив с новым ядром:
 Консоль:
$ tar xjvz Название архива с новым ядром.tar.bz2

копируется .config нового ядра в домашнюю папку юзера:
 Консоль:
$ cp /home/Пользователь/Папка с ядром/.config /home/Пользователь/.config_new

Запускается meld от пользователя:

 Консоль:
$ meld /home/Пользователь/.config_seichas /home/Пользователь/.config_new

Работа в meld интуитивно понятна, из конфига старого ядра в конфиг нового ядра добавляется всё что нехватает в новом (с помощью стрелочек) и сохраняется.

от рута копируется распакованный каталог с новым ядром по пути:

 Консоль:
# cp /home/Пользователь/Распакованный каталог с новым ядром /usr/src/Название нового ядра

Запускается mc и символическая ссылка /usr/src/linux меняется на (каталог с названием ядра или на образ ядра? Надо уточнить у кого-нибудь) p.s. Лично я её вообще не меняю, но так делать - не правильно. Просто когда-то кто-то давным-давно сказал что так неправильно, и все хором начали повторять что не правильно. Почему? Неизвестно, но раз так принято, то не будем спорить с большинством. ab

В каталоге с новым ядром /usr/src/Новое ядро редактируется файл Makefile и в строчке ЕXTRAVERSION = (На примере на данный момент последнего нестабильного ядра -rc2_I_like_a_leaf_in_the wind - watch_how_I_sing (Или что нибудь другое - зависит от фантазии, у меня к примеру просто и без затей - -rc2my)

Дальнейшие шаги стандартные и уже описаны в этой теме выше:

 Консоль:
make mrproper
make menuconfig

Выбирается пункт внизу Load alternative configuration file
В появившемся псевдо окошке пишется путь до отредактированного в meld и сохранённого файла /home/Пользователь/.config_new
После загрузки нового конфига и возврата в главное меню menuconfig выбирается пункт Save an alternative configure file и сохраняется под названием - .config (обязательное условие)
и:
 Консоль:
make && make modules && make modules_install && make install && make

После срочно залезаешь на форум http://linuxforum.ru ищешь тех кто разбирается в настройке ядра, к примеру - drBatty и пристаёшь к нему с глупыми вопросами, что надо и нужно делать дальше, и всё ли было сделано правильно ab

I like a leaf in the wind - See how I sing.

11

По поводу 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

12

а зачем вообще нужен oldconfig?

13

make oldconfig
пытается перенести в текущую конфигурацию настройки из существующего .config. Не секрет, что от версии к версии опции меняются, что-то добавляется, что-то удаляется. make oldconfig принимает подходящие настройки из .config и задаёт вопросы только по поводу новых параметров.

14 (06.02.2011 18:52:02 отредактировано townsman)

bormant пишет:

По поводу 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 не срабатывает

I like a leaf in the wind - See how I sing.

15

bzImage
bzimage
теперь видно разницу?

16

странно, вот bzimage логически понятно - создать образ ядра используя архиваторный алгоритм .bz2, а bzlmage не лезет ни в какие ворота

Спасибо за подсказку.

I like a leaf in the wind - See how I sing.

17

Будьте внимательнее, там I (i заглавная), а не l (L малая). Подберите шрифт, в котором глифы хорошо различимы -- избавитесь хотя бы от этой проблемы.

18 (07.02.2011 11:35:07 отредактировано drBatty)

townsman пишет:

Каталог с названием ядра или на образ ядра? Надо уточнить у кого-нибудь

 Консоль:
file

что пишет?

townsman пишет:

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

образ по ихнему "имидж", неужели не знали? bx

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

19

bormant пишет:

make oldconfig
пытается перенести в текущую конфигурацию настройки из существующего .config. Не секрет, что от версии к версии опции меняются, что-то добавляется, что-то удаляется. make oldconfig принимает подходящие настройки из .config и задаёт вопросы только по поводу новых параметров.

Я почему-то думал, что oldconfig задаёт ВСЕ вопросы.
Может во времена 2.2 и 2.4 он так делел? Никто не помнит?

20

Так что ж тут помнить, достаточно забрать тарболы с 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

21

drBatty пишет:

 Консоль:
file

что пишет?

 Консоль:
# file linux
linux: symbolic link to `linux-2.6.33.4'

странно, так как:
 Консоль:
root@ne_spit:/usr/src# uname -a
Linux ne_spit 2.6.38-rc2my #1 Thu Feb 3 10:36:40 MSK 2011 i686 Pentium III (Coppermine) GenuineIntel GNU/Linux

говорит о том, что загружается другое ядро. Непонятно. Наверно, просто, бага в слакваре. Багзила интересно есть в слакваре? Надо будет туда запостить обнаруженную ошибку.

I like a leaf in the wind - See how I sing.

22 (07.02.2011 16:01:35 отредактировано bormant)

К слову сказать, что пишет сейчас -- не важно, важно, что оно писало на момент выполнения команды lilo. Да и содержимое /etc/lilo.cfg может снять часть вопросов.
Такая уж особенность lilo -- записывается в загрузчик последовательность секторов, в которых лежит ядро по состоянию на момент выполнения команды lilo. Пока в тех секторах лежит ядро и пока не перезаписан загрузчик -- отрабатывает то, что было на момент выполнения lilo.
А смотреть нужно в /boot (или что там в /etc/lilo.conf прописано) -- ядро, бинарное, которое загружается, там обычно лежит.


А насчёт "запостить ошибку" -- эта ошибка не в Slackware: поставилось? работало? так в чём ошибка тогда? ;-) Если в том, что любой root систему поломать может -- так это так изначально задумано.

23

Не нахожу взаимосвязи: команда file определила символическую ссылку на каталог с исходными кодами ядра одной версии, uname -a — показала загруженное ядро. В чём «бага»?

Был, был и весь вышел...

24

townsman пишет:

странно, так как:

 Консоль:
$ file -L /usr/src/linux
/usr/src/linux: directory
$ uname -a
Linux dt 2.6.33.4-smp #2 SMP Wed May 12 22:47:36 CDT 2010 i686 Intel(R) Celeron(R) D CPU 3.06GHz GenuineIntel GNU/Linux

townsman пишет:

говорит о том, что загружается другое ядро.

townsman пишет:

Наверно, просто, бага в слакваре.

да. в ВАШЕЙ слакваре. у вас сырцы не от того ядра, а так всё хорошо...

bormant пишет:

К слову сказать, что пишет сейчас -- не важно, важно, что оно писало на момент выполнения команды lilo

ИМХО скорее на момент компиляции ядра...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

25

Lupo Alberto пишет:

Не нахожу взаимосвязи: команда file определила символическую ссылку на каталог с исходными кодами ядра одной версии, uname -a — показала загруженное ядро. В чём «бага»?

бага будет тогда, когда townsman решит собрать "модуль" к своему ядру ac

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

26

drBatty пишет:

бага будет тогда, когда townsman решит собрать "модуль" к своему ядру sad

В любом случае, в этой «баге» Slackware не виновата.  wink

Был, был и весь вышел...

27

drBatty пишет:

ИМХО скорее на момент компиляции ядра...

Угу, это я был невнимателен, по диагонали пробежал глазами и подумал, что удивила ссылка в /boot на одно ядро, а загрузка другого, что в случае lilo хоть и объяснимо, но по началу может смутить...

А в том, что ссылка на исходники ядра не соответствует загруженному ядру, вообще ничего удивительного, аукнется только при сборке чего-либо, зависящего от этих самых исходников ядра, например, модулей. Да и то не всегда в силу наличия ссылки на конкретную версию мимо /usr/src: /lib/modules/$(uname -r)/build

28

Lupo Alberto пишет:

В любом случае, в этой «баге» Slackware не виновата.

безусловно. я уже попадался на этом в других дистрах...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

29

bormant пишет:

Да и содержимое /etc/lilo.cfg может снять часть вопросов.
Такая уж особенность lilo -- записывается в загрузчик последовательность секторов, в которых лежит ядро по состоянию на момент выполнения команды lilo. Пока в тех секторах лежит ядро и пока не перезаписан загрузчик -- отрабатывает то, что было на момент выполнения lilo.
А смотреть нужно в /boot (или что там в /etc/lilo.conf прописано) -- ядро, бинарное, которое загружается, там обычно лежит.
Если в том, что любой root систему поломать может -- так это так изначально задумано.

 Консоль:
cat /etc/lilo.cfg
cat: /etc/lilo.cfg: Нет такого файла или каталога

/etc/lilo.conf

+ открыть спойлер

 Консоль:

cat /etc/lilo.conf
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
# Append any additional kernel parameters:
append=" vt.default_utf8=1"
boot = /dev/sda

# Boot BMP Image.
# Bitmap in BMP format: 640x480x8
  bitmap = /boot/slack.bmp
# Menu colors (foreground, background, shadow, highlighted
# foreground, highlighted background, highlighted shadow):
  bmp-colors = 255,0,255,0,255,0
# Location of the option table: location x, location y, number of
# columns, lines per column (max 15), "spill" (this is how many
# entries must be in the first column before the next begins to
# be used.  We don't specify it here, as there's just one column.
  bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color,
# background color, shadow color.
  bmp-timer = 65,27,0,255

# Standard menu.
# Or, you can comment out the bitmap menu above and
# use a boot message with the standard menu:
#message = /boot/boot_message.txt

# Wait until the timeout to boot (if commented out, boot the
# first entry immediately):
prompt
# Timeout before the first entry boots.
# This is given in tenths of a second, so 600 for every minute:
timeout = 1200
# Override dangerous defaults that rewrite the partition table:
change-rules
  reset
# VESA framebuffer console @ 1024x768x256
vga = 773
# Normal VGA console
# vga = normal
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
# End LILO global section
# Windows bootable partition config begins
other = /dev/sda1
  label = Windows
  table = /dev/sda
# Windows bootable partition config ends
# Linux bootable partition config begins
image = /boot/vmlinuz
  root = /dev/sda3
  label = Linux
  read-only
# Linux bootable partition config ends
image = /boot/vmlinuz.old
  root = /dev/sda3
  label = linux_2_6_33_4
  read-only

Нет, это всё таки не проделки рута, а "бага", после пересборки ядра make, и lilo автоматически не изменили ссылку. Поэтому, спасибо форумчанинам, пришлось "допиливать" вручную.

 Консоль:
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 16 2011-02-07 17:21 /usr/src/linux -> linux-2.6.38-rc2

правда тут всё запутано чрезвычайно, словно какой-то детективный роман:
Ядро же у меня такое
 Консоль:
Linux ne_spit 2.6.38-rc2my

а просмотр /usr/src показывает что
 Консоль:
ls -l /usr/src/
итого 2
drwxr-xr-x  4 root     root    96 2007-07-30 13:54 dropline-build-system
drwxr-xr-x  2 root     root    80 2009-09-30 08:49 iftop-0.17
lrwxrwxrwx  1 root     root    16 2011-02-07 17:21 linux -> linux-2.6.38-rc2
drwxr-xr-x 24 root     root   928 2010-05-13 06:25 linux-2.6.33.4
drwxr-xr-x 25 ddclient users 1824 2011-02-07 00:35 linux-2.6.38-rc2
drwxr-xr-x  2 root     root    80 2009-09-13 00:50 openal-1.8.466
drwxr-xr-x  2 root     root   208 2009-09-20 13:01 portsentry-1.2
drwxr-xr-x  2 root     root   200 2010-01-15 23:15 wine-1.1.36

такого ядра в системе - нет. Куда делся труп, спрашивается?

I like a leaf in the wind - See how I sing.

30

townsman пишет:

такого ядра в системе - нет. Куда делся труп, спрашивается?

Вот он:

lrwxrwxrwx  1 root     root    16 2011-02-07 17:21 linux -> linux-2.6.38-rc2

Посмотрите на

 Консоль:

head -n 4 /usr/src/linux-2.6.38-rc2/Makefile

Был, был и весь вышел...