|
Настраиваем свеже-установленный
Slackware 8.0 "Etta"
В. Толпекин
- Введение
- Каталог /etc
2.1 Под-каталог rc.d
- XFree86 4.1
3.1 TrueType шрифты
3.2 Настройка DRI для Matrox
3.3 Включаем старую добрую (ну не очень:) S3 Trio64
- Работаем в графической консоли, или Matrox Framebuffer
- Настройка ядра 2.4.x
- Итог
1 Введение
Здесь я шаг за шагом рассажу, какие действия я произвёл,
чтобы настроить на своём компьютере Slackware 8.0. Несколько раз
меня попросили описать процесс обновления системы Slackware 7.1
версией 8.0. Должен признаться, что на 100% я не уверен, но основываясь
на собственном опыте работы со Slackware и принимая во внимание
то, что я знаю о его последней версии, я считаю такой процесс невозможным
(если под процессом обновления понимать установку новой системы
поверх старой с сохранением всех персональных настроек). Единственное,
что я могу вам посоветовать, это создать архивы ваших домашних каталогов,
и прочих личных документов (web страничек,...), произвести полную
установку "с нуля" новой системы, и далее создать пользователей
с такими же id какие были ранее в вашей системе (можно просто скопировать
старые файлы /etc/passwd и /etc/group) и развернуть их домашние
каталоги там, где положено. Основная проблема обновления в том,
что огромное число программ, библиотек и конфигурационных файлов
поменяли своё местоположение.
Сам процесс установки, я думаю, не вызовет у вас затруднений.
Тем не менее, вот основные моменты, на которые я бы рекомендовал
обратить внимание: 1 Если вы хотите использовать ReiserFS (это журналируемая
файловая система, разработанная SuSE и ещё кем-то. Что в ней здорово,
так это то, что все действия производимые системой над файловой
системой записываются в специально отведённые "карманы"
жёсткого диска. Так что если вы случайно нажали Reset, это не должно
вызвать никаких проблем. После пере-загрузки компьютер "вспомнит",
что он делал с файлами и продолжит с того самого места, на котором
остановился. Правда при действиях с большими файлами это очень здорово
нагружает систему. В общем выбирать вам, но вот что делать, если
вы всё же решились). Так как на CD по умолчанию используется ядро,
не поддерживающее ReiserFS. Вам необходимо при загрузке с CD нажать
клавишу F1 и затем F2 и выбрать образ загрузочного диска, который
вы пожелаете использовать в процессе установки. Скорее всего это
будет bare245.i. Далее, если диск ещё не размечен, разметьте его
при помощи fdisk, и затем выполните mkreiserfs /dev/hda5 (если hda5
это ваш диск).
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.nfsd chmod 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 Оно конечно не очень быстро, но
быстрее, чем vesa драйвер от 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 У меня только один процессор.
В разделе "I2O device support"
Включил
I2O support Я не совсем разобрался что это, но
I2O PCI support это позволяет включить дополнительную
I2O /proc support функцию для Matrox видео карты.
В разделе "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; make bzImage; make modules;
make 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. Разница лишь в том, что журнал не будет использоваться.
Этот раздел пока является черновиком. Пишите мне, если вам есть
что сюда добавить. dolphin77@mail.od.ua
6 Итог
Ну вот, вроде бы и всё. У вас теперь есть рабочий Slackware 8.0.
Удачного вам Slacking-а:)
©"Slackware
Linux Essentials" на русском
наверх
|