tmux перестал правильно работать с zsh и oh-my-zsh

Поскольку я не получил никаких ответов/предложений, я, наконец, решил пройти болезненную операцию git bisect(~13 итераций) между двумя тегами: v4.10.1 (хорошо) и v4.11.1. (плохой).

Это привело меня к следующему:

% git bisect good
73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411 is the first bad commit
commit 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
Author: Marcin Nowakowski 
Date:   Wed Nov 23 14:43:49 2016 +0100

    MIPS: fix mem=X@Y commandline processing

    When a memory offset is specified through the commandline, add the
    memory in range PHYS_OFFSET:Y as reserved memory area.
    Otherwise the bootmem allocator is initialised with low page equal to
    min_low_pfn = PHYS_OFFSET, and in free_all_bootmem will process pages
    starting from min_low_pfn instead of PFN(Y).

    Signed-off-by: Marcin Nowakowski 
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14613/
    Signed-off-by: Ralf Baechle 

:040000 040000 fe26fcf6d072cbaedac5a417f9f6424df16d331c b99681a22464164b88c6a3cf77b1b87957cd95d6 M  arch

Глядя на код онлайн здесь, я понял, что проблема была в моей текущей настройке u-boot, в которой говорится:

ci20# printenv 
baudrate=115200 
board_date=20140704 
board_mfr=NP 
bootargs=console=ttyS4,115200 console=tty0 mem=256M@0x0 
mem=768M@0x30000000 rootwait quiet rw root=/dev/mmcblk0p1 
bootcmd=run ethargs; ext4load mmc 0:1 0x88000000 /boot/uImage; bootm 0x88000000 
bootdelay=1 
ethact=dm9000 
ethaddr=d0:31:10:ff:7d:20 
ethargs=env set bootargs ${bootargs} dm9000.mac_addr=${ethaddr} 
loads_echo=1 
serial#=1255 
stderr=eserial0,eserial4 
stdin=eserial0,eserial4 
stdout=eserial0,eserial4 

Environment size: 488/32764 bytes 

Я не проверял это пока, но похоже, что переменная memenv всегда была инициализирована фиктивным значением (я следовал инструкциям ), но это только недавно стало проблемой.

Следующее можетуказывать на ошибку копирования/вставки:

bootargs=console=ttyS4,115200 console=tty0 mem=256M@0x0 
mem=768M@0x30000000 rootwait quiet rw root=/dev/mmcblk0p1 

Оказывается, это была введенная регрессия:

0
24.09.2017, 21:50
1 ответ

Zsh запускается zsh-newuser-installпри запуске, если у вас нет файлов точек. Кажется, что ваши точечные файлы не существовали, когда исполняемый файл zsh инициализировался, но они существовали к моменту запуска функции zsh-newuser-install.

Ваш домашний каталог должен быть смонтирован асинхронно, возможно, в автоматической сетевой файловой системе или зашифрован с помощью ecryptfs. Если вы попытаетесь запустить tmux до входа в систему (, например. с записью @rebootcrontab )и ваш домашний каталог монтируется только при входе в систему, тогда ваш домашний каталог еще не смонтирован.

В чем бы ни заключалась проблема, это должно быть взаимодействие между тем, как вызываются tmux и zsh, и особенностью того, как монтируется ваш домашний каталог. Либо это, либо временная аппаратная ошибка, но это был бы действительно странный эффект.

2
28.01.2020, 02:33

Теги

Похожие вопросы