Unable to run commands over terminal locally (with monitor and keyboard setup)

I am using an RPi3 with one of my Balena application images. When I plug my Pi into a monitor and keyboard I am unable to run commands on the host OS shell. I can see the command line prompt but when I type, no characters are output to the command line. If I try to run a simple command such as nmcli c show, the terminal will complain that I’m typing the command incorrectly. I have confirmed that I am not. Clearly some keystrokes are not being recorded to the command prompt. Has anyone else seen this? This behavior is repeatable.

Hi Brett,

Are you running a development image on your device? Have you tried sshing into your device using balena ssh?

Hello, yes I am running a development image. I can’t use ssh because of the nature of this project. I’m trying to setup up a device that acts as an access point. This requires I mess with network manager configuration bringing up and down connections. Once I bring the connection down I no longer have ssh access.

I see. Do you have another keyboard you can try? What’s the exact output after you enter the command? Do you have a USB serial adapter you can use to get a shell?

I’ve tried 2 different keyboards and 2 different Raspberry Pi’s. I do not have a USB serial adapter. When I enter commands nothing is output to the screen. If I type something like nmcli c show it will complain that nmci isn’t a command or something similar to that effect. It’s as if some keystrokes are not being recorded. I’ve never had an issue working locally like this although it’s been roughly 6 months since I last tried it.

Hi @provo, as this post suggests, plymouthd process can cause missing keys, can you kill it and try again?

First look up the process id with ps | grep 'plymouth', then kill that process id with kill and the process id as first parameter.

Hi @karaxuna, killing plymouthd seems to have done the trick thank you! Today I’m able to see my key presses on the command line. Not sure what changed, I left the device sit powered off over night and now I can see the command prompt is working correctly. Before killing plymouthd I could see that my keystrokes were not being recorded correctly. After killing plymouthd the keystrokes are being registered as expected. Thank you for your help.

Having the same issue today and killing plymouth didn’t fix it. The terminal won’t show any keystrokes and the keyboard output is not being read by the shell correctly.

Hi Brett, it’s very likely that if you just issue a kill command as stated above the plymouth service will be restarted by the OS. I suggest you try to stop the service instead.

systemctl start plymouth-quit

If you need a production-ready solution you can then disable it from your application on each boot as explained in https://www.balena.io/docs/learn/more/masterclasses/host-os-masterclass/#13-advanced-dbus-examples.

1 Like

Thanks for the tip! To be clear, I meant that I was killing plymouth on each boot and that no longer worked. I ran the above systemctl command and rebooted and now have a working command line again.

Nevermind that did not solve the problem. I rebooted again and am having the same issues as before.

Hi Brett

As suggested by Alex, is it acceptable for you to disable that from your application every time it boots? Based on your last comment I think you are facing issues every time your boot.

1 Like

Hello, thank you for the followup. Sorry about that I misunderstood what Alex was saying. I’m disabling plymouth through the dbus interface on boot and things are running MUCH smoother. Thank you so much for your help I really appreciate it.

Glad it’s working now :slight_smile: