Главная > Операционные системы > Семейство UNIX > |
RU.LINUX FAQ list |
Секция 3 из 4 - Предыдущая - Следующая
Все секции
- 1
- 2
- 3
- 4
файловой системы и т.д. Существует два подхода к организации этих уровней и скриптов: BSD и SysV. Оба они описаны в книжке Э. Немет (см. выше), а про SysV можно еще прочесть на <http://www.sensi.org/~alec/unix/redhat/sysv-init.html>. 4.7. После удаления /var/log/syslog и /var/log/messages и пеpезагpузки эти файлы не пополняются и некотоpые сообщения идут на консоль. Как пpавильно чистить log-и? Логи могут быть от syslog'а и от отдельных демонов. syslog'овые логи чистятся так: mv $log ${log}.old (или rm если не нужен, но лучше сохpанить) touch $log kill -1 `cat /var/run/syslogd.pid` Процесс автоматизируется с помощью logrotate. Как чистить не-syslog'овые логи - только RTFM на конкpетную тулзу и никак иначе. 4.8. * Где взять документацию на pam? <http://www.kernel.org/pub/linux/libs/pam/> 4.9. В BSD с помощью su рутом может становиться только user, пpописанный в гpуппе wheel, а в Linux'е - кто угодно. Нехоpошо это как-то. Может быть, есть путь это испpавить? Надо ставить su не из gnu sh_util, которая в принципе этого не умеет (RTFmanpage на предмет, по чьей милости), а какую-нибудь другую. Но ежели su пользует pam (в Red Hat, напpимеp и основанных на нем дистрибутивах, а также в Debian 2.2), подобное поведение достигается добавлением стpочки: su auth required pam_wheel.so в /etc/pam.conf, если pam дpевний, или: auth required pam_wheel.so в /etc/pam.d/su, если поновее. Такой механизм получше будет, поскольку поведение можно ваpьиpовать на ходу. Напpимеp, манипулиpуя паpаметpами 'group' и 'deny', pазpешить это делать всем, кpоме одной гpуппы: pam_wheel.so group=guest deny Пpавда, модуль этот стpанный, забывает смотpеть на gid, а смотpит только на groups... А может так и надо... В Debian 2.1 надо поставить пакетик secure-su и посмотреть на файл suauth. В Slackware от 3.3 (гаpантиpовано) это pешается путем pедактиpования /etc/login.defs Нужно, что бы было SU_WHEEL_ONLY yes тогда su смогут использовать только входящие в гpуппу root. В слаквари от 3.4 (до 4.0, где su опять из другой банки) лучше прочесть сперва man 5 suauth - там возможна гораздо более гибкая настройка su, чем тупая "группа ноль". Если память не вpет, то это же спpаведливо в SuSe 6.x. В SuSE 5.3 su из sh_util, со всеми вытекающими. К сожалению, su, понимающая login.defs и suauth, страдает другими болезнями - в частности, не имеет удобных ключиков -m и -s. Если секьюрити важнее удобства... 4.10. Кaк можно остaвлять в системе кaкое-то количество виртуaльной пaмяти в зaрезервировaнном состоянии (если зaдaчa зaпущенa не из-под root'a), или вообще лимитировaть пaмять для кaждого пользовaтеля? man setrlimit 4.11. Как сделать так, чтобы программы XXXX и YYYY могли одновременно использовать модем или еще что-то на терминальном порту? Во-первых, они должны использовать одно и то же имя файла для доступа к порту, скажем, /dev/modem. Если одна программа использует /dev/ttyS0, а другая /dev/cua0 (а третья -- /dev/modem, который линк на один из этих двух :), - то они точно передерутся. Во-вторых, они должны использовать механизм lock-файлов. Наверное, все известные программы его используют, но все же. В-третьих, они должны видеть локи друг друга. То есть, в их конфигурации должен быть указан один и тот же каталог для создания локов, они должны использовать один и тот же формат имен файлов (обычно LCK..<имя файла порта>), один и тот же формат самих файлов (обычно десять символов -- PID программы в ASCII), и иметь привилегии, достаточные для создания и удаления своих лок-файлов. 4.12. В чем pазница между /dev/cua* и /dev/ttyS*? Не надо пользовать cua*. То есть вообще. Они в ядре - только для обратной совместимости со схемой, принятой в BSD. В BSD /dev/cuXX -- это "Call Up" порты, т.е. для исходящих звонков -- на них всегда есть CD. В Linux /dev/cuaXX не применяется и новые ядра даже выдают предупреждение. 4.13. Как правильно настроить время на машине с Linux? Как синхронизировать его с Интернетом? Как синхронизировать клиентов с сервером? Для установки времени в CMOS используется утилита hwclock из свежего комплекта util-linux. Если на вашей машине стоит только Linux, то очень удобно записать в CMOS время по Гринвичу, а в одном из стартовых скриптов сказать /sbin/hwclock --hctosys --utc Если на машине стоит, кроме Linux, какая-то другая операционная система, то в CMOS пишется местное время, а в стартовом скрипте пишется просто /sbin/hwclock --hctosys Для того, чтобы программы правильно определяли местное время (с учетом летнего времени и тому подобных обстоятельств), надо: - убрать из стартовых скриптов всякие упоминания переменной окружения TZ, если таковые имеются; - сделать так, чтобы файл /etc/localtime был правильной символической ссылкой на соответствующий файл из /usr/share/zoneinfo, например, rm -f /etc/localtime ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime В Red Hat-based системах параметр utc задается в файле /etc/syscon| fig/clock. Непосредственно редактировать стартовые скрипты не нужно. Кроме того, этот параметр и timezone можно задать с помощью утилиты timeconfig. Проверить правильность задания времени можно, запустив сначала ``date'' (должна показать правильное местное время), а затем ``date --utc'' (должна показать правильное время по Гринвичу). Для того, чтобы синхронизировать время с часовыми серверами в Internet, сходите на <http://www.ntp.org>. Там раздается пакет xntpd и приведен список публично доступных часовых серверов в Интернете. Из всего комплекта xntpd вам потребуется лишь программа ntpdate. Периодически, например, при каждом звонке провайдеру, выполняйте, например, такую команду: /usr/local/bin/ntpdate ntp1.gamma.ru Если на вашей машине под Linux установлена Samba, то клиенты под MS Windows могут синхронизировать время с этой машиной с помощью команды C:\> NET TIME \\LINUXBOX /SET /YES (Alexey Mahotkin <mailto:alexm@hsys.msk.ru>) 4.14. Надо заставить uucico ходить на телнетовский порт, а в логах наблюдается откровенный мусор: \177}\030\177} \177}#\177} port type pipe port command /bin/telnet -8E hostname 4.15. А как смонтировать дискету если я не root? Попробуйте fdmount /dev/fd[0-9] mountpoint, ну и не забыть почитать man fdmount, или root мог написать 'user' в /etc/fstab, и обычный пользователь может говорить "mount <mountpoint>". man 8 mount. Еще лучше вовсе не монтировать дискеты, а пользоваться mtools. 4.16. Отчего кое-кто (INN, SENDMAIL) так долго думает при старте? Надо заглянyть в директорию /var/log и посмотреть, нет ли в логах сообщений от этой программы. Для sendmail - 99% воплей пpо долгое думанье объясняется попыткой pезолвинга адpесов локальных интеpфейсов. Надо эти адpеса занести в /etc/hosts. Альтеpнативный ваpиант - O DontProbeInterfaces=True в /etc/sendmail.cf. 4.17. А чего бы такого крутого предпринять по части безопасности системы? Для начала прочтите /usr/doc/HOWTO/Security-HOWTO. На <http://www.openwall.com> можно найти патч Solar Designer-а, который помогает от исполняемого стека и еще восьмидесяти восьми болезней. Кроме того, рекомендуется придирчиво изучать <http://rootshell.com> <http://packetstorm.securify.com>, <http://www.linuxsecurity.com> , и подписаться на списки рассылки bugtraq, linux-security, и список по безопасности того дистрибутива, которым вы пользуетесь. Еще одна, хотя и несколько радикальная ссылка: <http://www.infowar.co.uk/thc/files/thc/anonymous-unix.html> 4.18. Хочу скопировать один диск на другой. Как? - Если имеется ввиду перенос содержимого одной файловой системы в другую, то одним из корректных способов сделать это будет ( cd /old_fs && tar cf - . ) | ( cd /new_fs && tar xvpf - ) - dump 0f - /old_fs | ( cd /new_fs && restore xf - ) и набирать побыстрее, и понять легче, и кое-что, что у tar не получится или получится с трудом, таким образом можно скопировать (атрибуты, файлы с "дырками"). Для tar можно и попроще: tar -C /old_fs -cf - . | tar -xpf - -C /new_fs - GNU tar более интеллектуальная штука, чем dump. - Подробное руководство есть в /usr/doc/HOWTO/mini/Hard-Disk-Upgrade 4.19. Зачем нужны странные права доступа на каталогах, например, sticky или setgid bit? Sticky bit (chmod +t) на каталоге означает, что файлы в этом каталоге могут стирать только их владельцы или суперпользователь. Обычно на /tmp и /var/tmp этот бит включен. Setgid бит (chmod +g) на каталоге означает, что файлы, созданные в этом каталоге, будут иметь ту же группу-владельца, что и сам этот каталог. Также, если в setgid-каталоге создаются другие каталоги, то они также будут иметь setgid-бит. По словам ДиДжея Бернстайна, "есть три метода задания групп-владельцев файлов: BSD-шный, бесполезный и SVR4-й. При BSD-шном методе файлы всегда получают ту же группу-владельца, что и каталог, в котором они были созданы. Это очень удобно с точки зрения администратора.(*) При бесполезном методе новые файлы принадлежат основной группе, на правах которой выполняется текущий процесс. Этот случай моментально приводит к настоящему кошмару. SVR4-й метод почти совпадает с бесполезным, но если на каталоге есть setgid-бит, то включается BSD-шный метод." Заметьте, что с помощью флага монтирования bsdgroups можно включить BSD-шный метод работы с группами-владельцами. Подробности -- mount(8). (*) Объяснение, почему удобно, можно найти в руководстве Red Hat - rhref/s1-sysadmin-usr-grps.htm, Users, Groups and User-Private Groups) 4.20. * Сообщения на экране или в логах: modprobe: Can't locate mod| ule <имя-модуля> Такое сообщение может появляться по нескольким причинам: - Такого модуля действительно нет. В этом случае нужно выяснить его назначение и причину, по которой система пытается его загрузить. Затем, в зависимости от результатов выяснения, либо прописать в modules.conf (про формат которого есть man-страница) такую строку: alias <имя-модуля> off либо собрать этот модуль из его исходных текстов или исходных текстов ядра Linux. - Такой модуль существует, но программа modprobe, вызываемая ядром, не может установить соответствие между именем модуля, которое передает ядро и реальным именем файла, содержащего этот модуль. В этом случае нужно либо обновить пакет modutils, либо прописать в /etc/modules.conf: alias <что-не-может-найти> <имя-файла-без-.o> (я буду признателен тому, кто укажет способ установить это соответствие, если оно не прописано внутри modprobe) 4.21. * Sendmail ругается: sh: <что-то> not available for sendmail programs Прочтите man smrsh или /usr/share/doc/sendmail/README.smrsh 5. Сетевое администрирование 5.1. Почему telnet не пускает пользователя root? Как зайти удаленно с правами root? telnet (а точнее, login) не пускает root потому, что root может заходить в систему только со специальных защищенных терминалов, перечисленных в /etc/securetty. Обычно там перечислены только виртуальные консоли tty1-ttyN. Другие места считаются небезопасными, потому что пароль, вводимый оттуда, может передаваться по сети открытым текстом (что и происходит в случае использования telnet), а значит его может узнать злоумышленник, "прослушивая" сеть и анализируя "чужие" пакеты. Ответов на второй вопрос несколько: - быстрый и неправильный способ - удалить файл /etc/securetty или прописать в нем псевдотерминалы /dev/ttyP*. Это опасно потому, что дает злоумышленнику возможность не только узнать пароль, но и воспользоваться им для удаленного захода на машину. - менее быстрый, но все равно неправильный способ - заходить на машину обычным пользователем, а затем использовать команду su или sudo. И в этом случае оба пароля передаются открытым текстом, со всеми возможными последствиями. - самый правильный способ - полностью отключить сервисы telnet, не-анонимный ftp, rsh, rlogin и заменить их на ssh, шифрующий все, что передается через сеть и поддерживающий аутенификацию не только через пароль, но и с использованием криптографии с открытым ключом. Клиент и сервер ssh для Unix можно взять на <http://www.openssh.com>, про клиенты для Windows написано в разделе "Прочее". 5.2. Надоело запускать ppp (slip) руками. Хочу чтобы сам звонил, когда надо. Медленно и печально идем на <http://diald.sourceforge.net>, сливаем diald, разворачиваем, читаем README, совершаем _минимальные_ телодвижения на предмет конфигурации и инсталляции, и получаем эмулятор выделенной линии. Как только требуется выйти во внешний мир, diald дозванивается до провайдера, устанавливает роутинг и можно работать. Внимание: учтите, что с ядрами 2.2.x нормально работает diald-1.99 и выше. 0.16, лежащий везде, в том числе и в некоторых дистрибутивах, предназначен только для 2.0. (почему-то эта информация пропущена в Changes) Да, еще... Рекомендации лучших линуксоводов: в файле /etc/resolv.conf надо размножить строчки nameserver xxx.xxx.xxx.xxx раза по три, чтобы он по таймауту не отваливался раньше, чем diald дозвонится. Полезно также удалить default route на eth0. А еще можно так: в diald.rc пишем ip-up "cp /etc/resolv.conf.connected /etc/resolv.conf" ip-down "cp /etc/resolv.conf.local /etc/resolv.conf", где в resolv.conf.connected написано: search yourdomain nameserver xxx.xxx.xxx.xxx (я предпочитаю 127.0.0.1) а в resolv.conf.local написано: domain yourdomain Хорошо настроить и использовать локальный DNS-cервер в режиме caching- only. Его можно поднимать и опускать через ip-up и ip-down как сказано чуть выше, или через /etc/ppp/ip-up.local и ip-down.local. Как его настроить: раньше вариант был только один - почитать книжку и настроить таки bind. Теперь есть более простой вариант: к редхату прилагаются готовые настройки для cache-only bind'а (в пакете caching-nameserver) или можно установить демон nscd, который умеет только кешировать DNS-запросы (а также запросы к базе пользователей и групп). А еще можно сходить посмотреть на <http://alexm.here.ru> 5.3. Есть ли такая пpогpама для Linux, чтобы в сети Netware обойтись без tcpip - чтобы был только ipx? Есть mars -- netware server для линукса (эмуляция нетваpевского сеpвеpа) ipx*, ncp*, nw* (из дистpибутива mars) - клиент. Посмотрите Caldera Open Linux ( <http://www.caldera.com>) - компания Caldera владеет исходными текстами Novell и переносит их на Linux. Netware for Linux - <http://www.calderasystems.com/support/docs/netware/>. Не забудьте про IPX-HOWTO: <http://linuxdoc.org/HOWTO/IPX-HOWTO.html> 5.4. Пpинтеpы расшаpены чеpез самбу, но после отпечатывания стpаницы (или задания) пpобpасывается N листов впустую. HP пpокpучивает один лист, а Epson два. Как лечить? PRINTCAP / Begin my_favourite_printer:\ lp=/dev/lp1:\ sd=/var/spool/lpd/my_favourite_printer:\ sh:lf=/dev/tty10:ff=: PRINTCAP / End 5.5. Как подружить Самбу и 1С ? (Zahar Kiselev, 2:5030/382) Вот что достаточно сделать чтобы работало: Взять вот этот патч. Взять ядро 2.0.38 с ftp.kernel.org - он к нему подходит без исправлений. Прочитать текст внутри самого патча на предмет команда echo в некие файлики в файловой системе /proc. Патч применить, командочки вписать куда-нибудь в стартовый скрипт. Version 8.04.2 - for linux-2.0.37 This patch (and it's updates are available from <http://www.linux.org.za/filehandle.patch.linux> and <ftp://ftp.is.co.za/linux/local/kernel/filehandle.patch.linux> The following patch allows you to increase the maximum number of files/network sockets openable to any number. The default kernel only allows 256 filehandles Если у кого-то руки чешутся использовать ядро 2.2 (а зачем?), то пойти на dejanews и рыться в архиве ру.линукс за прошедшее лето (1999) - тут пробегали несколько рецептов переделки лимита в этом ядре, причем один был весьма корректный, а другой, наиболее понятный для повторения, проходил 4 августа. Взять Самбу >=2.0.5a, важно, чтобы она понимала параметр в smb.conf "ole lock compatible", установить его в "no". Остальное настроить в соответствии с любой из многочисленных рекомендаций по установке Самбы, главное - не запрещать ей работать с блокировками(я знаю одного человека, который до этого додумался). Запустить и все будет работать. Чтобы несколько пользователей могли лезть в одну базу - поместить их в одну юниксовую группу и поставить права на файлы так, чтобы был доступ на запись для группы. Вобщем-то по-моему все. Остальные настройки Самбы влияют только на скорость, и то незначительно. Да, если кто-то решит собирать Самбу из исходников, например чтобы отучить ее от авторизации через PAM, то могут вылезти две вещи - в зависимости от версии GCC возможно придется выключить оптимизацию(изничтожить как минимум из двух мест флажок -O, на скорость работы 1С это не влияет - проверено), и проверить что написало configure в файле config.h - оно там любит почему-то некоторые системные типы (ino_t,pid_t,еще штук пять) переопределять по-своему - после этого у меня вылез интересный эффект - все файлы на самбовом диске были видны с длинной 4к :) Признаком этого явления могут служить предупреждения, выдаваемые при сборке относительно empty declarations. Закомментировать эти определения - и все собирается нормально. Если кто-нибудь все вышесказанное повторит и у него не заработает - можно спросить у меня что еще может влиять. Я на своей машине конфигурацию системы полностью руками ставил, причем давно, так что могут быть какие-то мелкие особенности. Например Самба при работе хочет создать файлики browse.dat, wins.dat - так вот надо поставить права так, чтобы она могла их читать в том числе и тогда, когда работает от имени виндового пользователя - иначе могут быть большие таймауты при выполнении команды net use в виндах, и может не работать столь любимое многими чайниками "сетевое окружение". 5.6. PPP сервер/клиент с поддержкой callback, соединение с NT/2000 сервером и прочие проблемы при настройке ppp Про клиент pppd + callback можно прочесть файл README.cbcp в дистрибутиве pppd. Про все остальное - читайте <http://www.nitek.ru/~igor/pppd/> или <http://nitek.east.ru/~igor/pppd/>. 5.7. Имеется сеть из PC + Linux, телефонная линия на Linux-e. Хотелось бы: с любого рабочего места отправить факс. Какой софт под Linux для этого существует в природе ? hylafax - есть все, что в подобных случаях может понадобиться и сказано, где взять "клиентов" под DOS, Windows, etc. НО! принимать по одной линии (тел) и факсы и фидо не получится. :( Можно использовать mgetty, но факс-сервер придется делать самому, как делать можно подглядеть в hylafax. :) 5.8. Как настроить PPTP на Linux ? <http://www.moretonbay.com/vpn/pptp.html> 5.9. * Как настроить SSL на smtp, pop3? Нужно найти (например, на freshmeat) программу stunnel. Она прописывается в конфиге inetd примерно так: spop3 stream tcp nowait root /usr/sbin/stunnel /usr/sbin/popa3d ssmtp stream tcp nowait root /usr/sbin/stunnel /usr/sbin/sendmail Victor Wagner предупреждает о подводном камне: Желательно в качестве argv[0] запускаемому демону указать что-то отличное от его имени файла. А то, если программа собрана с поддержкой tcpwrappers и используется hosts.allow/hosts.deny для разрешения доступа без ssl только из локалки, то при совпадении argv[0] не-ssl-ного и ssl-ного демона, и с SSL будут не пускать откуда нельзя. 5.10. Имеется сетка из машин под NT, Win95, и DOS, в ней же есть Linux с диалапным PPP к провайдеру. Как сделать так, чтобы все пользователи из локалки могли ходить по интернету? Нужно настроить маскарадинг. Предположим, что внутренняя локалка имеет адреса 192.168.0.0 (как и положено по RFC-1918). Тогда : #!/bin/sh /sbin/insmod ip_masq_autofw /sbin/insmod ip_masq_user /sbin/insmod ip_masq_cuseeme /sbin/insmod ip_masq_ftp /sbin/insmod ip_masq_irc /sbin/insmod ip_masq_mfw /sbin/insmod ip_masq_portfw /sbin/insmod ip_masq_quake /sbin/insmod ip_masq_raudio /sbin/insmod ip_masq_vdolive /sbin/ipchains -F /sbin/ipchains -P forward DENY /sbin/ipchains -A forward -j MASQ -s 192.168.0.0/16 -d 0.0.0.0/0 Если Linux имеет адрес 192.168.0.1, то этот ip должен быть определен на хостах внутренней сети как default gateway. Также полезно прочитать HOWTOs: Firewall <http://linuxdoc.org/HOWTO/Firewall-HOWTO.html> IPCHAINS <http://linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html> IP-Masquerade <http://linuxdoc.org/HOWTO/IP-Masquerade-HOWTO.html> Русская дока есть на <http://www.fima.net/masquerade.html> В 2.0 ядрах вместо ipchains используется ipfwadm, в 2.4 - netfilter, про который также есть HOWTO на <http://netfilter.kernlenotes.org> Если ничего не работает - проверьте, что находится в /proc/sys/net/ipv4/ip_forward : $ echo "1" > /proc/sys/net/ipv4/ip_forward (в Red Hat 6.2 и выше - не забудьте поправить /etc/sysctl.conf) Утилиты для графического управления firewall-ом : fBuilder <http://www.innertek.com/> Mason <http://users.dhp.com/~whisper/mason/> 5.11. Как настроить socks5 ? Cофт лежит на <http://www.socks.nec.com> Предположим, что у вас есть машина с двумя интерфейсами (PPP/Ethernet или Ethernet/Ethernet). На внутреннем Ethernet-e адрес : 192.168.0.1. Самый простой вариант - аутентификация клиентов локалки только по адресу. /etc/socks5.conf permit - - 192.168.0. - - - set SOCKS5_BINDINTFC 192.168.0.1:1080 set SOCKS5_NOIDENT ICQ 99/2000 работает. Подробнее 'man socks5', 'man socks5.conf', <http://www.socks.nec.com>. [там есть FAQ] 5.12. Как вырезать баннеры из веб-страниц? Простейший способ - занесение соответствующих хостов - поставщиков рекламы в /etc/hosts с фиктивными ip адресами. Более сложный, но и более гибкий - при помощи прокси-сервера Squid. Чаще всего для фильтрации используют ACL (Access Control List) типа "url_regex" (squid.conf, раздел ACCESS CONTROLS) типа: acl Reclama_Banners url_regex ^http://www1\.reklama\.ru/cgi-bin/banner/* http_access deny Reclama_Banners Или из файла : acl Banners url_regex "/etc/squid/banners" http_access deny Banners В /etc/squid/banners вписываешь своих врагов (в виде регулярных выражений), например: ^http://banners\.rambler\.ru/advert/.*\.gif ^http://kulichki.rambler.ru/reklama/banners/.*\.gif ^http://www.*\.yandex\.ru/cgi-bin/banner/* ^http://www1\.reklama\.ru/cgi-bin/banner/* ^http://www\.reklama\.ru/cgi-bin/banner/* ^http://www\.reklama\.ru/cgi-bin/href/* ^http://www\.100mb\.net/images/ban/banner.*\.gif ^http://www\.bizlink\.ru/cgi-bin/irads\.cgi.* ^http://www\.linkexchange\.ru/cgi-bin/rle\.cgi ^http://www\.linkexchange\.ru/users/.*/goto\.map ^http://www\.netcq\.com/banners/banner\.gif ^http://1000\.stars\.ru/cgi-bin/1000\.cgi Еще лучше с задачей фильтрации справляется специальная программа-фильтр squidguard <http://www.squidguard.org>, ставится в дополнение к squid. Более полный список баннеродержателей можно получить на <http://pail.pu.ru/> Можно сделать Transparent Proxy <http://www.lexa.ru/lexa/transparent- proxy.html> Можно поставить редиректор squirm <http://www.senet.com.au/squirm/>, его задача - подменять одни URLs другими. 6. X Window Идеология иксов и многие базовые вещи без привязки к Window Manager-ам и интегрированным средам хорошо описаны на <http://ep2-ts2.inp.nsk.su/lecture/> 6.1. Как заставить pаботать в иксах <cупер-новую карточку> ? Поискать название вашей карточки в <http://www.xfree86.org/FAQ/> или /usr/X11R6/lib/X11/doc/ Взять последнюю версию иксов, собранную производителем вашего дистрибутива, или, если производитель ее еще не собрал, то на <ftp://ftp.xfree86.org>. Стоит сперва ограничиться _только_сервером_ под эту самую карточку, и, как правило, лучше на этом и остановиться (вот если он работает, но ищет конфиги где-нибудь не там, где они у вас лежат - можно подумать о замене всего остального.) Намек: если вы не видите сервера с именем вашей карты - проверьте, не поддерживает ли ее сервер SVGA. Он не так прост, как можно подумать по названию. В XFree 4 остался единственный сервер, а поддержка конкретных карточек вынесена в подгружаемые модули. Поэтому (теоретически), если у вас четвертые иксы, то нужно найти только модуль для вашей карточки. 6.2. Как рассчитать Modeline под требуемую частоту развертки? По идее, если вы правильно указали максимальные возможности вашего монитора в утилите настройки иксов (xf86config, XF86Setup, Xconfigurator), то эта утилита должна сама прописать в файле конфигурации ModeLine, выжимающий максимум из вашего монитора. Если вы не хотите полагаться на ее интеллект, то можно посмотреть готовые стандартные Modeline через strings `which xf86setup` и найти подходящую. Если по каким-то причинам с этой ModeLine возникают проблемы, то воспользуйтесь советом от Alexei Dets <mailto:dets@china.formoza.ru>: Для начала находите Modeline с требуемым вам разрешением, но не устраивающей вас частотой, т.е. слишком низкой, например. Найти такую строчку можно, например, в XF86Config, сгенеренным инсталлятором дистрибутива. Проверяете работоспособность данного видеорежима на вашем мониторе. Если видеорежим устанавливается, пусть даже с некоторым смещением картинки от центра экрана, чуть-чуть другим размером и т.п. можно идти дальше. Иначе рекомендуется выбрать другую Modeline или подогнать эту при помощи xvidtune. Скажем, у нас имеется строчка: Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 Какая здесь сейчас установлена частота развертки? Ответ: 25175000/800/525=59,9 Гц. Т.е. необходимо первую цифру, умноженную на миллион, разделить на пятую и на последнюю. Соответственно, как получить требуемые нам, например, 120 Гц? Ответ: 800x525x120/1000000=50,4 Соответственно, результирующая строчка: Modeline "640x480" 50.4 640 664 760 800 480 491 493 525 Можете пробовать :-) Скорее всего, картинка будет неправильно центрирована и будет иметь неверный размер, но это легко лечится при помощи xvidtune. Полученная при помощи него строчка будет уже окончательной. Владельцы современных мониторов могут просто подстроить размеры и центровку из меню :-) Примечание: все данное "шаманство" подробно объяснено в /usr/X11R6/lib/X11/doc/VideoModes.doc или на русском в <http://knot.pu.ru/faq/xfaq.html>. Примечание 2 от Alex Kanavin: в XFree86 4.x произошли некоторые изменения. Во-первых, в X cервере теперь определен набор стандартных VESA режимов, из которых подбирается оптимальный, исходя из параметров конфигурационного файла HorizSync и VertRefresh. То есть очень возможно, что вы получите наилучший результат, вовсе не прописывая ModeLine в конфиге, но только если интересующая вас частота развертки - одна из 60, 70, 75, 85 Hz. Имена у этих режимов традиционные - "640x480" и т.д., вплоть до "1920x1444" :-) Во-вторых, в будущем X сервер сможет получать информацию о возможностях монитора непосредственно от него самого через VESA DDC. Для некоторых чипсетов она печатается при загрузке сервера, но пока не используется. Неясно также, как можно будет выбирать из режимов с одинаковым разрешением, не полагаясь на интеллект сервера. 6.3. Как переключать глубину цвета, не выходя из иксов? При работающем X сервере уже не переключиться, но можно запустить рядышком еще один - если это XFree, а не какой-нибудь коммерческий сервер (через startx -- :1 -bpp 8 или добавив аналогичную строку в /etc/X11/xdm/Xserver, если используется xdm). В XFree 4 глубину цвета можно переключать на лету через DGA2, но подробности пока неизвестны. 6.4. * Разница между иксовыми сервером и клиентом (Alec Voropay <mailto:a.voropay@globalone.ru>, Alex Kanavin, Alexander Pevzner) В системе X Window понятия "клиент" и "сервер" кажутся перепутанными. В действительности, никакого противоречия тут нет. Весь вопрос лишь в том, что такое "cервер" ? Возмем например print- server или file-server. Это какое-то устройство для коллективного использования "ресурса". Например, единственный print-server на организацию. Так вот когда-то давно (лет 30 назад ;) комплект из цветного дисплея и памяти на 256К был страшно дорогой игрушкой :-) и обслуживал кучу программ. Это и был display-server или, в комплекте с мышью и клавиатурой, X-server. Таким образом, X-server - это программа для управления Video-подсистемой, мышью и клавиатурой и выполняющая команды типа "нарисовать красную точку" или "вывести букву А фонтом Arial". Существует куча X-Server-ов : cвободные XFree86, коммерческие AcceleratedX, под MS Windows : eXceed, X-Win, под VAX VMS и даже в виде отдельных железок c дисплеем : NCD, Tatung (их еще называют X- Terminal). Таким образом, пользовательские программы, например Netscape - это "X-клиенты", которые обращаются к "X-серверу" для отображения и ввода. Связь между X-сервером и X-клиентом может быть по TCP/IP, по Unix- Socket, по IPX или даже по COM-порту. Поддержка конкретных способов связи зависит от реализации серверов и клиентских библиотек, например XFree знает только про первые два способа и еще DECNet. Всякая X-программа ("X-клиент") сначала должна уcтановить соединение с X-сервером. Его местонахождение X-клиент узнает через переменную окружения DISPLAY= или ключ в командной строке. Один X-сервер может обслуживать множество программ, работающих на разных хостах. Как наиболее простой случай, все они, и X-сервер и Х-программы работают на одном и том же компьютере. Обычные, "консольные" (алфавитно-цифровые) программы тоже можно запустить под X, через эмулятор терминала (например xterm, rxvt, eterm e.t.c.). Это специальная X-программа, которая с одной стороны работает как эмулятор терминала:), отрисовывает символы и отрабатывает ESC-последовательности, а с другой стороны представляется как обычный терминальный порт (через псевдотерминалы ptyXX). Cледует заметить, что с точки зрения системы нет разницы между иксовыми и обычными программами. И те и другие используют один и тот же набор системных вызовов. Разница же упрятана в библиотеку XLib, с которой слинкованы иксовые программы, - именно она устанавливает связь с X сервером, посылает ему команды, принимает ответы итд. Кроме того, некоторые программы (emacs, например) могут работать как через X сервер, так и без него (через обычный терминал). 6.5. Возможно ли одновpеменно pаботать в full screen и в X Window и пеpеключаться между ними? Если да, то как? Да, Ctrl-Alt-F# (из иксов в текстовый режим) или Alt-F# (обратно, только нужно найти первую свободную от getty консоль, обычно седьмую). 6.6. Как установить глубину цвета по умолчанию? man XF86Config на предмет DefaultColorDepth 6.7. * Как сделать так, чтобы иксы автоматически стартовали при загрузке компьютера? (и регистрация пользователей осуществлялась бы уже в них?) Наоборот, как отключить такую загрузку и получить обычный текстовый режим? Как входить таким же (графическим) образом в удаленные системы? Нужно запустить (запретить запуск) Display Manager, например xdm (поставляется с cамими иксами), gdm (из GNOME), kdm (из KDE). Он может запускаться из rc скриптов или как сервис SysV, но чаще всего его прописывают в /etc/inittab: x:5:respawn:/etc/X11/xdm -nodaemon Поэтому там же нужно поменять runlevel по умолчанию: id:3:initdefault: В Red Hat display manager грузится на пятом runlevel, а обычный "текстовый" runlevel - 3, в других дистрибутивах это может быть не так. Изучите содержимое /etc/inittab, прочтите man inittab и действуйте по обстоятельствам. Display manager можно использовать не только для запуска и управления
Секция 3 из 4 - Предыдущая - Следующая
Вернуться в раздел "Семейство UNIX" - Обсудить эту статью на Форуме |
Главная - Поиск по сайту - О проекте - Форум - Обратная связь |