I have a WD MyBook WorldEdition II (White Light) NAS here. This essentially is a ARM926EJ-S
with two SATA drives attached. For quite some time, I was running Debian 6.0 Squeeze on it. Now I recently updated to Debian 7.0 Wheezy with a custom step in the upgrade process, which I describe next.
Unfortunately, the system has to run on kernel version 2.6.24. This is, because WD made some patches to the kernel and has not updated it for a while. I am (currently) not able to apply these patches to a newer kernel version. As a result, I was not able to update libc
within apt-get dist-upgrade
. The libc
of Wheezy requires minimum kernel of 2.6.26. However, I cross-compiled the libc
w.r.t. kernel 2.6.24. This was advertised at some forum and claimed to work. Eventually after manually upgrading libc
, apt-get dist-upgrade
successfully continued.
However, after rebooting I am unable to open a shell via SSH. Instead, I get the following error message:
PTY allocation request failed on channel 0
[...]
stdin: is not a tty
I can execute commands though.
After investigating a bit more, I found out, that /var/log/auth.log
contains:
sshd[4161]: error: openpty: Invalid argument
sshd[4161]: error: session_pty_req: session 0 alloc failed
For openpty: Invalid argument
I have found only minimal information, e.g. this forum post, where the user eventually re-installed the SSH server.
Some more information:
mount
shows, that/dev/pts
is mounted./dev/pts
however is empty (which I think is normal, if no-one is logged in).- Downgrading
openssh-server
to the squeeze version did not help.
So, right now I am at the end of my knowledge. It would be great to have a way to debug which Invalid argument
is actually passed to openpty
.
So, I was able to solve this by re-compiling
libc
once more. I assume it must have been something in the toolchain, as I this time used achroot
being especially set towheezy
.