Hello, Peter,
thanks for the reply. The photo was extremely helpful!
On Sat, Dec 31, 2022 at 09:42:54 +0000, Peter Humphrey wrote:
> Morning Alan,
> On Thursday, 29 December 2022 19:50:18 GMT Alan Mackenzie wrote:
> > I've got a first version of a patch which attempts to handle GPM in
> > conjunction with scrolling. It's imperfect - for example, I can't get it
> > to select anything the first 66 lines of the console's displayed boot-up
> > messages. Nevertheless it may be useful.
[ .... ]
> > Please let me know of any problems you encounter with this new facility,
> > so that I can try to fix them. Thanks!
> Bad news, I'm afraid. After following your instructions carefully, the
> new kernel hangs early in the boot process. The first time I tried it
> it seemed to be just as the first HID message had been displayed; the
> second time I didn't see that (could be my eyes).
> I've attached a photo of the console.
The interesting bit of the photo is right at the end, where the INIT:
version 3.05 booting appears. The corresponding section from my
(successful) boot is:
[ 4.007014] Write protecting the kernel read-only data: 24576k
[ 4.008379] Freeing unused kernel image (text/rodata gap) memory: 2036K
[ 4.009611] Freeing unused kernel image (rodata/data gap) memory: 1364K
[ 4.010670] Run /sbin/init as init process
INIT: version 3.05 booting
[ 4.041455] setfont (884) used greatest stack depth: 13584 bytes left
[ 4.048471] init-early.sh (882) used greatest stack depth: 12888 bytes left
OpenRC 0.42.1 is starting up Gentoo Linux (x86_64)
* Mounting /proc ...
* Mounting /run ...
* /run/openrc: creating directory
* /run/lock: creating directory
* /run/lock: correcting owner
What I see is a message saying something about init-early.sh being
called. I don't know what, exactly, is calling it, but I tracked the
file down to /lib/rc/sh/init-early.sh. It is a part of rc-init, despite
the message being printed with a kernel style time stamp. This message
doesn't appear in your photo. I'm guessing init-early.sh was called,
but never returned.
init-early.sh does two things: it sets a console font (see the message
about setfont) and sets a key mapping. It does that via symbolic links
to /etc/init.d. The console font is more interesting, here. It
installs the font which is in /lib/rc/console/font.
What I'm thinking here is that you might be installing a font which is
bigger than the 8x16 standard that you appear to be booting with. To
check this, would you please do:
# file /lib/rc/console/font
, which should return a message like:
/lib/rc/console/font: Linux/i386 PC Screen Font v1 data, 256 characters,
Unicode directory, 8x16
What is the size of this font, here (where it says 8x16 for my font)?
The reason I ask is, I've got a horrible suspicion that one of the C
functions which copies screen data when the screen size is changed can
only copy to a same sized or (possibly) _bigger_ screen (i.e. with a
smaller font). If this is indeed the case, it might explain why you're
seeing a hang, here.
> --
> Regards,
> Peter.
--
Alan Mackenzie (Nuremberg, Germany).