Поскольку я не получил никаких ответов/предложений, я, наконец, решил пройти болезненную операцию 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
Я не проверял это пока, но похоже, что переменная mem
env всегда была инициализирована фиктивным значением (я следовал инструкциям ), но это только недавно стало проблемой.
Следующее можетуказывать на ошибку копирования/вставки:
bootargs=console=ttyS4,115200 console=tty0 mem=256M@0x0
mem=768M@0x30000000 rootwait quiet rw root=/dev/mmcblk0p1
Оказывается, это была введенная регрессия:
Zsh запускается zsh-newuser-install
при запуске, если у вас нет файлов точек. Кажется, что ваши точечные файлы не существовали, когда исполняемый файл zsh инициализировался, но они существовали к моменту запуска функции zsh-newuser-install
.
Ваш домашний каталог должен быть смонтирован асинхронно, возможно, в автоматической сетевой файловой системе или зашифрован с помощью ecryptfs. Если вы попытаетесь запустить tmux до входа в систему (, например. с записью @reboot
crontab )и ваш домашний каталог монтируется только при входе в систему, тогда ваш домашний каталог еще не смонтирован.
В чем бы ни заключалась проблема, это должно быть взаимодействие между тем, как вызываются tmux и zsh, и особенностью того, как монтируется ваш домашний каталог. Либо это, либо временная аппаратная ошибка, но это был бы действительно странный эффект.