|
Linux FAQ #2
6. Konsola i klawiatura
6.1 Jak zrobić, żeby mieć
domyślnie włączony NumLock?
Użyj programu setleds. Na przykład wstaw w któryś
z plików inicjujących system (np. /etc/rc.d/rc.local):
for i in 1 2 3 4 5 6
do
setleds +num < /dev/tty$i
> /dev/null
done
W tym przypadku zakładam, że masz zainicjowanych 6 konsoli
wirtualnych (od /dev/tty1 do /dev/tty6).
Wstaw w pliku .Xmodmap linijkę: keycode 22
= 0xff08
Musisz stworzyć w $HOME (katalogu domowym) plik .inputrc
i wpisać do niego coś takiego:
set meta-flag on set convert-meta off set output-meta on
Plik .inputrc jest plikiem konfiguracyjnym modułu
readline. Aby uzyskać więcej informacji, zobacz więc: man
readline.
To nie jest pytanie :-)
Prawdopodobnie udało ci się wysłać na ekran zawartość pliku
binarnego. Powinieneś zresetować konsolę. Napisz (nawet jeśli
nie widzisz co piszesz): reset lub wciśnij
Ctrl-V
Ctrl-O
Enter
W pliku .bashrc (jeśli używasz bash):
$ alias ls='ls --color=auto' Definicja kolorów
znajduje się w /etc/DIRCOLORS
Użyj
Shift-PgUp
. Oprócz tego w xtermach możesz użyć suwaka z boku okienka
(nie we wszystkich window-managerach).
Jeśli masz zainstalowane (i uruchomione) gpm to
po prostu zaznaczasz myszką tekst (lewym przyciskiem), a prawym
zrzucasz to co zaznaczyłeś na przykład na innej konsoli w
edytorze, lub nawet w linii poleceń (bardzo przydatne, gdy w
dokumentacji masz podanych kilka taaaakich dłuuuuugich poleceń).
Tę sekcję napisał w całości Tomasz Kaźmierski, któremu
niniejszym dziękuję!
Po pierwsze musisz mieć wkompilowaną obsługę protokołu PPP
w jądrze, tzn podczas konfiguracji jądra odpowiedz twierdząco
na następujące pytanie:
PPP (point-to-point) support (CONFIG_PPP) [N/y/m/?] y
Obsługę protokołu PPP możesz skompilować także jako moduł
(zob. Module-HOWTO). W takim przypadku naciśnij ,,m''.
Po drugie musisz zainstalować demona ppp. Znajdziesz go w każdej
popularnej dystrybucji Linux'a, lub na serwerze sunsite.icm.edu.pl
w katalogu:
Debian:
/pub/Linux/debian/bo/binary/net
RedHat: /pub/Linux/redhat-contrib/i386
Slackware: /pub/Linux/slackware/slakware/n3/ppp.tgz
Do testów przyda się też program terminalowy minicom.
Znajdziesz go także w każdej dystrybucji.
To jest chyba najczęściej zadawane pytanie na p.c.o.linux.
Jego rozwiązanie jest bardzo proste. Nie będę tu przytaczał
jakichś kosmicznych przykładów, a tylko przedstawię najprostszy
sposób przyłączenia się do Internet'u. Po bardziej specyficzne
parametry odsyłam do PPP-HOWTO. Wszystko starałem się wytłumaczyć
łopatologicznie (czyt. krok-po-kroku)
Jak ręcznie zestawić połączenie?
Na początek przypominam nowicjuszom nazewnictwo portów w
Linux'ie:
DOS Linux
-----------------
com1 /dev/cua0
com2 /dev/cua1
com3 /dev/cua2
com4 /dev/cua3
(Hubert: Pozwolę sobie wtrącić, że w 2.1.*
a więc i w 2.2.*
porty wyglądają tak:
DOS Linux
-----------------
com1 /dev/ttyS0
com2 /dev/ttyS1
com3 /dev/ttyS2
com4 /dev/ttyS3
Koniec wtrącenia.)
Wybierz właściwy port, do którego podłączony jest modem.
Dla modemów zewnętrznych w większości wypadków będzie to /dev/cua1,
a dla modemów wewnętrznych /dev/cua2 lub /dev/cua3.
W Linux'ie nie określa się modemu jako takiego, tylko wskazuje
się port, do którego jest podłączony. Od razu uprzedzam, że
jeśli jesteś (nie)szczęśliwym posiadaczem winmodemu to raczej
nie będziesz mógł z niego korzystać pod Linux'em. W poniższym
opisie będę używał portu /dev/cua1, jako tego, to
którego podłączony jest modem. Szybkość modemu to 14440 b/s,
ale w parametrze do pppd podaje się prędkość pomiędzy
portem, a modemem. W zasadzie jest to prędkość modemu*4,
czyli dla 14400b/s jest to 57600b/s , a dla 28800b/s 115200b/s
itd.
Następnie proponuję zrobić linka o nazwie "modem"
do naszego portu. Takie posunięcie z pewnością ułatwi na życie:
ln -s /dev/cua1
/dev/modem
Potem uruchom minicom'a, aby przetestować, czy aby wszystkie
kabelki są na swoich miejscach i czy jesteśmy w stanie dodzwonić
się ręcznie do servera TPSA. Po ukazaniu się terminala
wpisujemy
atdp0202122
Po krótkiej chwili powinieneś ujrzeć issue zdalnego hosta i
dokonać na nim autoryzacji (username:ppp password:ppp).
Jak na razie wszystko jest OK, ale jeśli coś Ci po drodze się
popsuło to na 99% wybrałeś zły port lub minicom jest źle
poinformowany o nim (zajrzyj do helpa Ctrl-A Z). Po wstukaniu dwa
razy ppp na ekranie terminala będą się pokazywać dziwne znaki.
To właśnie zdalny host wymaga od Ciebie uruchomienia demona pppd.
Wyjdź z minicom'a nie resetując połączenia (Ctrl-A Q). Teraz
wpisz taką linijkę:
pppd /dev/modem
57600 crtscts lock noipdefault defaultroute &
Mówi ona, że Twoje połączenie będzie realizowane przez
port COM2 (/dev/cua1) o prędkości (57600 b/s)
przy włączonym sprzętowym sterowaniu modemem (crtscts).
Dostawca internetu przydzieli Ci dynamiczne IP (noipdefault)
, a twój defaultowy routing (okno na świat) będzie ustawiony właśnie
na połączenie modemowe.
Jeśli do tego miejsca wszystko było OK , to gratuluję.
Powinieneś być w Internecie. Spróbuj sprawdzić, czy masz połączenie
z innymi serwerami np pingiem:
ping
194.181.178.33
Powinieneś także mieć interfejs ppp0 (pokazuje
to polecenie "ifconfig"). Może to wyglądać
na przykład tak:
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255
Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0
TX packets:12 errors:0 dropped:0 overruns:0
ppp0 Link
encap:Point-Point Protocol
inet addr:194.204.177.31 P-t-P:194.204.177.37
Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:296 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0
TX packets:8 errors:0 dropped:0 overruns:0
Jak zautomatyzować połączenie?
Do tego zadania potrzebne sa dwa skrypty, których (jeżeli
jesteś początkujący) na 100% nie napiszesz. Dlatego
przedstawiam je poniżej, jako prawie gotowe do użycia.
"Prawie" dlatego, ponieważ część modemów TPSA w
Polsce wstawia spację za słowem "username" i "password",
a część nie. Tutaj jest przedstawiona wersja ze spacją. Jeśli
skrypt nie działa wyrzuć ją...
-------------------skrypt /etc/ppp/scripts/ppp-on------------------------
#!/bin/sh
TELEPHONE=0202122
ACCOUNT=ppp
PASSWORD=ppp
export TELEPHONE ACCOUNT PASSWORD
DIALER_SCRIPT=/etc/ppp/scripts/ppp-on-dialer
exec /usr/sbin/pppd lock modem crtscts /dev/cua1
57600 noipdefault \
defaultroute connect $DIALER_SCRIPT &
----------------------------------------------------
Pojawiła się tu opcja "connect".
Wskazuje ona, jaki skrypt należy wykonać, aby dodzwonić się do
provider'a. W tym przypadku skrypt nazywa się ppp-on-dialer
i znajduje się w katalogu /etc/ppp/scripts/
-------skrypt /etc/ppp/scripts/ppp-on-dialer
UWAGA NA SPACJE!!!----------
#!/bin/sh
exec chat
-v
\
TIMEOUT
3
\
ABORT
'\nBUSY\r'
\
ABORT
'\nNO ANSWER\r'
\
ABORT
'\nRINGING\r\n\r\nRINGING\r' \
''
\rAT
\
'OK-+++\c-OK'
ATH0
\
TIMEOUT
50
\
OK
ATDP$TELEPHONE
\
CONNECT
''
\
sername:
$ACCOUNT
\
assword:
$PASSWORD
-----------------------------------------------------------
Sprawdź, czy skrypty działają:
./ppp-on
Jeśli po wstukaniu tego wyskakuje Ci komunikat "Permission
denied", to zrób jako root
chmod +x
ppp-on ppp-on-dialer
Jeśli modem rozłącza się z niewiadomych przyczyn, to spróbuj
zmienić TIMEOUT'a z 50 sekund na np. 70.
Jeśli występuje jakiś inny problem, to upewnij się, że na
pewno zastosowałeś się do umieszczonych tu rad, a w
ostateczności wyślij ostatnie kilka linijek pliku /var/log/messages
dotyczących pppd na p.c.o.linux z zapytaniem o co w
tym wszytkim chodzi... ;-)
Autoryzacja przez PAP polega na wymianie informacji o użytkowniku
poprzez specjalny protokół pomiędzy dwoma partnerami. Nie ma tu
więc standardowego pytania o login o password. Te dwa parametry
podaje się osobno: w linii poleceń i w specjalnym pliku.
Autoryzacje poprzez PAP poznasz po tym, że po dodzwonieniu się
do zdalnego systemu minicom'em na terminalu nie pojawią się żadne
napisy, a po krótkiej chwili połączenie zostanie zerwane. Jeśli
chcesz dowiedzieć sie więcej o ideii protokołu PAP/CHAP zajrzyj
do PPP-HOWTO (paragraf 13.)
Gdzie wpisać hasło?
Przy autoryzacji PAP hasło (tu nazywane także sekretem)
wpisuje się w pliku /etc/ppp/pap-secrets
Oto wzór takiego pliku:
-----------------/etc/ppp/pap-secrets------------
# Secrets for authentication using PAP
# client server
secret
IP addresses
kazik
*
kazik123
--------------------------------------------------
"kazik" to jest mój login u provider'a, a
"kazik123" to jest hasło. W polu "server"
powinna być wpisana nazwa komputera, który dokonuje autoryzacji.
Jeśli nie znasz jego nazwy, a masz tylko jednego provider'a to możesz
zamiast nazwy wstawić gwiazdkę ("*"). Oznacza ona, że
nie obchodzi cię to. W razie, gdy masz wielu providerów
dopisujesz kolejne wiersze i wtedy musisz wpisać nazwę hosta. W
polu "IP addresses" możesz wpisać lokalny numer IP, jeśli
taki został ci przydzielony przez dostawcę Internetu. Jeśli
jednak korzystasz z dynamicznego przyznawania IP, to zostawiasz to
pole puste. Jeśli połączenie nie chce się nawiązać, a w
logach nie możesz się dopatrzeć niczego szczególnego, to
sprawdź poprawność wpisów w tym pliku.
Jak ręcznie zestawić połączenie?
Jeśli nie czytałeś paragrafu 7.2.1, to przejrzyj go teraz.
Nie będę się powtarzał i podam tylko różnicę pomiędzy
dwoma sposobami autoryzacji. Oczywista zmiana jest numer telefonu.
Wraz z umową provider podał Ci na pewno numery dostępowe. Aby
wykręcić ten numer minicom'em poprzedź go ciągiem znaków
"atdp" np:
atdp427828
"427828" to mój przykładowy numer dostępowy. Następnie
jak modemy skończą handshaking (skończą "ćwierkać"),
wyjdź z minicoma i odpal pppd:
pppd /dev/modem
57600 crtscts lock noipdefault defaultroute user kazik &
Ważny tu jest parametr "user", który informuje pppd,
jak brzmi twój login u providera (tu jest przykładowe "kazik").
Reszta parametrów jest opisana w paragrafie 7.2.1. Jeśli
wszystko poszło OK to powinieneś mieć urządzenie ppp0
(pokazuje to polecenie "ifconfig") np:
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255
Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:69 errors:0 dropped:0 overruns:0
TX packets:69 errors:0 dropped:0 overruns:0
ppp0 Link
encap:Point-Point Protocol
inet addr:195.136.0.103 P-t-P:195.136.0.100
Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:296 Metric:1
RX packets:21 errors:0 dropped:0 overruns:0
TX packets:21 errors:0 dropped:0 overruns:0
oraz mieć możliwość ping'nięcia jakiegoś hosta np:
ping 194.181.178.33
Jak wyglądają skrypty?
Oto skrypty, które automatycznie połącza Cię z providerem.
Nie zapomnij zmienić swojego login'a !
-------------------/etc/ppp/scripts/pap-ppp-on---------------------------
#!/bin/bash
TELEPHONE=$1
export TELEPHONE
DIALER_SCRIPT=/etc/ppp/scripts/pap-ppp-on-dialer
exec /usr/sbin/pppd /dev/modem 57600 crtscts lock
noipdefault defaultroute \
connect $DIALER_SCRIPT user kazik &
-------------------------------------------------------------------------
Jako, że ja mam kilka numerów dostępowych, wpisuje numer
telefonu jako argument do skryptu. Jeśli Ty masz tylko jeden, to
zmień "$1" na swój numer dostępowy.
-----------------/etc/ppp/scripts/pap-ppp-on-dialer----------------------
#!/bin/sh
exec chat
-v
\
TIMEOUT
3
\
ABORT
'\nBUSY\r'
\
ABORT
'\nNO ANSWER\r'
\
ABORT
'\nRINGING\r\n\r\nRINGING\r' \
''
\rAT
\
'OK-+++\c-OK'
ATH0
\
TIMEOUT
40
\
OK
ATDP$TELEPHONE
\
CONNECT
''
-------------------------------------------------------------------------
Wybieranie pulsowe, czy tonowe?
W moim FAQ przyjąłem, że korzystasz z centrali impulsowej,
ponieważ jeszcze nie słyszałem, żeby TPSA wprowadziła
wybieranie tonowe. Jeśli jednak jesteś podłączony do centrali
tonowej, to zmień ciąg znaków "atdp"
przed numerem telefonu na "atdt" np
atdt0202122
Jeśli coś nie działa, a postąpiłeś zgodnie z opisem, to
skontaktuj się ze mną,
a ja postaram się Ci pomóc.
Kontakt ze mną
Jeśli masz jakieś zastrzeżenia do tego FAQ koniecznie wyślij
swoje uwagi na mój adres kazik@man.koszalin.pl
Post Scriptum
Można ostatnio w sieci znaleźć coraz więcej programów, które
prowadząc usera za rączkę pomagają konfigurować połączenie
ppp. Taki program, bardzo przypominający dial-up networking z
Win95 ma np. KDE. Poza tym np. Debian standardowo jest wyposażany
w program pon.
|