[yocto] Awkward line wrapping in bash

ChenQi Qi.Chen at windriver.com
Thu Sep 19 18:44:49 PDT 2019


How about using `tput smam'?

Regards,
Chen Qi

On 09/19/2019 11:43 PM, phodina wrote:
> Hi,
>
> based on André recommendation I commented out the PS1 variable and now I get `-sh-4.4#` for the prompt. I also checked and nothing is overwriting the variable.
>
> But I tried to change the size of the shell by using `stty cols 100 rows 40` as well as different sizes (smaller and bigger than 80 columns), but the amount of characters I get on the line stays at 81 followed by carrige return. However if I record the session with `script` I get the correct amount of characters per line.
>
> Here is my `stty -a` output:
> speed 115200 baud; rows 24; columns 100; line = 0;
> intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
> swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O;
> min = 1; time = 0;
> -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
> -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff -iuclc -ixany imaxbel
> iutf8
> opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
> isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho
> -extproc
>
> Best regards
> Petr hodina
>
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Wednesday, September 18, 2019 4:13 PM, André Castro <andre.castro.sw at gmail.com> wrote:
>
>> Hi Petr,
>>
>> I still don't think this is related to Yocto.
>> Comments below.
>>
>> Best regards,
>> André
>> On Wed, 18 Sep 2019, at 02:17:01 PM (WEST+0100), Phodina wrote:
>>
>>> Hi,
>>> so I tried the PS1 prompt as suggested by André and it worked at that time
>>> on the booted system. So I changed the configuration in /etc/profile, built
>>> and flashed the system.
>>> Unfortunately it’s not working and I get the same issue - the line wrapping.
>> Can you get the value of the 'PS1' variable in the new system that you flashed,
>> when you are using it and the problem is happening?
>>
>> Just run "echo $PS1" on the shell.
>>
>> Just want to make sure that nothing is overwriting the 'PS1' variable and
>> causing the issue again. There are lots of scripts that can override it.
>>
>>> Here is the content of the /etc/profile:
>>>
>>> /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
>>>
>>> =====================================================================
>>>
>>> and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
>>>
>>> =============================================================
>>>
>>> PATH="/usr/local/bin:/usr/bin:/bin"
>>> EDITOR="vi" # needed for packages like cron, git-commit
>>> [ "$TERM" ] || TERM="vt100" # Basic terminal capab. For screen etc.
>>>
>>> Add /sbin & co to $PATH for the root user
>>>
>>> ==========================================
>>>
>>> [ "$HOME" != "/home/root" ] || PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
>>>
>>> Set the prompt for bash and ash (no other shells known to be in use here)
>>>
>>> ==========================================================================
>>>
>>> [ -z "$PS1" ] || PS1="$(cat /etc/device/hwid)@\h:\w \001\033[96m\002# \001\033[0m\002"
>>> if [ -d /etc/profile.d ]; then
>>> for i in /etc/profile.d/*.sh; do
>>> if [ -f $i -a -r $i ]; then
>>> . $i
>>> fi
>>> done
>>> unset i
>>> fi
>>>
>>> Make sure we are on a serial console (i.e. the device used starts with
>>>
>>> =======================================================================
>>>
>>> /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do
>>>
>>> ==============================================================================
>>>
>>> use ssh
>>>
>>> ========
>>>
>>> case $(tty 2>/dev/null) in
>>> /dev/tty[A-z]*) [ -x /usr/bin/resize ] && /usr/bin/resize >/dev/null;;
>>> esac
>>> export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
>>> umask 022
>>> I also turned on `checkwinsize` using `shopt` but didn’t work.
>>> I also include the output of stty (over serial):
>>> speed 115200 baud; line = 0;
>>> -brkint ixoff iutf8
>>> -iexten
>>> And over SSH:
>>> speed 38400 baud; line = 0;
>>> eol = M-^?; eol2 = M-^?;
>>> -brkint ixany iutf8
>>> I connect to the board over serial using screen on Mac. In minicom I get the
>>> same issue as do my colleagues on Windows using putty or screen on Linux.
>>> Same happens over SSH.
>>> I also checked that the terming package and those files are installed
>>> correctly in /etc/terminfo.
>>> Kind regards
>>> Petr Hodina
>>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>> On Monday, September 16, 2019 1:02 PM, phodina phodina at protonmail.com wrote:
>>>
>>>> Thanks André,
>>>> the PS1 variable has been the cause. Now bash behaves as expected.
>>>> Petr
>>>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>>> On Monday, September 16, 2019 12:14 PM, André Castro andre.castro.sw at gmail.com wrote:
>>>>
>>>>> Hi Petr,
>>>>> On Mon, 16 Sep 2019, at 10:34:33 AM (WEST+0100), Phodina wrote:
>>>>>
>>>>>> Hi,
>>>>>> I would like to ask for a help with an awkward behavior of line wrap
>>>>>> in bash built using Yocto (thud release). When I connect over serial
>>>>>> line, I get strange line wrapping.
>>>>> This might not be related to Yocto.
>>>>>
>>>>>> The line keeps wrapping on the first line. Here is the environment:
>>>>>> guest@:ebox~ # printenv
>>>>>> LANG=C
>>>>>> EDITOR=vi
>>>>>> HZ=100
>>>>>> HUSHLOGIN=FALSE
>>>>>> USER=root
>>>>>> PWD=/home/root
>>>>>> HOME=/home/root
>>>>>> SHELL=/bin/sh
>>>>>> TERM=linux
>>>>>> SHLVL=1
>>>>>> LOGNAME=root
>>>>>> PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
>>>>>> PS1=guest@:ebox\w \033[96m# \033[0m
>>>>>> _=/bin/printenv
>>>>>> I looked for solution and the best direction seems to be run with clean
>>>>>> environment env -i bash --norc --noprofile
>>>>>> And the env:
>>>>>> bash-4.4# printenv
>>>>>> PWD=/home/root
>>>>>> SHLVL=1
>>>>>> _=/bin/printenv
>>>>> The probable cause of this is the "PS1" variable definition, specially the
>>>>> colours part. Have a look at thread [1], maybe [2] answer will help.
>>>>> My suggestion is:
>>>>> PS1="guest@:ebox\w \001\033[96m\002# \001\033[0m\002"
>>>>> [1]
>>>>> https://unix.stackexchange.com/questions/105958/terminal-prompt-not-wrapping-correctly
>>>>> [2]
>>>>> https://unix.stackexchange.com/questions/105958/terminal-prompt-not-wrapping-correctly/447520#447520
>>>>> André
>



More information about the yocto mailing list