4.12. В чем pазница между /dev/cua* и /dev/ttyS*?
Hе надо пользовать 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. Hадо заставить 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) так долго думает при старте?
Hадо заглянyть в директорию /var/log и посмотреть, нет ли в логах
сообщений от этой программы. Для sendmail - 99% воплей пpо долгое
думанье объясняется попыткой pезолвинга адpесов локальных интеpфейсов.
Hадо эти адpеса занести в /etc/hosts. Альтеpнативный ваpиант - O
DontProbeInterfaces=True в /etc/sendmail.cf.
4.17. А чего бы такого крутого предпринять по части безопасности
системы?
Для начала прочтите /usr/doc/HOWTO/Security-HOWTO.
Hа <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 module
<имя-модуля>
Такое сообщение может появляться по нескольким причинам:
╥ Такого модуля действительно нет. В этом случае нужно выяснить его
назначение и причину, по которой система пытается его загрузить.
Затем, в зависимости от результатов выяснения, либо прописать в
modules.conf (про формат которого есть man-страница) такую строку:
alias <имя-модуля> off
либо собрать этот модуль из его исходных текстов или исходных текстов
ядра Linux.
╥ Такой модуль существует, но программа modprobe, вызываемая ядром,
не может установить соответствие между именем модуля, которое
передает ядро и реальным именем файла, содержащего этот модуль. В
этом случае нужно либо обновить пакет modutils, либо прописать в
/etc/modules.conf:
alias <что-не-может-найти> <имя-файла-без-.o>
(я буду признателен тому, кто укажет способ установить это
соответствие, если оно не прописано внутри modprobe)
4.21. Sendmail ругается: sh: <что-то> not available for sendmail pro-
grams
Прочтите 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. Hадоело запускать 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)
Вот что достаточно сделать чтобы работало:
Взять с ftp.kernel.org ядро, которое умеет "на ходу" менять лимиты на
количество открытых файлов. Hасколько я знаю, начиная с 2.2.10 это
работает, как делается - сказано в том числе и в этом faq.
1С отличается совершенно неприличными аппетитами по части количества
открываемых файлов - надо ставить из расчета где-то 800 на каждого
виндового пользователя, потому что есть особо "продвинутые", которые
две-три копии 1С у себя на компе запускают.
Взять Самбу например 2.0.5a - это последняя, которая работала у меня.
Важно, чтобы она понимала параметр в smb.conf "ole locking
compatibility"(надеюсь теперь не наврал в написании), установить его в
"no". Внимание! До меня доходили сведения, что в какой-то даже более
новой чем 2.0.5а Самбе этого параметра нет.
Остальное настроить в соответствии с любой из многочисленных
рекомендаций по установке Самбы, главное - не запрещать ей работать с
блокировками(я знаю одного человека, который до этого додумался).
Запускать надо не через inetd, а как отдельный демон, вернее у Самбы
их два - smbd и nmbd.
Чтобы несколько пользователей могли лезть в одну базу - поместить их в
одну юниксовую группу и поставить права на файлы так, чтобы был доступ
на запись для группы.
Есть еще одна мелкая особенность - Самба при работе хочет создать
файлики browse.dat, wins.dat - так вот надо поставить права так,
чтобы она могла их читать в том числе и тогда, когда работает от
имени виндового пользователя - иначе могут быть большие таймауты при
выполнении команды net use в виндах, и может не работать столь любимое
многими чайниками "сетевое окружение".
Если после очередного падения 1С винды говорят что база заблокирована
- то можно подкрутить в конфиге Самбы параметр, отвечающий за
принудительное снятие "зависших" блокировок(см man). Поставить
например три минуты, меньше не стоит, тогда через три минуты в базу
можно будет войти. Рекомендуется также поставить keepalive-таймаут,
чтобы соединения не висели бесконечно. Желательно при помощи файрволла
закрыть для доступа "снаружи" те два порта, через которые Самба
работает. Причем не только на Линукс, а на всю сеть.
А теперь - совет тем, кто хочет избавиться от проблем, вызванных
наличием 1С у него в сети. Hадо запускать 1С на NT-сервере, причем
желательно sql-версию, она менее критична к сбоям (не повреждаются
данные), а доступ осуществлять с линуксовых машин через Citrix Meta
Frame. При этом ситуация меняется "до наоборот" - вместо одного
линукса и кучи виндов вокруг - получаются _одни_ винды(и те NT), а
вокруг куча Линукс-терминалов, причем можно их бездисковыми сделать,
загружая с линукс-сервера.
Если не хотите линуксы (а напрасно) - citrix-клиент есть и под винды.
Для сомневающихся - работа 1С в терминальном режиме проверена в боевой
обстановке. Результат положительный. Доступ я пробовал осуществлять и
с Линукса и с win95.
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. HО! принимать по
одной линии (тел) и факсы и фидо не получится. :( Можно использовать
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>
Transparent Proxy MiniHOWTO:
<http://www.tldp.org/HOWTO/mini/TransparentProxy.html>
Можно поставить редиректор squirm <http://www.senet.com.au/squirm/>,
его задача - подменять одни URLs другими.
5.13. * Как сделать авторизацию пользователей Squid через учетные
записи Windows?
<http://www.artmagic.ru/labs/sqlandwin.shtml>
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>. Стоит сперва ограничиться _только_сервером_
под эту самую карточку, и, как правило, лучше на этом и остановиться
(вот если он работает, но ищет конфиги где-нибудь не там, где они у
вас лежат - можно подумать о замене всего остального.) Hамек: если вы
не видите сервера с именем вашей карты - проверьте, не поддерживает ли
ее сервер SVGA. Он не так прост, как можно подумать по названию. В
XFree 4 остался единственный сервер, а поддержка конкретных карточек
вынесена в подгружаемые модули. Поэтому (теоретически), если у вас
четвертые иксы, то нужно найти только модуль для вашей карточки.
6.2. Как рассчитать Modeline под требуемую частоту развертки?
По идее, если вы правильно указали максимальные возможности вашего
монитора в утилите настройки иксов (xf86config, XF86Setup,
Xconfigurator), то эта утилита должна сама прописать в файле
конфигурации ModeLine, выжимающий максимум из вашего монитора. Если вы
не хотите полагаться на ее интеллект, то можно посмотреть готовые
стандартные Modeline через strings `which xf86setup` и найти
подходящую. Если по каким-то причинам с этой ModeLine возникают
проблемы, то воспользуйтесь советом от Alexei Dets
<mailto:dets@china.formoza.ru>:
Для начала находите Modeline с требуемым вам разрешением, но не
устраивающей вас частотой, т.е. слишком низкой, например. Hайти такую
строчку можно, например, в 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:alec@sensi.org>, 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 можно использовать не только для запуска и управления
локальными X серверами, но и для входа в систему и работы с удаленных
икс-серверов через сеть. Для общения с xdm X сервер должен
поддерживать протокол xdmcp. Серверы XFree в этом случае нужно
запускать с такими ключами:
╥ X -query host - простой запрос на host по xdmcp (иначе говоря, X
сервер выясняет, готов ли xdm на host-е вывести окошко с полями для
ввода логина и пароля и если готов, то просит его сделать именно
это).
╥ X -indirect host - "непрямой" запрос на host (то есть, X сервер
просит xdm на host-е сделать запрос на все известные ему хосты, где
установлен xdm. xdm в этом случае может либо просто опросить их (в
частности, себя) и больше ничего не делать, поскольку X сервер сам
сформирует список ответивших ему хостов и выдаст его пользователю,
либо запустить т.н. chooser, который сформирует этот список и
выдаст его на экран X сервера, подсоединившись к нему, как обычный
X клиент. В случае использования серверов XFree годится только
второй вариант и конфигурировать xdm надо именно так. Затем, так
или иначе, пользователь выбирает интересующий его хост и туда
делается простой запрос).
╥ X -broadcast - широковещательный xdmcp запрос в сеть, с первым
ответившим xdm устанавливается такая же сессия, как и в случае
простого запроса. В других реализациях (не XFree) X сервер может,
как и в предыдущем случае, выдать пользователю список ответивших
хостов.
Подробности в XDM-Xterm mini-HOWTO, man xdm, а также по следующим
URL: <http://ep2-ts2.inp.nsk.su/lecture/> и
<http://www.iae.lt/visaginas/home/kazanov/koi8/Articles/X-
Terminals.htm>.
6.8. Какой Window Manager выбрать?
<http://xwinman.org>
<http://www.themes.org>
6.9. Где найти X Server для Windows ?
╥ Единственный свободный (и, естественно, бесплатный) сервер - Cygwin
XFree <http://sourceware.cygnus.com/cygwin/xfree/>. С августа
2000 он входит в состав основного дистрибутива XFree. Клиентская
часть (библиотека XLib) тоже портирована под Cygwin. Все остальные
в лучшем случае дают триал версии с ограниченным временем работы.
╥ EXCEED for Windows -
<http://www.hummingbird.com/products/nc/exceed/>
╥ PC-Xware - <http://www.ncd.com/products/software/pcxware/>
╥ MI/X MicroImage X Server for Windows - <http://www.microimages.com>
╥ X-Win32 - <http://www.starnet.com>
╥ WRQ Reflection X -
<http://www.wrq.com/products/reflection/pc_unix/rx/>
╥ NetManage X-ViewNow (бывший X-OnNet от FTP Software) -
<http://www.netmanage.com/products/pctohost/vn_x/index.asp>
╥ WinaXe от компании LabF - <http://labf.com/index.html>
6.10. Как прикрутить TrueType шрифты к иксам ?
Hаиболее оптимальным решением является установка патченого XFree86 со
встроенной поддержкой TrueType шрифтов либо установка XFree 4, где
такая поддержка имеется "из коробки". В последнее время большинство
дистрибутивов поставляется именно с таким вариантом XFree. Вы можете и
сами собрать для себе патченные X-сервер и фонт-сервер, для этого вам
необходим набор патчей xfsft (
<http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/>). Единственным
отличием TrueType шрифтов от остальных в данном случае является то,
что файл fonts.dir генерится при помощи программы ttmkfdir, а не
mkfontdir. Более подробная информация - на
<http://www.xfree86.org/4.0.1/fonts.html>
В случае, если у вас нет возможности или желания доставать новый
X-сервер или исходники XFree, то неплохим вариантом является
использование сервера шрифтов xfstt. Подробная документация по его
использованию есть в его исходниках или, на русском, по адресу
<http://visaginas.is.lt/~evgeny/koi8/Articles/xfstt_1.html>.
Hедостатком данного подхода является отсутствие поддержки fonts.alias.
Оба варианта отлично работают как с обычными, так и с юникодными
TrueType шрифтами.
6.11. А есть ли в иксах поддержка font antialiasing?
Есть. Cмотрите сюда: <http://www.xfree86.org/~keithp/render/>.
6.12. А почему в иксах так медленно проигрываются мпеги? Подскажите
не тормозящую проигрывалку mpeg/videoCD/etc, умеющую fullscreen, etc
Попробуйте запустить top во время проигрывания - увидите, что очень
много ресурсов отъедают сами иксы, то есть программно выполняется
гораздо больше операций чем в Windows. Дело в том, что до недавнего
времени в иксах отсутствовала поддержка совершенно необходимых для
качественного воспроизведения видео вещей - прямого доступа к
видеопамяти, аппаратного масштабирования, сглаживания и преобразования
цветового простарнства. В XFree 4 появились расширения, обеспечивающие
эти функции - DGA2 и Xv. Поэтому для качественного воспроизведения
мпегов необходимы следующие условия:
╥ XFree86 4.0 или более новая версия
╥ Видеокарточка, драйвер которой поддерживает Xv и DGA2.
╥ Проигрыватель и используемая им видеобиблиотека с поддержкой
Xv/DGA2. Последние версии SDL, smpeg, mplayer, xine, avifile эти
расширения поддерживают. Попробуйте эти продукты, выберите то, что
вас устраивает в набольшей степени.
(данный ответ не претендует на истину в последней инстанции,
пожалуйста уточните его, если Вы в большей степени в курсе дела)
7. Прочее
7.1. Как прочесть, создать и распечатать документы Microsoft Word?
Прочесть документы MS Word можно с помощью
<http://wvware.sourceforge.net/>
или
<http://www.ice.ru/~vitus/catdoc/>
word2x про не английские языки ничего не знает.
Библиотека wvware используется текстовым процессором AbiWord для
импорта файлов, экпортировать их он пока не умеет, но зато AbiWord
корректно импортирует и экспортирует русские файлы в формате rtf.
Печатать по-русски он тоже умеет. Подробная информация есть по адресу
<http://www.hippo.ru/~hvv/abiword/>
Другой вариант - создавать документы в формате LaTeX, а затем
конвертировать в rtf при помощи latex2rtf <ftp://tug.ctan.org/tex-
archive/support/latex2rtf/> c учетом уграничений, описанных в его
документации.
(nb: добавить про sgml)
7.2. Чем читать, писать и печатать русские файлы Microsoft Excel?
Возьмите gnumeric версии 0.65 или более поздней.
<http://www.gnome.org/projects/gnumeric/>
7.3. То же самое, но для Powerpoint?
Насколько я знаю, фильтры для Powerpoint имеются только в Open Office.
C русским они вряд ли дружат, но прочесть презентацию на английском
позволят. Вот ссылки: <http://www.openoffice.org/MSFilters.html>,
<http://graphics.openoffice.org/>.
7.4. Как отключить linux single в lilo ?
man lilo.conf на предмет password и restricted.
7.5. <Шибко-умная-программа> затерла мне lilo, cтоявший в mbr. Как
мне его восстановить?
Берете ближайшее ядро и загружаете его с параметром
root=устройство-где-у-вас-корневой-раздел. Входите в систему как root
и выдаете команду lilo.
7.6. Как выбрать планшетный сканер для работы под Linux/как его
настроить ?
(часть ответа написал Victor Wagner)
Драйвера для сканеров находятся на <http://www.mostang.com/sane>.
Прочтите список поддерживаемых моделей. Лучше всего поддерживаются
сканеры со scsi-интерфейсом, с usb пока ситуация не ясна. Следует
учесть, что контроллер, который идет в комплекте со сканером скорее
всего под Linux-ом не пойдет, поэтому придется купить нормальный SCSI
контроллер (лучше PCI). Дешевые scanner-only ncr-ы или aha 1502 стоят
в Москве порядка $10-$15. Эту цену придется добавить к стоимости
сканера.
Сканирование изображений: в комплекте sane идет программка xscanimage,
которая прикручивается к gimp-у как плагин.
7.7. Какой есть софт для OCR (оптического распознавания символов)?
OCR программ для Linux, понимающих кириллицу, не существует. Можно
запускать программы для Windows в виртуальной машине или эмуляторе
wine (в нем имеется поддержка работы с SCSI, ориентированная как раз
на сканеры. Инструкция находится в documentation/aspi). OCR для
латиницы, пригодных для работы, пока по-видимому тоже нет, с
положением вещей можно ознакомиться, набрав ocr на
<http://www.freshmeat.net>.
7.8. Поддержка пленочных сканеров
<http://www.hamrick.com/vsm.html> - shareware, но альтернативы нет.
7.9. Как мне заставить работать WinModem ?
(Совместный ответ Alexander Pevzner и Alex Korchmar)
1. Раздобудьте спецификацию V42 и V34. Это всего $80, afair. ("синяя"
книжка) А теперь попробуйте по этой спецификации написать
что-нибудь работающее.
2. Что, не получилось? Тогда выбросьте свою железяку в ведро и ставьте
нормальный модем.
Если вам это удастся (вдруг ;) - имейте в виду, вы собираетесь
выкинуть в free source то, за что многие производители не-вынь модемов
платят мегабаксы. Я очень сильно подозреваю, что на свете существует
ровно одна хоть за дикие деньги продающаяся реализация v.42/42bis и
ровно четыре не продающихся ни за какие деньги реализации v.34.
(авторы драйверов под вынь, скорее всего, получают только .obj без
права лазить внутрь, так что не думайте, что они писали код с нуля или
хотя бы имели к нему доступ - это противоречит самой идее "дешевых"
модемов)
Обращайтесь на <http://www.linmodems.org> за более подробной
информацией.
В последнее время не