Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Установка BFS (планировщик Brain Fuck Scheduler) - Проверено на себе :)  (Прочитано 6251 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DebianBoy

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
    • Просмотр профиля
Вступление

О новом планировщике задач BFS для Linux все уже наверняка слышали. Весьма эпатажный «трейлер» с xkcd к новому планировщику, и не менее веселый FAQ, пробудили интерес. Расспросил знакомых, кто ставил, чтобы поделились впечатлениями — никто не ставил, ибо «влом ядро новое ставить» или «я подожду, пока оно в мейнстриме появится». Поставил и попробовал сам, и для тех кто хочет сделать то же самое — краткое руководство для Ubuntu 9.04, с описанием потенциальных граблей.

В качестве тизера, скажу лишь, что полноэкранное видео на youtube действительно не тормозит и система стала отзывчивее и шустрее.

Итак, дабы не быть голословным, приступим. Предполагается, что у вас установлена Ubuntu 9.04 (Jaunty).

Ядро

Данный планировщик написан для ядер 2.6.30+, поэтому дефолтное в Jaunty ядро 2.6.28 нам не подходит. Нужно скачать 2.6.30, а лучше последнее на данный момент из ветки — 2.6.30.6

Можно и последнее 2.6.31, но я заметил легкую регрессию в отзывчивости системы на этом ядре, поэтому остался на .30-й ветке. На вкус и цвет, как говорится.

Скачиваем исходники, заботливо упакованные в .deb разработчиками Ubuntu:
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30.6/linux-source-2.6.30_2.6.30-02063006_all.deb
Устанавливаем исходники:
sudo dpkg -i linux-source-2.6.30_2.6.30-02063006_all.deb
cd /usr/src
sudo tar xvjf linux-source-2.6.30.tar.bz2

С ядром пока закончили.

Патч BFS

Теперь нужно установить патч BrainFuck Scheduler. Директория с патчем и прочими релевантными файлами находится тут.
Последняя актуальная версия патча на момент написания [urlhttp://ck.kolivas.org/patches/bfs/old/2.6.30-sched-bfs-209.patch]2.0.9[/url] (для .30-й ветки ядра). Для ядра 2.6.31 используем этот патч.

Скачиваем и накладываем патч:
cd /usr/src/linux-source-2.6.30/
sudo wget http://ck.kolivas.org/patches/bfs/old/2.6.30-sched-bfs-209.patch
sudo patch -p1 < 2.6.30-sched-bfs-209.patch

Патч два раза ругнется на «assume reverse patch» — нужно отвечать «нет», и на «Apply anyway?» — «yes».

Сборка пропатченного ядра

Теперь собираем, как и всегда. Кто не знает, как собираем всегда, краткое введение — в Debian/Ubuntu для сборки ядра существует удобная утилита kernel-package, которая делает за нас тонну работы. Поэтому сначала её ставим, или убеждаемся, что она(и еще несколько необходимых программ) установлена:
sudo apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
Теперь генерируем новую конфигурацию ядра на основе существующей:
sudo cp /boot/config-`uname -r` ./.config
sudo make menuconfig

Тут нам нужно будет сделать парочку изменений.

   * Processor type and features -> Timer frequency устанавливаем в 1000Hz
    * Processor type and features -> Tickless System (Dynamic Ticks) отключаем
    * Processor type and features -> Preemption Model -> Preemptible kernel (Low latency desktop)

Выходим и сохраняем конфигурацию.

Далее, непосредственно сборка:

sudo make-kpkg clean
sudo fakeroot make-kpkg --initrd --append-to-version=-bfuck kernel_image kernel_headers

(на счет sudo fakeroot автор явно погарячился :) ибо это неправильно "слегка". Тем не менее, я сделал именно так. Поправьте пожалуйста меня в этом вопросе.)

Пока идет компиляция смело уходим на часок куда-нибудь погулять :)

Если всё прошло удачно, то в /usr/src/ у вас будут лежать два .deb пакета, с заголовками файлов и непосредственно с ядром и модулями. Устанавливаем их:
sudo dpkg -i /usr/src/*bfuck*.deb
При этом ядро и модули установятся в систему, сгенерируется новый initrd, пересоберутся зависимые внешние модули (кроме nvidia) и grub автоматически узнает про новое ядро.

Теперь можно перезагружаться.

================================
Необязательное дополнение про драйвера NVidia
================================

Для пользователей дров из реп, соответственно, юзеров dkms:

Те драйвера, которые по умолчанию лежат в репозитории — не устанавливаются автоматически на новое ядро, а выдают ошибку. Это сбивает всю прелесть автоматических инсталляционных скриптов и у нас есть два выхода — либо скачать самый свежий инсталляционный бинарник с сайта Nvidia, либо использовать красивый метод с патчем для драйверов.

Итак, скачиваем патч для модуля nvidia:
wget http://lionsimba.lerlan.ru/temp/proc-dir-entry-owner.patch
Копируем его в /usr/src/nvidia-180.44/patches/
sudo cp proc-dir-entry-owner.patch /usr/src/nvidia-180.44/patches/
В файл /usr/src/nvidia-180.44/dkms.conf добавляем следующие строки:
PATCH[1]="proc-dir-entry-owner.patch"
PATCH_MATCH[1]="^2.6.30"

Всё, можно пользоваться всеми прелестями dkms и быть уверенными, что на новом ядре заработают драйвера Nvidia.

Взято отсюда.

================================
От себя:

Все проверено на своих рабочей и домашней машинах. Все работает, проблем не замечено пока что. На счет производительности и отзывчивости системы - действительно правда. Система значительно шустрее. Многие программы стартуют в секунды. Chromium вообще в долю секунды :)

В общем, для любителей Bleeding Edge и экспериментаторов. По крайней мере, полет у меня нормальный. Уверен, "гикам" понравится :)
« Последнее редактирование: 16 Сентября 2009, 16:11:53 от UbuntuBoy »
Debian и только Debian :)

Оффлайн Abissin

  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля
На хабре это читал.
По поводу:
"Тут нам нужно будет сделать парочку изменений.


Код:
   * Processor type and features -> Timer frequency устанавливаем в 1000Hz
    * Processor type and features -> Tickless System (Dynamic Ticks) отключаем
    * Processor type and features -> Preemption Model -> Preemptible kernel (Low latency desktop)"

пишут, что для буков можно не менять, даже не рекомендуют.

Пробовал ставить, возникает ошибка
dpkg: не удалось обработать параметр linux-image-........ (--install):
 подпроцесс post-installation script возвратил код ошибки 2
(пишу по памяти)
Правда оно установилось и с него можно загрузиться. Дрова Нвидии установил вручную, взятые с сайта.
Про Ютуб пишут правду, в полноэкранном просмотре не тормозит.

Как устранить возникшую ошибку, куда смотреть? Сильно сам не ковырялся, время и все такое.
Samsung R510 (FS02) (WXGA) T5850(2.16)/3072/500/NV9200 256/DVD-SMulti/WiFi/BT/Cam Ubuntu 9.10

Оффлайн ShPioN

  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
есть готовые скомпиленные .deb файлики?:) зачем народу одно и тоже компилить?;)

Оффлайн DebianBoy

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
    • Просмотр профиля
2Abissin:

Странно, у меня все скомпилилось на ура без единой ошибки вообще.

Правда уже заметил пару косяков. Один из них - Virtualbox работает не должным образом, хоть и пересобрал модуль для ядра (зависает при выходе из гостевой системы, а когда прибиваешь ее то не запускается второй раз, только перезагрузка помогает  :-[).

Поэтому, ShPioN, вчера со злости удалил пакеты. Сегодня попробую применить все таки патчик к последнему 2.6.31 ядру. Если все пройдет гладко - обязательно выложу.
Debian и только Debian :)

Оффлайн Abissin

  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля
Пакеты то собрались, при установке дебов такое возникает.
Ядро было 2.6.31, патчик последняя версия с сайта.
« Последнее редактирование: 17 Сентября 2009, 12:52:53 от Abissin »
Samsung R510 (FS02) (WXGA) T5850(2.16)/3072/500/NV9200 256/DVD-SMulti/WiFi/BT/Cam Ubuntu 9.10

Оффлайн MrFree

  • Активист
  • *
  • Сообщений: 290
  • вечно начинающий линуксоид
    • Просмотр профиля
я по статье на хабре, с неделю назад ставил.
хром падает... обидна...
прирост скорости - что с патчем, что без патча не заметил на своей системе, ну может чуток  быстрей менюхи открываются.
фулскрин видео на ютубе? не смешите, квадраты и так я посмотрю. HD ? увы, не с моим интернетом.
Плюс на новом ядре (если уж патчить, так 31) отвалился тюнер (ни пульта, ни радио на бихолдере 609RDS)

А что до драйверов, то кто скажет что делает /etc/kernel/postinst.d/nvidia-common - на нем вышеупомянутая ошибка установки deb вываливается.
Установлены были 185е на 30й версии, а  обновил до 31й понадобились  190е, из ланчпада.
Ubuntu 22.04 /i5-7500/32GB/ssd512(boot/root/home)/3000HDD/GTX1063
Как правильно задавать вопросы

Оффлайн ende_neu

  • Старожил
  • *
  • Сообщений: 2473
    • Просмотр профиля
Сей BFS судя по всему имеет смысл лишь для достаточно мощных машин.Я ставил его и тоже никаких изменеий с Ю-Тубом не видел, да и остальное -как работало, так и продолжало работать.Однако вот пропатчил зеновским патчем http://zen-sources.org/project/Zen-Sources -и тут плюсы есть,однако не с ютубом. а со звуком почему-то.MPD стал меньше процессора тратить и вобще звук улучшился.Ну и помимо BFS в этот патчь входит большое количество дополнительных плюшек- fbcondecor,reiser4 и прочее.Так что рекомендую.

Оффлайн Abissin

  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля
фулскрин видео на ютубе? не смешите, квадраты и так я посмотрю.
Без патча, показывает иногда как диафильм, пусть даже и квадраты, с патчем квадраты уже показывает нормально :)
Samsung R510 (FS02) (WXGA) T5850(2.16)/3072/500/NV9200 256/DVD-SMulti/WiFi/BT/Cam Ubuntu 9.10

Оффлайн rincewind

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
А готовые пакеты у кого-нибудь всё-таки есть? Компилил около 7 часов на своей системе, в итоге сборка просто виснет.

Оффлайн ende_neu

  • Старожил
  • *
  • Сообщений: 2473
    • Просмотр профиля
Пакеты-то есть у меня, например -но они собраны под мою машину и под мои потребности, это не generic -могут банально не работать даже на иной конфигурации.

 

Страница сгенерирована за 0.037 секунд. Запросов: 25.