Hello, Jorge. On Sat, Sep 18, 2021 at 21:40:46 +0100, Jorge Almeida wrote: > Hello, gentooers in general and Alan in particular
> I've been using Alan Mackenzie's patch until kernel 5.13, with > success. It failed with 5.14.4 --yes, I know, but it doesn't hurt to > try :) I'm happy to know my patch is still useful. I must confess that somebody told me by private email that it fails on systems which change their screen geometry during boot-up. For example, a system which first boots into 80x25, then changes to a frame buffer. I know why this is happening, but I don't have a machine to debug it on, so the debugging is happening slowly, with the help of my correspondent. It also doesn't seem to work on machines with kernel parameters such as vga=791. That said, I'm hoping that the failure of the patch on 5.14.4 is just a simple struct change in 5.14, which I hope to have corrected (but in 5.14.5). What used to be while (!tty->stopped ... has now become while (!tty->flow.stopped ... I'm assuming that the patch you tried to apply was 5.10.49-scroll.20210715.diff. If so, please leave it applied (with the one failed hunk), and additionally apply this: --- ./drivers/tty/vt/vt.c.orig 2020-12-13 22:41:30.000000000 +0000 +++ ./drivers/tty/vt/vt.c 2021-04-05 16:20:32.624563241 +0000 @@ -3208,6 +3208,12 @@ param.vc = vc; +#ifdef CONFIG_FRAMEBUFFER_CONSOLE_SOFT_SCROLLBACK + /* Undo any soft scrolling - <Alt><Fn> and <Shift><PgUp/Down> do + not pass through this function. */ + concon_set_origin (vc); +#endif + while (!tty->flow.stopped && count) { int orig = *buf; buf++; As always, there are no guarantees. Please let me know whether or not the above hunk applies, and if so, whether or not the scrolling still works. (Also, feel free to send me private email if there're any problems with the mechanics of applying the patch.) Thanks! > Jorge Almeida > Just in case it is useful: It was, thanks! [ .... ] > param.vc = vc; > + /* NEW STOUGH, 2021-04-03 */ > +#ifdef CONFIG_FRAMEBUFFER_CONSOLE_SOFT_SCROLLBACK > + /* Undo any soft scrolling - <Alt><Fn> and <Shift><PgUp/Down> do > + not pass through this function. */ > + concon_set_origin (vc); > +#endif > + /* END OF NEW STOUGH */ > + > while (!tty->stopped && count) { <========================== > int orig = *buf; > buf++; -- Alan Mackenzie (Nuremberg, Germany).