Настраиваем свеже-установленный Slackware 8.0 "Etta".

1  Введение
2  Каталог /etc
2.1   Под-каталог rc.d
3 XFree86 4.1
3.1  TrueType шрифты
3.2  Настройка DRI для Matrox
3.3  Включаем старую добрую (ну не очень:) S3 Trio64
4 Работаем в графической консоли, или Matrox Framebuffer
5 Настройка ядра 2.4.x
6 Итог

1  Введение

Здесь я шаг за шагом рассажу, какие действия я произвёл, чтобы настроить на своём компьютере Slackware 8.0. Несколько раз меня попросили описать процесс обновления системы Slackware 7.1 версией 8.0. Должен признаться, что на 100% я не уверен, но основываясь на собственном опыте работы со Slackware и принимая во внимание то, что я знаю о его последней версии, я считаю такой процесс невозможным (если под процессом обновления понимать установку новой системы поверх старой с сохранением всех персональных настроек). Единственное, что я могу вам посоветовать, это создать архивы ваших домашних каталогов, и прочих личных документов (web страничек,...), произвести полную установку "с нуля" новой системы, и далее создать пользователей с такими же id какие были ранее в вашей системе (можно просто скопировать старые файлы /etc/passwd и /etc/group) и развернуть их домашние каталоги там, где положено. Основная проблема обновления в том, что огромное число программ, библиотек и конфигурационных файлов поменяли своё местоположение. Так же весьма полезно создать копию всех /etc файлов.

Сам процесс установки скорее всего не вызовет у вас затруднений. Тем не менее, вот основные моменты, на которые я бы рекомендовал обратить внимание:
1Если вы хотите использовать ReiserFS (это журналируемая файловая система, разработанная SuSE и ещё кем-то. Что в ней здорово, так это то, что все действия производимые системой над файловой системой записываются в специально отведённые "карманы" жёсткого диска. Так что если вы случайно нажали Reset, это не должно вызвать никаких проблем. После пере-загрузки компьютер "вспомнит", что он делал с файлами и продолжит с того самого места, на котором остановился. Правда при действиях с большими файлами это очень здорово нагружает систему. В общем выбирать вам, но вот что делать, если вы всё же решились). Так как на CD по умолчанию используется ядро, не поддерживающее ReiserFS. Вам необходимо при загрузке с CD нажать клавишу F1 и затем F2 и выбрать образ загрузочного диска, который вы пожелаете использовать в процессе установки. Скорее всего это будет bare245.i. Далее, если диск ещё не размечен, разметьте его при помощи fdisk, и затем выполните mkreiserfs /dev/hda5 (если hda5 это ваш диск). При установке вам следует выбрать ядро по умолчанию 2.4.5(/a1/i245.tgz)
2При установке вы можете выбрать, скажем, раскладку ru.map, но тогда в процессе установки клавиша BackSpace перестанет функционировать(она может понадобится вам, скажем, при настройке сети, когда необходимо вводить ip адреса). Я сумел вручную на другой консоли включить эту клавишу, но принимая во внимание возникшие при этом неудобства, вам не советую делать это.

2  Каталог /etc

Скорее всего для вас не будет новостью тот факт, что в этом каталоге хранится большинство настроечных файлов системы. Именно сюда мы и заглянем в первую очередь.
inetd.confВыключил сервисы: time, comstat, shell, login, ntalk, auth, netbios-ssn, netbios-ns. Лучше оставить только действительно необходимые сетевые сервисы открытыми.
profile Изменил раздел # Set default POSIX locale на:

export LC_ALL=
export LANG=ru_RU.KOI8-R
ftpusersЗакомментировал ftp, чтобы включить анонимный доступ через ftp к каталогу /home/ftp
fstabДобавил строки для CD-ROM и FDD:

/dev/cdrom /cdrom  iso9660 user,ro,noauto,noexec 0 0
/dev/fd0   /floppy auto    noauto,user           0 0
создал каталог /floppy
vga/libvga.config выбрал свой чипсет
apache/httpd.confНашёл строку "Allow None" после шапки:

#
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
И поменял её на:
AllowOverride FileInfo
При этом в корневой каталог web сервера (в моём случае /home/www) положил файл .htaccess такого содержания:

AddDefaultCharset koi8-r
AddLanguage ru .html .txt
После чего в шапке каждого из документов достаточно прописать "html LANG=ru". И никаких проблем с русскими кодировками...
Удалил каталог /var/www/htdocs и создал вместо него симлинк на /home/www. (Разумеется, все документы там в koi8-r кодировке:).

2.1/etc/rc.d

Весьма важный (по крайней мере при загрузке системы) обитатель каталога /etc - это /etc/rc.d/. Давайте пройдёмся по его содержимому:
rc.font Этот файл определяет какой из шрифтов используется для вывода текста в консоли. Так же сюда полезно добавить цикл, выводящий магическую последовательность (чтобы научить систему отображать русские буквы) на все виртуальные экраны. Вот содержимое файла:

setfont -v koi8u_8x16.psfu.gz
for i in 1 2 3 4 5 6;do
	echo -ne "\033(K" >/dev/tty$i
done
rc.MЭтот файл фактически запускает все программы, для многопользовательского режима (буква M в названии взята от multiusers). Особых изменений никаких не вносил, за исключением уменьшения времени гашения экрана:
/bin/setterm -blank 2
rc.inet1Этот файл "поднимает" сетевые интерфейсы. В моём случае выполнения скрипта netconfig оказалось достаточно, чтобы настроить сетевое оборудование.
rc.inet2Этот файл запускает различные сетевые сервисы. Ввиду того, что я практически не пользуюсь ни NFS, ни Samba на этом компьютере, я отключил все эти сервисы. Для этого необходимо вставить символ # в начале строки, которую вы хотите выключить, или выражаясь на народном наречии, закомментировать её. Итак, я закомментировал такие строки: запуск NFS, SAMBA, RPC portmapper; так же закомментировал монтирование разделов NFS и SAMBA. Закомментировал запуск nfsd.
Включил запуск BIND от имени пользователя daemon и изменил владельца содержимого каталогов /var/named и /var/run/named на daemon (chown -R daemon /var/named;chown -R daemon /var/run/named). Это всё, что необходимо проделать для настройки кэширующего DNS сервера на вашем компьютере. Не знаю, как вам но мне не нравится, что каждый час в файле /var/log/messages появляется строка вроде такой:
Jul 19 09:23:04 pc135 -- MARK --
Чтобы выключить это, укажем параметр "-m 0" демону syslogd:
# Start the syslogd and klogd daemons:
if [ -x /usr/sbin/syslogd ]; then
    echo -n "Starting sysklogd daemons:  "
    echo -n " /usr/sbin/syslogd"
    /usr/sbin/syslogd -m 0
    sleep 1 # prevent syslogd/klogd race condition on SMP kernels
    echo " /usr/sbin/klogd -c 3"
    # '-c 3' = display level 'error' or higher messages on console
    /usr/sbin/klogd -c 3
fi
# Done starting the syslogd and klogd daemons.
rc.keymapЭтот файл указывает, какую из раскладок клавиатуры пакета kbd использовать в консоли. Поменял раскладку на свою собственную ru-dolphin.map.gz (переключение Рус/Лат по одной из "очень нужных" windows клавиш. Раскладка соответствует windows раскладке). После чего файл приобрёл такой вид:
loadkeys ru-dolphin.map
rc.modulesЭтот файл используется для загрузки модулей ядра. Для того, чтобы включить свою звуковую карту, я добавил такие строки в этот файл:

#Added by dolphin:
/sbin/modprobe cs46xx
/sbin/modprobe sound
Для того, чтобы позволить пользователю "dolphin" работать со звуком, добавьте его в группу "sys". Для этого добавьте этого пользователя в соответствующую строку файла /etc/group:
sys::3:root,bin,adm,dolphin
Более старый метод подразумевал открытие файлов /dev/dsp и /dev/mixer для записи всеми пользователями. Но из соображений безопасности (вы же не хотите чтобы КГБ через микрофон в компьютере вас слушало, и тратило на это своё драгоценное время:) лучше добавлять пользователей в группу "sys" (можно так же добавить продвинутых пользователей в группу "disk". Тогда они смогут извлекать cd диск по команде eject:).).
Убрал весь раздел "Load PPP by default" (на этом компьютере у меня не используется ppp, так как он подключён к сети через ethernet) и отключил "/sbin/modprobe ppp_deflate", "/sbin/modprobe slip" и раздел "lp" (принтер у меня сетевой)
rc.nfsdchmod 644 /etc/rc.d/rc.nfsd так как я им не пользуюсь.
rc.local Этот файл предоставлен целиком для творчества местного администратора. То есть вас:). В свой файл я добавил:
/usr/bin/fetchmail -f /root/.fetchmailrc
При этом в каталог /root положил такой файл .fetchmailrc:
set daemon 600
defaults
poll metten.fenk.wau.nl with protocol POP3:
    no  dns, user tolpyekin password tpsfsdf is vladimir here;

poll mail.od.ua with protocol POP3:
    no dns, user dolphin77 password 'd;dkjgh' is vladimir here;

Пароли я здесь естественно указал настоящие :). Вас не раздражает, когда скажем, при проигрывании музыки, привод CD-ROM начинает гудеть, как паровоз? Меня раздражает. Поэтому я решил его немного усмирить:
/usr/sbin/hdparm -E 8 /dev/cdrom
После чего он работает как 8-ми скоростной cd. Вы можете в последствии ускорить или замедлить cd, выполнением аналогичной команды.

Важное замечание по поводу безопасности. Если вы используете ядро 2.4.5, то во избежании получения обычным пользователем прав root пользователя (www.securityfocus.com), переименуйте файл /sbin/initscript.sample в /sbin/initscript:
cd /sbin
mv initscript.sample initscript
Это установит правильные права для файлов в каталоге /var/run. А так же проверьте права для файлов в каталоге /lib/modules/2.4.5/. Выполните там chmod 644 modules.*.

3 XFree86 4.1

По умолчанию X сервер настроен на использование Frame-buffer устройства. Что не очень здорово. Поэтому от имени root я проделал следующее XFree86 -configure. После чего появился файл /root/XF86Config.new. Добавим в Section "Modules" строки:


       Load  "speedo"
       Load  "type1"
       Load  "freetype"
в раздел Section "Files":

       FontPath     "/usr/X11R6/lib/X11/fonts/cyrillic:unscaled"
И теперь скопируем файл куда следует:
cat XF86Config.new > /etc/X11/XF86Config
.

Если вы хотите запускать Gnome программы из-под KDE, скопируйте содержимое файла /etc/opt/gnome/gtk/gtkrc.ru в файл .gtkrc и положите его в ваш домашний каталог:
cp /etc/opt/gnome/gtk/gtkrc.ru ~/.gtkrc
Либо создайте такой симлинк: cd /etc; ln -s opt/gnome/gtk gtk. Иначе вместо кириллицы в меню программ будет какое-то безобразие. Так же полезно скопировать его в /etc/skel. Если вы знаете, почему игнорируется файл /opt/gnome/gtk/gtkrc.ru, расскажите. Мне будет интересно. Я пытался разобраться, в чём ошибка, но не успел:).

3.1 TrueType шрифты

Метод номер один - вручную Скопируйте шрифты в каталог /usr/X11R6/lib/X11/fonts/truetype. Далее нам необходимо создать фалы описания шрифтов. Для этого удобно воспользоваться программой ttmkfdir. Вы можете взять её здесь: ttmkfdir.tgz. Войдите каталог /usr/X11R6/lib/X11/fonts/truetype и выполните от имени root следующее


ttmkfdir -o fonts.scale
mkfontdir
mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings
Ну и теперь, всё что вам остаётся сделать, это добавить такую строку в Section "Files" файла /etc/X11/XF86Config:
FontPath "/usr/X11R6/lib/X11/fonts/truetype/"

Метод номер два. Готовый пакет со шрифтами Arial, Times, Courier и Comic Sans Seriff. Возьмите его тут: ttf.tgz. И пользуйтесь на здоровье. Не забудьте добавить такую строку в Section "Files" файла /etc/X11/XF86Config:
FontPath "/usr/X11R6/lib/X11/fonts/truetype/"

Метод номер три. kfontinst. Появилась программа KFontInstall. Сам я её не пробовал. Вот URL домашней страницы программы http://www.cpdrummond.u klinux.net/kfontinst-new/.

3.2 Настройка DRI для Matrox

Одним из достопримечательностей новой версии XFree86 является новое поколение2.0 DRI. Этот механизм позволяет программам напрямую выводить графику через видеокарту, минуя X сервер. Что может быть полезно для игрушек, просмотра видео или просто для красивой графики. К сожалению, этот режим пока поддерживается лишь для некоторых видеочипов. Мне случилось оказаться счастливым обладателем старенького Matrox G200 8Mb. Итак, к делу. Первым делом, в /etc/X11/XF86Config в разделе Section "Module" добавьте строки (скорее всего они там уже есть)


       Load  "dri"
       Load  "glx"
Так же создайте такой раздел:

Section "DRI"
       Mode 0666
EndSection
Что позволит всем пользователям выводить графику через DRI. Если вы хотите разрешить данное действие лишь привелигированным особам, создайте группу "xdri" и пропишите такой текст:

Section "DRI"
       Group "xdri"
       Mode 0660
EndSection
А в группу добавьте привелигированных особ.
Вот какую секцию "Device" я использую для своего Matrox-а:

Section "Device"
       Option     "MGASDRAM"
       Option     "OverclockMem"
       Option     "AGPMode"  "1"
       Option     "DRI"
       Identifier  "Card0"
       Driver      "mga"
       VendorName  "Matrox"
       BoardName   "MGA G200 AGP"
       BusID       "PCI:1:0:0"
EndSection

На этом мы оставим в покое файл /etc/X11/XF86Config. Далее ввиду того, что со Slackware 8.0 поставляются non-SMP модули ядра, нам понадобятся более новые модули. Вы можете их взять тут: drm_modules-3.0.tgz. Выполните как root installpkg drm_modules-3.0.tgz. А да, чуть не забыл самое главное. Поддержка dri будет работать только с ядром 2.4.5. Если вы боитесь, что невооружённым глазом не обнаружите, включился DRI или нет, отправляйтесь в файл /var/log/XFree86.0.log. Можно с пивом. Так как там есть много полезной информации. Если спешите, то посмотрите что выдаст команда cat /var/log/XFree86.0.log|grep EE.

3.3 Включаем старую добрую (ну не очень:) S3 Trio64

Ну вот. Есть у меня дома старенький компьютер с видеокартой Diamond Stealth 64 DRAM with S3 Trio64. Я вот подумал, а почему не настроить на нём XFree86 4.1.0? Итак за дело. Поверх XFree86 4.1.x установите с диска extra.iso пакет:
/pasture/XFree86-3.3.6-servers/xs3.tgz

После чего, если у вас нет старого рабочего /etc/XF86Config файла, вам надо его создать. Вот вам пример моего рабочего файла: XF86Config. Измените его в соответствии с вашей системой. (У меня карта Diamond Stealth 64 ... та же S3 Trio64 на самом деле, Монитор ADI MicroScan 4GP, мышь - трёхкнопочная стандартная на COM1, переключение Рус/Лат по Control+Shift). Ну и не забудьте suid серверу дать.
chmod a+s /usr/X11R6/bin/XF86_S3 Оно конечно не очень быстро, но быстрее, чем драйвер от XFree86 4.1.0.

4 Работаем в графической консоли, или Matrox Framebuffer

Вам понадобится откомпилировать ядро.
cd /usr/src/linux-2.4.5
make menuconfig
В разделе "Console drivers" включите "VGA text console". В подразделе "Frame-buffer support" включите "Matrox acceleration" и убедитесь, что параметр "VESA VGA graphics console" выключен.

Для переключения консоли в графический режим укажите такой параметр в командной строке lilo:
video=matrox:vesa:0x18A
(для режима 960х720х16bpp). Если вы хотите, чтобы при загрузке консоль автоматически загружалась в графическом режиме. укажите в /etc/lilo.conf такую строку:
append = "video=matrox:vesa:394"
Так как Lilo передаёт целые числа ядру в десятичном формате. Вот таблицы с различными режимами (из /usr/linux/Documentation/fb/matroxfb.txt):

[Graphic modes]
bpp | 640x400  640x480  768x576  800x600  960x720
----+--------------------------------------------
  4 |            0x12             0x102
  8 |  0x100    0x101    0x180    0x103    0x188
 15 |           0x110    0x181    0x113    0x189
 16 |           0x111    0x182    0x114    0x18A
 24 |           0x1B2    0x184    0x1B5    0x18C
 32 |           0x112    0x183    0x115    0x18B

[Graphic modes (continued)]
bpp | 1024x768 1152x864 1280x1024 1408x1056 1600x1200
----+------------------------------------------------
  4 |   0x104             0x106
  8 |   0x105    0x190    0x107     0x198     0x11C
 15 |   0x116    0x191    0x119     0x199     0x11D
 16 |   0x117    0x192    0x11A     0x19A     0x11E
 24 |   0x1B8    0x194    0x1BB     0x19C     0x1BF
 32 |   0x118    0x193    0x11B     0x19B
И соосоответствующие десятичные значения:
[Graphic modes]
bpp | 640x400  640x480  768x576  800x600  960x720
----+--------------------------------------------
  4 |              18               258
  8 |    256      257      384      259      392
 15 |             272      385      275      393
 16 |             273      386      276      394
 24 |             269      388      389      396
 32 |             274      387      279      395

[Graphic modes (continued)]
bpp | 1024x768 1152x864 1280x1024 1408x1056 1600x1200
----+------------------------------------------------
  4 |     260               262
  8 |     261      400      263       408       284
 15 |     278      401      281       409       285
 16 |     279      402      282       410       286
 24 |     435      404      437       412       287
 32 |     280      403      283       411

5  Настройка ядра 2.4.x

Для того, чтобы использовать многие из дополнительных возможностей X сервера версии 4.1 и для использования Matrox frame-buffer в консоли, есть смысл покопаться в настройках ядра. Я рассмотрю здесь на примере ядра 2.4.12 какие из опций я включил в ядре для Matrox видео-карты. А чтобы одним выстрелом убить двух зайцев, и жизнь малиной не казалась, мы помимо этого ещё и наложим патч от Alan Cocs на это ядро. Лично я сделал это, захотев поэкспериментировать. Если вы против пропатченых ядер, просто пропустите этот шаг.

Итак,
#cd /usr/src; rm -rf linux
/usr/src#bzip2 -dc ~/linux.2.4.12.tar.bz2 | tar xvf -
/usr/src#mv linux linux-2.4.12-ac5; ln -sf linux-2.4.12-ac5 linux; cd linux
/usr/src/linux#bzip2 -dc ~/patch-2.4.12-ac5.bz2 | patch -p1
/usr/src/linux#make menuconfig

Если у вас остался настроечный файл от какого-то более старого ядра, и вы не хотите заново изменять все настройки, проделайте такие действия:

#cp ~/kernel-configs/config-2.4.10 /usr/src/linux/.config
#cd /usr/src/linux; make oldconfig

После чего ответьте на вопросы, задаваемые скриптом о новых опциях (можете смело поотвечать no на все вопросы), и лишь затем выполните make menuconfig.

Теперь давайте пройдёмся по настройкам ядра для Matrox карты.

В разделе "Code maturity level options"
Включил 	Prompt for development and/or incomplete code/drivers   Это позволит нам пользоваться "экспериментальными" опциями ядра

В разделе "Processor type and features"
Включил 
	Math emulation					Это не необходимо, но не помешает.
	MTRR (Memory Type Range Register) support	Подержка прямого доступа к памяти.
Выключил
	Symmetric multi-processing suppor	У меня только один процессор.

В разделе "Character devices"
Включил 
	/dev/agpgart (AGP Support)				Собственно, поддержка AGP.
	Intel 440LX/BX/GX and I815/I830M/I840/I850 support	Это мой чипсет. Остальные все выключил.
	Direct Rendering Manager (XFree86 DRI support)
	Build drivers for new (XFree 4.1) DRM
Включил, как модуль
	Matrox G200/G400/G450		X сервер сам загрузит модуль, когда это необходимо.
В разделе "Console drivers"
Зашёл в подраздел "Frame-buffer support"
Включил 
	Support for frame buffer devices	Поддержка Frame-buffer.
	Matrox acceleration (EXPERIMENTAL)	Ускорение для Matrox.
	G100/G200/G400/G450 support		Поддержка Matrox чипсета.
	Matrox I2C support			Поддержка I2C для Matrox.
Так же в этом разделе я проделал такие изменения:
	[*]   Advanced low level driver options
	< >     Monochrome support
	     2 bpp packed pixels support
	     4 bpp packed pixels support
	<*>     8 bpp packed pixels support
	<*>     16 bpp packed pixels support
	<*>     24 bpp packed pixels support
	<*>     32 bpp packed pixels support
	< >     Amiga bitplanes support
	< >     Amiga interleaved bitplanes support
	< >     Atari interleaved bitplanes (2 planes) support
	< >     Atari interleaved bitplanes (4 planes) support
	< >     Atari interleaved bitplanes (8 planes) support
	< >     Mac variable bpp packed pixels support
	< >     VGA 16-color planar support
	< >     VGA characters/attributes support
	< >     HGA monochrome support (EXPERIMENTAL)
	[ ]   Support only 8 pixels wide fonts
	[*]   Select compiled-in fonts
	[*]     VGA 8x8 font
	[*]     VGA 8x16 font
	[ ]     Sparc console 8x16 font
	[ ]     Sparc console 12x22 font (not supported by all drivers) (NEW)
	[ ]     Mac console 6x11 font (not supported by all drivers) (NEW)
	[ ]     Pearl (old m68k) console 8x8 font
	[ ]     Acorn console 8x8 font

А теперь ещё и включим файловую систему ext3.

Раздел "File systems":
	<*> Ext3 journalling file system support (EXPERIMENTAL)
	[*]   JBD (ext3) debugging support

Соберём ядро:

/usr/src/linux#make dep bzImage modules modules_install
/usr/src/linux#cat arch/i386/boot/bzImage > /vmlinux-2.4.12-ac5; cp System.map /boot/System.map.2.4.12-ac5

В /etc/lilo.conf добавим строки:

image = /vmlinuz-2.4.12-ac5
    root = /dev/hdb2 #(или какой там у вас root раздел)
    label = 2.4.12-ac5
    read-only

и выполним

#lilo

Перезагрузите систему и выберите образ нового ядра. Если всё пройдёт успешно, давайте создадим журнал для раздела /dev/hdb2:

#tune2fs -j /dev/hdb2
А так же в файле /etc/fstab заменим тип файловой системы на ext3. В чём прелесть ext3 журналируемой системы, так это в том, что если что-то совсем не так, вы всегда можете подключить этот раздел, как обычный ext2. Разница лишь в том, что журнал не будет использоваться.

7  Итог

Ну вот, вроде бы и всё. У вас теперь есть рабочий Slackware 8.0. Удачного вам Slacking-а:)

Автор статьи - dolphin.
Домашняя страница документа sle.how-to.ru.
Last update 01 Dec 2001.