В общем, мне надоело печатать много-много текста. Очевидно, что нужно набрать его в файле, отправить его в UART U-Boot, затем изменить файл, попробовать снова.
Но ни Shift+Ctrl+C screen ttyUSB0 115200
, ни cat file.cmd > ttyUSB0
.
У кого-нибудь были причудливые способы копирования в UART? Я не могу быть единственным, кто пытался сделать что-то подобное.
решение1
Ну, пришлось сделать небольшой скрипт, чтобы сделать это, ну, довольно неплохо:
cat > slowpipe << 'EOF'
#!/usr/bin/env bash
set -eu
data=$(< /dev/stdin)
hz=$(bc -l <<< "1.0 / $1")
while [ -n "$data" ]; do
printf '%s' "${data:0:1}"
data=${data:1}
sleep $hz
done
# XXX It seems to be imposible to save leading newlines in variables,
# you cant have var=$'\n'$'\n' no mater what you do, only one new line can will
# be saved, IFS won't help, or anything. one way is to use `read`, without
# saving all stdin to variable.
echo
EOF
chmod 755 slowpipe
./slowpipe 42 < rpi.cmd >> /dev/ttyUSB0