Why doesn't the below work?
# in one terminal:
echo "asdf" > /dev/ttyUSB0
# in another terminal, this hangs and does nothing
cat < /dev/ttyS0
Como, via de regra, as portas seriais não armazenam dados em buffer. Se não houver um aplicativo cliente para receber os bytes de destino na porta serial, eles serão simplesmente descartados.
Como experiência, tente lançar minicom ou cu ou outro programa de terminal serial no computador de destino, depois execute o comando echo novamente no computador de transmissão. Assumindo que a taxa de transmissão e os enquadramentos estejam alinhados, você deverá ver "asdf" no destino.