The ionmode utility is older and intended for 2.4 kernels. It hasn’t been tested much on 2.6 kernels, so there very well may be issues such as what you’re running into.
Also, it appears that RS-485 may not be supported with ionmode and 2.6 kernels.
I’m getting this information from the Edgeport Driver Package for Linux release notes:
As a workaround, since the flag exists in the driver, you may want to try hard-compiling the driver to configure the ports as needed, for RS-422 at least.
I found the following entry in the io_ti.c driver:
edge_port->bUartMode = 0; /* Default is RS232 */
Looking at ionmode, I was able to find the values used for RS422:
echo " 1 RS422: No Terminating Resistor" 1>&2
echo " 9 RS422: Terminating Resistor" 1>&2
So, it seems that you can simply change the “0” default in the driver to either 1 or 9, recompile it and it will hard code the ports to RS-422.
You wouldn’t be able to dynamically change them though. Once the driver is compiled with a particular mode, it applies to all the ports and cannot be changed on the fly as with ionmode. For this ability, you should contact the linux-usb-devel mailing list to request the hooks be added/re-added into the driver.
About what you found on closer inspection, you may want to get in touch with the Linux maintainers referencing the patch link below, containing the ioctls (at the bottom).
It looks like this patch was submitted for 2.6.9 in 2004 to linux-usb-devel. However, I cannot tell if the patch ever made it into the 2.6.x kernels or if it did and at some point the ioctls were removed. Also, the Edgeport/4s is reference there, not the Edgeport/8s, so other minor changes may need to be made for it to be applicable to the Edgeport/8s model in particular.