The IRQ of your serial port hasn't been relevant for about 20 years.
Depending on how your serial port is configured, it may expect RTS/CTS or DTR/DSR handshaking before it will communicate(i.e. will consider the connection 'closed' when certain control lines aren't just right). You can configure this with stty. I think this turns it off.
Sometimes a serial transfer can be a RPITA...
There is usually a buffer of _at_least_ 256 bytes to fill first, so........
........try this sequence of events as a starter test mode from root TO assume a 3 wire system only:-
(RTS and CTS should be ignored using the below.)
1) Close down your terminal completely and do a reboot of your machine.
2) In root mode open up a new terminal then...
3) Number 4) below is optional...
4) chmod 666 /dev/ttyS0
5) Check the status of your /dev/ttyS0
6) Note that your stty might need -f instead of -F and may already be at 9600bps...
7) stty -F /dev/ttyS0
8) Set up the on board serial I/O to 9600bps and RAW data transfer, in my case, for PCLinuxOS and Debian.
9) Again note that your stty might need -f instead of -F ...
10) stty -F /dev/ttyS0 9600
11) stty -F /dev/ttyS0 raw
12) Finally, again check the status of your /dev/ttyS0
13) And again, note that your stty might need -f instead of -F ...
14) stty -F /dev/ttyS0
15) Now start printing, (blocks of?), characters to the terminal window...
16) cat < /dev/ttyS0
17) It might take a second or so to fill your default serial buffer and may display a 256 byte burst on each access so be aware.
Kill that screen session, for good this time, and don't open another. You cannot print it to the screen and expect anything else to be able to open it.
root@meow:/home/ethan# stty -F /dev/ttyS0
speed 9600 baud; line = 0;
-brkint -imaxbel
root@meow:/home/ethan# stty -F /dev/ttyS0 raw
root@meow:/home/ethan# stty -F /dev/ttyS0
speed 9600 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost
-isig -icanon
15) Now start printing, (blocks of?), characters to the terminal window...
16) cat < /dev/ttyS0 17) It might take a second or so to fill your
default serial buffer and may display a 256 byte burst on each access so be aware.
"Now start printing, (blocks of?), characters to the terminal window.."
How??
If the value being read from the serial port is 0, (zero), then the cursor will not move.
Until the value changes from 33 to 126 you will not see anything printed but the cursor __might__ move by one space.
What is connected to the serial port, /dev/ttyS0?
Does it allow raw transfer? (e.g. Arduino.)
If nothing is connected then obtain a loopback plug as a test piece and plug it into the port.
Once set up and with a loopback plug connected use this untested line:-