Переход от RedHat на Fedora Core.


  1. Вступление
  2. Настройка на русскую локаль KOI8-R
  3. Раскладка клавиатуры
  4. Тюнинг системы
  5. Про MP3...
  6. Важные обновления и ядро
  7. Настройка lm_sensors
  8. о PPP...
  9. Установка драйверов для видеокарт от NVidia
  10. JAVA и Macromedia Flash Player
  11. Немного полезного софта
  12. Дополнение 1
  13. Обновление 1
1. Вступление

И так, мы стали счастливыми обладателями данного дистрибутива - Fedora Core 1, построенного на базе дистрибутивов от RedHat, проще говоря, Fedora Core (далее FC) стала заменой свободно распространяемых дистрибутивов от RedHat, сам же RedHat полностью свернул это направление и будет уделять внимание только своим коммерческим продуктам, однако проект FC спонсируется RedHat и полностью находится под их контролем, к тому же вcе протестированые приложения из FC будут прямиком попадать в дальнейшие версии их коммерческих продуктов, поэтому "полностью свернул" можно считать чистой формальностью...

Что бы не возникало различных вопросов, таких как, почему то или это не собирается, где та или иная команда, рекомендуется произвести полную установку дистрибутива FC, это особенно касается людей, которые не очень хорошо знакомы с Linux'ом и не очень сильно представляют, какие приложения или библиотеки необходимы, а какие нет, конечно же, опытным пользователям данная рекомендация не относится... Полная установка занимает чуть больше 5-и Гб на диске, а сам дистрибутив FC1 состоит из 3-х базовых установочных CD дисков. Для написания данной статьи, а так же для тестирования этого дистрибутива, мною была произведена полная установка, после которой были выполнены некоторые настройки и удалены не особо важные пакеты с программами...

2. Настройка на русскую локаль KOI8-R


В целом, FC это продолжение развития дистрибутива RedHat 9, не будем вдаваться в технические детали и отличия этих дистрибутивов, но одно можно сказать точно, что общего у них много, в том числе и проблемы, одна из таких проблем, по моему мнению, это не доделанность поддержки локали UTF-8, уж сильно она сырая и практически не годится для консольных приложений. В свое время, после выхода в свет дистрибутива RedHat 9, я написал статью о том, как вернуть старую добрую локаль KOI8-R, с которой нет таких проблем, которые возникают при использовании UTF-8, только за это время практически ничего не изменилось, проблемы как были, так и остались, поэтому продолжая традицию:), постараюсь описать процесс по переходу с UTF-8 на KOI8-R в FC1, если кому-то это будет интересно...

Первым делом надо установить локаль KOI8-R в /etc/sysconfig/i18n, т.е. в файле
i18n должно быть следущее:

LANG="ru_RU.KOI8-R"
SUPPORTED="ru_RU.KOI8-R:ru_RU.koi8r:ru_RU:ru"
SYSFONT="cyr-sun16"
SYSFONTACM="koi8-u"
 
Далее, надо установить раскладку клавиатуры для данной локали, как обычно идем в /etc/sysconfig/keyboard и приводим изменения примерно к такому виду:

KEYBOARDTYPE="pc"
KEYTABLE="ru-ms"

Для того, чтобы приложении использующие GTK v.1 могли правильно отображать русские символы, надо сделать правку в файле /etc/gtk/gtkrc.ru, примерно таким образом:

style "gtk-default-ru" {
       fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-koi8-r-*,\
                  -*-arial-medium-r-normal--12-*-*-*-*-*-koi8-r,\
                  -*-helvetica-medium-r-normal--12-*-*-*-*-*-koi8-r,\
                  -*-arial-medium-r-normal--12-*-*-*-*-*-koi8-r,*-r-*"
}
class "GtkWidget" style "gtk-default-ru"

Необходимо установить MS ttf шрифты из пакета ttf_webms-1.0-2.i386.rpm, причем это желательно сделать сразу после установки дистрибутива:
rpm -i ttf_webms-1.0-2.i386.rpm
В данном пакете содержится скрипт сценария установки шрифтов, поэтому после установки пакета не требуется каких либо дополнительных действий.
После установки этих шрифтов, желательно подправить конфиг фонтсервера в /etc/X11/fs/config:
До исправления это выглядит примерно так:
.....
catalogue = /usr/X11R6/lib/X11/fonts/korean,
        /usr/X11R6/lib/X11/fonts/misc:unscaled,
        /usr/X11R6/lib/X11/fonts/75dpi:unscaled,
        /usr/X11R6/lib/X11/fonts/100dpi:unscaled,
        /usr/X11R6/lib/X11/fonts/misc,
        /usr/X11R6/lib/X11/fonts/Type1,
        /usr/X11R6/lib/X11/fonts/Speedo,
        /usr/X11R6/lib/X11/fonts/cyrillic,
        /usr/X11R6/lib/X11/fonts/TTF,
        /usr/X11R6/lib/X11/fonts/OTF,
        /usr/share/fonts/default/Type1,
        /usr/share/fonts/default/TTF,
        ,
        /usr/lib/openoffice/share/fonts/truetype,
        /usr/share/fonts/ja/misc:unscaled,
        /usr/share/fonts/ja/misc,
        /usr/share/fonts/ja/TrueType,
        /usr/share/fonts/ISO8859-2/misc:unscaled,
        /usr/share/fonts/ISO8859-2/75dpi:unscaled,
        /usr/share/fonts/ISO8859-2/100dpi:unscaled,
        /usr/share/fonts/ISO8859-2/misc,
        /usr/share/fonts/ISO8859-2/75dpi,
        /usr/share/fonts/ISO8859-2/100dpi,
        /usr/share/fonts/zh_CN/TrueType,
        /usr/share/fonts/zh_TW/TrueType,
        /usr/share/fonts/KOI8-R/misc:unscaled,
        /usr/share/fonts/KOI8-R/75dpi:unscaled,
        /usr/share/fonts/KOI8-R/100dpi:unscaled,
        /usr/share/fonts/KOI8-R/misc,
        /usr/share/fonts/KOI8-R/75dpi,
        /usr/share/fonts/KOI8-R/100dpi,
.....
После исправления вот так:
.....
catalogue = /usr/X11R6/lib/X11/fonts/korean,
        /usr/share/fonts/KOI8-R/misc:unscaled,
        /usr/share/fonts/KOI8-R/75dpi:unscaled,
        /usr/share/fonts/KOI8-R/100dpi:unscaled,
        /usr/share/fonts/KOI8-R/misc,
        /usr/share/fonts/KOI8-R/75dpi,
        /usr/share/fonts/KOI8-R/100dpi,
        /usr/X11R6/lib/X11/fonts/misc:unscaled,
        /usr/X11R6/lib/X11/fonts/75dpi:unscaled,
        /usr/X11R6/lib/X11/fonts/100dpi:unscaled,
        /usr/X11R6/lib/X11/fonts/misc,
        /usr/X11R6/lib/X11/fonts/Type1,
        /usr/X11R6/lib/X11/fonts/Speedo,
        /usr/X11R6/lib/X11/fonts/cyrillic,
        /usr/X11R6/lib/X11/fonts/TTF,
        /usr/X11R6/lib/X11/fonts/OTF,
        /usr/share/fonts/default/Type1,
        /usr/share/fonts/default/TTF,
        ,
        /usr/lib/openoffice/share/fonts/truetype,
        /usr/share/fonts/ja/misc:unscaled,
        /usr/share/fonts/ja/misc,
        /usr/share/fonts/ja/TrueType,
        /usr/share/fonts/ISO8859-2/misc:unscaled,
        /usr/share/fonts/ISO8859-2/75dpi:unscaled,
        /usr/share/fonts/ISO8859-2/100dpi:unscaled,
        /usr/share/fonts/ISO8859-2/misc,
        /usr/share/fonts/ISO8859-2/75dpi,
        /usr/share/fonts/ISO8859-2/100dpi,
        /usr/share/fonts/zh_CN/TrueType,
        /usr/share/fonts/zh_TW/TrueType,
.....
Т.е., нужно шрифты:
       
        /usr/share/fonts/KOI8-R/misc:unscaled,
        /usr/share/fonts/KOI8-R/75dpi:unscaled,
        /usr/share/fonts/KOI8-R/100dpi:unscaled,
        /usr/share/fonts/KOI8-R/misc,
        /usr/share/fonts/KOI8-R/75dpi,
        /usr/share/fonts/KOI8-R/100dpi,
поставить самыми первыми, для того, что бы некоторые приложения, которые используют шрифты без явного указания на кодировку, отображали русские символы, а не закорючки.
Необходимо так же заменить ряд програм, которые были собраны для работы с локалью UTF-8, это groff, less и mc (Midnight Commander), делаем это по аналогии описанной в моей предыдущей статье посвященной RedHat 9:
rpm -U groff-1.18.1-32.i386.rpm
rpm -U groff-gxditview-1.18.1-32.i386.rpm
rpm -U groff-perl-1.18.1-32.i386.rpm
rpm -U less-378-18.i386.rpm
rpm -U mc-4.6.0-16.i386.rpm
Есть некоторые изменения, программа nroff из пакета groff теперь умеет определять уникодность входящего текста, тем самым автоматически включать или выключать перекодирование из UTF-8, таким образом стало возможным просматривать как уникодные man'ы, так и не уникодные...

В FC существует система проверки правописания Aspell, которую используют многие приложения, однако проверка русского языка полностью отсутствует, аналогичное было во всех дистрибутивах RedHat, поэтому необходимо установить пакет aspell-ru-0.50-2.i386.rpm через rpm -i, что бы была такая возможность, как проверка правописания русского языка в приложениях, которые работают с Aspell.

После всего выше проделанного, стоит сделать перезагрузку системы, теперь, когда загрузились и вошли в систему, надо проверить настройку текущей локали, вызываем команду locale и должны получить следущее:
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=
Если мы видим данный текст, то смена локали прошла успешна.

Система обновления FC состоит теперь из двух программ менеджеров, это традиционный менеджер обновления от RedHat up2date и новый, по меркам данного дистрибутива, yum. Yum мне показался более удобным и простым в использовании, он позволяет быстро и легко настаивается на разные репозитории, только вот локализация сделана в UTF-8, что затрудняет чтение, поэтому, если вы перешли на локаль KOI8-R, следует заменить файл /usr/share/locale/ru/LC_MESSAGES/yum.mo, на перекодированный yum.mo.

3. Раскладка клавиатуры


Многие наверное заметили, что после установки FC и загрузки Х-ов, по умолчанию выставляется русская раскладка клавиатуры, если конечно вы выбрали русский язык как основной, то надо подправить конфиг Х-ов в /etc/X11/XF86Config:
Ищем в конфиге строчку:
    Option      "XkbLayout" "ru,us"
и изменяем на:
    Option      "XkbLayout" "us,ru(winkeys)"
Как известно, в последних дистрибутивах RedHat в качестве десктопа выступает GNOME, если кому то хочется установить другой оконный менеджер, то это легко можно сделать через утилиту Desktop Switching Tool или указать в ручную в конфиге /etc/sysconfig/desktop:
DESKTOP="GNOME"
например, заменим на KDE:
DESKTOP="KDE"
Лично я остановил свой выбор на KDE.
По умолчанию в GNOME и KDE не отображается статус выбранной раскладки клавиатуры, хотя все это можно настроить, но оказалось, что есть более универсальное решение, которое позволяет отображать статус рус/лат в "доклетах" многих оконных менеджеров, это решение называется xxkb от И. Паскаля. Мне очень понравилась эта идея, тем более, что настройка раскладки клавиатуры через xkb считается наиболее правильным методом, а для GNOME и KDE xxkb работает сразу и конфигурация почти универсальна для обоих. Пришлось немного подправить исходники xxkb, так как там не все гладко, xxkb брался самый последний из CVS, после чего был собран rpm пакет xxkb-1.10-6.i386.rpm, который я и предлагаю установить как:
rpm -i xxkb-1.10-6.i386.rpm
Как выглядит работа xxkb, можно посмотреть на этом скриншоте. В данное время поддержкой xxkb занимается уважаемый Т. Бакеев (BaT), все исправления и пожелания были вовремя ему высланы:)....
Теперь, если мы загрузимся в Х-ы, по команде startx, то должны наблюдать в доклете иконку с надписью "EN", при нажатии 2х шрифтов эта надпись должна смениться на "RU", такая комбинация переключения раскладки клавиатуры задается по умолчании при инсталляции дистрибутива, и легко может быть сменена в конфиге Х-ов /etc/X11/XF86Config, за это отвечает опция XkbOptions и выглядит примерно так:
....
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
        Option      "XkbRules" "xfree86"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us,ru(winkeys)"
        Option      "XkbOptions" "grp:shift_toggle,grp_led:scroll"
EndSection
.....

4. Тюнинг системы


Переходим, к так называемому, тюнингу системы. В начале мы удалим некоторые пакеты, которые замедляют систему своим присутствием и вызываются из cron'а, а так же при условии, если мы собираемся использовать систему в качестве десктопа:
rpm -e systat
rpm -e inn-devel
rpm -e inn
rpm -e slocate
rpm -e slrn-pull
rpm -e diskcheck
Теперь отключим ряд демонов:
chkconfig --del pcmcia (если не используется)
chkconfig --del smartd (страшная штука:(()
chkconfig --del canna (иероглифы нам не нужны:))
chkconfig --del hpoj (если не используется)
chkconfig --del sendmail (а еще неплохо бы убрать MAILTO=root в /etc/crontab, что бы уж совсем не дергать sendmail)
chkconfig --del spamassassin
chkconfig --del privoxy (если не используется)
chkconfig --del FreeWnn (иероглифы нам не нужны:))

Многим, наверное, не нравится графический интерфейс загрузки и графический сценарий доступа в систему, поэтому предлагаю проделать следущее:
Отключение графической загрузки осуществляется исправлением файла /etc/sysconfig/init, ищем строчку:
GRAPHICAL=yes
и исправляем на
GRAPHICAL=no
Отключение графического сценария доступа в систему осуществляется правкой файла /etc/inittab, ищем строку:
id:5:initdefault:
и правим 5 на 3, т.е. после правки должно выглядеть так:
id:3:initdefault:

5. Про MP3...


Следуя рекомендациям RedHat в FC, по лицензионным соображениям, отсутствует все, что связано с MP3, а те приложения, которые использовали кодирование и декодирование формата MP3, были подвергнуты модернизации на уровне исходников, из них просто был удален весь код связанный с MP3. Вообщем, все тоже самое, что было сделано в двух последних дистрибутивах RedHat 8.0 и 9. Радует одно, что это не касается обычных пользователей и разработчиков, поэтому мы можем с легкостью добавить функционирование MP3 в FC. Для этого мною были подготовлены пакеты обновления и дополнения:
Для KDE обновим пакеты kdemultimedia и kdemultimedia-devel, через rpm -U:
kdemultimedia-3.1.4-5.i386.rpm
kdemultimedia-devel-3.1.4-5.i386.rpm
Установим плагин MP3 для XMMS, через rpm -i:
mpg123-xmms-1.2.7-22.p.i386.rpm
описание этого плагина вы можете прочесть на страничке http://mcmcc.bat.ru
Добавим консольный MP3 проигрыватель mpg123, через rpm -i:
С оптимизацией MMX:
mpg123-0.59s.mc2-2.i386.rpm
Для Athlon'ов с оптимизацией 3DNow!:
mpg123-0.59s.mc2-2.athlon.rpm
MPG123 был сильно модифицирован мною, описание дополнительных возможностей вы можете прочесть на страничке http://mcmcc.bat.ru
Возможно вам захочется создавать MP3 файлы, то енкодер LAME вам в этом поможет:
lame-3.94-2.i386.rpm или версия для Athlon'а lame-3.94-2.athlon.rpm
lame-devel-3.94-2.i386.rpm или lame-devel-3.94-2.athlon.rpm

6. Важные обновления и ядро


Во время бета тестирования дистрибутива Fedora Core, было обнаружено много проблем и недоработок, причем некоторые из них попали в релиз. Из основных недоработок хочется упомянуть отсутствие в ядре кернельного http сервера TUX, хотя утилиты по настройке TUX'а входят в FC, если его не планировали интегрировать в ядро, то зачем нужны эти утилиты Потом, непонятная ситуация с lm_sensors, в ядро входит дремучая версия драйверов 2.6.5, но утилиты и библиотеки устанавливаются версии 2.8.1, к тому же из-за этой версии происходит крушение утилиты мониторинга KSim из KDE, такое ощущение, что ее ни кто не тестировал, хотя лично мною был выслан патч в bugzill'у устраняющий падение этого приложения, так же есть проблемы в библиотеке gtk+ v.1.2.10 уже в самом релизе, в бете эта библиотека работала нормально, что там можно было испортить, даже не представляю, однако баг имеется и причем серьезный:(... Мне удалось немного исправить положение дел относительно выше описанных и найденных мною проблем и недоработок:
Необходимо обновить kdeutils с исправленным KSim, для это нужна скачать и сделать обновление с помощью команды rpm -U следущие пакеты:
kdeutils-3.1.4-3.i386.rpm
kdeutils-devel-3.1.4-3.i386.rpm
Заменим gtk+ пакетом взятым из беты командой rpm -U --force:
gtk+-1.2.10-27.i386.rpm
Предлагаю сменить так же ядро, в отличии от ядра, которое входит в релиз, в этом ядре добавлены некоторые дополнительные возможности и исправления:
Это почти полный список изменений в предлагаемом ядре. Могу добавить только то, что сильно учитывалась поддержка материнских плат на базе чипсета nForce2, и как следствие, ядро собрано только под процессор Athlon, всем остальным, у кого другой процессор, необходимо взять этот пакет:
kernel-2.4.22-1.2116.nptl.mc.w4l.src.rpm
или архив с основными патчами, который имеет гораздо меньший объем для скачивания:
kernel-2.4.22-1.2116.nptl.mc.w4l.tar.bz2
в нем отсутствуют исходники самого ядра linux-2.4.22.tar.bz2, а так же патч patch-2.4.22-ac1.bz2. По умолчанию, в файле kernel-2.4.spec, включена поддержка Win4Lin, если она вам не требуется, то нужно заменить:
%define buildwin4lin 1
на
%define buildwin4lin 0
Собирается ядро как:
rpmbuild -bb --target <Тип вашего CPU>
kernel-2.4.spec
где тип CPU может быть: athlon, i386, i586, i686, x86_64
если необходимо собрать ядро с поддержкой SMP, нужно в spec файле изменить:
%define buildsmp 0
на
%define buildsmp 1
Ниже представлены пакеты ядра собранные для процессоров Athlon с поддержкой Win4Lin, из-за катастрофической нехватки времени, для других CPU сборка не производилась:
kernel-2.4.22-1.2116.nptl.mc.w4l.athlon.rpm
kernel-doc-2.4.22-1.2116.nptl.mc.w4l.athlon.rpm
kernel-source-2.4.22-1.2116.nptl.mc.w4l.athlon.rpm
после загрузки этих пакетов, при условии, что у вас процессор Athlon, нужно установить эти пакеты через rpm -U. Рекомендуется в параметрах загрузки ядра включить функцию ACPI, для этого нужно сделать изменения в конфиге загрузчика, если у вас установлен grub то в /boot/grub/grub.conf примерно должно быть следущее:
.....
title Fedora Core (2.4.22-1.2116.nptl.mc.w4l)
        root (hd1,0)
        kernel /boot/vmlinuz-2.4.22-1.2116.nptl.mc.w4l acpi=on ro root=LABEL=/12 rhgb
        initrd /boot/initrd-2.4.22-1.2116.nptl.mc.w4l.img
.....
acpi=on следует обязательно указать, если у вас материнская плата на VIA KT133, иначе могут возникнуть проблемы!

7. Настройка lm_sensors


Хотелось еще обратить внимание на программу lm_sensors, в FC ее как то не совсем правильно скомпоновали, в /etc/init.d должен присутствовать скрипт запуска lm_sensors, но его почему-то поместили в /usr/share/doc/lm_sensors-2.8.1 под видом lm_sensors.init, в нем следует сделать следущие исправления:
....
PSENSORS=/usr/local/bin/sensors
на
PSENSORS=/usr/bin/sensors
....
echo "Usage: sensors.init {start|stop|status|restart|reload|condrestart}"
на
echo "Usage: $0 {start|stop|status|restart|reload|condrestart}"
....
переместить в /etc/init.d под видом lm_sensors и добавить в стартовый запуск командой chkconfig --add lm_sensors Настройка сенсоров осуществляется командой sensors-detect, отвечая на вопросы это делается довольно быстро, при этом создается файлик в /etc/sysconfig/lm_sensors примерно такого вида (для nForce2):
...
MODULE_0=i2c-nforce2
MODULE_1=i2c-isa
MODULE_2=eeprom
MODULE_3=w83627hf

8. о PPP...


Когда описывались дополнения к предлагаемому ядру, то вскользь было упомянуто о PPP. Предлагаю заменить штатный pppd на новый с поддержкой MPPE+MPPC, еще в него входят патчи дополняющие функциональность при работе со скриптами таких как ip-up и ip-down, по команде who -l можно посмотреть какой пользователь в данный момент работает, его PID и занятое им устройство, а также дополнительный плагин для авторизации  пользователей из базы работающей под MySQL. Про все эти моменты можно будет прочитать в директории /usr/share/doc/ppp-2.4.2b3 после установки пакета ppp-2.4.2b3-4.i386.rpm как:
rpm -U ppp-2.4.2b3-4.i386.rpm
что бы задействовать компрессии в ppp, надо в /etc/modules.conf добавить следущие строки:
alias char-major-108 ppp_generic
alias ppp-compress-18 ppp_mppe_mppc
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
alias tty-ldisc-3 ppp_async
alias tty-ldisc-14 ppp_synctty

9. Установка драйверов для видеокарт от NVidia


После выхода FC, во многих форумах в интернете, обладатели
видеокарт от NVidia жалуются на невозможность установки последних драйверов от NVidia, действительно, такая проблема существует и поэтому, если вы еще не пытались устанавливать эти драйвера, рекомендую попробовать специально собранный пакет драйверов для XFree86 NVIDIA_GLX-1.0-4496.fc1.i386.rpm, в данном пакете содержится специальный скрипт сценария установки, который делает все нужные изменения для избежания конфликтов с MesaGL и в случае, если вы собрали и установили предлагаемое тут ядро, которое включает в себя кернельный модуль для работы этих драйверов, пакетный скрипт сценария установки произведет автоматическую настройку этого кернельного модуля. Если вы не хотите использовать это ядро, то можете взять пакет с исходниками кернельного модуля NVIDIA_kernel-1.0-4496.src.rpm и собрать модуль под используемое ядро вашей системы в данный момент, только учтите, для этого необходимы установленные исходники самого ядра.

10. JAVA и Macromedia Flash Player


Работая с любым веббраузером в FC, многие наверное заметили отсутствие таких компонентов как JAVA и Macromedia Flash Player, если вам необходимы эти компоненты, то предлагаю взять rpm пакет JAVA j2sdk-1.4.2_01-4.i386.rpm, который отличается от Sun'овского тем, что он полностью интегрируется в систему,
имеет исправления для ввода и отображения русских символов, и после установки не требует никаких дополнительных настроек. Macromedia Flash Player можно загрузить по ссылке http://sluglug.ucsc.edu/macromedia/site_ucsc.html.

11. Немного полезного софта

Предлагаю установить некоторые дополнительные программы, которые не входят в дистрибутив, но было бы не плохо, если бы они вошли туда со временем:
Архиватор ARJ для процессоров Intel - arj-3.10.18-ru.1.i386.rpm
Архиватор ARJ для процессоров AMD - arj-3.10.18-ru.2.athlon.rpm
Кик-стартер для быстрого запуска приложений из OpenOffice - oooqs-2.0.2-2.i386.rpm
Клиент и сервер Socks v.5
runsocks-1.0r11-2.i386.rpm
socks5-1.0r11-2.i386.rpm
socks5-clients-1.0r11-2.i386.rpm
socks5-devel-1.0r11-2.i386.rpm

В данной статье давались ссылки только на бинарные собранные rpm пакеты, но если кому интересны rpm пакеты с
исходниками, то вы можете взять их по ссылке http://mcmcc.bat.ru/fedora/SRPMS/, соответственно собранные лежат в http://mcmcc.bat.ru/fedora/RPMS/.


(c)McMCC <mcmcc at mail dot ru>
14.11.2003

12. Дополнение 1

12.1 Установка бинарных драйверов собранных для других версий ядра

Многие, наверное, сталкивались с бинарными драйверами от производителей железа, которые не имеют исходных текстов и которые собраны не для вашей установленной версии ядра, некоторые драйвера писались аж во времена ядер версий 2.4.1 и 2.4.2, после чего не развивались и остались на том уровне. Некоторые полагают, что невозможно грузить модули драйверов собранных под другую версию ядра, но они сильно ошибаются, возможно все, только нужно знать как это делается... С помощью программы objcopy в бинарных файлах можно изменять символьные таблицы, названия функций и т.д., но для облегчения таких процедур были написаны разные скрипты, которые все это делали достаточно просто в понимании. В свое время мне тоже приходилось писать такие скрипты, однако вечно они куда-то исчезали:), но вот появился скрипт, довольно уже известен многим, под названием fixscript, который упрощает все ваши действия до минимума, и который не куда не девается находясь по адресу http://linmodems.technion.ac.il/pctel-linux/fixscript.gz
Работа со скриптом довольно простая:
./fixscript <старый модуль> <новый модуль>
затем просто переименовываем полученный новый модуль в старый и делаем все необходимые операции, которые должны были делаться с модулями дальше. Модули могут быть какими угодно, это драйвера winmodem'ов, ADSL и ISDN устройств, различные RAID контроллеры и т.д., однако меня не все устраивало в работе
fixscript и я его немножко доработал, если драйвера были собраны с помощью gcc версии 2.x.x, а ваше ядро gcc версии 3.x.x, то доработанный fixscript устранит проблему на совместимость компиляторов, он просто отрежет символьное значение gcc2_compiled, тем самым модуль будет грузится без проверок на версию компилятора. Но это еще не все, есть проблемы гораздо сложнее, это изменения в названиях функций, переопределение или вовсе исчезновение, тут только спасает написание специальных модулей "затычек" или попросту говоря эмуляторов исчезнувших или измененных функций в ядре. Самая распространенная функция, которая приносит много проблем, это do_BUG(), эта функция существовала до версии ядра 2.4.18, если вы установили ядро выше этой версии, а модуль был собран с версией 2.4.18, то fixsript тут вам ничем не поможет, однако я сталкивался с такой проблемой и написал модуль "затычку", который эмулирует данную функцию и позволяет без проблем использовать такие модули. Вы можете взять специально подготовленный архив с таким модулем и доработанным fixscript'ом по этой ссылке. В начале мы соберем и установим модуль "затычку", при этом в вашей системе должны быть установлены исходники ядра:
tar xvpzf mod_updater-1.0.tar.gz
cd mod_updater-1.0
make
make install
insmod do_bug
cp fixscript /usr/bin
теперь можно производить изменения модулей fixscript'ом:
cd /куда-то_там
fixscript <старый модуль> <новый модуль>
mv -f
<новый модуль> <старый модуль>
Вот собственно и все.....

12.2 Сборка ALSA

При сборке последней версии 0.9.8 драйверов ALSA под FC1, альтернатива звуковым драйверам OSS из ядра, происходит ошибка на драйвере serialmidi и возникает unresolved symbol schedule_work, что бы избежать этого, нужно взять мой патч по ссылке http://mcmcc.bat.ru/mypatches/alsa-driver-0.9.8_fc1.patch и спек файл http://mcmcc.bat.ru/mypatches/alsa-driver.spec. Затем взять исходники самой ALSA с ftp сервера по ссылке ftp://ftp.alsa-project.org/pub/driver/alsa-driver-0.9.8.tar.bz2 и собрать.

12.3 Настройка rpmbuild

Некоторые пакеты могут не собраться из-за строгостей в настройках макросов rpm, да и пакет с debug данными тоже не очень нужен, поэтому поводу в конце статьи "Настройка RedHat 9 на русскую локаль KOI8-R" было написано, что необходимо сделать.

12.4 Дополнительная информация о PPP c MPPE+MPPC

В разделе "о PPP..." было рассказано о возможностях предлагаемого pppd, многие, кто сменил штатный pppd на этот, стали жаловаться, что они не могут установить соединение и вообщем ничего не работает, я не виноват, что многие не читают документацию, но для штатного режима работы этого pppd, без MPPE, нужно в options указать значение - nomppe, а так же учесть, что ваше ядро должно поддерживать  MPPE+MPPC, все основные опции настроек указаны в мане - man pppd...


(c) McMCC <mcmcc at mail dot ru>
19.11.2003

      13. Обновление 1

Баг: После установки предлагаемого ядра, перестает корректно работать iptables, это связано с тем, что в ядро интегрирован патч с поддержкой GRE, который изменил функции и структуры штатных модулей netfilter. Alexander V. Botarjev прислал сообщение:

  Решил воспользоваться твоими наработками на
  http://mcmcc.bat.ru/fedora/ - вылез маленький, но очень
  неприятный глюк - с твоим ядром iptables не хочет воспринимать
  строку с инициализацией NAT или маскарада - неправильный аргумент
  пишет... :((( Скачал и пересобрал новый iptables - тоже самое... При
  откате на стандартное ядро - все работает...
  Ядро заработало после отключения патча GRE-netfilter - видимо что-то там не
  так... :(

Исправление: Все правильно, видимо пересборка осуществлялась через родной spec файл для iptables, или в Makefile не был указан путь до исходников ядра, в спек файле указан путь до /usr, а в Makefile iptables до /usr/src/linux, т.е. линк, и который повидимому был на исходники старого ядра без патча GRE. Автор патча GRE рекомендует указать путь до исходников ядра, которые содержат этот патч, и пересобрать iptables. Вот собранные пакеты для обновления:
iptables-1.2.9-1.i386.rpm
iptables-devel-1.2.9-1.i386.rpm
iptables-ipv6-1.2.9-1.i386.rpm
пакет с исходниками:
iptables-1.2.9-1.src.rpm


(c) McMCC <mcmcc at mail dot ru>
24.11.2003