bootconsole Gibberish - Baud Rate Wrong

I was following these directions to install LininoIO, which ask that in U-Boot I set the console baud to 250000:
linino> setenv baudrate 250000

It worked and I saved it to flash. But ever since then bootconsole (initial boot) is nothing but gibberish. I have tried and tried to get back into U-Boot but can't because it's gibberish. As I now have LininoIO I tried

fw_setenv baudrate 115200

... but no change, and there doesn't seem to be a fw_saveenv command.


f⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮⸮fx⸮⸮⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮fx怘⸮⸮f⸮⸮~⸮⸮ff⸮fxxf⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮~⸮⸮⸮⸮⸮x~⸮昆⸮f⸮x⸮⸮⸮⸮f⸮怘⸮⸮f⸮⸮~⸮⸮⸮⸮~⸮~⸮⸮f⸮⸮⸮⸮⸮⸮f⸮x⸮fxx⸮⸮⸮⸮⸮⸮f⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮~⸮⸮ff⸮~⸮⸮⸮⸮⸮``⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮~⸮⸮⸮⸮⸮⸮fxx⸮~⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮f⸮⸮~f~f⸮⸮f⸮⸮⸮⸮⸮fx⸮⸮⸮⸮f⸮f⸮⸮ff⸮⸮⸮f⸮~怘⸮⸮f⸮⸮~⸮⸮fx⸮⸮⸮f⸮~⸮f⸮⸮f⸮⸮⸮ff⸮怘⸮⸮f⸮⸮~⸮f⸮⸮fxf⸮fxxf⸮⸮⸮fx⸮⸮⸮⸮f⸮f⸮⸮ff⸮⸮⸮f⸮~怘⸮⸮f⸮⸮~⸮⸮fx⸮⸮⸮f⸮~⸮f⸮⸮f⸮⸮⸮ff⸮怘⸮⸮f⸮⸮~⸮⸮⸮⸮⸮⸮⸮x⸮⸮⸮x⸮⸮f⸮⸮⸮⸮⸮⸮f⸮~⸮⸮⸮x⸮⸮f⸮⸮⸮⸮⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮x怘⸮⸮f⸮⸮~⸮⸮⸮⸮ff⸮⸮⸮f⸮⸮~fx⸮~怘⸮⸮f⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮f⸮⸮~⸮⸮xf⸮⸮⸮f⸮⸮⸮⸮f⸮⸮~⸮⸮~f⸮⸮x⸮⸮⸮⸮f⸮⸮⸮⸮⸮⸮fx怘⸮⸮f⸮⸮~⸮f⸮⸮⸮⸮⸮⸮fx⸮⸮⸮ff⸮⸮⸮f⸮⸮~fxf⸮⸮⸮⸮f⸮⸮~~⸮⸮⸮⸮⸮⸮f⸮⸮~⸮f~⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮f⸮⸮xf⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮⸮f⸮x⸮ff⸮⸮⸮~⸮⸮⸮⸮⸮⸮f⸮⸮f⸮f⸮xf⸮⸮⸮~⸮⸮⸮⸮怘⸮⸮f⸮⸮~⸮⸮fx⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮~⸮⸮⸮⸮x⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮憆f~⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮ff~fff⸮⸮⸮⸮⸮⸮⸮~f⸮⸮~f⸮⸮f⸮⸮~⸮⸮⸮⸮⸮⸮ff⸮⸮⸮⸮f⸮⸮⸮⸮x⸮⸮⸮⸮ff⸮⸮⸮⸮f⸮f⸮⸮xf⸮⸮⸮x⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮xf⸮⸮⸮x⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮f⸮⸮⸮⸮⸮x⸮⸮⸮⸮⸮⸮x⸮⸮ff⸮⸮⸮⸮⸮x⸮⸮⸮⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮xx⸮⸮f⸮xf⸮f⸮~f⸮⸮fx⸮⸮⸮⸮⸮⸮⸮x~⸮fx⸮⸮ff~⸮⸮⸮x⸮⸮⸮⸮⸮x⸮x⸮x⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮x⸮⸮fx⸮⸮⸮⸮⸮⸮⸮⸮x~⸮fx⸮⸮ff~⸮⸮⸮x⸮⸮⸮⸮⸮x⸮x⸮x⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮x怘⸮⸮f⸮⸮~f⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮f⸮f⸮⸮⸮~xf⸮⸮⸮xf⸮⸮⸮~⸮⸮x⸮⸮⸮⸮x⸮f~f⸮⸮f⸮怘⸮⸮f⸮⸮~f⸮⸮⸮⸮f⸮⸮f⸮⸮⸮f⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮f⸮f⸮⸮⸮~⸮⸮⸮⸮x⸮⸮⸮xf⸮⸮⸮~⸮x⸮⸮⸮x⸮x⸮f~f⸮⸮f⸮怘⸮⸮f⸮⸮~⸮⸮⸮⸮⸮fx⸮f⸮⸮⸮f⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮f⸮f⸮⸮⸮~⸮⸮⸮⸮⸮xf⸮⸮⸮~x⸮⸮⸮⸮⸮f~f⸮⸮f⸮怘⸮⸮f⸮⸮~f⸮f⸮⸮⸮⸮f⸮⸮⸮⸮~f~~⸮⸮⸮⸮⸮⸮⸮⸮f⸮⸮⸮f⸮憀⸮f⸮⸮ff⸮⸮⸮~ff⸮⸮⸮⸮⸮⸮f⸮⸮f⸮⸮fx⸮x⸮f~f⸮⸮⸮⸮怘⸮⸮f⸮⸮~f⸮f⸮⸮⸮⸮fx~⸮⸮f⸮⸮⸮f⸮x⸮憀⸮⸮~ff⸮f⸮⸮ff⸮⸮⸮⸮f⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮fx⸮⸮⸮⸮⸮⸮f⸮⸮f⸮⸮fx⸮x⸮f~f⸮⸮f⸮⸮⸮⸮f⸮⸮~⸮ff⸮f⸮⸮⸮~⸮⸮⸮⸮⸮⸮~⸮⸮⸮fx~f⸮~f⸮⸮f⸮⸮⸮⸮f⸮⸮~⸮fxxf⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮~⸮⸮⸮fx~f⸮~f⸮⸮f⸮⸮⸮⸮f⸮⸮~⸮fx⸮⸮⸮f⸮~⸮⸮⸮⸮⸮x⸮⸮⸮xx⸮⸮⸮⸮⸮~f⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮fx⸮⸮f⸮⸮⸮⸮fx⸮⸮f⸮x⸮⸮⸮fxfx⸮~fx⸮⸮~⸮⸮x~⸮⸮⸮⸮x⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮~⸮⸮ff⸮⸮⸮怘⸮⸮f⸮⸮~⸮⸮⸮ff⸮⸮~⸮f⸮⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮~f⸮⸮⸮⸮~⸮⸮⸮x⸮⸮⸮xf⸮⸮f⸮⸮⸮x⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮fx~f⸮⸮⸮ff⸮⸮f⸮⸮⸮⸮⸮⸮fxf⸮⸮⸮⸮⸮⸮f⸮⸮~⸮ff⸮⸮ff⸮⸮~⸮⸮怘⸮⸮f⸮⸮~⸮⸮f⸮⸮⸮⸮⸮f~⸮⸮⸮⸮~xf⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮x⸮⸮~⸮昆⸮f⸮⸮⸮⸮⸮⸮f⸮⸮⸮x⸮⸮⸮怘⸮⸮f⸮⸮~f⸮⸮f⸮f⸮~xf⸮xf~⸮⸮⸮~⸮x⸮x⸮⸮f⸮⸮⸮⸮⸮⸮ff⸮⸮⸮x⸮⸮⸮⸮⸮⸮f⸮⸮~⸮⸮f⸮⸮f⸮f⸮⸮⸮f⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮f⸮f⸮⸮⸮~⸮⸮⸮x怘⸮⸮f⸮⸮⸮⸮~⸮ff⸮⸮fx~f⸮~f⸮⸮fx⸮⸮⸮⸮⸮⸮⸮xf⸮⸮⸮⸮⸮⸮⸮⸮怘⸮⸮f⸮⸮⸮⸮~⸮xf⸮⸮⸮⸮⸮⸮⸮f⸮x⸮~⸮fx~f⸮~f⸮⸮fxf⸮~⸮⸮x⸮⸮⸮⸮⸮xf⸮~⸮⸮fx⸮⸮⸮~⸮⸮~⸮⸮⸮⸮⸮⸮f⸮⸮~⸮f⸮f⸮⸮~⸮⸮f⸮⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮xff⸮⸮⸮⸮⸮⸮xf~⸮⸮怘⸮⸮f⸮⸮⸮⸮~x⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮fxf~f⸮~⸮~⸮⸮⸮⸮⸮f怆~f⸮~~⸮⸮~x~⸮⸮⸮⸮~⸮⸮~怘⸮⸮f⸮x⸮~x⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮fxf~f⸮⸮~⸮⸮~⸮⸮⸮f怆~f⸮~~⸮⸮~x~⸮⸮⸮⸮~⸮⸮~怘⸮⸮f⸮f⸮⸮⸮~⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮fx~⸮⸮⸮⸮~⸮f⸮怘⸮⸮f⸮f⸮⸮⸮~⸮⸮fx~⸮⸮⸮⸮~⸮f⸮⸮⸮fx⸮⸮⸮⸮f⸮f⸮~⸮⸮fx~⸮⸮⸮⸮~⸮f⸮⸮⸮f⸮xx⸮⸮⸮⸮f⸮f⸮~⸮⸮fx~⸮⸮⸮⸮~⸮f⸮⸮ff⸮⸮f⸮f⸮⸮x⸮⸮⸮⸮f⸮f⸮~⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮~⸮f⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮⸮⸮怘⸮⸮f⸮f⸮~⸮f⸮⸮⸮⸮⸮⸮⸮⸮fx~f⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮⸮⸮~⸮⸮⸮⸮f⸮f⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮⸮fx⸮⸮fx~f⸮~f⸮⸮fx⸮f⸮~⸮⸮⸮⸮fx⸮x⸮⸮fxxf⸮xfx⸮⸮⸮⸮⸮⸮⸮xf⸮⸮⸮⸮f⸮f⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮⸮fx⸮⸮fx~f⸮~f⸮⸮fx⸮f⸮~⸮⸮⸮⸮fx⸮x⸮⸮fxxf⸮xfx⸮f⸮⸮f⸮⸮⸮⸮f⸮x⸮~⸮⸮⸮⸮⸮⸮⸮⸮⸮fx⸮⸮fx~f⸮~f⸮⸮fx⸮f⸮~xf⸮~⸮⸮fxxf⸮xfx⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮f⸮x⸮~⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮⸮~~⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮fx⸮f⸮f⸮f⸮⸮⸮⸮f⸮x⸮⸮⸮~⸮ff⸮⸮fx~f⸮~f⸮⸮fx⸮⸮⸮⸮⸮⸮⸮xf⸮⸮⸮⸮⸮⸮x怘⸮⸮f⸮x⸮⸮⸮~⸮f⸮⸮f~f⸮⸮f⸮⸮⸮f⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮f⸮f⸮⸮⸮~⸮⸮x⸮⸮⸮xf⸮⸮⸮~⸮⸮⸮⸮f~f⸮⸮f⸮怘⸮⸮f⸮xx⸮~ff⸮⸮⸮⸮~⸮⸮⸮⸮⸮⸮fx⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮f⸮f⸮⸮⸮~x⸮⸮⸮⸮xf⸮⸮⸮~x⸮⸮⸮⸮⸮f~f⸮⸮f⸮怘⸮⸮f⸮xx⸮~ff⸮f⸮⸮⸮⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮f⸮f⸮⸮⸮~x⸮⸮⸮⸮xf⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮x⸮f~f⸮⸮f⸮怘⸮⸮f⸮x⸮x⸮~ff~⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮xf⸮~f~fx⸮f⸮⸮~⸮⸮⸮⸮⸮⸮fxx⸮⸮f⸮⸮⸮x⸮⸮⸮⸮⸮⸮⸮f⸮x⸮~ff⸮fx⸮⸮⸮⸮⸮fx~f⸮~f⸮⸮fxf⸮⸮⸮⸮f⸮x⸮~⸮ff⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮f⸮f⸮⸮⸮~xf⸮⸮⸮xf⸮⸮⸮~⸮⸮⸮⸮f~f⸮⸮f⸮怘⸮⸮f⸮x⸮⸮⸮~⸮ff⸮⸮⸮⸮fx⸮⸮⸮⸮~⸮⸮⸮f⸮⸮⸮⸮⸮⸮f⸮f⸮⸮⸮~xf⸮⸮⸮xf⸮⸮⸮~⸮⸮⸮⸮f~f⸮⸮f⸮怘⸮⸮f⸮x⸮⸮⸮~⸮ff⸮⸮fx~f⸮~f⸮⸮fx⸮⸮⸮⸮⸮⸮⸮xf⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮x⸮~⸮⸮ff~⸮⸮⸮x⸮⸮⸮~~f⸮⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮x⸮⸮f⸮⸮f⸮⸮⸮⸮f⸮x⸮~⸮⸮x昆x~f⸮⸮⸮⸮f⸮⸮⸮⸮⸮x⸮⸮⸮⸮⸮⸮⸮f⸮⸮fff⸮⸮⸮⸮ff⸮⸮⸮⸮⸮fff⸮⸮ff⸮⸮⸮ff⸮⸮f⸮⸮⸮f⸮ff⸮f⸮⸮⸮ff⸮f⸮⸮f⸮x⸮⸮⸮⸮x⸮fx⸮~⸮⸮⸮⸮⸮⸮⸮怘⸮⸮f⸮x⸮⸮⸮~⸮⸮⸮⸮⸮x⸮⸮⸮⸮⸮⸮⸮⸮⸮fxf⸮⸮⸮⸮fx~⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮f⸮~⸮~⸮⸮⸮⸮⸮⸮⸮ffx⸮⸮⸮⸮f⸮⸮xf⸮⸮f⸮⸮f⸮⸮⸮⸮⸮x⸮⸮xf⸮xfx~f⸮⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮xfx⸮⸮⸮⸮⸮xf⸮x⸮⸮怘⸮⸮f⸮~⸮~⸮⸮⸮⸮⸮⸮⸮⸮fxf⸮f⸮⸮⸮⸮⸮⸮⸮⸮fx~f⸮~f⸮⸮fxf⸮⸮⸮⸮f⸮~⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮⸮fxf⸮f⸮⸮xffx⸮⸮⸮⸮⸮⸮f⸮fx~f⸮~f⸮⸮fxfxxff~⸮⸮f⸮怘⸮⸮f⸮~⸮⸮⸮~⸮⸮fxf⸮⸮⸮xf⸮⸮f⸮⸮xf⸮xfx⸮⸮⸮⸮~⸮⸮⸮⸮ff⸮⸮⸮⸮⸮f⸮⸮⸮~⸮⸮⸮⸮⸮⸮⸮fx怘⸮⸮f⸮~x⸮~⸮⸮⸮⸮f⸮xf⸮ff⸮⸮~⸮~`fff⸮⸮⸮⸮~⸮f⸮⸮⸮⸮⸮fx⸮⸮⸮f⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮
⸮AR933X UART
[ 0.730000] console [ttyATH0] enabled, bootconsole disabled
[ 0.730000] console [ttyATH0] enabled, bootconsole disabled
[ 0.740000] m25p80 spi0.0: found w25q128, expected m25p80
[ 0.740000] m25p80 spi0.0: w25q128 (16384 Kbytes)
[ 0.740000] 7 cmdlinepart partitions found on MTD device spi0.0
[ 0.740000] Creating 7 MTD partitions on "spi0.0":
[ 0.750000] 0x000000000000-0x000000040000 : "u-boot"
[ 0.750000] 0x000000040000-0x000000050000 : "u-boot-env"
[ 0.750000] 0x000000050000-0x000000ea0000 : "rootfs"
[ 0.760000] mtd: partition "rootfs" set to be root filesystem
[ 0.760000] mtd: partition "rootfs_data" created automatically, ofs=9E0000, len=4C0000
[ 0.760000] 0x0000009e0000-0x000000ea0000 : "rootfs_data"
[ 0.770000] 0x000000ea0000-0x000000fe0000 : "kernel"
[ 0.770000] 0x000000fe0000-0x000000ff0000 : "nvram"
[ 0.780000] 0x000000ff0000-0x000001000000 : "art"
[ 0.780000] 0x000000050000-0x000000fe0000 : "firmware"
[ 0.800000] ag71xx_mdio: probed
...

I've tried every way from Sunday to change the baud back to 115200 in the YunSerialTerminal but no luck. I know the problem is baud, I just don't know how to fix it.

This wouldn't matter so much except in Linux I can't vi edit anything as there are garbage characters, and even with ls -al.

root@sagitta:/etc/config# ls -al
drwxr-xr-x 1 root root 0 Jun 1 20:16 e[1;34m.e[0m
drwxr-xr-x 1 root root 0 Jun 1 20:46 e[1;34m..e[0m
-rw-r--r-- 1 root root 525 Jun 1 20:16 e[0;0malljoyne[0m
-rw-r--r-- 1 root root 205 Jun 1 20:29 e[0;0marduinoe[0m
-rw-r--r-- 1 root root 1236 Jan 1 1970 e[0;0mbannere[0m
-rw-r--r-- 1 root root 885 Jun 1 2016 e[0;0mdhcpe[0m
-rw-r--r-- 1 root root 134 Jun 1 2016 e[0;0mdropbeare[0m
-rw-r--r-- 1 root root 386 Jun 26 2014 e[0;0mfirewalle[0m
-rw-r--r-- 1 root root 134 Jun 2 2016 e[0;0mfstabe[0m
-rw-r--r-- 1 root root 106 Jan 1 1970 e[0;0minittabe[0m
-rw-r--r-- 1 root root 688 Jun 1 20:16 e[0;0mlucie[0m
-rw-r--r-- root root 162 Apr 19 20:15 e[0;0mmcuiocfge[0m
-rw-r--r-- 1 root root 260 Jun 1 20:41 e[0;0mnetworke[0m
-rw-r--r-- 1 root root 153 Jan 1 1970 e[0;0mshadowe[0m
-rw-r--r-- 1 root root 765 Jun 1 20:29 e[0;0msysteme[0m
-rw-r--r-- 1 root root 0 Jun 1 20:16 e[0;0mubootenve[0m
-rw-r--r-- 1 root root 826 Jun 1 20:16 e[0;0mucitracke[0m
-rw-r--r-- 1 root root 2411 Jun 1 20:16 e[0;0muhttpde[0m
-rw-r--r-- 1 root root 453 Jun 1 20:41 e[0;0mwirelesse[0m
root@sagitta:/etc/config#

But ever since then bootconsole (initial boot) is nothing but gibberish.

I've not tried those instructions to update my Yun, so I can only guess at your issue. I am also assuming you are using the YunSerialTermnal sketch in conjunction with the Arduino IDE Serial Monitor to view the output.

It looks like you have U-boot configured for 250000 baud, and Linux set for 115200. Because you have the YunSerialTerminal's connection to the console port set to 115200, the initial U-boot output is unreadable. You need to change the speed that YunSerialTerminal is using to talk to the console port to 250000 in order to see the U-boot output. Of course, this will make the later output unreadable, but it may give you a chance to change the U-boot output speed.

Note that it is the Serial connection between thevYunSerialTerminal sketch and the Linux console that must be changed, this is NOT the speed between the Yun and your computer - changing the baud rate on the Serial Monitor's drop down list will do nothing, as that is only changing the speed between your computer and the sketch, and it is the connection between the sketch and the Linux side that is the issue.

After you start up the YunSerialTerminal, and connect to it with the Serial Monitor, send "~2" from the Serial Monitor - that will set the YunSerialTerminal to talk to the Linux side at 250000 baud. If you then press the YunRst button, you should be able to see the initial U-boot output as readable characters. If you let it continue, eventually you will get past U-boot and and into the Linux startup messages. Those latter messages will then be garbage because they are coming out a 115200, and the YunSerialTerminal sketch is trying to read it at 250000.

While the latter part of the startup process will be unreadable, this will let you see the initial messages, and will let you interrupt the startup process and enter the U-boot command line. At that time, you can try setting the U-boot baud rate to 115200 using the setenv command. Once you've accomplished that, the startup messages will once again be garbled - send "~1" to the YunSerialTerminal to set it back to 115200 baud.

This wouldn't matter so much except in Linux I can't vi edit anything as there are garbage characters, and even with ls -al.

That ls output looks normal, I don't see any garbage characters. What I do see are escape sequences used to set the text color to color code the various files, directories, links, etc. This is normal. I suspect that you are still using the Serial Monitor at this point. Serial Monitor is a very basic terminal emulator, and does not support these escape sequences. It also has a limitation that it sends data a full line at a time, rather than individual key presses. This will make using vi intolerable as you won't be able to send individual keys, and vi makes use of a lot of escape sequences to control the screen. The Serial Monitor is designed for very basic serial communications with a sketch, it is not designed for more sophisticated uses like a Linux command line. You need to use a more powerful serial terminal emulator application (I use PuTTY on Windows, but there are lots of available options.)

Hi ShapeShifter, thank you for the comprehensive response. Indeed I'm using the YunSerialTerminal, and when set to 115200 I can see boot after bootconsole fine. But when I try to change the baud rate:

Please press Enter to activate this console.

BusyBox v1.19.4 (2016-06-01 23:26:44 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.


/_\ ___ /_\ ___ /_\ /\ \
/:confused: / /\ \ /::expressionless: | /\ \ /::expressionless: | /::\ \
/:confused: / :\ \ /:|:| | :\ \ /:|:| | /:/:\ \
/:confused: / /::_
\ /:/|:| |__ /::_\ /:/|:| |__ /:confused: :\ \
/:/__/ /:/// /:confused: |:| /_
\ /:/// /:confused: |:| /_\ /:/__/ :_
:\ \ //:confused: / /|:|/:confused: / //:confused: / /|:|/:confused: / :\ \ /:confused: /
:\ \ ::confused:/ |:/:confused: / ::confused:/ |:/:confused: / :\ /:confused: /
:\ \ :_\ |::confused: / :_\ |::confused: / :/:confused: /
:__\ // /:confused: / // /:confused: / ::confused: /
// // // //


| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -| || | | || || |
|
_____|| |
||||___||| |____|
|
| W I R E L E S S F R E E D O M

root@sagitta:/# ~2
/bin/ash: ~2: not found
root@sagitta:/# ~2
/bin/ash: ~2: not found
root@sagitta:/# ~~
/bin/ash: ~~: not found
root@sagitta:/#

So I downgraded from LininoIO to Linino, but same result.

I set baud to 250000, then unplugged the Lun's USB and reconnected, and now I still see boot after bootconsole except with a blank line between each line. And when I hit it goes crazy with lines scrolling by at top speed (all legible), mostly saying, "wARN: missing pipe ext". Trying ~2 has no effect.

Setting console baud back to 115200 and trying ~2 I get the "/bin/ash: ~~: not found" as above.

Maybe I need to rewrite U-Boot using tftp? Although, I'm not able to use U-Boot to set the tftp server IP.

(uh oh, SS has disappeared)

Quantumn:
(uh oh, SS has disappeared)

Not disappeared, but some of us have jobs and other commitments that prevent us from monitoring the forums full time. :wink:

I'm afraid that I don't have any other advice to offer. As I said initially, I have not tried performing this upgrade path. I only responded because the symptoms you posted strongly point to mismatched baud rates between the sketch and the Linux processor.

It's curious that the "~2" command is not working. It should be intercepted by the YunSerialTerminal sketch and should trigger a baud rate change. But instead, it looks like the sequence is being sent through to the Linux console. Are you using the Arduino IDE's Serial Monitor to talk to the Yun's serial port? If so, are you sending the two characters at the same time, or are you typing them one at a time and hitting "Send" after each character? If the latter, that could explain the problem as there would be extra line terminators that would confuse the sketch's code.

Did you make any changes to the YunSerialTerminal sketch? Does the source code for your copy of the sketch match that one the website? https://www.arduino.cc/en/Tutorial/YunSerialTerminal

Keep in mind that when you open an example sketch, you are looking at the original code, and are able to save changes which overwrite the original example, changing it forever. It would be nice if opening an example sketch would create a new copy of it to allow changing it as you see fit without affecting the original version. This burned me a couple times when first using Arduino, and I ended up unintentionally making permanent changes. I know it's a stretch, and that's probably not what happened here, but it's about the only thing that I can think if.

Understand, thanks.

Indeed using YunSerialTerminal, and have made zero changes to it.

Agree with the mismatched baud theorem. And it's awfully queer that ~ is getting passed along to Linux.

Maybe this thing has defeated me.

My only other thought is to bypass the YunSerialTerminal sketch. Run a blank sketch (what you get when select "File | New" in the IDE) or something trivial like the Blink sketch - something that doesn't use the Bridge or Serial1 or pins 0 and 1. Load that sketch onto the Yun, and that will essentially disconnect the AVR processor from the Linux side.

Then, use a USB to TTL serial cable, and connect directly to pins 0 and 1 on the Yun:

  • Pin 0 goes to the receive data connection of the cable
  • Pin 1 goes to the transmit data connection of the cable
  • Any of the GND pins go the ground connection of the cable

If the cable has a power output pin, leave it disconnected.

Now, you can use the Serial Monitor or some other terminal emulator to connect to the USB adapter. In this case, the speed setting you select in the Serial Monitor's baud rate box will be functional (if you are using a different terminal emulator program, set the speed according to how that program works.) This should let the USB adapter (and your terminal emulator) talk directly to the Linux console. You should be able to set the speed to 250000 when talking to U-Boot, and 115200 when talking to the kernel.

In a normal Arduino, pins 0 and 1 talk to the AVR processor. On a Yun, these pins are also connected to the Linux console port. By running a blank sketch, the AVR processor is ignoring those pins, and you can use those pins to talk to Linux. Just keep in mind that the Tx/Rx polarity of these pins is in relation to the AVR processor - they will be reversed on the Linux side: use pin 0 to listen to the Linux console, and pin 1 to talk to it. (I hope I didn't just get that backwards!)