Обновление ядра Linux 3.x в Debian

pihmih

Участник
Сообщения
512
Реакции
23
Кто сможет помочь с обновлением ядра Debian 7 x86_64. Текущая версия 3.2.0-4-amd64, последняя доступная stable: 3.19.2. Делал уже с имеющимся конфигом
C-подобный:
oldconfig - make oldconfig
по инструкции , дошел до компиляции, запустил
C-подобный:
# time (make clean && make -j5 all && make modules_install && make install && echo ok && beep -r 3)
, но очканул и оборвал компиляцию. Так как не знаю последствий и не смогу исправить, если что пойдет не так после перезапуска.
 

MFS

Участник
Сообщения
1,533
Реакции
787
Бабушка Бетмен говорит, что если ты явно не сказал грубу грузится с нового ядра, загрузится старое ядро. Но бабушка старая, может чего и попутала.

пс. это замечание относится к случаю, когда ядро уже имеется в виде пакета .deb и ставится способом

dpkg -i linux-image-ххх.deb
update-grub

Это не относится к debian 7 и новее.


ппс. dpkg, оказывается, в 7-ке еще живо, так что, можно ставить ядро и через dpkg, только я не в курсе, что будет в грубе.


пппс. dpkg потом обращается к grub2 и добавляет ядро к имеющимся.
 
Последнее редактирование:

pihmih

Участник
Сообщения
512
Реакции
23
Бабушка Бетмен говорит, что если ты явно не сказал грубу грузится с нового ядра, загрузится старое ядро. Но бабушка старая, может чего и попутала.
Я серьезно, кучу всего перечитал, везде разные описания, потому и спрашиваю. Может кто даст статью по подробнее. Как сказать GRUB, чтоб в меню загрузки было и старое ядро и новое, на случай если новое не подхватится.
 

MFS

Участник
Сообщения
1,533
Реакции
787
Заглянь в /boot

Там должны быть 4 файла с версиями 3.2.0-4

А вот если бы ты довел компиляцию до конца, там были бы файлы с новым ядром и соответственно имели бы цифры 3.8.11, к примеру.
 

pihmih

Участник
Сообщения
512
Реакции
23
пс. это замечание относится к случаю, когда ядро уже имеется в виде пакета .deb и ставится способом

dpkg -i linux-image-ххх.deb
update-grub

Это не относится к debian 7 и новее.
В моем случае, с дебиан 7, как сделать компиляцию и установку ядра в дополнительную загрузку GRUB?
 

MFS

Участник
Сообщения
1,533
Реакции
787
Это будет сделано автоматически.

К примеру, если делать через apt-get

добавляем в /etc/apt/source.list ветку с экспериментальными версиями ядра от разрабов деб.

deb http://debian.nsu.ru/debian/ wheezy main non-free contrib
deb-src http://debian.nsu.ru/debian/ wheezy main non-free contrib
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
deb http://ftp.debian.org/debian/ wheezy-backports main
deb http://ftp.debian.org/debian experimental main

Затем:

aptitude update
aptitude search linux-image

выдаст список доступных ядер

v linux-image -
p linux-image-2.6-amd64 - Linux for 64-bit PCs (dummy package)
i linux-image-3.16.0-0.bpo.4-amd64 - Linux 3.16 for 64-bit PCs
p linux-image-3.16.0-0.bpo.4-amd64-dbg - Debugging symbols for Linux 3.16.0-0.bpo.4-amd64
p linux-image-3.19.0-trunk-amd64 - Linux 3.19 for 64-bit PCs
p linux-image-3.19.0-trunk-amd64-dbg - Debugging symbols for Linux 3.19.0-trunk-amd64
i A linux-image-3.2.0-4-amd64 - Linux 3.2 for 64-bit PCs
p linux-image-3.2.0-4-amd64-dbg - Debugging symbols for Linux 3.2.0-4-amd64
p linux-image-3.2.0-4-rt-amd64 - Linux 3.2 for 64-bit PCs, PREEMPT_RT
p linux-image-3.2.0-4-rt-amd64-dbg - Debugging symbols for Linux 3.2.0-4-rt-amd64
i linux-image-amd64 - Linux for 64-bit PCs (meta-package)
p linux-image-amd64-dbg - Debugging symbols for Linux amd64 configuration (meta-package)
p linux-image-rt-amd64 - Linux for 64-bit PCs (meta-package), PREEMPT_RT


Ставим ядро
apt-get -t experimental install linux-image-3.16.0-0.bpo.4-amd64

В том числе в логах будет:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.16.0-0.bpo.4-amd64
Found initrd image: /boot/initrd.img-3.16.0-0.bpo.4-amd64
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64

Как видишь, в грубе появились 2 ядра, старое и новое.

Делаем reboot и видим в загрузке первые две записи с новым ядром, и две записи со старым ядром




пс. через компиляцию сурсов по идее должно быть то же самое.
 

pihmih

Участник
Сообщения
512
Реакции
23
Что то многовато на выбор. Что лучше выбрать с моей текущей версией Debian 7 x86_64 ядро 3.2.0-4-amd64.
p linux-image-3.19.0-trunk-586:i386 - Linux 3.19 for older PCs
p linux-image-3.19.0-trunk-686-pae:i386 - Linux 3.19 for modern PCs
p linux-image-3.19.0-trunk-686-pae-dbg:i3 - Debugging symbols for Linux 3.19.0-trunk-686-pae
p linux-image-3.19.0-trunk-amd64 - Linux 3.19 for 64-bit PCs
p linux-image-3.19.0-trunk-amd64:i386 - Linux 3.19 for 64-bit PCs
p linux-image-3.19.0-trunk-amd64-dbg - Debugging symbols for Linux 3.19.0-trunk-amd64
 

MFS

Участник
Сообщения
1,533
Реакции
787
Весь вопрос в том, зачем тебе новое ядро?

Если так зудит, то лучше ставить ядро прямо из kernel.org

Идем в каталог последних ядер и смотрим
https://www.kernel.org/pub/linux/kernel/v3.x/

Последнее linux-3.19.2.tar.xz

Перейдем в папку с сорцами
cd /usr/src

скачаем и разожмем последнее ядро с кернел
wget -c http://kernel.org/pub/linux/kernel/v3.x/linux-3.19.2.tar.xz
tar xvf linux-3.19.2.tar.xz

перейдем в папку с сорцами
cd /usr/src/linux-3.19.2

отмечаем в конфигах, что нам нужно (для продвинутых юзеров), если ничего не нужно, выходим
make menuconfig

компилим
make bzImage modules modules_install install

Смотрим логи, видим

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.19.2
Found initrd image: /boot/initrd.img-3.19.2
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64

reboot

У нас в грубе 2 ядра, новое и старое. Загрузка идет на новое по умолчанию.
 

MFS

Участник
Сообщения
1,533
Реакции
787
Сегодня погонял unixbench на 3 ядрах

3214 попугаев у версии ядра 3.2.0-4-amd64

3213 попугаев у версии 3.16.0-0.bpo.4-amd64

2954 попугая у версии 3.19.2
 

Вложения

  • results.7z
    2.9 КБ · Просмотры: 5

pihmih

Участник
Сообщения
512
Реакции
23
Что то на новом ядре тоже производительность на 400-900 почти упала. что не так с новым ядром.
Причем на старом ядре на момент проверки запущены сервера были и играло порядка 50-60 чел.
 

Вложения

  • System Benchmarks.rar
    4.4 КБ · Просмотры: 7

pihmih

Участник
Сообщения
512
Реакции
23
Есть пара ссылок на настройку ядер под игровые сервера, правда на немецком, но гугл переводит понятно
http://www.ulrich-block.de/gameserverkernel/
http://www.ulrich-block.de/tutorials/der-optimale-gameroot-und-gameserver-kernel/
при выполнении menuconfig моего ядра
Timer tick handling (Idle dynticks system (tickless idle)) --->
[*] Old Idle dynticks config
[*] High Resolution Timer Support
Отсутствуют некоторые параметры, указанные в статье:
[*] Full dynticks system on all CPUs by default
[*] Detect full-system idle state for full dynticks system
И далее на протяжении конфигурации встречаются отсутствующие элементы. Как с ними поступать?
Так же затрудняюсь выбрать частоту системного таймера 100 или 1000. У меня сервера и ксс и ксго, тикрейт на ксго 64. Общая сумма слотов около 170.
 

MFS

Участник
Сообщения
1,533
Реакции
787
IMHO если каких то опций нет, это значит, их действительно нет в конкретно этом ядре.

Рекомендуют скопировать свои старые конфиги, если новое ядро берется из кернел.орг.
Поэтому, кстати, может падать производительность нового ядра, т.к. оно же под дебиан не заточено, его нужно настраивать (а чтобы настроить, надо иметь опыт).

1)

Можно взять старый конфиг и новый конфиг, и сравнить их в любом подходящем редакторе, чтобы понять, чем они отличаются.

Старый конфиг можно взять из /boot

cp /boot/config-$( uname -r ) .config

И скопировать получившийся .config в папку с сорцами нового ядра вместо имеющегося.

или из /proc:

zcat /proc/config.gz > .config

2)

Если лениво вкуривать, есть второй вариант - вместо "make menuconfig" используем "make oldconfig". Берет старый конфиг и выдает только те опции, которые не совпадают.


3)
Насколько я понял, для игровых обычно ставят

CONFIG_HZ - Народ ставит от 750 до 1000. Так что х.з. Вероятно, только практикой.

CONFIG_SCHED_BFS=y (планировщик BFS) - говорят глючная вещь, надо проверять

CONFIG_PREEMPT=y
Preemption Model. «No Forced Preemption (Server)», «Voluntary Kernel Preemption (Desktop)» и «Preemptible Kernel (Low-Latency Desktop)».
 

pihmih

Участник
Сообщения
512
Реакции
23
Если я изменю непосредственно в /boot/config
C-подобный:
CONFIG_HZ_1000=y
CONFIG_HZ=1000
Ядро заведется с этим тиком без комиляции ядра?
Был 250.
 
Последнее редактирование:

MFS

Участник
Сообщения
1,533
Реакции
787
Нет, это просто конфиг для просмотра переменных ядра. Только компиляция.

Советуют еще CONFIG_NO_HZ=y сменить на n
 
Сверху Снизу