Hi, Nan Xiao wrote on Tue, Sep 12, 2017 at 08:58:25AM +0800:
> I want to run dmidecode (https://github.com/mirror/dmidecode) > on OpenBSD 6.1, but executing it will report following errors: > > # ./dmidecode > # dmidecode 3.1 > Scanning /dev/mem for entry point. > /dev/mem: Operation not permitted > > After single-step debugging, I find the error is from open /dev/mem: > > if ((fd = open(filename, O_RDONLY)) == -1) > { > if (errno != ENOENT) > perror(filename); > return NULL; > } > > I execute program as a root, and the attributes of `/dev/mem`: > > # ls -lt /dev/mem > crw-r----- 1 root kmem 2, 0 Aug 25 18:38 /dev/mem > > So it should open successfully. > Could anyone give some clues of this issue? Thanks for reporting. I just fixed the documentation. It now reads as follows: schwarze@isnote $ man 4 mem | grep -A2 Even Even with sufficient file system permissions, these devices can only be opened when the securelevel(7) is insecure or when the kern.allowkmem sysctl(3) variable is set. schwarze@isnote $ man securelevel | col -b | grep -A3 'Secure ' 1 Secure mode - default mode when system is multi-user - securelevel may no longer be lowered except by init - /dev/mem and /dev/kmem cannot be opened Yes, if you really want to use /dev/mem, you have to allow that during boot, as it makes the system insecure. So if you have already booted, you have to reboot to put the system in such an insecure mode of operation. But do *NOT* do that on any kind of production system, only do that on a system exclusively used for experimentation and debugging. Enabling this is intentionally hard to discourage using it. Also, even if you get this to work now, don't hold your breath that we will continue supporting it in the future. It seems likely to me that even more restrictions may be placed on /dev/mem in the future, and you should not expect that dmidecode will continue to work. Yours, Ingo ----- Forwarded message from Ingo Schwarze <[email protected]> ----- From: Ingo Schwarze <[email protected]> Date: Mon, 11 Sep 2017 20:22:16 -0600 (MDT) To: [email protected] Subject: CVS: cvs.openbsd.org: src CVSROOT: /cvs Module name: src Changes by: [email protected] 2017/09/11 20:22:16 Modified files: lib/libc/gen : sysctl.3 share/man/man7 : securelevel.7 share/man/man4/man4.alpha: mem.4 share/man/man4/man4.amd64: mem.4 share/man/man4/man4.hppa: mem.4 share/man/man4/man4.i386: mem.4 share/man/man4/man4.landisk: mem.4 share/man/man4/man4.loongson: mem.4 share/man/man4/man4.luna88k: mem.4 share/man/man4/man4.macppc: mem.4 share/man/man4/man4.socppc: mem.4 share/man/man4/man4.sparc64: mem.4 Log message: Update the documentation regarding /dev/mem and /dev/kmem; Theo already clamped down on these devices last year. Triggered by a question from Nan Xiao <xiaonan830818 at gmail dot com>. OK deraadt@ ----- End forwarded message -----

