« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга

Тестирование 64-битных приложений

ПнВтСрЧтПтСбВс
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
    Популярное
Компонент программиста

Создание форм на основе пользовательских классов

The RAISE Method Group: Алгебраическое проектирование класса

Циклы в графике. Построение случайных процессов

Микроформаты: Что это и как ими пользоваться?

Функция DeleteObject

Функция GetBrushOrg

Анимация спрайтов

Опыт использования системных ловушек или как я создавал программу по надзору за записью компакт-дисков

Системные функции




    Архив файлов



    Сообщества



    Документация

Статьи:: Linux :: О компиляции и установке ядра 2.6.0


отправить ссылку другу версия для печати  Обсудить на форуме

О компиляции и установке ядра 2.6.0





Метляев Евгений, jackill at hotbox dot ru

Почти два месяца назад увидело свет стабильное ядро 2.6.0. И теперь уже выходят дистрибутивы на основе нового ядра. Естественно, многие хотят установить себе это ядро или же пересобрать под себя то, что идет в составе новых дистрибутивов.

Выпущено довольно много статей о переходе на 2.6, тем не менее в форумах продолжают звучать вопросы об одних и тех же проблемах. Цель данной статьи облегчить переход на ядро 2.6 людям, недавно установившим Linux или же тем, кто не владеет английским и испытывает сложности с прочтением документации.

Подготовка

Начнем с простого. У меня установлен fedora core 1. До этого был установлен дистрибутив redhat 9 и ядра тестовой серии я собирал на нем. Владельцы других дистрибутивов могут сделать все по аналогии.

Более старые дистрибутивы я не буду рассматривать - они собраны без ntpl и, соответственно, особой выгоды от использования нового ядра они не получат.

Для rh 9 мы должны обновить rpm и glibc. Дистрибутив fedora core 1 уже по большей части готова для установки нового ядра, хотя если у вас она установлена и не обновлялась, следовало бы обновить glibc в целях ликвидации уязвимостей.

После выполнения данного обновления найдите себе подходящее зеркало репозитария fedora core 1 и зайдите в раздел development этого репозитария. Отсюда нам нужно взять modutils версии не ниже 2.4.26-2 и желательно обновить e2fsprogs (и все остальные ~progs, если вы используете файловые системы, отличные от ext2/ext3), а также util-linux. Что касается остальных пакетов, читаем файл CHANGES и проверяем соответствие версий. Насколько я помню, больше я ничего не обновлял.

Ядро лучше тоже забрать из репозитория, т.к. оно содержит патчи, стабилизирующие работу ядра.

Зачем нужно обновлять modutils? Дело в том, что в новом ядре используются иные модули. И старые module-init-tools (или, как они называются в redhat, modutils) не могут загрузить новые модули. Так что если вы видите надпись со словом QM_MODULES и дальше ничего не грузится, значит у вас нет поддержки модулей. В случае mandrake пакет называется modul-init-tools.

Если в вашем дистрибутиве ничего подобного нет, а ядро поставить все же хочется, давайте ставить новые module-init-tools из исходников (исходники можно скачать отсюда http://www.kernel.org/pub/linux/kernel/people/rusty/modules). Делается это так:

1. Находим где лежат старые утилиты (insmod, rmmod и т.п.). У меня, например, в /sbin

2. Дальше все просто

./configure --prefix=/
make moveold
make
make check
make install

Строчка make moveold нужна для того, чтобы переименовать старые утилиты (в конец названия будет добавлено расширение "old"). Они будут вызываться новыми в случае, если вы будете загружать ядра серии 2.4.x

У redhat module-init-tools сильно переделаны и поэтому вся эта чехарда им не нужна - одни и те же утилиты работают с обеими версиями ядер.

Теперь, когда мы все поставили, давайте собирать ядро.

Распаковываем исходники в /usr/src, ставим симлинк linux. Дальше делаем то, что нельзя, но если хочется, то можно - копируем из исходников ядра 2.4 файл .config и запускаем make menuconfig (или make xconfig, make qtconfig - по настроению).

А на втором терминале то же самое делаем для ядра 2.4. Как бы в этом нет необходимости, но названия ряда функций изменилось и вам придется сравнить две конфигурации и включить назад недостающие функции (поэтому, кстати, нельзя делать make menuconfig).

Некоторые особенности

Поговорим немного о параметрах ядра и некоторых особенностях.

1. В первый раз в Processor type and features не собираем поддержку Preemptive Kernel - на многих системах это может вызвать замедление работы компьютера.

2. Чтобы при загрузке нас встречал не черный экран без всего, а консоль, в menuconfig должно быть так:

Device drivers -> Charecter devices
[*] Virtual Terminal
[*] Support for console on virtual terminal
и в Device drivers -> Graphics support -> Console display driver support:
[*] VGA text console)

Потом проверьте конфиг. Должно быть так:

CONFIG_VGA_CONSOLE=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y

3. Чтобы работала мышка PS/2:

Device drivers -> INput device support:
[*] Mice
<*> PS/2 mouse

Если у вас logitech, то включаем эту опцию:

<M> Logitech busmouse

4. Мышка USB:

Для USB мышей читаем http://thomer.com/linux/migrate-to-2.6.html (русский перевод находится здесь http://www.polachok.narod.ru/articles/migrate26.html)

Должны быть собраны следующие модули:
usbmouse (или hid, но не оба сразу), mousedev (это можно включить жестко), usbcore, usb-uhci, input.

Если мышь так и не появилась, передайте в ядро параметр

append="psmouse_noext"
http://thomer.com/linux/migrate-to-2.6.html

5. Клавиатуру тоже не стоит собирать модулем. Проверяем конфиг:

CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y

6. Если вы используете initrd, не забудьте включить поддержку в Device drivers -> block device.

7. Пишущий привод (CD-RW).

Как известно, в 2.4 поддержка пишущих приводов осуществлялась посредством эмуляции scsi. В новом ядре модуль ide-scsi поломали, посему он может не работать вовсе или работать неправильно (хотя есть сообщения о том, что те же флэшки у некоторых работают). Тем не менее поддержка CDRW теперь нормально сделана с помощью ATAPI. При записи ваш привод будет использовать DMA и более-менее свежие cdrtools - на всякий случай их стоит обновить. Строчку вида append="hdc=ide-scsi" (вместо hdc у вас может быть что-то другое - в зависимости от того, на каком шлейфе находится привод) из lilo.conf или grub.conf нужно убрать, симлинк cdrom, указывающий на scd0 или sr0 нужно перенаправить на реальное устройство.

8. Немного о звуке. Многие задают вопрос - ALSA или OSS. Все просто. ALSA будет поддерживаться и дальше, а поддержка OSS сворачивается. К тому же со многими картами ALSA работает корректней. Собирайте ALSA. В конфигурации для ALSA не забудьте включить эмуляцию OSS (иначе не сможете поиграть в свой любимый quake или вывести звук программами, приученным к OSS).

Все, кто использовал ALSA ранее, может спокойно перенести свою конфигурацию из /etc/modutils.conf в /etc/modules.conf. Все, кто не использовал, могут воспользоваться документацией, расположенной на сайте www.alsa-project.org. Кроме того, придется скачать alsa-libs, alsa-utils, alsa-oss, alsa-tools и, возможно, alsa-firmware.

9. Если собираете поддержку ACPI, не собирайте поддержку APM.

10. procfs - не волнуйтесь, она есть. Можете так же использовать ее, как и раньше.

11. Поддержка NTFS на запись. Если вы обрадовались, радость придется поумерить. Запись возможна только при изменении существующего файла. Но читать вы сможете любую NTFS.

12. Поддержка пульта от вашего любимого тюнера на чипсете btv878 добавляется с помощью патча, который можно взять здесь: http://www.ussg.iu.edu/hypermail/linux/kernel/0308.0/0243.html.

Внимательно смотрите на то, что говорит патч о своей работе - он достаточно старый, хотя и рабочий. Мне, например, пришлось исправить строчку патча

-obj-y   += mem.o tty_io.o n_tty.o tty_ioctl.o pty.o misc.o random.o
на
-obj-y   += mem.o random.o tty_io.o n_tty.o tty_ioctl.o pty.o misc.o

Как видите, смысл тот же, но в первом случае строчка не находится и, соответственно, lirc/ в конец строки не допишется.

13. Драйверы для карт nvidia можно найти на www.nvidia.com. Последняя версия драйверов для x86 (1.0-5336-pkg1) поддерживает ядро 2.6. Для драйверов более ранних версий можно найти патчи на www.minion.de (и в том числе неофициальные инсталляторы).

14. Чтобы заставить работать vmware, нужно посетить сайт http://kerneltrap.org/node/view/1804 и прочитать об этом. Патч к vmware находится здесь http://ftp.cvut.cz/vmware/

15. Новое ядро на некоторых приложениях работает медленнее. Можно попробовать восстановить производительность, передав ядру параметр append="elevator=deadline"

Сборка

gcc 3.2.2, которым сейчас собираются все ядра в redhat 9 или fedora core 1 вполне подходит для сборки данного ядра. После того, как вы все отконфигурируете, выполните

make bzImage
make modules
make modules_install
make install

После чего пропишите новое ядро в свой grub.conf или lilo.conf соответствующим образом, проверьте, создался ли initrd (он нужен вам только если у вас поддержка корневой файловой системы и жестких дисков собрана модулями). Если не создался, а он вам нужен, выполните такую команду

mkinitrd /boot/2.6.1 2.6.1
где 2.6.1 - название вашего нового ядра (посмотрите в папочке /lib/modules, если вдруг не знаете)

После чего в случае, если у вас установлено lilo, выполняете lilo.

Посколько драйверы для видеокарты у нас еще не стоят, загружаться нам нужно в текстовом режиме. Поэтому если раньше у вас загрузка была графическая, открываем на редактирование /etc/inittab, находим строку id:5:initdefault: и вместо 5 ставим 3. В /etc/sysconfig/init находим строчку CRAPHICAL=yes и вместо "yes" ставим "no".

Нам нужно сформировать новый файл под названием /etc/modprobe.conf. Для ядер серии 2.6 он выполняет ту же роль, что и modules.conf для 2.4. Есть программа для генерирования файла modprobe.conf из существующего modules.conf. Назвается generate_modprobe.conf. Поэтому выполните ее
/sbin/generate_modprobe.conf /etc/modprobe.conf

Полученный файл придется подправлять, т.к. синтаксис упростился и немного изменился, поэтому некоторые вещи могут быть пропущены.

Теперь мы готовы перегружаться.

После перезагрузки

После перезагрузки как обычно собираете модуль для видеокарты. И все, что необходимо для ALSA (alsa-lib и т.п.). Что касается звука, для emu10k1, например, строчки в /modprobe.conf выглядят так (абсолютно так же, как и в /etc/modules.conf):

# ALSA native device support
alias char-major-116 snd
alias snd-card-0 snd-emu10k1
options snd major=116 cards_limit=1

# OSS/Free setup
alias char-major-14 soundcore
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

У пользователей модемов на COM-порте может возникнуть проблема, когда программы дозвона не могут найти ttySx. По всей видимости, не загрузился модуль COM-порта 8250.

В документации дана рекомендация как его грузить, пока не исправлена автозагрузка. Вы должны добавить в /etc/modprobe.conf строчку

install serial /sbin/modprobe 8250_pci

Так же есть совет добавить модули, загрузка которых необходима на стадии загрузки ядра, в файл /etc/modprobe.preload.

Если честно, у меня ни один метод не заработал (а модуль 8250_pci у меня называется 8250), поэтому я просто вставил строчку modprobe 8250 в /etc/rd.d/rc.local, что неправильно, но зато избавляет набирать то же каждый раз после загрузки.

Вот, вроде, и все.

Для написания статьи помимо личного опыта использовались статьи

  • http://thomer.com/linux/migrate-to-2.6.html
  • http://www.codemonkey.org.uk/post-halloween-2.5.txt



  • Рубрика: Linux




    Trac + Subversion @ Ubuntu: Revisited.

    Ubuntu

    Задача: Установить на только что инсталлированный Ubuntu последнюю версию Trac, создать репозитории для нескольких проектов и настроить окружение соответственно. Структура проектов должна быть полностью корректной, установка максимально быстрой при минимальном количестве пакетов. Авторизация в репозитории и окружения Trac может быть общей, но позволяющей индивидуальную настройку для каждого проекта. Также, установка должна быть максимально независима от версий.


    Подробнее... | Рубрика: Ubuntu | Добавлено: 30.08.2008

    [g]Vim в режиме Python: Рекомпиляция в Windows.

    Статьи

    Редактор Vim наиболее известен среди разработчиков в системах Unix — конкурент emacs, что-то вроде консольного IDE — этот редактор при должной сноровке и настройке (мне кажется, сноровке несколько меньшей и настройке более очевидной чем в emacs, но у последнего также есть мощная мультифункциональность — выбор за программистом) способен убыстрить и упростить многие процессы на этапах разработки не в ущерб таким удобствам как, например, авто-дополнение и навигация по проекту.


    Подробнее... | Рубрика: Статьи | Добавлено: 30.08.2008

    Java + JSON. Пути к дружбе.

    Технология JAVA

    Спешу поделиться результатами небольшого исследования, оказавшегося необходимым для текущего проекта. Рассматривается возможность связки Java и JSON, её преимущества и недостатки. Я расскажу о практической части, о теории больше поведают нижеприведённые ссылки (англ.).


    Подробнее... | Рубрика: Технология JAVA | Добавлено: 30.08.2008

    Остальные статьи:

    Драйвер SQL Server 2005 для PHP
    Типы данных в MySQL (сжатый справочник для PHP программиста)
    PHP класс для работы с Яндекс.XML
    Ошибки начинающих PHP разработчиков
    Наследование шаблонов в Smarty
    Особенности хранения сессий PHP в memcached
    Internet Explorer 8 beta 2
    9 правил для начинающего Ajax-разработчика
    ExtJS 2.2 - полная поддержка Firefox 3, новые виджеты и другие нововведения
    Windows 7: под покровом тайны
    Apache mod_ndb - MySQL кластер с доступом через HTTP и Ajax
    Поиск уязвимостей в программах с помощью анализаторов кода
    Как появилась библиотека VivaCore
    Это сложно
    ASP.NET и немного поисковой оптимизации
    Protocol buffers: библиотека обмена данными для C++, Java, Python от Google


    Цитата дня (все,добавить):



        Рубрикатор

    Программирование

    C/С++
    Обучение
    Windows API
    XAML
    Моделирование
    Паттерны
    Visual Basic 7 .NET
    WxWidgets
    Функции WinApi
    Функции С++
    Разработка под Mac OS
    Eiffel
    Visual Studio 2008
    UI дизайн
    Алгоритмы
    Конкурсные статьи
    Turbo Pascal
    Visual Studio
    CASE-средства
    Visual Studio 2005
    Без VCL
    Delphi
    Тех. документация
    Тестирование
    Software Testing
    ООП
    TCP/IP
    Google Android
    Windows Installer
    .NET Framework
    Драйвера
    C# C Sharp
    Справка
    Проектирование
    Информ. системы
    Visual Basic
    Assembler
    Оптимизация кода
    Gtk+
    Компоненты
    Реинжиниринг
    Управление проектами
    Extreeme programming
    Lotus Notes
    Алгебраическое проектирование

    Интернет технологии

    PHP
    Perl
    ASP
    WAP
    Cookies
    SSI
    CGI
    Web Servers
    VB Script
    DNS
    CSS
    XML
    Html
    Java Script
    Java2ME
    Firewall
    Flash
    .htaccess
    Apache
    VRML
    Протоколы
    Поисковые системы
    Технология JAVA
    Учебник по PHP
    Учебник по JavaScript
    Учебник по XML
    Java Q&A
    AJAX
    DHTML
    XHTML
    Dreamweaver
    Web 2.0
    Python
    Вебмастеру
    Cisco
    Ruby on Rails
    Silverlight

    Базы данных

    Access
    InterBase
    MySQL
    Oracle
    ADO .NET
    Основы SQL
    Учебник по Access 2002
    MS
    Microsoft FoxPro
    Доступ к данным
    XML в MS SQL Server 2000
    ODBC и MyODBC
    Обучение
    Caché
    DB2
    PostgresSQL
    Sybase
    Теория
    Хранилища данных
    Безопасность
    Реляционные данные
    MySQL и mSQL

    Остальное:

    Разное
    Обзоры книг
    Безопасность
    Графика и дизайн
    Юмор
    Linux
    Фракталы
    Microsoft Axapta
    Многоядерность
    Сети
    Microsoft Office
    Работа
    MS-DOS
    Криптография
    Графика и игроделание
    Новости SDK
    Системы защиты
    Учебник по AutoCad
    CVS
    Windows XP
    Windows Server 2003
    Windows Vista
    Windows 7
    Мероприятия

        Кто на сайте
    Вы не зарегистрированы.
    Имя:

    Пароль:

    Запомнить

    Регистрация позволит Вам пользоваться дополнительными сервисами.
    Сейчас на сайте:
    Гостей: 90
    Пользователей: 0