Installation Instructions Digi AccelePort USB 4 6/8/2000 This note explains how to install the Digi AccelePort USB 4 driver. If you have questions please contact Peter Berger pberger@brimson.com or Al Borchers alborchers@steinerpoint.com. Setting Up a Test System * You should install this driver on a test system, not a production system. The kernel USB subsystem and our driver are experimental and might well have unexpected problems that could crash your system and cause a loss of data. * The test system should have a recent version of Linux installed. We have been using Red Hat 6.1 and 6.2 for our tests. * You will need a Digi AccelePort USB 4 attached to a USB port on the system. Files You Need * From www.kernel.org get pub/linux/kernel/v2.2/linux-2.2.14.tar.gz. * Get linux-2.2.14-digi-usb-4.diff.gz which should have been included with this note or can be found at ftp.brimson.com in the pub directory. This is a version of Vojtech Pavlik's patch (usb-2.3.99-pre7-1-for-2.2.14.diff.gz) enhanced with the latest Digi USB-4 support files. * Copy both of these files to /usr/src. Installing and Patching the Kernel Sources * Login or su to root, cd to /usr/src. * Copy linux-2.2.14.tar.gz and linux-2.2.14-digi-usb-4.diff.gz to /usr/src. * In /usr/src run these commands mv linux linux.save tar xvzf linux-2.2.14.tar.gz cd linux zcat ../linux-2.2.14-digi-usb-4.diff.gz | patch -p1 make mrproper Configuring and Building the Kernel * You should be logged in as root and in the /usr/src/linux directory. * You might be able to copy your current configuration. In Red Hat systems this will be in /usr/src/linux.save/configs. There will probably be several configs here; choose the most appropriate and copy it to /usr/scr/linux/.config. * If you are running X, run "make xconfig"; if not, run "make menuconfig". If you copied another configuration file, first run "make oldconfig" which will ask you for any new options that your old config file does not have: you can then run "make xconfig" or "make menuconfig" to review or change the configuration options. Even if you copied another up to date config file, you must run "make oldconfig", "make xconfig", or "make menuconfig". * Use the config program to configure the kernel for your system. In order to get the Digi AccelePort USB driver installed you must choose these options in addition to any others needed for your system: USB support m -- Support for USB n -- USB verbose debug messages m -- UHCI (Intel PIIX4, VIA, ...) support m -- UHCI Alternate Driver (JE) support m -- OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support m -- USB Serial Converter support y -- USB Digi International AccelePort USB Serial Driver (EXPERIMENTAL) n -- USB Serial Converter verbose debug * Note that this configures USB support as loadable modules. You can also link them into the kernel directly by choosing y instead of m. The advantage to modules is that you can load and unload them when you choose, in case they cause problems. * Save the configuration and exit the config program. * Run these commands. Note these commands take a while to run, depending on your system and the kernel options you selected. For example, "make bzImage" takes over 6 minutes on my PII400. make dep make bzImage make modules make modules_install * Run these commands to create the device nodes. mknod /dev/ttyUSB0 c 188 0 mknod /dev/ttyUSB1 c 188 1 mknod /dev/ttyUSB2 c 188 2 mknod /dev/ttyUSB3 c 188 3 chmod 666 /dev/ttyUSB[0-3] * If by chance you have other USB serial devices (like a second Digi Acceleport USB 4) you will need to make enough usb device nodes for all USB serial ports. Use "mknod" commands like those above. Booting the New Kernel * Assuming you are using LILO, edit /etc/lilo.conf. Change the default= line to read default=linux-test Add the linux-test configuration like this image=/boot/vmlinuz-test label=linux-test read-only root=/dev/XXX The XXX will be replaced by the disk name that holds your root (/) partition. You can find this in the root= line for your old default configuration in /etc/lilo.conf. It might be something like hda6 or sda1. * As root in /usr/src/linux run these commands. cp arch/i386/boot/bzImage /boot/vmlinuz-test cp System.map /boot/System.map-test rm /boot/System.map ln -s /boot/System.map-test /boot/System.map /sbin/lilo * Run "shutdown -r now" to reboot the system. Starting the USB driver * Your machine has either the UHCI or OHCI USB controller. The UHCI controller is more common on Intel systems. If you have the OHCI controller you should change "usb-uhci" to "usb-ohci" in the commands below. If you don't know, try usb-uhci first; if it doesn't work try usb-ohci. You can also try just uhci in place of usb-uhci; they both support the UHCI controller, but one might work better for you. We have had better luck with usb-uhci driver. The uhci driver does not work with the Digi Acceleport USB driver on SMP machines. * As root run these commands depmod -a sync sync modprobe usbcore modprobe usb-uhci /* if you have the UHCI controller */ modprobe usb-serial For convenience you might want to put these commands in a shell file. The "depmod -a" command only needs to be run the first time after installing the driver, and it is normally run automatically by Linux on boot. * The Digi AccelePort USB 4 should be working. To test it out, connect a null modem cable between ports 1 and 3 and run these commands in two separate windows. In the first window: cu -l /dev/ttyUSB0 In the second window cu -l /dev/ttyUSB2 Whatever you type in one window should be sent through the USB AccelePort and over to the other window. To exit the cu sessions, type return, tilde, and a period. * To stop the USB driver, run these commands sync sync rmmod usb-uhci rmmod usb-serial rmmod usbcore For convenience, you might want to put these commands in a shell file. Known Bugs * Do not unplug the Digi AccelePort 4 while the usb modules are loaded-- the system will crash. * On a Wyse UTC we understand that the keyboard/mouse must be installed in the first USB slot and the USB-4 in the second. If the order is reversed, the keyboard will fail to work properly. * On SMP machines the driver does not work with the uhci host controller driver; use usb-uhci instead.