4 Настройка приложений

next up previous contents
следующий: 5 Управление пакетами выше: Русский Debian 3.0 FAQ предыдущий: 3 Русификация   Оглавление

Вопросы

4 Настройка приложений

4.1 Когда работаю в mc (Midnight Commander) в эмуляторе терминала xterm в X Window, то возникают проблемы с клавишами. Понять не могу, что за ерунда. Как это вылечить?

Самое первое, что надлежит сделать - это настроить локаль и Xkb. Без этого настройка клавиш mc в xterm представляется сущим мучением.

После этих действий, у вас в mc заработают все клавиши. Однако это далеко не все. Кроме этого, в mc у вас не работают сочетания клавиш Alt+клавиша. Так что необходим шаг номер два:

Правите файл /usr/X11R6/lib/X11/app-defaults/XTerm. В конец этого файла нужно добавить кусок:

*VT100*translations: #override \
 aReturn: string(0x1b) string(0x0d) \n\
 aTab: string(0x1b) string(0x09) \n\
 aspace: string(0x1b) string(" ") \n\
 aa: string(0x1b) string("a") \n\
 ab: string(0x1b) string("b") \n\
 ac: string(0x1b) string("c") \n\
 ad: string(0x1b) string("d") \n\
 ae: string(0x1b) string("e") \n\
 af: string(0x1b) string("f") \n\
 ag: string(0x1b) string("g") \n\
 ah: string(0x1b) string("h") \n\
 ai: string(0x1b) string("i") \n\
 aj: string(0x1b) string("j") \n\
 ak: string(0x1b) string("k") \n\
 al: string(0x1b) string("l") \n\
 am: string(0x1b) string("m") \n\
 an: string(0x1b) string("n") \n\
 ao: string(0x1b) string("o") \n\
 ap: string(0x1b) string("p") \n\
 aq: string(0x1b) string("q") \n\
 ar: string(0x1b) string("r") \n\
 as: string(0x1b) string("s") \n\
 at: string(0x1b) string("t") \n\
 au: string(0x1b) string("u") \n\
 av: string(0x1b) string("v") \n\
 aw: string(0x1b) string("w") \n\
 ax: string(0x1b) string("x") \n\
 ay: string(0x1b) string("y") \n\
 az: string(0x1b) string("z")

4.2 У меня на первом винте стоит Linux но есть и второй винт, на котором стоит DOS, как мне добится чтобы lilo грузил мне DOS?

Если вы хотите грузить операционную систему с винта отличного от Master на первом IDE порту, то вам необходимо определить так называемый chain загрузчик для этого винта. В lilo версии 20 и выше этот загрузчик встроен прямо в код lilo. Вот пример файла /etc/lilo.conf, в котором прописана загрузка Linux с Master винта, а DOS со Slave.

# устройство откуда берется LILO
boot=/dev/hda
# раздел, где находится главная(корневая) файловай система
root=/dev/hda1 
# спецификация compact работает не везде compact 
# определяет нормальный текстовый режим 80x25 
# можно задать слово ask, чтобы при загрузке спрашивало 
# номер видеорежима. Можно просто подставить цифру 
# видеорежима
vga=normal 
# при prompt выдается приглашение boot: и ожидается 
# ввод метки для выбора операционной системы на 
# загрузку или Enter для загрузки первой по порядку. 
# Можно определить delay , где n десятые 
# секунды, которые LILO будет ждать, после чего произведет 
# загрузку первой по порядку операционной системы. 
# Во время ожидания можно нажать Ctrl и перейти в режим 
# prompt
prompt 
# ------------- секция загрузки Linux ------------- 
# образ ядра Linux
image=/vmlinuz 
# метка, вводимая на приглашение boot:
label=Linux read-only 
# -------------- секция загрузки DOS -------------- 
# DOS раздел
other=/dev/hdb1 
# инициализация chain загрузчик
map-drive = 0x80
       to = 0x81
map-drive = 0x81
       to = 0x80 
# метка, вводимая на приглашение boot:
label=dos

4.3 Говорят, что якобы можно грузить Linux напрямую из DOS'а не пользуясь LILO. Это действительно так? Если да, то как это сделать?

Действительно вполне можно загружать Linux из DOS'а, хотя такой метод и не пользуется популярностью, так как из-за ненадежности файловой системы FAT у DOS'а и подверженности ее влиянию вирусов вы можете испортить файлы, необходимые для загрузки.

Для загрузки из DOS'а вам понадобятся только два файла:

  1. программа loadlin.exe из дистрибутива.
  2. ядро собранное для вашей машины (подойдет и из дистрибутива, если в ядре есть поддержка аппаратуры, которая представлена на вашей машине).
Заметим, что ядро должно быть обработано командой rdev(8). Например, если мы имеем образ ядра в файле vmlinuz в текущем каталоге, а ваша корневая файловая система размещена на устройстве /dev/hda1 необходимо выполнить:

rdev vmlinuz /dev/hda1

чтобы ядро после загрузки знало, где ваша корневая (главная) файловая система (/), затем

rdev -R vmlinuz 1

что установит флаг первоначального монтирования файловой системы как read-only, что необходимо программе fsck для проверки файловой системы, затем можно (но не обязательно)

rdev -v vmlinuz

для установки текстового видеорежима, отличного от стандартного 80x25, где n - это номер режима.

После выполнения данных действий положите файл vmlinuz вместе с loadlin.exe куда-нибудь на диск DOS. Для загрузки, в DOS'е достаточно переместится в тот каталог, где находятся эти два файла и ввести команду:

loadlin vmlinuz

Однако можно обойтись и без обработки ядра командой rdev. Можно просто указать loadlin, в каком месте находится главная файловая система. Например:

loadlin vmlinuz root=/dev/hda1

4.4 У меня стоят три менеждера окон к X Window. Куда мне прописать чтобы по умолчанию командой startx грузился fvwm95?

Вам нужно воспользоваться механизмом альтернатив. Введите команду:

update-alternatives -display x-window-manager

и вы получите список установленных в системе менеджеров окон. Введите команду:

update-alternatives -config x-window-manager

и вам выдаст диалог, в котором вы сможете выбрать нужный менеджер окон, который будет и запускаться при старте X Window.

4.5 Как пользователю выбрать менеджер окон?

Отредактируйте файл ~/.xsession и укажите нужный вам менеджер окон, например:

# Мне нравится blackbox
/usr/local/bin/blackbox

Также вы можете перечислить в этом файле программы, которые должны всегда запускаться при работе с X. Учтите, что программы должны запускаться в фоновом режиме, а менеджер окон - самым последним, не в фоновом режиме. Пример:

xterm &
xclock &
wmaker

Если вы используете менеджер дисплеев (например, xdm, kdm), то они позволяют выбрать оконный менеджер своими средствами. Если же вы хотите, чтобы исполнялся именно ваш ~/.xsession, указывайте тип сессии Default

4.6 Как соединятся с провайдером для выхода в Internet через модем, по протоколу PPP?

Для начала, если ядро у вас собрано без поддержки протоколов PPP и SLIP вам нужно собрать его заново с поддержкой этих протоколов. Как собирать ядро описано в этом же FAQ. См. список вопросов.

Еще недавно я бы сказал, что готовой программы нет, но теперь готовая программа есть прямо в дистрибутиве Debian . Она называется pppconfig(8). Все что вам нужно сделать - это честно и правдиво ответить на все вопросы, которые задаст вам эта программа.

Соединение осуществляется командой pon, а завершение соединения с провайдером осуществляется вызовом команды poff, которая убивает демон, отвечающий за связь и заставляет его положить ``трубку'' модема.

Как вы уже поняли - это решение далеко не самое красивое. Например, можно воспользоваться diald - о чем ниже. Однако это очень простое решение, Установление соединения при помощи демона diald

Прежде всего хочу заметить, что данные здесь конфигурационные файлы могут для вас не подойти, хотя у меня они работают. Все описанное ниже дает скорее понятие о том как все это настраивать, чем конкретное готовое решение. В любом случае очень рекомендую тщательно изучить страницы руководства man по pppd(8) и diald, а также PPP-HOWTO.

Пакет diald входит в состав дистрибутива Debian , да и по моему в другие дистрибутивы тоже. Ну а если у вас все-таки его не оказалось, вы всегда можете выкачать его из Internet.

После того как вы установите пакет, например, командой

dpkg -i diald-0.16.4-1.deb

или

apt-get install diald

В каталоге /etc/diald у вас появятся его конфигурационные файлы. Вам понадбится править только два из них. В файле с именем diald.options хранится конфигурация diald, а в файле с именем connect находится сценарий, который устанавливает модемное соединение, набирая номер и выполняя функции идентификации пользователя.

Начнем с файла diald.options. Ниже дан в качестве примера мой:

mode ppp
connect "chat -f /etc/ppp/pppscript"
device /dev/ttyS1
speed 19200
modem
lock
crtscts
local 192.168.0.1
remote 192.168.0.2
netmask 255.255.255.0
impulse 120,60
dynamic
defaultroute
pppd-options
noipdefault
name "victor_v"
asyncmap 0
include /etc/diald/standard.filter

Данная конфигурация расчитана на использование diald с протоколом PPP с аутентификацией пользователя по протоколу PAP. Адреса local и remote даны ``от балды''. Так как далее используется ключ dynamic, а в параметре ppp-options задано значение noipdefault, то при установлении связи адреса удаленной машины-сервера и адреса вашей машины будут изменены на те, которые сообщит удаленная машина.

Параметр device установлен в значение /dev/ttyS1, что соотвествует второму последовательному порту COM2. Вы же можете изменить это значение, если ваш модем использует другой порт. (Для COM1 будет /dev/ttyS0 и т.п.). Параметр speed установлен в значение 19200 и означает портовую скорость. Скорость вы также должны задать ориентируясь на модем, которым вы пользуетесь. Возможные значения: 2400, 9600, 19200, 34800, 57600 и т.д.

Параметр impulse установлен в значение 120,60. Это говорит о том, что diald будет проверять простаивает ли линия через каждые 2 минуты (120 сек) и будет разрывать соединение (класть ``трубку'' модема), если в течении 1 минуты (60 сек) линия будет продолжать простаивать. Простой линии выражается в отсутствии приема или передачи пакетов через модем. Таким образом вы экономите деньги на повременной оплате за телефон и за Internet. Излишне говорить, что вы можете настроить эти параметры под себя.

Особо нужно отметить параметр connect. В данном примере он установлен в значение chat -f /etc/ppp/pppscript. Ниже приводится содержимое файла pppscript

ABORT ERROR
ABORT BUSY
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
REPORT "CARRIER"
REPORT "CONNECT"
TIMEOUT 90 
"" AT&F1 "OK" ATDT900020 "CONNECT"

Мне было удобнее пользоваться таким файлом, чем поставляемым с пакетом diald файлом connect. Это потому, что мой провайдер использует аутентификацию пользователей по протоколу PAP. Если же сервер у вашего провайдера настроен на ввод имени и пароля по приглашениям Login: и Password:, то вам лучше воспользоваться файлом connect. Тогда строчка с параметром connect в файле diald.options будет выглядеть так:

connect "/etc/diald/connect"

Файл connect хорошо задокументирован внутри и проблем с его использованием быть не должно. Вам нужно будет только поменять параметры MODEM_INIT на строку инициализации вашего модема, PHONE_NUMBER на номер телефона вашего провайдера, USER_CHAT_SEQ на строку-приглашение, которую вы получаете для ввода имени, USER_NAME на ваше регистрационное имя у провайдера, PASSWD_CHAT_SEQ на строку-приглашение, которую вы получаете для ввода пароля, PASSWORD на ваш пароль у провайдера и наконец PROMPT на строку, которую вы получаете в случае успешного ввода имени и пароля.

Возможно вам придется поэкспериментировать пока у вас все получится. Для этой цели могу рекомендовать терминальную программу minicom, где вы всегда сможете установить соединение в ручную и посмотреть все строки приглашения.

Следующий этап - это файл /etc/ppp/options. Ниже дан в качестве примера мой:

lock 
defaultroute 
crtscts 
noipdefault 
modem 
asyncmap 0 
debug 
19200 
/dev/ttyS1 
name "victor_v"

Здесь вроде все должно быть понятно, тем более, что часть параметров перекрывается конфигурационным файлом для diald. Замечу только, что строка name ``victor_v'' нужна только в случае использования протокола PAP.

Для тех, у кого провайдер использует как и у меня аутентификацию пользователей по протоколу PAP будет нужен еще файл /etc/ppp/pap-secrets. Вот пример моего:

# Secrets for authentication using PAP...
# client      server       secret        IP addresses
"victor_v"      *        "password"

Вместо password должен стоять ваш пароль, а вместо victor_v ваше регистрационное имя у провайдера. Кроме того, оно же прописывается как вы можете заметить и в файл /etc/ppp/options и в файл /etc/diald/diald.options. Естественно, что для тех у кого провайдер не поддерживает PAP, эти параметры в данных файлах не нужны.

Далее вам необходимо настроить свою систему для использования DNS провайдера. У вас должен быть адрес DNS-сервера провайдера. Его нужно поместить в файл /etc/resolv.conf. Вот пример моего файла:

nameserver 194.84.131.242
search permonline.ru

где параметр nameserver задает адрес DNS-сервера провайдера, а параметр search имя домена провайдера.

Ну вот теперь кажется все. После окончания всех настроек перезапустите diald командой

/etc/init.d/diald restart

Теперь, когда вы в Netscape или в Lynx или в mc обратитесь на адрес, который неизвестен вашей системе, diald попытается установить соединение с вашим провайдером и если это получится, то вы попадете туда куда обратились.

Если у вас не получилось. Что же мне жаль. Причин может быть множество. Здесь я могу только посоветовать вам подробно изучить документацию.


next up previous contents
следующий: 5 Управление пакетами выше: Русский Debian 3.0 FAQ предыдущий: 3 Русификация   Оглавление
root 2003-01-05