diff options
Diffstat (limited to 'Documentation/moxa-smartio')
| -rw-r--r-- | Documentation/moxa-smartio | 392 |
1 files changed, 252 insertions, 140 deletions
diff --git a/Documentation/moxa-smartio b/Documentation/moxa-smartio index fe24ecc6372e..5337e80a5b96 100644 --- a/Documentation/moxa-smartio +++ b/Documentation/moxa-smartio | |||
| @@ -1,14 +1,22 @@ | |||
| 1 | ============================================================================= | 1 | ============================================================================= |
| 2 | 2 | MOXA Smartio/Industio Family Device Driver Installation Guide | |
| 3 | MOXA Smartio Family Device Driver Ver 1.1 Installation Guide | 3 | for Linux Kernel 2.4.x, 2.6.x |
| 4 | for Linux Kernel 2.2.x and 2.0.3x | 4 | Copyright (C) 2008, Moxa Inc. |
| 5 | Copyright (C) 1999, Moxa Technologies Co, Ltd. | ||
| 6 | ============================================================================= | 5 | ============================================================================= |
| 6 | Date: 01/21/2008 | ||
| 7 | |||
| 7 | Content | 8 | Content |
| 8 | 9 | ||
| 9 | 1. Introduction | 10 | 1. Introduction |
| 10 | 2. System Requirement | 11 | 2. System Requirement |
| 11 | 3. Installation | 12 | 3. Installation |
| 13 | 3.1 Hardware installation | ||
| 14 | 3.2 Driver files | ||
| 15 | 3.3 Device naming convention | ||
| 16 | 3.4 Module driver configuration | ||
| 17 | 3.5 Static driver configuration for Linux kernel 2.4.x and 2.6.x. | ||
| 18 | 3.6 Custom configuration | ||
| 19 | 3.7 Verify driver installation | ||
| 12 | 4. Utilities | 20 | 4. Utilities |
| 13 | 5. Setserial | 21 | 5. Setserial |
| 14 | 6. Troubleshooting | 22 | 6. Troubleshooting |
| @@ -16,27 +24,48 @@ Content | |||
| 16 | ----------------------------------------------------------------------------- | 24 | ----------------------------------------------------------------------------- |
| 17 | 1. Introduction | 25 | 1. Introduction |
| 18 | 26 | ||
| 19 | The Smartio family Linux driver, Ver. 1.1, supports following multiport | 27 | The Smartio/Industio/UPCI family Linux driver supports following multiport |
| 20 | boards. | 28 | boards. |
| 21 | 29 | ||
| 22 | -C104P/H/HS, C104H/PCI, C104HS/PCI, CI-104J 4 port multiport board. | 30 | - 2 ports multiport board |
| 23 | -C168P/H/HS, C168H/PCI 8 port multiport board. | 31 | CP-102U, CP-102UL, CP-102UF |
| 24 | 32 | CP-132U-I, CP-132UL, | |
| 25 | This driver has been modified a little and cleaned up from the Moxa | 33 | CP-132, CP-132I, CP132S, CP-132IS, |
| 26 | contributed driver code and merged into Linux 2.2.14pre. In particular | 34 | CI-132, CI-132I, CI-132IS, |
| 27 | official major/minor numbers have been assigned which are different to | 35 | (C102H, C102HI, C102HIS, C102P, CP-102, CP-102S) |
| 28 | those the original Moxa supplied driver used. | 36 | |
| 37 | - 4 ports multiport board | ||
| 38 | CP-104EL, | ||
| 39 | CP-104UL, CP-104JU, | ||
| 40 | CP-134U, CP-134U-I, | ||
| 41 | C104H/PCI, C104HS/PCI, | ||
| 42 | CP-114, CP-114I, CP-114S, CP-114IS, CP-114UL, | ||
| 43 | C104H, C104HS, | ||
| 44 | CI-104J, CI-104JS, | ||
| 45 | CI-134, CI-134I, CI-134IS, | ||
| 46 | (C114HI, CT-114I, C104P) | ||
| 47 | POS-104UL, | ||
| 48 | CB-114, | ||
| 49 | CB-134I | ||
| 50 | |||
| 51 | - 8 ports multiport board | ||
| 52 | CP-118EL, CP-168EL, | ||
| 53 | CP-118U, CP-168U, | ||
| 54 | C168H/PCI, | ||
| 55 | C168H, C168HS, | ||
| 56 | (C168P), | ||
| 57 | CB-108 | ||
| 29 | 58 | ||
| 30 | This driver and installation procedure have been developed upon Linux Kernel | 59 | This driver and installation procedure have been developed upon Linux Kernel |
| 31 | 2.2.5 and backward compatible to 2.0.3x. This driver supports Intel x86 and | 60 | 2.4.x and 2.6.x. This driver supports Intel x86 hardware platform. In order |
| 32 | Alpha hardware platform. In order to maintain compatibility, this version | 61 | to maintain compatibility, this version has also been properly tested with |
| 33 | has also been properly tested with RedHat, OpenLinux, TurboLinux and | 62 | RedHat, Mandrake, Fedora and S.u.S.E Linux. However, if compatibility problem |
| 34 | S.u.S.E Linux. However, if compatibility problem occurs, please contact | 63 | occurs, please contact Moxa at support@moxa.com.tw. |
| 35 | Moxa at support@moxa.com.tw. | ||
| 36 | 64 | ||
| 37 | In addition to device driver, useful utilities are also provided in this | 65 | In addition to device driver, useful utilities are also provided in this |
| 38 | version. They are | 66 | version. They are |
| 39 | - msdiag Diagnostic program for detecting installed Moxa Smartio boards. | 67 | - msdiag Diagnostic program for displaying installed Moxa |
| 68 | Smartio/Industio boards. | ||
| 40 | - msmon Monitor program to observe data count and line status signals. | 69 | - msmon Monitor program to observe data count and line status signals. |
| 41 | - msterm A simple terminal program which is useful in testing serial | 70 | - msterm A simple terminal program which is useful in testing serial |
| 42 | ports. | 71 | ports. |
| @@ -47,8 +76,7 @@ Content | |||
| 47 | GNU General Public License in this version. Please refer to GNU General | 76 | GNU General Public License in this version. Please refer to GNU General |
| 48 | Public License announcement in each source code file for more detail. | 77 | Public License announcement in each source code file for more detail. |
| 49 | 78 | ||
| 50 | In Moxa's ftp sites, you may always find latest driver at | 79 | In Moxa's Web sites, you may always find latest driver at http://web.moxa.com. |
| 51 | ftp://ftp.moxa.com or ftp://ftp.moxa.com.tw. | ||
| 52 | 80 | ||
| 53 | This version of driver can be installed as Loadable Module (Module driver) | 81 | This version of driver can be installed as Loadable Module (Module driver) |
| 54 | or built-in into kernel (Static driver). You may refer to following | 82 | or built-in into kernel (Static driver). You may refer to following |
| @@ -61,8 +89,8 @@ Content | |||
| 61 | 89 | ||
| 62 | ----------------------------------------------------------------------------- | 90 | ----------------------------------------------------------------------------- |
| 63 | 2. System Requirement | 91 | 2. System Requirement |
| 64 | - Hardware platform: Intel x86 or Alpha machine | 92 | - Hardware platform: Intel x86 machine |
| 65 | - Kernel version: 2.0.3x or 2.2.x | 93 | - Kernel version: 2.4.x or 2.6.x |
| 66 | - gcc version 2.72 or later | 94 | - gcc version 2.72 or later |
| 67 | - Maximum 4 boards can be installed in combination | 95 | - Maximum 4 boards can be installed in combination |
| 68 | 96 | ||
| @@ -70,9 +98,18 @@ Content | |||
| 70 | 3. Installation | 98 | 3. Installation |
| 71 | 99 | ||
| 72 | 3.1 Hardware installation | 100 | 3.1 Hardware installation |
| 101 | 3.2 Driver files | ||
| 102 | 3.3 Device naming convention | ||
| 103 | 3.4 Module driver configuration | ||
| 104 | 3.5 Static driver configuration for Linux kernel 2.4.x, 2.6.x. | ||
| 105 | 3.6 Custom configuration | ||
| 106 | 3.7 Verify driver installation | ||
| 107 | |||
| 108 | |||
| 109 | 3.1 Hardware installation | ||
| 73 | 110 | ||
| 74 | There are two types of buses, ISA and PCI, for Smartio family multiport | 111 | There are two types of buses, ISA and PCI, for Smartio/Industio |
| 75 | board. | 112 | family multiport board. |
| 76 | 113 | ||
| 77 | ISA board | 114 | ISA board |
| 78 | --------- | 115 | --------- |
| @@ -81,47 +118,57 @@ Content | |||
| 81 | installation procedure in User's Manual before proceed any further. | 118 | installation procedure in User's Manual before proceed any further. |
| 82 | Please make sure the JP1 is open after the ISA board is set properly. | 119 | Please make sure the JP1 is open after the ISA board is set properly. |
| 83 | 120 | ||
| 84 | PCI board | 121 | PCI/UPCI board |
| 85 | --------- | 122 | -------------- |
| 86 | You may need to adjust IRQ usage in BIOS to avoid from IRQ conflict | 123 | You may need to adjust IRQ usage in BIOS to avoid from IRQ conflict |
| 87 | with other ISA devices. Please refer to hardware installation | 124 | with other ISA devices. Please refer to hardware installation |
| 88 | procedure in User's Manual in advance. | 125 | procedure in User's Manual in advance. |
| 89 | 126 | ||
| 90 | IRQ Sharing | 127 | PCI IRQ Sharing |
| 91 | ----------- | 128 | ----------- |
| 92 | Each port within the same multiport board shares the same IRQ. Up to | 129 | Each port within the same multiport board shares the same IRQ. Up to |
| 93 | 4 Moxa Smartio Family multiport boards can be installed together on | 130 | 4 Moxa Smartio/Industio PCI Family multiport boards can be installed |
| 94 | one system and they can share the same IRQ. | 131 | together on one system and they can share the same IRQ. |
| 132 | |||
| 95 | 133 | ||
| 96 | 3.2 Driver files and device naming convention | 134 | 3.2 Driver files |
| 97 | 135 | ||
| 98 | The driver file may be obtained from ftp, CD-ROM or floppy disk. The | 136 | The driver file may be obtained from ftp, CD-ROM or floppy disk. The |
| 99 | first step, anyway, is to copy driver file "mxser.tgz" into specified | 137 | first step, anyway, is to copy driver file "mxser.tgz" into specified |
| 100 | directory. e.g. /moxa. The execute commands as below. | 138 | directory. e.g. /moxa. The execute commands as below. |
| 101 | 139 | ||
| 140 | # cd / | ||
| 141 | # mkdir moxa | ||
| 102 | # cd /moxa | 142 | # cd /moxa |
| 103 | # tar xvf /dev/fd0 | 143 | # tar xvf /dev/fd0 |
| 144 | |||
| 104 | or | 145 | or |
| 146 | |||
| 147 | # cd / | ||
| 148 | # mkdir moxa | ||
| 105 | # cd /moxa | 149 | # cd /moxa |
| 106 | # cp /mnt/cdrom/<driver directory>/mxser.tgz . | 150 | # cp /mnt/cdrom/<driver directory>/mxser.tgz . |
| 107 | # tar xvfz mxser.tgz | 151 | # tar xvfz mxser.tgz |
| 108 | 152 | ||
| 153 | |||
| 154 | 3.3 Device naming convention | ||
| 155 | |||
| 109 | You may find all the driver and utilities files in /moxa/mxser. | 156 | You may find all the driver and utilities files in /moxa/mxser. |
| 110 | Following installation procedure depends on the model you'd like to | 157 | Following installation procedure depends on the model you'd like to |
| 111 | run the driver. If you prefer module driver, please refer to 3.3. | 158 | run the driver. If you prefer module driver, please refer to 3.4. |
| 112 | If static driver is required, please refer to 3.4. | 159 | If static driver is required, please refer to 3.5. |
| 113 | 160 | ||
| 114 | Dialin and callout port | 161 | Dialin and callout port |
| 115 | ----------------------- | 162 | ----------------------- |
| 116 | This driver remains traditional serial device properties. There're | 163 | This driver remains traditional serial device properties. There are |
| 117 | two special file name for each serial port. One is dial-in port | 164 | two special file name for each serial port. One is dial-in port |
| 118 | which is named "ttyMxx". For callout port, the naming convention | 165 | which is named "ttyMxx". For callout port, the naming convention |
| 119 | is "cumxx". | 166 | is "cumxx". |
| 120 | 167 | ||
| 121 | Device naming when more than 2 boards installed | 168 | Device naming when more than 2 boards installed |
| 122 | ----------------------------------------------- | 169 | ----------------------------------------------- |
| 123 | Naming convention for each Smartio multiport board is pre-defined | 170 | Naming convention for each Smartio/Industio multiport board is |
| 124 | as below. | 171 | pre-defined as below. |
| 125 | 172 | ||
| 126 | Board Num. Dial-in Port Callout port | 173 | Board Num. Dial-in Port Callout port |
| 127 | 1st board ttyM0 - ttyM7 cum0 - cum7 | 174 | 1st board ttyM0 - ttyM7 cum0 - cum7 |
| @@ -129,6 +176,12 @@ Content | |||
| 129 | 3rd board ttyM16 - ttyM23 cum16 - cum23 | 176 | 3rd board ttyM16 - ttyM23 cum16 - cum23 |
| 130 | 4th board ttyM24 - ttym31 cum24 - cum31 | 177 | 4th board ttyM24 - ttym31 cum24 - cum31 |
| 131 | 178 | ||
| 179 | |||
| 180 | !!!!!!!!!!!!!!!!!!!! NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
| 181 | Under Kernel 2.6 the cum Device is Obsolete. So use ttyM* | ||
| 182 | device instead. | ||
| 183 | !!!!!!!!!!!!!!!!!!!! NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
| 184 | |||
| 132 | Board sequence | 185 | Board sequence |
| 133 | -------------- | 186 | -------------- |
| 134 | This driver will activate ISA boards according to the parameter set | 187 | This driver will activate ISA boards according to the parameter set |
| @@ -138,69 +191,131 @@ Content | |||
| 138 | For PCI boards, their sequence will be after ISA boards and C168H/PCI | 191 | For PCI boards, their sequence will be after ISA boards and C168H/PCI |
| 139 | has higher priority than C104H/PCI boards. | 192 | has higher priority than C104H/PCI boards. |
| 140 | 193 | ||
| 141 | 3.3 Module driver configuration | 194 | 3.4 Module driver configuration |
| 142 | Module driver is easiest way to install. If you prefer static driver | 195 | Module driver is easiest way to install. If you prefer static driver |
| 143 | installation, please skip this paragraph. | 196 | installation, please skip this paragraph. |
| 144 | 1. Find "Makefile" in /moxa/mxser, then run | ||
| 145 | 197 | ||
| 146 | # make install | 198 | |
| 199 | ------------- Prepare to use the MOXA driver-------------------- | ||
| 200 | 3.4.1 Create tty device with correct major number | ||
| 201 | Before using MOXA driver, your system must have the tty devices | ||
| 202 | which are created with driver's major number. We offer one shell | ||
| 203 | script "msmknod" to simplify the procedure. | ||
| 204 | This step is only needed to be executed once. But you still | ||
| 205 | need to do this procedure when: | ||
| 206 | a. You change the driver's major number. Please refer the "3.7" | ||
| 207 | section. | ||
| 208 | b. Your total installed MOXA boards number is changed. Maybe you | ||
| 209 | add/delete one MOXA board. | ||
| 210 | c. You want to change the tty name. This needs to modify the | ||
| 211 | shell script "msmknod" | ||
| 212 | |||
| 213 | The procedure is: | ||
| 214 | # cd /moxa/mxser/driver | ||
| 215 | # ./msmknod | ||
| 216 | |||
| 217 | This shell script will require the major number for dial-in | ||
| 218 | device and callout device to create tty device. You also need | ||
| 219 | to specify the total installed MOXA board number. Default major | ||
| 220 | numbers for dial-in device and callout device are 30, 35. If | ||
| 221 | you need to change to other number, please refer section "3.7" | ||
| 222 | for more detailed procedure. | ||
| 223 | Msmknod will delete any special files occupying the same device | ||
| 224 | naming. | ||
| 225 | |||
| 226 | 3.4.2 Build the MOXA driver and utilities | ||
| 227 | Before using the MOXA driver and utilities, you need compile the | ||
| 228 | all the source code. This step is only need to be executed once. | ||
| 229 | But you still re-compile the source code if you modify the source | ||
| 230 | code. For example, if you change the driver's major number (see | ||
| 231 | "3.7" section), then you need to do this step again. | ||
| 232 | |||
| 233 | Find "Makefile" in /moxa/mxser, then run | ||
| 234 | |||
| 235 | # make clean; make install | ||
| 236 | |||
| 237 | !!!!!!!!!! NOTE !!!!!!!!!!!!!!!!! | ||
| 238 | For Red Hat 9, Red Hat Enterprise Linux AS3/ES3/WS3 & Fedora Core1: | ||
| 239 | # make clean; make installsp1 | ||
| 240 | |||
| 241 | For Red Hat Enterprise Linux AS4/ES4/WS4: | ||
| 242 | # make clean; make installsp2 | ||
| 243 | !!!!!!!!!! NOTE !!!!!!!!!!!!!!!!! | ||
| 147 | 244 | ||
| 148 | The driver files "mxser.o" and utilities will be properly compiled | 245 | The driver files "mxser.o" and utilities will be properly compiled |
| 149 | and copied to system directories respectively.Then run | 246 | and copied to system directories respectively. |
| 150 | 247 | ||
| 151 | # insmod mxser | 248 | ------------- Load MOXA driver-------------------- |
| 249 | 3.4.3 Load the MOXA driver | ||
| 152 | 250 | ||
| 153 | to activate the modular driver. You may run "lsmod" to check | 251 | # modprobe mxser <argument> |
| 154 | if "mxser.o" is activated. | ||
| 155 | 252 | ||
| 156 | 2. Create special files by executing "msmknod". | 253 | will activate the module driver. You may run "lsmod" to check |
| 157 | # cd /moxa/mxser/driver | 254 | if "mxser" is activated. If the MOXA board is ISA board, the |
| 158 | # ./msmknod | 255 | <argument> is needed. Please refer to section "3.4.5" for more |
| 256 | information. | ||
| 257 | |||
| 258 | |||
| 259 | ------------- Load MOXA driver on boot -------------------- | ||
| 260 | 3.4.4 For the above description, you may manually execute | ||
| 261 | "modprobe mxser" to activate this driver and run | ||
| 262 | "rmmod mxser" to remove it. | ||
| 263 | However, it's better to have a boot time configuration to | ||
| 264 | eliminate manual operation. Boot time configuration can be | ||
| 265 | achieved by rc file. We offer one "rc.mxser" file to simplify | ||
| 266 | the procedure under "moxa/mxser/driver". | ||
| 159 | 267 | ||
| 160 | Default major numbers for dial-in device and callout device are | 268 | But if you use ISA board, please modify the "modprobe ..." command |
| 161 | 174, 175. Msmknod will delete any special files occupying the same | 269 | to add the argument (see "3.4.5" section). After modifying the |
| 162 | device naming. | 270 | rc.mxser, please try to execute "/moxa/mxser/driver/rc.mxser" |
| 271 | manually to make sure the modification is ok. If any error | ||
| 272 | encountered, please try to modify again. If the modification is | ||
| 273 | completed, follow the below step. | ||
| 163 | 274 | ||
| 164 | 3. Up to now, you may manually execute "insmod mxser" to activate | 275 | Run following command for setting rc files. |
| 165 | this driver and run "rmmod mxser" to remove it. However, it's | ||
| 166 | better to have a boot time configuration to eliminate manual | ||
| 167 | operation. | ||
| 168 | Boot time configuration can be achieved by rc file. Run following | ||
| 169 | command for setting rc files. | ||
| 170 | 276 | ||
| 171 | # cd /moxa/mxser/driver | 277 | # cd /moxa/mxser/driver |
| 172 | # cp ./rc.mxser /etc/rc.d | 278 | # cp ./rc.mxser /etc/rc.d |
| 173 | # cd /etc/rc.d | 279 | # cd /etc/rc.d |
| 174 | 280 | ||
| 175 | You may have to modify part of the content in rc.mxser to specify | 281 | Check "rc.serial" is existed or not. If "rc.serial" doesn't exist, |
| 176 | parameters for ISA board. Please refer to rc.mxser for more detail. | 282 | create it by vi, run "chmod 755 rc.serial" to change the permission. |
| 177 | Find "rc.serial". If "rc.serial" doesn't exist, create it by vi. | 283 | Add "/etc/rc.d/rc.mxser" in last line, |
| 178 | Add "rc.mxser" in last line. Next, open rc.local by vi | ||
| 179 | and append following content. | ||
| 180 | 284 | ||
| 181 | if [ -f /etc/rc.d/rc.serial ]; then | 285 | Reboot and check if moxa.o activated by "lsmod" command. |
| 182 | sh /etc/rc.d/rc.serial | ||
| 183 | fi | ||
| 184 | 286 | ||
| 185 | 4. Reboot and check if mxser.o activated by "lsmod" command. | 287 | 3.4.5. If you'd like to drive Smartio/Industio ISA boards in the system, |
| 186 | 5. If you'd like to drive Smartio ISA boards in the system, you'll | 288 | you'll have to add parameter to specify CAP address of given |
| 187 | have to add parameter to specify CAP address of given board while | 289 | board while activating "mxser.o". The format for parameters are |
| 188 | activating "mxser.o". The format for parameters are as follows. | 290 | as follows. |
| 189 | 291 | ||
| 190 | insmod mxser ioaddr=0x???,0x???,0x???,0x??? | 292 | modprobe mxser ioaddr=0x???,0x???,0x???,0x??? |
| 191 | | | | | | 293 | | | | | |
| 192 | | | | +- 4th ISA board | 294 | | | | +- 4th ISA board |
| 193 | | | +------ 3rd ISA board | 295 | | | +------ 3rd ISA board |
| 194 | | +------------ 2nd ISA board | 296 | | +------------ 2nd ISA board |
| 195 | +------------------- 1st ISA board | 297 | +------------------- 1st ISA board |
| 196 | 298 | ||
| 197 | 3.4 Static driver configuration | 299 | 3.5 Static driver configuration for Linux kernel 2.4.x and 2.6.x |
| 300 | |||
| 301 | Note: To use static driver, you must install the linux kernel | ||
| 302 | source package. | ||
| 303 | |||
| 304 | 3.5.1 Backup the built-in driver in the kernel. | ||
| 305 | # cd /usr/src/linux/drivers/char | ||
| 306 | # mv mxser.c mxser.c.old | ||
| 307 | |||
| 308 | For Red Hat 7.x user, you need to create link: | ||
| 309 | # cd /usr/src | ||
| 310 | # ln -s linux-2.4 linux | ||
| 198 | 311 | ||
| 199 | 1. Create link | 312 | 3.5.2 Create link |
| 200 | # cd /usr/src/linux/drivers/char | 313 | # cd /usr/src/linux/drivers/char |
| 201 | # ln -s /moxa/mxser/driver/mxser.c mxser.c | 314 | # ln -s /moxa/mxser/driver/mxser.c mxser.c |
| 202 | 315 | ||
| 203 | 2. Add CAP address list for ISA boards | 316 | 3.5.3 Add CAP address list for ISA boards. For PCI boards user, |
| 317 | please skip this step. | ||
| 318 | |||
| 204 | In module mode, the CAP address for ISA board is given by | 319 | In module mode, the CAP address for ISA board is given by |
| 205 | parameter. In static driver configuration, you'll have to | 320 | parameter. In static driver configuration, you'll have to |
| 206 | assign it within driver's source code. If you will not | 321 | assign it within driver's source code. If you will not |
| @@ -222,73 +337,55 @@ Content | |||
| 222 | static int mxserBoardCAP[] | 337 | static int mxserBoardCAP[] |
| 223 | = {0x280, 0x180, 0x00, 0x00}; | 338 | = {0x280, 0x180, 0x00, 0x00}; |
| 224 | 339 | ||
| 225 | 3. Modify tty_io.c | 340 | 3.5.4 Setup kernel configuration |
| 226 | # cd /usr/src/linux/drivers/char/ | ||
| 227 | # vi tty_io.c | ||
| 228 | Find pty_init(), insert "mxser_init()" as | ||
| 229 | 341 | ||
| 230 | pty_init(); | 342 | Configure the kernel: |
| 231 | mxser_init(); | ||
| 232 | 343 | ||
| 233 | 4. Modify tty.h | 344 | # cd /usr/src/linux |
| 234 | # cd /usr/src/linux/include/linux | 345 | # make menuconfig |
| 235 | # vi tty.h | ||
| 236 | Find extern int tty_init(void), insert "mxser_init()" as | ||
| 237 | 346 | ||
| 238 | extern int tty_init(void); | 347 | You will go into a menu-driven system. Please select [Character |
| 239 | extern int mxser_init(void); | 348 | devices][Non-standard serial port support], enable the [Moxa |
| 240 | 349 | SmartIO support] driver with "[*]" for built-in (not "[M]"), then | |
| 241 | 5. Modify Makefile | 350 | select [Exit] to exit this program. |
| 242 | # cd /usr/src/linux/drivers/char | ||
| 243 | # vi Makefile | ||
| 244 | Find L_OBJS := tty_io.o ...... random.o, add | ||
| 245 | "mxser.o" at last of this line as | ||
| 246 | L_OBJS := tty_io.o ....... mxser.o | ||
| 247 | 351 | ||
| 248 | 6. Rebuild kernel | 352 | 3.5.5 Rebuild kernel |
| 249 | The following are for Linux kernel rebuilding,for your reference only. | 353 | The following are for Linux kernel rebuilding, for your |
| 354 | reference only. | ||
| 250 | For appropriate details, please refer to the Linux document. | 355 | For appropriate details, please refer to the Linux document. |
| 251 | 356 | ||
| 252 | If 'lilo' utility is installed, please use 'make zlilo' to rebuild | ||
| 253 | kernel. If 'lilo' is not installed, please follow the following steps. | ||
| 254 | |||
| 255 | a. cd /usr/src/linux | 357 | a. cd /usr/src/linux |
| 256 | b. make clean /* take a few minutes */ | 358 | b. make clean /* take a few minutes */ |
| 257 | c. make bzImage /* take probably 10-20 minutes */ | 359 | c. make dep /* take a few minutes */ |
| 258 | d. Backup original boot kernel. /* optional step */ | 360 | d. make bzImage /* take probably 10-20 minutes */ |
| 259 | e. cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz | 361 | e. make install /* copy boot image to correct position */ |
| 260 | f. Please make sure the boot kernel (vmlinuz) is in the | 362 | f. Please make sure the boot kernel (vmlinuz) is in the |
| 261 | correct position. If you use 'lilo' utility, you should | 363 | correct position. |
| 262 | check /etc/lilo.conf 'image' item specified the path | 364 | g. If you use 'lilo' utility, you should check /etc/lilo.conf |
| 263 | which is the 'vmlinuz' path, or you will load wrong | 365 | 'image' item specified the path which is the 'vmlinuz' path, |
| 264 | (or old) boot kernel image (vmlinuz). | 366 | or you will load wrong (or old) boot kernel image (vmlinuz). |
| 265 | g. chmod 400 /vmlinuz | 367 | After checking /etc/lilo.conf, please run "lilo". |
| 266 | h. lilo | 368 | |
| 267 | i. rdev -R /vmlinuz 1 | 369 | Note that if the result of "make bzImage" is ERROR, then you have to |
| 268 | j. sync | 370 | go back to Linux configuration Setup. Type "make menuconfig" in |
| 269 | 371 | directory /usr/src/linux. | |
| 270 | Note that if the result of "make zImage" is ERROR, then you have to | 372 | |
| 271 | go back to Linux configuration Setup. Type "make config" in directory | 373 | |
| 272 | /usr/src/linux or "setup". | 374 | 3.5.6 Make tty device and special file |
| 273 | |||
| 274 | Since system include file, /usr/src/linux/include/linux/interrupt.h, | ||
| 275 | is modified each time the MOXA driver is installed, kernel rebuilding | ||
| 276 | is inevitable. And it takes about 10 to 20 minutes depends on the | ||
| 277 | machine. | ||
| 278 | |||
| 279 | 7. Make utility | ||
| 280 | # cd /moxa/mxser/utility | ||
| 281 | # make install | ||
| 282 | |||
| 283 | 8. Make special file | ||
| 284 | # cd /moxa/mxser/driver | 375 | # cd /moxa/mxser/driver |
| 285 | # ./msmknod | 376 | # ./msmknod |
| 286 | 377 | ||
| 287 | 9. Reboot | 378 | 3.5.7 Make utility |
| 379 | # cd /moxa/mxser/utility | ||
| 380 | # make clean; make install | ||
| 381 | |||
| 382 | 3.5.8 Reboot | ||
| 288 | 383 | ||
| 289 | 3.5 Custom configuration | 384 | |
| 385 | |||
| 386 | 3.6 Custom configuration | ||
| 290 | Although this driver already provides you default configuration, you | 387 | Although this driver already provides you default configuration, you |
| 291 | still can change the device name and major number.The instruction to | 388 | still can change the device name and major number. The instruction to |
| 292 | change these parameters are shown as below. | 389 | change these parameters are shown as below. |
| 293 | 390 | ||
| 294 | Change Device name | 391 | Change Device name |
| @@ -306,33 +403,37 @@ Content | |||
| 306 | 2 free major numbers for this driver. There are 3 steps to change | 403 | 2 free major numbers for this driver. There are 3 steps to change |
| 307 | major numbers. | 404 | major numbers. |
| 308 | 405 | ||
| 309 | 1. Find free major numbers | 406 | 3.6.1 Find free major numbers |
| 310 | In /proc/devices, you may find all the major numbers occupied | 407 | In /proc/devices, you may find all the major numbers occupied |
| 311 | in the system. Please select 2 major numbers that are available. | 408 | in the system. Please select 2 major numbers that are available. |
| 312 | e.g. 40, 45. | 409 | e.g. 40, 45. |
| 313 | 2. Create special files | 410 | 3.6.2 Create special files |
| 314 | Run /moxa/mxser/driver/msmknod to create special files with | 411 | Run /moxa/mxser/driver/msmknod to create special files with |
| 315 | specified major numbers. | 412 | specified major numbers. |
| 316 | 3. Modify driver with new major number | 413 | 3.6.3 Modify driver with new major number |
| 317 | Run vi to open /moxa/mxser/driver/mxser.c. Locate the line | 414 | Run vi to open /moxa/mxser/driver/mxser.c. Locate the line |
| 318 | contains "MXSERMAJOR". Change the content as below. | 415 | contains "MXSERMAJOR". Change the content as below. |
| 319 | #define MXSERMAJOR 40 | 416 | #define MXSERMAJOR 40 |
| 320 | #define MXSERCUMAJOR 45 | 417 | #define MXSERCUMAJOR 45 |
| 321 | 4. Run # make install in /moxa/mxser/driver. | 418 | 3.6.4 Run "make clean; make install" in /moxa/mxser/driver. |
| 322 | 419 | ||
| 323 | 3.6 Verify driver installation | 420 | 3.7 Verify driver installation |
| 324 | You may refer to /var/log/messages to check the latest status | 421 | You may refer to /var/log/messages to check the latest status |
| 325 | log reported by this driver whenever it's activated. | 422 | log reported by this driver whenever it's activated. |
| 423 | |||
| 326 | ----------------------------------------------------------------------------- | 424 | ----------------------------------------------------------------------------- |
| 327 | 4. Utilities | 425 | 4. Utilities |
| 328 | There are 3 utilities contained in this driver. They are msdiag, msmon and | 426 | There are 3 utilities contained in this driver. They are msdiag, msmon and |
| 329 | msterm. These 3 utilities are released in form of source code. They should | 427 | msterm. These 3 utilities are released in form of source code. They should |
| 330 | be compiled into executable file and copied into /usr/bin. | 428 | be compiled into executable file and copied into /usr/bin. |
| 331 | 429 | ||
| 430 | Before using these utilities, please load driver (refer 3.4 & 3.5) and | ||
| 431 | make sure you had run the "msmknod" utility. | ||
| 432 | |||
| 332 | msdiag - Diagnostic | 433 | msdiag - Diagnostic |
| 333 | -------------------- | 434 | -------------------- |
| 334 | This utility provides the function to detect what Moxa Smartio multiport | 435 | This utility provides the function to display what Moxa Smartio/Industio |
| 335 | board exists in the system. | 436 | board found by driver in the system. |
| 336 | 437 | ||
| 337 | msmon - Port Monitoring | 438 | msmon - Port Monitoring |
| 338 | ----------------------- | 439 | ----------------------- |
| @@ -353,12 +454,13 @@ Content | |||
| 353 | application, for example, sending AT command to a modem connected to the | 454 | application, for example, sending AT command to a modem connected to the |
| 354 | port or used as a terminal for login purpose. Note that this is only a | 455 | port or used as a terminal for login purpose. Note that this is only a |
| 355 | dumb terminal emulation without handling full screen operation. | 456 | dumb terminal emulation without handling full screen operation. |
| 457 | |||
| 356 | ----------------------------------------------------------------------------- | 458 | ----------------------------------------------------------------------------- |
| 357 | 5. Setserial | 459 | 5. Setserial |
| 358 | 460 | ||
| 359 | Supported Setserial parameters are listed as below. | 461 | Supported Setserial parameters are listed as below. |
| 360 | 462 | ||
| 361 | uart set UART type(16450-->disable FIFO, 16550A-->enable FIFO) | 463 | uart set UART type(16450-->disable FIFO, 16550A-->enable FIFO) |
| 362 | close_delay set the amount of time(in 1/100 of a second) that DTR | 464 | close_delay set the amount of time(in 1/100 of a second) that DTR |
| 363 | should be kept low while being closed. | 465 | should be kept low while being closed. |
| 364 | closing_wait set the amount of time(in 1/100 of a second) that the | 466 | closing_wait set the amount of time(in 1/100 of a second) that the |
| @@ -366,7 +468,13 @@ Content | |||
| 366 | being closed, before the receiver is disable. | 468 | being closed, before the receiver is disable. |
| 367 | spd_hi Use 57.6kb when the application requests 38.4kb. | 469 | spd_hi Use 57.6kb when the application requests 38.4kb. |
| 368 | spd_vhi Use 115.2kb when the application requests 38.4kb. | 470 | spd_vhi Use 115.2kb when the application requests 38.4kb. |
| 471 | spd_shi Use 230.4kb when the application requests 38.4kb. | ||
| 472 | spd_warp Use 460.8kb when the application requests 38.4kb. | ||
| 369 | spd_normal Use 38.4kb when the application requests 38.4kb. | 473 | spd_normal Use 38.4kb when the application requests 38.4kb. |
| 474 | spd_cust Use the custom divisor to set the speed when the | ||
| 475 | application requests 38.4kb. | ||
| 476 | divisor This option set the custom divison. | ||
| 477 | baud_base This option set the base baud rate. | ||
| 370 | 478 | ||
| 371 | ----------------------------------------------------------------------------- | 479 | ----------------------------------------------------------------------------- |
| 372 | 6. Troubleshooting | 480 | 6. Troubleshooting |
| @@ -375,8 +483,9 @@ Content | |||
| 375 | possible. If all the possible solutions fail, please contact our technical | 483 | possible. If all the possible solutions fail, please contact our technical |
| 376 | support team to get more help. | 484 | support team to get more help. |
| 377 | 485 | ||
| 378 | Error msg: More than 4 Moxa Smartio family boards found. Fifth board and | 486 | |
| 379 | after are ignored. | 487 | Error msg: More than 4 Moxa Smartio/Industio family boards found. Fifth board |
| 488 | and after are ignored. | ||
| 380 | Solution: | 489 | Solution: |
| 381 | To avoid this problem, please unplug fifth and after board, because Moxa | 490 | To avoid this problem, please unplug fifth and after board, because Moxa |
| 382 | driver supports up to 4 boards. | 491 | driver supports up to 4 boards. |
| @@ -384,7 +493,7 @@ Content | |||
| 384 | Error msg: Request_irq fail, IRQ(?) may be conflict with another device. | 493 | Error msg: Request_irq fail, IRQ(?) may be conflict with another device. |
| 385 | Solution: | 494 | Solution: |
| 386 | Other PCI or ISA devices occupy the assigned IRQ. If you are not sure | 495 | Other PCI or ISA devices occupy the assigned IRQ. If you are not sure |
| 387 | which device causes the situation,please check /proc/interrupts to find | 496 | which device causes the situation, please check /proc/interrupts to find |
| 388 | free IRQ and simply change another free IRQ for Moxa board. | 497 | free IRQ and simply change another free IRQ for Moxa board. |
| 389 | 498 | ||
| 390 | Error msg: Board #: C1xx Series(CAP=xxx) interrupt number invalid. | 499 | Error msg: Board #: C1xx Series(CAP=xxx) interrupt number invalid. |
| @@ -397,15 +506,18 @@ Content | |||
| 397 | Moxa ISA board needs an interrupt vector.Please refer to user's manual | 506 | Moxa ISA board needs an interrupt vector.Please refer to user's manual |
| 398 | "Hardware Installation" chapter to set interrupt vector. | 507 | "Hardware Installation" chapter to set interrupt vector. |
| 399 | 508 | ||
| 400 | Error msg: Couldn't install MOXA Smartio family driver! | 509 | Error msg: Couldn't install MOXA Smartio/Industio family driver! |
| 401 | Solution: | 510 | Solution: |
| 402 | Load Moxa driver fail, the major number may conflict with other devices. | 511 | Load Moxa driver fail, the major number may conflict with other devices. |
| 403 | Please refer to previous section 3.5 to change a free major number for | 512 | Please refer to previous section 3.7 to change a free major number for |
| 404 | Moxa driver. | 513 | Moxa driver. |
| 405 | 514 | ||
| 406 | Error msg: Couldn't install MOXA Smartio family callout driver! | 515 | Error msg: Couldn't install MOXA Smartio/Industio family callout driver! |
| 407 | Solution: | 516 | Solution: |
| 408 | Load Moxa callout driver fail, the callout device major number may | 517 | Load Moxa callout driver fail, the callout device major number may |
| 409 | conflict with other devices. Please refer to previous section 3.5 to | 518 | conflict with other devices. Please refer to previous section 3.7 to |
| 410 | change a free callout device major number for Moxa driver. | 519 | change a free callout device major number for Moxa driver. |
| 520 | |||
| 521 | |||
| 411 | ----------------------------------------------------------------------------- | 522 | ----------------------------------------------------------------------------- |
| 523 | |||
