воскресенье, 24 июля 2005 г.

Kernel 2.6.x

Было очень долго лень переходить на ядра 2.6.х. Однако, после апдейта до Sarge и чтения про всякие вкусности и интересности типа tmpfs, udev, sysfs, preemtive mode и т.п. решил-таки проапгрейдить ядро. Теперь о впечатлениях.
Во-первых, заметно быстрее не стало (я и не рассчитывал), что очень логично. Более того, ядро стало больше; в моем случае, скомпилированный образ 2.6.12 занимает на 500Kb больше, чем прежнее 2.4.30 при сравнимой базовой функциональности. Это не есть плохо, если упомянуть, про всякие нововведения, которые я конечно же собрал, чтобы поглядеть.
А вот теперь, во-вторых!
Изменилась процедура сборки ядра, опции сборки стали более логичны (IMHO), содержание menuconfig перетасовано, стало удобнее (опять же, IMHO). Процедура сборки стала гораздо менее verbose, но в информативности совсем не потеряла. Появилась возможность добавлять свою собственную метку в версию ядра, теперь удобнее свои собственные сборки различать, их нет причин теперь переименовывать, да и конфиги, если их несколько, удобнее трекать. Конфиг сборки можно теперь вообще вкомпилировать в ядро! Также появился versioning модулей, можно использовать модули, собранные для других ядер (с особыми оговорками, конечно). Про кучу новых добавленных устройств я помолчу, также и про новые особенности ядер 2.6 (упоминавшиеся tmpfs, udev и sysfs), ибо сам не успел наиграться. Да, я пока оставил devfs, бо udev не настроил.
В ядро добавлена ALSA целиком, теперь можно легко отказаться от OSS полностью, что я и сделал. Моя AC97 карта в ноуте завелась с пол-оборота (вообще, поддержка устройств в 2.6 радует, даже всяких экзотичных).
Конфигурировать ядро существенно проще (может, конечно, мой опыт сказывается). Кажется, сейчас новичку можно вполне самостоятельно сконфигурировать, собрать и проинсталлировать ядро. Раньше, в эпоху ядер, скажем, 2.2 или даже 2.0 это было не столь очевидно.
Появилась опция компиляции быстрых вызовов в ядре (когда первые три аргумента функции передаются в регистрах). Не могу сказать, что это прибавляет быстродействия, но вот бинарная совместимость страдает. Я собрал в итоге с этой опцией, поскольку "типа, круто" :)
Поигрался с preemtive mode (ядро можно собрать так, что все системные вызовы будут реентерабельными). Честно скажу, разницы не заметил. В документации сказано, что preemtive рекомендуется для десктопов... Сравнил, но не ощутил :-) Может, это для серверов чуствительнее? Оставил-таки ядро preemtive (тоже "типа, круто").
Собрав почти итоговое ядро обнаружил, что отрубился touchpad на ноутбуке. Мне он нафиг не нужен, но "как-то неаккуратненько". Оказалось, что лечится чтением доки и перекомпиляцией ядра. Пожалуй, единственный нетривиальный случай (но в доке к ядру описан). Дело в том, что поддержка PS/2 устройств компилируется прямо в ядро (touchpad, кстати, к таким утройствам по интерфейсу и относится), а вот всякие USB-мыши с клавиатурами можно собрать модулями (что я и сделал). В этом случае события от драйвера PS/2 просто теряются, поскольку основными после подгрузки модулей становятся драйвера USB. Лечится очень просто: надо поддержку USB (ехси/охси : ehci/ohci ;)) просто вкомпилировать в ядро (правда, это раздувает размер образа ядра на почти 100 кульков, если я правильно помню).
Кстати, об USB, точнее, о флешках/ключиках. Пропали глюки при монтировании и размонтировании моей USB-флешки от Transend. Собственно, ей можно было вполне пользоваться и на 2.4, но размер памяти определялся неправильно (точнее, он никак не определялся), но флешка монтировалась успешно и с ней можно было работать. А вот после размонтирования что-то там застревало в ядерных мозгах и через минут 5-7 после вынимания флешки из разьема ядро начинало бросать в консоль и лог вопли о таймауте, что, типа, устройство пропало. Помнится мне, было обсуждение сего и в debian-russian, но советы "оттуда" мне не помогли, и предлагаемые патчи тоже проблему не решили. А теперь вот все само работает. Собственно, из этого я заключаю, что в 2.6 существенно улучшена поддержка подключаемых девайсов.
Из побочных эффектов: неожиданно заработало колесико на мышке. Помнится, после очередного apt-get dist-upgrade у меня перестало работать колесико на мышке (возможно, это случилось после апдейта X-ов с backports.org). Впрочем, и фиг бы с ним, но проблему я найти не смог и пришлось забить. Вчера вот обнаружил, что колесико опять работает. При этом я допускаю, что ядро тут не причем, просто вчера заметил. Может, оно и раньше завелось, я ж им не пользуюсь обычно (зачем в консоли колесико?).

PS: да! все-таки быстрее стало! Теперь существенно лучше с просмотром avi/mpeg, особенно пережатых, пропали встречавшиеся подергивания при догрузке данных потока с винта. И FPS поболе стало (а вот это я связываю с тем, что в 2.6 появилась поддержка моего SiS'ового чипсета, и DRI родное тоже есть).

Комментариев нет:

Отправить комментарий

Спутник взлетает. Первая ступень отработала.

 И, кажется, неплохо: Посмотрим, что будет когда отработает вторая.