Release Notes 93000375_B Digi Etherlite(R) Linux Driver Package els-1.02-1.src.rpm Tested Linux Distributions: RedHat 6.0 and later (Intel and SPARC) Caldera OpenLinux 2.3 (Intel) SuSE LiNUX 6.3 and 6.4 (Intel) Linux Kernels supported: 2.2.0 and newer RPM Part Number 40002090_B 09/08/2000 1. INTRODUCTION This Digi software package includes device drivers for the Etherlite family of adapters (it does not support SCSI units). It is currently supported on the following hardware platforms: * Standard i386 / Pentium PC * Sun Sparc 32 bit and has been tested on the following Linux distributions: * RedHat 6.0 or later (Intel and SPARC) * Caldera OpenLinux 2.3 (Intel) * SuSe LiNUX 6.3 and 6.4 (Intel) This product is fully supported with all kernels in the 2.2 tree. Please reference the following number(s) when searching the Digi International web site (www.digi.com) or ftp site (ftp.digi.com) for the latest software package: RPM Part Number: 40002090_B Interested parties may also wish to join the Unofficial Digi Linux User's Group by sending an e-mail to: list@remotepoint.com with subscribe digi-linux-users in the body of the message. 2. SUPPORTED PRODUCTS EtherLite(R) Terminal Server Modules - EtherLite 2 EtherLite 8 EtherLite 16 EtherLite 32 3. ENHANCEMENTS * Now distributed in Source RPM format. * Most device nodes created in /dev/dg/els by default. This includes the dialout (cun*) nodes, which are deprecated. * Added line locking and function entry code to better deal with tty and termios pointers changing to NULL on close or hangup. * Deleted printk on receipt of undefined ioctls to work better with incoming PPP. * Added line discipline write wakeup in write routine. * Enhanced cddiag output to include FAS command history dump if -c option is used. * Enabled hangup routine, fixed problem in ctf_handle_recv(). * Changed open routine to stall up to one minute so gettys will not fail when the system first comes up. * Made cdetherd bring units online a bit faster. * Changed MOD_INC and MOD_DEC_COUNT usage to reflect latest rules. 4. BUG FIXES * Fixed a bug in bypassing tty flip buffers which caused a problem with PPP. * Fixed a bug in dinc which caused it to not work with native Linux ports. * Fixed a problem in el_set_termios that would attempt to send FAS commands when the line is offline. * Fixed a bug in handling FAS_WAIT_SEND completions pointed out by Kees Cook. * Changed elsdiag to properly handle reads and writes by returning with an error. 5. KNOWN LIMITATIONS * The maximum number of Etherlite adapters is set to 63 units. That represents a limit of 126 to 2016 serial ports, depending on the mix of 2, 4, 8, 16, and 32 port units. * Although there are numerous places within the rpm that might imply support for additional hardware platforms, this release is valid only for 32bit i386 and SPARC platforms. * The driver supports Linux kernels 2.2.10 thru 2.2.13. It has been tested on Redhat 6.0 under I386 and Sparc, and SuSE and Caldera on I386. Please let us know of your experiences on other releases. * While some of the older Etherlite units support split baud rates, since neither Linux nor newer Etherlite modules have support for split baud rates, this driver doesn't support split baud rates. * The driver is supported as a module. No attempt has been made to test the driver as built into the kernel. * For EL-8+ units only, the driver requires that the Etherlite have version 7.2 or newer firmware. The firmware can be updated using cdipserv. * The driver registers eight "fake" tty devices /dev/ttyN0 - /dev/ttyN8 in the /proc/devices filesystem. 6. ADDITIONAL INFORMATION * This driver is distributed both as a source RPM and as a compressed tar file of the source. For those not familiar with source RPMs, Digi has created a 'digirpm' shell script which can be used to automatically compile the provided source RPM. The digirpm script will then install the resulting binary RPM automatically. The digirpm script is available at http://support.digi.com/support/drivers/linux/ and is part number 8006862. If you do not wish to use the digirpm script, keep in mind you need to execute three rpm commands to get the Etherlite driver installed and ready to work on your system. Note that the directories used in the three rpm commands below may be different on different Linux distributions. #rpm -i 40002090_B.src.rpm #rpm -bb /usr/src/redhat/SPECS/els.spec #rpm -i /usr/src/redhat/RPMS/i386/els-1.02-1.i386.rpm If you install the tar file of the source, it should be untarred as /usr/src/drv/els and "make install" should be run as root from within the created directory. In order to make the driver available for use, you must cause the driver to be loaded. This can be accomplished on RedHat distributions by doing a "chkconfig --add els" to enable the driver rc scripts for start and stop at system reboot and shutdown. On other distributions, you should link the /etc/rc.d/init.d/els script as appropriate. To load the driver, either run run the script by hand ("/etc/rc.d/init.d/dgdm start") or reboot the system. Red Hat: # chkconfig --add els Caldera: # ln -s /etc/rc.d/init.d/els /etc/rc.d/rc5.d/S85els SuSe: # ln -s /etc/rc.d/init.d/els /etc/rc.d/rc2.d/S85els Once the driver has been loaded, device nodes must be created before you can configure the dgdm adapters. The els script will automatically do this for you at reboot. To create device nodes by hand, do a "cdmknods -auto". This will create device nodes for all of the supported EtherLite(R) units found on your system. However, It will not remove any device nodes that do not match your current hardware configuration. See the cdmknods(1) man page for additional details. * This driver uses a configuration file, /etc/els.conf, to build unit and device nodes, and to start up the cdetherd daemons which are required for Ethernet communications. Run the script 'define_etherlites' to add or create units in the /etc/els.conf file. This script can also generate a file of the new inittab entries for the ports if you wish. * Before the driver will work, the Etherlite units need an IP address. By default the unit will issue BOOTP and DHCP requests at powerup unless it has a stored IP address. Because most Linux distributions do not always have a BOOTP or DHCP server included in their default configurations, the included cdipserv utility provides a way of setting the IP address of each unit. Alternately, you can program the IP address into the Etherlite units through the first serial port. To use cdipserv to store an an IP address in a unit: 1) connect the EtherLite unit to power and to your local hub (you may not be able to communicate with the EtherLite if it is not on the same network segment as your Linux machine). 2) Next get the MAC address of the bottom of the Etherlite unit. The address is six pairs of letters and digits with dashes, for example, 00-A0-E7-00-00-09. Each Etherlite's MAC address is unique. 3) Then enter this command as root: cdipserv -store 00-A0-E7-??-??-?? the.new.IP.address where "the.new.IP.address" is replaced with a free IP network address good on your network. (For example, 192.168.0.32) You will need to repeat this proceedure for each unit that needs to have it's IP address stored before that unit will be usable. * NOTE that the permissions of I/O ports is set as follows: ttyN??? - normal serial ports 0664 cun??? - dialout ports 0600 lp??8 - printer ports 0600 * This package includes several support and configuration utilites: cdipserv - Can set and store IP addresses in units. cdstty - Sets baud rates, timeouts, other serial parameters dinc - A simple (no setup) barebones communications utility cdmknods - a program to create nodes and inittab add-on file cddiag - a program to report on a line's current state & history. cdflush - a program to remotely reset an Etherlite dtrcels - a program to dump the device's trace buffer contents * A copy of these release notes can be found as: /usr/src/dg/els/drv/linux/release.notes after the rpm has been installed. 7. HISTORY version A * Limited received data packets to maximum of 384 bytes per port to prevent possible unit offline problems. version 2P * Fixed problems referring to /sbin vs /usr/sbin. * Added man pages for cdipserv, cdflush, cdmknutils, dinc, cdetherd, cdstty and define_etherlites. * Added -addunit and -uninstall features to cdmknods. * Fixed uninstall script used by RPM. * Fixed problems in define_etherlites script (formerly define_units.) * Fixed problems with units getting stuck once offline. * Fixed problems with parallel ports. * Fixed problems with timers not waiting long enough. * Fixed problem with cdetherd timing out too quickly.