17

I've installed FreeBSD inside a VM on a laptop. As it turns out, the laptop keyboard has no Scroll Lock key, which is used for scrolling the screen back in FreeBSD's console. How can I scroll back the output without Scroll Lock?

Jeff Ferland
  • 20,239
  • 2
  • 61
  • 85
Eugene Yarmash
  • 2,383
  • 5
  • 32
  • 54
  • 2
    The question itself contained the answer I was looking for. My keyboard has Scroll Lock, but I didn't know I could use it! – mwfearnley Oct 27 '17 at 14:49

3 Answers3

12

As root, dump the keyboard map to a file

kbdcontrol -d > mykeys

Change the file so "Ctrl+NumLock" will set "Scroll Lock". Find line with scancode "base" 069, or where "nlock" fills the entire line. Edit column 3 from "nlock" to "slock". The line now looks like:

"069   nlock  nlock  slock  nlock  nlock  nlock  nlock  nlock   O"

As root, issue the command:

kbdcontrol -l mykeys

The solution was found here.

Eugene Yarmash
  • 2,383
  • 5
  • 32
  • 54
  • 3
    For People using FreeBSD as a guest OS in a VirtualBox virtual machine on Mac OS X you can also remap Cntrl-Caps Lock. 058 clock clock slock clock clock clock clock clock O Typing Control-Caps Lock lets you scroll back on the console as far as the scrollback goes. Bliss! – Coroos Oct 08 '12 at 15:38
  • 3
    since this is a top result, I'll add that to make this change permanent (after reboot) follow the steps above, and then `mv mykeys /usr/share/syscons/keymaps/mykeys.kbd` then edit your rc.conf file and add a line with `keymap="mykeys"` – aron.duby Oct 06 '14 at 15:57
  • This does not work through ssh. Any tip on how to make it work? – Pablo Lalloni Oct 10 '16 at 23:41
  • @Pablo Lalloni: these steps work for the syscons on the system you are connecting to with ssh. You need to perform the equivalent steps on the system you are connecting from. I say "equivalent steps" because if you are using Windows, Mac or Linux to connect to the FreeBSD system, the steps will be different. – CyberFonic Apr 28 '21 at 05:43
5

Laptop keyboards usually have a Fn key so that keys on a normal PC keyboard can be replicated. You should find that some combination of Fn and another key (hint: look for the blue text on your keys) will perform Scroll Lock. For instance, on my cheap netbook, Fn-F12 performs Scroll Lock.

Michael Hampton
  • 237,123
  • 42
  • 477
  • 940
2

I use tmux for that, you can install it from ports under /usr/ports/sysutils/tmux. Ctrl-b PgUp and Ctrl-b PgDn allow to scroll the console output in tmux. BTW, tmux has other great features, basically it is an advanced screen replacement.

Alex
  • 7,789
  • 4
  • 36
  • 51
  • WIll it allow to scroll back the output which was before starting tmux? Actually, I want to see all the boot messages, i.e. the output till login. – Eugene Yarmash Aug 23 '12 at 08:05
  • No, it will not. – Alex Aug 23 '12 at 08:08
  • 2
    The boot message are stored in a file called dmesg.boot. `less /var/run/dmesg.boot` might help you. – Hennes Aug 23 '12 at 11:06
  • 1
    @Hennes This file contains only part of the messages, up to mounting the root filesystem. I needed the rest. – Eugene Yarmash Aug 23 '12 at 12:58
  • That is probably because before it mounts the root filesystem it had no / and no /var. And thus nowhere to write the log file. --- Does your VM allow you to set up a serial port? If it does then you could use a serial console? – Hennes Aug 23 '12 at 13:18
  • 1
    @Hennes dmesg.boot does contain everything since the kernel was started. It does not contain the bootstrap loader messages or any BIOS messages that weren't cleared. – Chris S Oct 08 '12 at 15:49