1. Introduction

	This document provides information to make Vigor 128/204 work under Linux 
	operating system. Since the USB function is still under developing for Linux, the 
	beta driver works only  for a specific Linux Kernel version. Those who want 
	to use the driver need to upgrade the kernel and PPP daemon to the versions 
	specified in this document.   

        Follow the steps described below to have all thing works togather. If you have problems 
        regarding the Kernel, PPP daemon, please find the related HOW-TO documents from the internet. 
        Please DO NOT send E-Mail to our support account for known issues listed at the end of 
        this document, since those problems are already under investigation by our engineers.

	 	
2. Update Kernel and PPP daemon 

	- Kernel: version 2.3.42 is required
	
		(a) Get Kernel source archieve, linux-2.3.42.tar.gz,   from www.kernel.org and
		     put it under /usr/src.
		     
		(b) Decompress the source and build new Kernel by the following commands:
		         cd /usr/src
		         mv linux linux-old
		         tar xzvf linux-2.3.42
		         cd  linux
		         mrproper
		         make xconfig
		         make dep
		         make modules
		         make modules_install
		         make bzImage
		         
		     Some configuration items of the kernel are very critical, these are listed below:
		     
		     	- Processor type and  features:
		     	   	say 'N' to 'Symmetric multi-processing support'. 
		     	   	choose the correct CPU type that maches your hardware.
		     	   	
		     	   	If you say 'Y' to 'Symmetric multi-processing support', system will hang when 
		     	   	you plug in the Vigor128/204. A wrong CPU type could cause your computer to 
		     	   	freeze in booting.
		     	   	
		     	- Block devices:
		     	   	say 'Y' to 'Generic PCI bus-master DMA support'.for USB
		     	   	say 'Y' to 'Use PCI DMA by default when available'.
		     	   	say 'Y' to the correct chip set for your mother board.
		     	   	
		     	   	if this is not configured correctly, the Vigor 128/204 can still work but the
		     	   	data transfer will be disturbed whenever there is any hard disk activity.
		     	   	
		        - USB support:
		       		say 'Y' to 'Support  for USB'.
		       		say 'Y' to the correct USB host controller (UHCI/OHCI).
		       		
		       		If this is not configured correctly, all USB devices won't work. 

			- Network Device Support
				say 'Y' to 'PPP (point-to-point protocol) support'
				say 'Y' to 'PPP support for async serial ports'
		       		
		       		
		          
		(c) Install new Kernel
			 Copy bzImage and System.map to /boot:          
		         	cp /usr/src/linux/arch/i386/boot/bzImage /boot/linuxUSB
		         	mv /boot/System.map /boot/System.map.old
		         	cp /usr/src/linux/System.map /boot 		         	   
			 
			 Add the the following lines to file /etc/lilo.conf:
			 
			 	timeout = ....			 
				image=/boot/linuxUSB
			 	label=linuxUSB
				root=/dev/hda1
			 	read-only			 
				image=...... 

			 Run lilo again(Don't forget this step, otherwise the boot sector won't upadate).
			 Reboot the computer. You can change linuxUSB to whatever you like.  'hda1' is the 
			 boot partition of your Linux system, just make it match your system.
			 
			 The new Kernel will be the default kernel to load. If the new Kernel cause a
			 boot problem, type 'linux'  when you see the "lilo:" prompt upon reboot, to force 
			 the use of the old kernel.
			  	
	- PPP Daemon: version 2.3.10-3 is required
	
		Get ppp-2.3.10-3.i386.rpm from ftp://updates.redhat.com/6.1/i386 and run the rpm using 
		the command:
		
	 	  rpm -Uvh ppp-2.3.10-3.rpm
		
		
2. Driver Installation

	- create directory /lib/modules/2.3.42/dratek
	
	- copy driver file vigor128(or vigor204 for Vigor204) to /lib/modules/2.3.42/draytek

	- create device files by the following commands:

	   for Vigor128:
		mknod /dev/vg1280 c 240 0 		
		mknod /dev/vg1281 c 240 1 
		mknod /dev/vg1282 c 240 2 
		mknod /dev/vg1283 c 240 3 
		chmod 666 /dev/v1280
		chmod 666 /dev/v1281
		chmod 666 /dev/v1282
		chmod 666 /dev/v1283

	   for Vigor204:
		mknod /dev/vg2040 c 241 0 
		mknod /dev/vg2041 c 241 1 
		mknod /dev/vg2042 c 241 2 
		mknod /dev/vg2043 c 241 3 
		chmod 666 /dev/v2040
		chmod 666 /dev/v2041
		chmod 666 /dev/v2042
		chmod 666 /dev/v2043
		 			 
	- add the following lines in /etc/rc.d/rc.local	 			 

	   for Vigor128:
	   	insmod /lib/modules/2.3.42/draytek/vigor128
	   	
	   for Vigor204:
	   	insmod /lib/modules/2.3.42/draytek/vigor204

	- reboot computer
			
	After the reboot, you can choose vg128n/vg204n where n can be 0, 1, 2 or 3,  as the 
	'virtual' serial port for your communication software. The initial string for various B 
	channel protocols are as follows:
	
	AT+IBP = 0 (HDLC)
	AT+IBP = 1 (X.75)
	AT+IBP = 2 (T.70)
	AT+IBP = 3 (V.120)
	AT+IBP = 4 (V.110)
	AT+IBP = 5 (ISO8208)
	AT+IBP = 6 (Draytek's PPP)
	AT+IBP = 7 (TRANSPARENT)
	AT+IBP = 8 (Draytek's Multi-Link PPP)
	AT+IBP = 10(linux's PPP)
	

3. Known Issues

	- CHAP does not work. user have to choose PAP instead.  
	- Can not work under symmetric multi-processor machine. 
	- Can not work on computers with OHCI USB host controller. 