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

Тема в разделе "Linux", создана пользователем pihmih, 21 мар 2015.

  1. pihmih

    pihmih

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

    MFS

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

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

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

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


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


    пппс. dpkg потом обращается к grub2 и добавляет ядро к имеющимся.
     
    Последнее редактирование: 23 мар 2015
    Хитрый_Ёжик нравится это.
  3. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    Я серьезно, кучу всего перечитал, везде разные описания, потому и спрашиваю. Может кто даст статью по подробнее. Как сказать GRUB, чтоб в меню загрузки было и старое ядро и новое, на случай если новое не подхватится.
     
  4. MFS

    MFS

    Сообщения:
    1.303
    Симпатии:
    533
    Заглянь в /boot

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

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

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    В моем случае, с дебиан 7, как сделать компиляцию и установку ядра в дополнительную загрузку GRUB?
     
  6. MFS

    MFS

    Сообщения:
    1.303
    Симпатии:
    533
    Это будет сделано автоматически.

    К примеру, если делать через 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 нравится это.
  7. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    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
     
  8. MFS

    MFS

    Сообщения:
    1.303
    Симпатии:
    533
    Весь вопрос в том, зачем тебе новое ядро?

    Если так зудит, то лучше ставить ядро прямо из 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 ядра, новое и старое. Загрузка идет на новое по умолчанию.
     
    pihmih нравится это.
  9. MFS

    MFS

    Сообщения:
    1.303
    Симпатии:
    533
    Сегодня погонял unixbench на 3 ядрах

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

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

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

    Вложения:

    • results.7z
      Размер файла:
      2,9 КБ
      Просмотров:
      4
  10. pihmih

    pihmih

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

    Вложения:

  11. MFS

    MFS

    Сообщения:
    1.303
    Симпатии:
    533
  12. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    при выполнении 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.
     
  13. MFS

    MFS

    Сообщения:
    1.303
    Симпатии:
    533
    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)».
     
  14. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    Если я изменю непосредственно в /boot/config
    Код:
    CONFIG_HZ_1000=y
    CONFIG_HZ=1000
    Ядро заведется с этим тиком без комиляции ядра?
    Был 250.
     
    Последнее редактирование: 2 апр 2015
  15. MFS

    MFS

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

    Советуют еще CONFIG_NO_HZ=y сменить на n
     
    pihmih нравится это.