Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Обновление ядра. Как это делается в Gentoo?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
EsTaF
n00b
n00b


Joined: 23 Jul 2006
Posts: 60
Location: Russian Federation, Odintsovo

PostPosted: Mon Jul 24, 2006 12:25 am    Post subject: Обновление ядра. Как это делаетс Reply with quote

Нет. Конечно я могу просто взять и удалить всю папку с исходниками, скачать с kernel.org свежак и поставить его.

Но, обычно это делается, как я пониаю, так:
emerge sync
emerge depclean
emerge -fuD world
emerge -uD world
env-update
source /etc/profile
etc-update

и вот, что я вижу:
ls -l /usr/src/
итого 2
lrwxrwxrwx 1 root root 23 Июл 13 04:31 linux -> linux-2.6.16-gentoo-r12
drwxr-xr-x 20 root root 1424 Июл 21 16:48 linux-2.6.16-gentoo-r12
drwxr-xr-x 19 root root 744 Июл 22 11:52 linux-2.6.16-gentoo-r13

du -h /usr/src/linux-2.6.16-gentoo-r12/
...
350M /usr/src/linux-2.6.16-gentoo-r12/

du -h /usr/src/linux-2.6.16-gentoo-r13/
...
254M /usr/src/linux-2.6.16-gentoo-r13/

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

USE="-doc symlink" emerge gentoo-sources
ака забить на доки ядра и добить такую вестсчь, как sumlink. видимо, что бы произошла линковка папки с версией на нативное имя "linux". то бишь, последнее - не есть пакет.
хозяйство можно закинуть в pakckage.use. что бы при следующих ворлдах, все было именно так...

вопрос:
Есть ли какие либо ньюансы? Все так же прозрачно, как и с другим софтом?

И еще. откуда у emerge хватило ума оставить "r12"? Нет. оно верно, но откуда?
Правильно ли будет после компиляции нового ядра просто удалить старое?
ибо
если я просто пересоберу уже новое ядро, то стоит ли делать заново обновление.
от ядра могут зависеть некоторые вещи, такие как дрова видюхи и что-либо еще, чего я могу и не знать.

Описывается ли где-либо механизм такого перехода? Правило перехода. Руководство по переходу.
конфиг ядра меня не интересует.
Back to top
View user's profile Send private message
fedukoff
Apprentice
Apprentice


Joined: 19 Dec 2005
Posts: 229
Location: Latvia

PostPosted: Mon Jul 24, 2006 6:40 am    Post subject: Reply with quote

Если ты пользуешься USE="symlink", необходимо после обновления портейджа обновить-откомпилить ядро, а затем уже обновлять остальной world.
В symlink никакого волшебства нету. Просто после того, как распакуются исходники ядра в /usr/src, автоматом создается-изменяется тот самый /usr/src/linux, чтобы указывал на свеже поставленное. Следовательно в нем нету .config, что может быть фатальным для пакетов включающих в себя дополнительные модули ядра, например alsa, драйвера ati, nvidia и пр.
По этому и надо бы сразу закомпилить новое ядро, а за тем уже все остальное.
Еще полезно будет вот это
Back to top
View user's profile Send private message
Balancer
Guru
Guru


Joined: 04 Jun 2004
Posts: 465

PostPosted: Mon Jul 24, 2006 6:39 pm    Post subject: Reply with quote

Code:

# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.15-gentoo-r7
  [2]   linux-2.6.16-gentoo-r1
  [3]   linux-2.6.16-gentoo-r2
  [4]   linux-2.6.16-gentoo-r3
  [5]   linux-2.6.16-gentoo-r4
  [6]   linux-2.6.16-gentoo-r6
  [7]   linux-2.6.16-gentoo-r8
  [8]   linux-2.6.17-gentoo-r2
  [9]   linux-2.6.17-gentoo-r3
  [10]  linux-2.6.17-gentoo-r4

# eselect kernel set linux-2.6.17-gentoo-r4
... тут переносим старый конфиг ручками
# genkernel --menuconfig all
Back to top
View user's profile Send private message
Azik
Tux's lil' helper
Tux's lil' helper


Joined: 03 Apr 2005
Posts: 149
Location: Russia, Ufa

PostPosted: Mon Jul 24, 2006 9:43 pm    Post subject: Reply with quote

Если ядро собиралось genkernel, то все конфиги после успешной компиляции собираются в /etc/kernels/, а сам genkernel может принимать параметр --kernel-config=<где этот конфиг>.

Так что после перенаправления симлинка можно просто
Code:
genkernel --kernel-config=/etc/kernels/<...> --menuconfig all


Все зависящие от ядра вещи (драйвера, независимые модули, fuse)
придется пересобирать вручную, причем нужно быть увереным, что симлинк /usr/src/kernel указывает на нужные исходники. Porage никак за этим делом не следит, поэтому за обновление оных пакетов ложится полностью на пользователя. Чаще всего нужно просто пересобрать соответсвующие пакеты.
_________________
From Siberia with Love!
Back to top
View user's profile Send private message
Balancer
Guru
Guru


Joined: 04 Jun 2004
Posts: 465

PostPosted: Tue Jul 25, 2006 8:20 am    Post subject: Reply with quote

Azik wrote:
Если ядро собиралось genkernel, то все конфиги после успешной компиляции собираются в /etc/kernels/


Самое забавное, что у меня на трёх машинах, в двух случаях конфиги в /etc/ лежат, а в одном - нет. Настройки и версии, вроде, одинаковые :)
Back to top
View user's profile Send private message
Laitr Keiows
Moderator
Moderator


Joined: 04 Jul 2005
Posts: 891
Location: Kobe, Japan

PostPosted: Tue Jul 25, 2006 9:36 am    Post subject: Reply with quote

Azik wrote:
Porage никак за этим делом не следит, поэтому за обновление оных пакетов ложится полностью на пользователя. Чаще всего нужно просто пересобрать соответсвующие пакеты.

на то есть sys-kernel/module-rebuild
Back to top
View user's profile Send private message
KUV
Tux's lil' helper
Tux's lil' helper


Joined: 18 Mar 2005
Posts: 128

PostPosted: Tue Jul 25, 2006 8:29 pm    Post subject: Reply with quote

Я использую vanilla-sources, обновляюсь обычно следующим образом:
Code:
emerge -u vanilla-sources # распаковываю сорцы
eselect kernel set 2 # меняю симлинк
cd /usr/src/linux && cp ../linux-***/.config . # копирую старый конфиг
make menuconfig # корректирую опции, если надо
make bzImage modules modules_install && modules-update # компилирую
equery d virtual/linux-sources # смотрю какие пакеты используют сорцы ядра, пересобираю их
mount /boot && /usr/src/cpboot.sh && nano /boot/grub/grub.conf && umount /boot # cpboot.sh это мой скрипт, который копирует нужные файлы и переименует их
reboot
emerge -C "=linux-***" && rm -r /usr/src/linux-*** # если все удачно, удаляю старое ядро
Back to top
View user's profile Send private message
Laitr Keiows
Moderator
Moderator


Joined: 04 Jul 2005
Posts: 891
Location: Kobe, Japan

PostPosted: Wed Jul 26, 2006 5:16 am    Post subject: Reply with quote

KUV wrote:
Я использую vanilla-sources, обновляюсь обычно следующим образом:

Что-то много. Я делаю так:
Code:
zcat /proc/config.gz > .config && make oldconfig && mount /boot && make all modules_install install

И все! Новое ядро автоматически копируется в /boot, старое там же переименовывается.
Вот только зачем все копирование делать вручную? Может быть в этом есть какой-то сакральный смысл?..
В моем случае grub.conf нужно редактировать всего один первый раз, в /boot лежат вот такие симлинки:
Code:
lrwxrwxrwx 1 root root      24 Июл 12 14:34 config -> config-2.6.16-gentoo-r12
lrwxrwxrwx 1 root root      23 Июн 19 21:20 config.old -> config-2.6.16-gentoo-r5
drwxr-xr-x 2 root root     632 Апр 26 20:31 grub
lrwxrwxrwx 1 root root      28 Июл 12 14:34 System.map -> System.map-2.6.16-gentoo-r12
lrwxrwxrwx 1 root root      27 Июн 19 21:20 System.map.old -> System.map-2.6.16-gentoo-r5
lrwxrwxrwx 1 root root      25 Июл 12 14:34 vmlinuz -> vmlinuz-2.6.16-gentoo-r12
lrwxrwxrwx 1 root root      24 Июн 19 21:20 vmlinuz.old -> vmlinuz-2.6.16-gentoo-r5

сами файлы из листинга я для кратости убрал
Достаточно один раз прописать vmlinuz и vmlinuz.old и все!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum