DAG

Shortcuts:
Dconf ∑ Dstat ∑ Dwall ∑ Dweb ∑ Dwscan ∑ Lyrics ∑ mrepo ∑ Pixies.. ∑ RPMs ∑ unoconv ∑ wascii ∑ wiipresent ∑ Yam ∑

Google Site Search:
Flemish symbol European symbol
» Dag Wieers » Howtos » Belgische HOWTO - Linux in Belgie » 2. Konfiguratie 
2. Konfiguratie
2. Konfiguratie

2. Konfiguratie

2.1. Toetsenbord setup

Linux kent 2 verschillende manieren om je toetsenbord in te stellen. Op de console kan je loadkeys gebruiken en onder XFree86 gebruik je xmodmap.

2.1.1. Console

Om de 'keytable' voor een Belgisch toetsenbord te gebruiken, doe je best loadkeys be2-latin1 of loadkeys be-latin1 Het verschil is dat be2-latin1 funktionaliteit toevoegt om twosuperior en threesuperior (keycode 41) en grave (keycode 43).

Normaal wordt loadkeys gestart tijdens het booten vanuit scripts (ergens in /etc/rc.d Verschillende distributies doen het op een afwijkende manier. Maar de meeste distributies laten je die scripts wijzigen dmv. een simpel programma (zoals kbdconfig bij Red Hat of yast bij SuSE).

2.1.2. XFree86

Je toetsenbord instellen voor XFree86 wordt gedaan door Xconfigurator (of een gelijkaardig programma). Die maakt oa. een konfiguratie-file aan voor XFree86 >XF86Config dat normaal in /etc of /etc/X11 staat.

Het volgende zou in je XF86Config moeten staan in het Keyboard Section.

	Section "Keyboard"
		Protocol	"Standard"
		XkbRules	"xfree86"
		XkbModel	"pc101"
		XkbLayout	"be"
	EndSection

Als je een 'microsoft' toetsenbord hebt, dan kan je die 3 extra toetsen gebruiken door "pc101" te veranderen in "pc104". (ik gebruik die extra toetsen als meta-toetsen voor mijn windowmanager zodat sneltoetsen van programma's niet in conflict zijn met die die ik in mijn windowmanager konfigureer).

Om de AltGr-toets te doen werken onder XFree86 kan je gewoon het volgende toevoegen:

	RightAlt		ModeShift

2.1.3. Compose toets

Sommige mensen gebruiken liever een 'compose'-toets om speciale karakters te typen, zoals:

	Compose-' e    =>    ť
	Compose-/ o    =>    Ý
	Compose-c ,    =>    Á
	Compose-c o    =>    ©
	Compose-s s    =>    Ŗ

Voor XFree86 is de oplossing om xmodmap -e "keycode xx = Multi_key" of xmodmap -e "keysym yy = Multi_key" in te geven waarbij 'xx' de keycode en 'yy' de keysym van de toets die je wil instellen als 'compose'-toets. (gebruik xev om dit uit te vinden)

Alternatief steek je keycode xx = Multi_key in je ~/.xmodmaprc, zodat dit automagisch gebeurt.

2.2. Display en applikaties

Sommige applikaties moeten '8-bit clean' gecompileerd worden om de Europese 'charactersets' te ondersteunen. Anderen moet het verteld worden bij het starten.

2.2.1. Het gebruik van het ISO-8859-1 font in console

Je kan het ISO-8859-1 font door het volgende te typen in console:

	setfont lat1u-16.psf
	mapscrn trivial
	echo -ne '\033(K'
					

Om Ž, Ť, ť of Á in console te gebruiken, voeg je best deze regels toe aan ~/.inputrc:

	set meta-flag on
	set convert-meta off
	set output-meta on
					

(dit zou voor iedere gebruiker moeten gebeuren, als je dit als standaard wil kan je dit toevoegen aan /etc/skel/.inputrc en het voor iedere bestaande user aanpassen of je kan het plaatsen in /etc/inputrc en de volgende regel toevoegen aan /etc/bashrc, export INPUTRC=/etc/inputrc )

Note!

Dit is enkel nuttig voor programma's die gebruik maken van 'readline' (zoals bash).

Zet ook de volgende environment variabelen:

    	LC_CTYPE=iso-8859-1
	SYSFONT=lat1u-16.psf
	SYSTERM=linux
					

2.2.2. Ondersteuning van het Euro symbool

Vermits Europa perse zijn eigen symbool wilde hebben, de Euro, is er een nieuwe standaard. En die heet ISO-8859-15 (aka Latin-9 of Latin-0). Om deze te gebruiken heb je zowel een nieuwe 'font' als een nieuwe 'keymap' nodig. Dit zit tegenwoordig wel in iedere Linux distributie, als je een oudere versie hebt dan ben je wellicht gesteld met een nieuwer console-tools package.

De veranderingen in de keymap-file bestaan uit de volgende lijnen:

	keycode  18 = +e	+E	currency
	keycode  46 = +c	+C	cent
					

En de volgende environment-variabele moet gezet worden:

	SYSFONT=lat0-16.psf
					

zodat het juiste font gebruikt wordt.

2.3. Tijdzone

Aangezien BelgiŽ gelegen is binnen de Central European Time zone (aka MET) dat (in de winter) hetzelfde is als de Greenwhich Mean Time plus 1 (GMT+1), kan je simpelweg een symbolische link leggen van /usr/lib/zoneinfo/localtime/MET naar /etc/localtime door: ln -sf /usr/lib/zoneinfo/MET /etc/localtime of ln -sf /usr/lib/zoneinfo/Europe/Brussels /etc/localtime Dit zorgt automatisch voor 'Daylight Savings', dus zomertijd. Dus GMT+2 in de zomer.

Note !

Verschillende distributies kunnen de files op verschillende plaatsen hebben staan, zoneinfo kan ook in /usr/share enzo...

Nog een note !

In Red Hat gebruik je best timeconfig, in SuSE yast

Om de CMOS klok te wijzigen en te synchroniseren met de systeem-tijd, doe het volgende:

        hwclock --set --date="Feb 25 03:38"
        clock -u -s
				

Als je CMS klok draait op de lokale tijd (wat we afraden, maar waartoe je verplicht bent als je andere besturingssystemen draait), dan kan je het volgende doen:

        hwclock --set --date="Feb 25 04:38"
        clock -s
				

[Merk het uur verschil op ! ;p]

2.4. Locale ondersteuning

BelgiŽ zit met een taalprobleem, en dus heeft dit onderdeel, 3 onderdeeltjes ;) In se komt het op hetzelfde neer. Niet veel programma's ondersteunen al Locale, als je meer wil weten over Locale of hoe je je programma's kan schrijven zodat ze Locale ondersteunen, kijk op: [put the damn url here ;p]

Let wel op dat Locale het moeilijker maakt om problemen op te lossen aangezien minder mensen je dan nog kunnen helpen !! Als het in technisch Engels is zullen veel mensen je probleem begrijpen, maar als het in het Nederlands bv is wordt het al een stuk moeilijker. (Als je al weet dat er nu al mensen zijn die het moeilijk hebben met beide ;))

2.4.1. Nederlands

Om ondersteuning te hebben voor Nederlandstalige Locale in BelgiŽ op je systeem, moet je enkel de volgende environment variabelen instellen:

	LANG=nl
	LANGUAGE=nl_BE
					

Probeer nl_BE.ISO_8859-1 als nl_BE niet werkt.

2.4.2. Frans

Om ondersteuning te hebben voor Franstalige Locale in BelgiŽ op je systeem, moet je enkel de volgende environment variabelen instellen:

	LANG=fr
	LANGUAGE=fr_BE
					

Probeer fr_BE.ISO_8859-1 als fr_BE niet werkt.

2.4.3. Duits

Om ondersteuning te hebben voor Duitstalige Locale in BelgiŽ op je systeem, moet je enkel de volgende environment variabelen instellen:

	LANG=de
	LANGUAGE=de_BE
					

Probeer de_BE.ISO_8859-1 als de_BE niet werkt.

2.4.4. Waals

Om ondersteuning te hebben voor de Waalse locale support haal je best de files af op volgende adres: http://chanae.stben.be/linux/locales/walon/. Om het te gebruiken zet je dan het volgende:

	LANG=wa
	LANGUAGE=wa_BE:fr_BE
					

Gebruik wa_BE.ISO_8859-1 als wa_BE niet werkt.

2.5. Native language support en codepages

Deze opties voegen ondersteuning toe voor het Belgische karakterset en codepages. Als je deze wil hebben, compileer dan een kernel met volgende opties aan. Ze zijn enkel nodig voor sommige bestandssystemen (FAT-gebaseerd, ISO9660, ...).

	< > Codepage 850 (Europe) 
	< > NLS ISO 8859-1  (Latin 1; Western European Languages)  
	< > NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)
				

Te vinden in Filesystems > Native Language Support

Als je een modulaire kernel hebt, zoals die meegeleverd met je distributie (=je hebt geen eigen kernel gemaakt), dan kan je het volgende typen:

	insmod nls_cp850
	insmod nls_iso8859_1
	insmod nls_iso8859_15
				

2.6. Opzetten van Internet

2.6.1. Inbellen met de modem (PPP)

Om PPP juist te konfigureren, bekijk je best de PPP-HOWTO. Ik ga het kort trachten uit te leggen, maar als er problemen of vragen zijn, lees dan de HOWTO aandachtig.

2.6.1.1. Modem konfigureren

Om je modem juist in te stellen, kan je de initstring van je modem wijzigen. Om meer over je modem te weten te komen, kijk op: Ask Mr. Modem. Let op, als je een winmodem hebt dan zal die wellicht NIET werken ! Meer informatie over winmodems kan je vinden op: http://linmodems.org/. Er wordt aan gewerkt, doch winmodems zijn niet zo degelijk als echte modems.

2.6.1.2. pppd installeren

Eerst moet je nakijken of je het ppp-package geinstalleerd hebt. (pppd --version), kijk even na of het wel een recente versie is !! Dan zorg dat je de volgende files hebt:

/usr/local/bin/ppp

	#!/bin/sh
	case $1 in
		on|start)
		TELEPHONE='555-1212'	# The telephone number for the connection
		ACCOUNT='your_login'	# The account name for logon (as in 'George Burns')
		PASSWORD='your_pass'	# The password for this account (and 'Gracie Allen')
		INITSTRING='AT&F&C1&D2Z'# Modem initstring
		IPLOCAL=0.0.0.0		# Local IP address if known. Dynamic = 0.0.0.0
		IPREMOTE=0.0.0.0	# Remote IP address if desired. Normally 0.0.0.0
	        DEVICE=/dev/ttyS1	# Serial Device com1=ttyS0, com2=ttyS1,...
		SPEED=57600		# 19200, 38400 or 57600 (don't try something different)
		export TELEPHONE ACCOUNT PASSWORD INITSTRING
		exec /usr/sbin/pppd $DEVICE $SPEED $IPLOCAL:$IPREMOTE \
			user $ACCOUNT connect /etc/ppp/ppp-on-dialer
		;;
		off|stop)
		if [ -r /var/run/ppp0.pid ]; then
		        kill -INT `cat /var/run/ppp0.pid`
		        if [ ! "$?" = "0" ]; then
		                rm -f /var/run/ppp0.pid
		                echo "ERROR: Removed stale pid file"
		                exit 1
		        fi
		        exit 0
		fi
		echo "ERROR: PPP link is not active on ppp0"
		exit 1
		;;
		info|status)
		/usr/sbin/pppstats
		;;
		*)
		echo "Usage: ppp on|off|info|start|stop|status";
		;;
	esac

/etc/ppp/ppp-on-dialer

	#!/bin/sh

	exec /usr/sbin/chat -v					\
		REPORT CONNECTION				\
		REPORT CARRIER					\
	        TIMEOUT		10				\
	        ABORT		'\nBUSY\r'			\
	        ABORT		'\nNO ANSWER\r'			\
	        ABORT		'\nNO CARRIER\r'		\
	        ABORT		'\nNO DIALTONE\r'		\
	        ABORT		'\nRINGING\r\n\r\nRINGING\r'	\
		ABORT		'Invalid Login'			\
		ABORT		'Login incorrect'		\
	        ''		"\r$INITSTRING\r"		\
	        'OK-+++\c-OK'	'ATH0'				\
	        TIMEOUT		45				\
	        OK		"ATDT$TELEPHONE"		\
	        CONNECT		'\d\c'				\
	        ogin:--ogin:	"$ACCOUNT"			\
	        ord:		"$PASSWORD"

Je kan het -v gedeelte weglaten als alles blijkt te werken.

Het pppd commando gebruikt de file /etc/ppp/options om al zijn opties te bundelen, verander de opties naar believe. Deze opties werken normaal gezien in de meeste gevallen.

	asyncmap 20a0000
	crtscts
	debug
	default-mru
	defaultroute
	detach
	escape 11,13,ff
	hide-password
	ipcp-accept-local
	ipcp-accept-remote
        lcp-echo-failure 4 
        lcp-echo-interval 400 
	lock
	modem
	mtu 1500
	netmask 255.255.255.0
	noipdefault
	passive

        #idle 300 
	#kdebug 0
	#-vj

Eenmaal hij inbelt en alles naar wens is, kan je debug weglaten.

Warning

Het is belangrijk om te benadrukken dat ieder 'speciaal' karakter, dus ieder karakter dat niet behoort tot [a-zA-Z0-9] en '_', best voorafgegaan wordt door een '\' om de speciale betekenis die het kan hebben te ontkrachten. Dus "e!b$l+" wordt dan "e\!b\$l\+". Als je problemen hebt om in te loggen, kijk je dit dus best na.

2.6.1.3. pap-secrets / chap-secrets

Als je ISP CHAP of PAP vereist, dan moet je een van de volgende files plaatsen en het juiste login en paswoord erin zetten:

/etc/ppp/pap-secrets of /etc/ppp/chap-secrets

	#client		server  secret          IP      
	your_login	*	your_pass	*

2.6.1.4. Netwerk

Je nameservers konfigureer je in /etc/resolv.conf. Als het inbellen lukt, maar je kan niet surfen, dan is de kans groot dat je deze stap vergeten bent.

	domain domain_of_your_isp
	nameserver your_primary_nameserver
	nameserver your_secondary_nameserver

2.6.1.5. File permissies

Vooraleer je een (shell)script kan uitvoeren, moet je het executable maken. Let op dat je de permissies zo plaatst dat andere gebruikers niet zomaar de paswoorden kunnen bekijken die in de files staan. Als je andere gebruikers toch wil kunnen laten inbellen, dan kan je daarvoor sudo gebruiken. Je zou het volgende kunnen doen:

     chmod u+rw og-rwx -R /etc/ppp
     chmod u+x /etc/ppp/ppp-on-dialer /usr/local/bin/ppp

2.6.1.6. Dial + Hangup

Als /usr/local/bin in je PATH staat, kan je dan simpelweg starten met ppp on en stoppen met ppp off en wat statistieken kan je opvragen met: ppp status

2.6.2. Inbellen met de ISDN-modem

Bijdrage door Christophe Lambin <clambin@skynet.be>

Dit gedeelte is niet bedoeld als een definitieve handleiding voor ISDN op Linux. Voor een meer gedetaileerde uitleg hierover verwijzen we door naar Paul Slootman's ISDN4Linux HOWTO en ISDN4Linux-FAQ.

2.6.2.1. Updating de kernel

Als je een 2.2 kernel gebruikt, is het aangeraden om een nieuwere versie van de ISDN code te gebruiken. De CVS versie kan je halen op ftp://ftp.suse.com/pub/isdn4linux/. Voor meer informatie, bekijk: http://www.brisse.dk/site/linux/docs/isdn.htm

Warning

Als je je onlangs een Eicon Diva 2.0 PCI aanschafte (bv, via Belgacom), dan is de kans groot dat het in werkelijkheid om een Diva 2.01 gaat, in dat geval heb je een nieuwere versie nodig van na 1 Juli 1999 !

Eens de ISDN op zijn plaats is, kan je de driver starten (als module). Bv: modprobe hisax type=11 protocol=2 Bekijk de Readme's voor de juiste parameters en waarden voor jouw kaart.

2.6.2.2. ISDN4Linux toolkit

Vervolgens heb je de ISDN4Linux toolkit nodig. De laatste versie hiervan kan je afhalen op: ftp://ftp.suse.com/pub/isdn4linux/

2.6.2.3. Konfigureren van de interface

Met de tools geinstalleerd en gekonfigureerd, schrijf een script om de interface te konfigureren, dat gebruikt wordt om de ISDN connectie te maken. Zoals altijd in Linux is er niet echt een ťťnduidige manier om dat te doen. Gebruik eventueel dit script /etc/rc.d/rc.isdn:

	#!/bin/sh
	MSNREMOTE='555-1212'	# Phone number of ISP
	MSNLOCAL='555-1313'	# my number, without 0, with areacode
	ACCOUNT='george'	# The account for logon (as 'George Burns')
	IPLOCAL=10.0.0.2	# my fixed IP number (use 10.0.0.2 if no fixed)
	IPREMOTE=0.0.0.0	# IP number of ISP
	INTERFACE=ippp0
	/sbin/modprobe hisax type=11 protocol=2
	/sbin/isdnctrl verbose 3 system on
	/sbin/isdnctrl addif $IF
	/sbin/isdnctrl secure $IF on 
	/sbin/isdnctrl addphone $IF out $MSNREMOTE
	/sbin/isdnctrl eaz $IF $MSNLOCAL
	/sbin/isdnctrl huptimeout $IF 300
	/sbin/isdnctrl l2_prot $IF hdlc
	/sbin/isdnctrl l3_prot $IF trans
	/sbin/isdnctrl encap $IF syncppp
#	/sbin/isdnctrl dialmode $IF auto
	/sbin/ifconfig $IF $IPLOCAL pointopoint $IPREMOTE -arp -broadcast
	/sbin/ipppd /dev/ippp0 user $ACCOUNT $IPLOCAL:$IPREMOTE

Om ISDN te starten tijdens het booten, maak het vorige script 'executable' en zet het volgende in /etc/rc.d/rc.local:

	if [ -x /etc/rc.d/rc.isdn ]; then
		. /etc/rc.d/rc.isdn
	fi

Het ipppd commando haalt zijn parameters ui de file /etc/ppp/ioptions:

	-ac
	-bsdcomp
	debug
	defaultroute
	ipcp-accept-local
	ipcp-accept-remote
	mru 1524
	mtu 1500
	noipdefault
	-pc
	useifip
	-vj
	-vjccomp

	#idle 360
	#persistent

Warning

Zet +pap of +chap NIET in deze file. Dit specifieert het authentication-protocol dat ipppd zou gebruiken bij een INKOMENDE client. Moest je dat toch doen, wacht ipppd op de ISP voor authenticatie met dat protocol.

Warning

Het is belangrijk om te benadrukken dat ieder 'speciaal' karakter, dus ieder karakter dat niet behoort tot [a-zA-Z0-9] en '_', best voorafgegaan wordt door een '\' om de speciale betekenis die het kan hebben te ontkrachten. Dus 'e!b$l+' wordt dan 'e\!b\$l\+'. Als je problemen hebt om in te loggen, kijk je dit dus best na.

Tenslotte, maak /etc/ppp/ip-down.local zodat dit zorgt voor het afsluiten van de interface:

	#!/bin/sh

	/sbin/ifconfig $1 down
	sleep 1
	/sbin/ifconfig $1 10.0.0.2 pointopoint 

Note !

Dit lost sommige problemen op met routes na afsluiten. Is er iemand met een mooiere oplossing ?

2.6.2.4. pap-secrets / chap-secrets

Als je ISP PAP of CHAP gebruikt, maak dan een file /etc/ppp/pap-secrets or /etc/ppp/chap-secrets. Het formaat is:

	#client		server  secret          IP      
	your_login	*	your_pass	*

2.6.2.5. Network

Dit heeft niet echt iets te maken met ISDN, maar sommige mensen vergeten deze stap.Om DNS te konfigureren, maak je de volgende file /etc/resolv.conf:

	domain domain_of_your_isp
	nameserver your_primary_nameserver
	nameserver your_secondary_nameserver

2.6.2.6. Dial + Hangup

Als laatste stap kan je een klein scriptje schrijven om ISDN te starten en te stoppen. Zet bijvoorbeeld dit in /usr/local/bin/isdn:

	#!/bin/bash

	case $1 in
		on|start)
		/sbin/isdnctrl dial ippp0
		;;
		off|stop)
		/sbin/isdnctrl hangup ippp0
		;;
		info|status)
		/sbin/isdnctrl list ippp0
		;;
		*)
		echo "Usage: isdn on|off|info|start|stop|status"
		;;
	esac

Als /usr/local/bin in je PATH staat, kan je dan simpelweg starten met isdn on en stoppen met isdn off