Edgeport/22c on redhat RHE4 linux

thanks.

Installing the latest io_ti module did the trick.

I’m having the same problem listed in this thread using an Edgeport/416 and RHEL 4 2.6.9-89.0.23.ELsmp

i cannot upgrade the kernel, as it would break the production software currently running - and i’m at a loss to compile the modules in the link you have posted.

can i get some quick instruction on getting from the tarball to an installed io_ti.Ko?

I managed to install a TI unit on a 2.6.9 Red Hat 4 kernel. The biggest obstacle was obtaining the “complete” kernel source package as the kernel-devel rpm package was not complete.

Here are the steps I took in order to get the new io_ti module installed and working:

  • Log in as root

  • Make sure you have the full sources for your kernel installed
    and that you have successfully configured, built and run kernel from
    these sources before complicating your life with the new sources.
    Red Hat and CentOS 4 typically do not have the full sources installed with their kernel-devel package.
    These versions will require the .src.rpm kernel-devel package be downloaded and installed.

Download the matching kernel-devel .src.rpm package from your desired download source.

rpm -ivh /(path)/kernel*.src.rpm

cd /usr/src/redhat/SPECS

rpmbuild -bp --target=i686 kernel-2.6.spec

cp -a /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 /usr/src

ln -s /usr/src/linux-2.6.9 /usr/src/linux

Note: This will build the source tree for a x86 based architecture. For different architectures, (i.e. x86_64) pass the appropriate target variable (i.e. rpmbuild -bp --target=x86_64 kernel-2.6.spec ).

Once completed, a symlinked directory pointing to the latest Linux 2.6 kernel source should be available

  • Move to the usb/serial directory:
    cd /usr/src/linux-(ver)/drivers/usb/serial

  • Save your current Edgeport and USB serial driver source and binary
    files so you can restore them later if you wish:

    # mkdir orig
    # cp io* orig
    # cp Makefile orig
    
  • Download the Linux 2.6.9 sources for the Edgeport module:

http://gate.brimson.com/downloads/EP8_for_linux2.6.9.tgz

  • Unpack the files:

    # tar xvzf EP8_for_linux2.6.9.tgz
    

    This will unpack the new files into the current (…usb/serial) directory
    and to a newly created subdirectory: “io_utils”

  • Check the configuration and make certain that usbserial, io_edgeport and
    io_ti are all selected for inclusion:

    # cd /usr/src/linux
    
    # make xconfig    (or "make menuconfig")
    
        Select "USB Serial Converter support" under "USB support" and make
        certain that:
    
           "USB Serial Converter support"
           "USB Inside Out Edgeport Serial Driver"
           "USB Inside Out Edgeport Serial Driver (TI devices)"
    
        are all scheduled to be built as modules ("m" box).
    
        Make a note of their previous settings.  If any of these
        has previously been compiled in to your kernel ("y" box
        highlighted), then you'll need to rebuild your base kernel
        below also.  If these modules were previously excluded ("n"
        box highlighted) or previously selected to be included as
        modules ("m" box highlighted), then you can skip the base
        kernel compile step below.
    
        Finally, return to the main menu and select "Save and Exit".
    
  • If any of the three USB options selected above were previously compiled
    in to your kernel (“y” box highlighted), you’ll need to rebuild and reinstall
    your kernel. Otherwise you can skip to rebuilding the modules below. Rebuilding
    the kernel generally involves something like:

         make bzImage
         cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.21
         cp System.map /boot/System.map-2.4.21
    

    followed by updating your /boot/grub/menu.lst or /etc/lilo.conf file (followed
    in the later case by invoking “/sbin/lilo” to reread the file)

  • Build the new modules:

    # make modules
    
  • Install the new modules to /lib/modules/2.4.21/kernel/drivers/usb/serial:
    # make modules_install

  • Unplug any installed Edgeport USB cables from your computer and wait 10 seconds
    or so for the system to stabilize. (You can monitor the system messages file
    with “tail -f /var/log/messages” until usb related messages related to the
    newly-disconnected Edgeport devices cease.)

  • Remove old versions of the modules from your running kernel:
    /sbin/rmmod io_edgeport usbserial io_ti

  • Verify that none of the old modules is still loaded. The output of:

    # /sbin/lsmod
    

    should not include any mentions of io_ti, io_edgeport or usbserial. If
    it does you may have some program (e.g: getty) holding a USB port open.
    Do whatever you must to remove these modules. If all else fails, reboot
    with the Edgeports disconnected.

  • Make sure your module dependencies are up to date:

    /sbin/depmod -a

  • Copy the new modules to the kernel module directory if they are not automatically copied (you may want to make a copy of the existing modules prior to copying the new files):

    cp /usr/src/linux-2.6.9/drivers/usb/serial/io_ti.ko /lib/modules/uname -r/kernel/drivers/usb/serial

    # cp /usr/src/linux-2.6.9/drivers/usb/serial/io_edgeport.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial
    
  • Insert the USB cable from your Edgeport device.

  • Verify that the correct modules are loaded:

    /sbin/lsmod

    should now display entries for usbserial. Also, depending on which
    Edgeport devices you inserted, you should see an entry for io_edgeport
    (for Intel 930 based devices like the Edgeport/8) or io_ti (for TI
    based devices like the Edgeport 4s).

This won’t work with the 416 models. I’ve since discovered the 416 model is not the same as the TI model I have on hand.

The 416 models will require a newer patch located at:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fc4cbd755b75c7687b923da5b75ba4a64652582e

I am acquiring a 416 model in an effort to get this working in RH ES 4 and will post my results.

Okay, I was able to get the Edgeport 416 working using the following steps (in addition to the steps performed earlier):

Download the following patch and place it in the kernel sources directory (i.e. /usr/src/linux/drivers/usb/serial

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fc4cbd755b75c7687b923da5b75ba4a64652582e

cd /usr/src/linux/drivers/usb/serial

patch –p0 < (patch_file)

Type in names of files.

cd /usr/src/linux

make mrproper

make oldconfig

make modules

make modules_install

Copy the io_ti.ko module from /usr/src/linux/drivers/usb/serial to /lib/modules/uname –r/kernel/drivers/usb/serial

rmmod io_ti

modprobe –r io_ti

depmod -a

modprobe io_ti

Not sure why the last steps were necessary, but it worked to bypass a firmware load error.