2.9 KiB
Hercules Card Reader Device Commands
This document contains the Hercules console commands used to manage the card reader device (00C/3505).
View Device Status
devlist 00c
Example Output:
HHC02279I 0:000C 3505 3505 sockdev ascii trunc eof IO[2]
HHC02279I (no one currently connected)
Key Information:
IO[n]- Shows the I/O state number(no one currently connected)- Socket is free(client IP (<unknown>) connected)- Socket is in use
Reset Card Reader (When Stuck)
Method 1: Detach and Reattach (Recommended)
detach 00c
attach 00c 3505 3505 sockdev ascii trunc eof
This completely removes and recreates the device, clearing any stuck connections.
Method 2: Devinit (May Not Work if Socket is Wedged)
devinit 00c 3505 3505 sockdev ascii trunc eof
Note: devinit may fail with "Address already in use" if the socket is stuck. Use Method 1 instead.
Common Issues
Device Stuck in "IO[n] open" State
Symptoms:
devlist 00cshowsIO[5] openor similar- Client shown as connected even after jobs complete
- New connections rejected with "device busy or interrupt pending"
Solution:
detach 00c
attach 00c 3505 3505 sockdev ascii trunc eof
Connection Refused from Workflow
Symptoms:
- Workflow logs show:
Connection refusedfrom netcat - Device shows:
localhost:3505in devlist
Problem: Device bound to localhost only, not accepting external connections.
Solution: Use port number only (binds to all interfaces):
detach 00c
attach 00c 3505 3505 sockdev ascii trunc eof
DO NOT USE:
attach 00c 3505 localhost:3505 sockdev ascii trunc eof # Wrong - localhost only
attach 00c 3505 0.0.0.0:3505 sockdev ascii trunc eof # Also fails on some systems
Device Configuration for Workflow
For the Gitea workflow to connect successfully, the card reader must be configured to accept connections from any interface:
attach 00c 3505 3505 sockdev ascii trunc eof
Verify with:
devlist 00c
Should show:
HHC02279I 0:000C 3505 3505 sockdev ascii trunc eof IO[n]
Not:
HHC02279I 0:000C 3505 localhost:3505 sockdev ascii trunc eof IO[n] # Wrong
Troubleshooting Workflow Socket Issues
If workflows are failing with socket errors:
-
Check device status:
devlist 00c -
Look for stuck connections:
IO[5] openwith client connected = stuck
-
Reset the device:
detach 00c attach 00c 3505 3505 sockdev ascii trunc eof -
Verify it's ready:
devlist 00cShould show
(no one currently connected)
Prevention
The submit_job.py script now includes a 10-second delay between submissions to prevent socket conflicts:
- Upload job submits
- Wait 10 seconds for JES to process
- Compile job submits
This gives Hercules time to fully close the socket between connections.