NetBSD Planet

June 25, 2024

Pullup 9 [pullup-9 #1851] Fix off-by-one bug in btpand
Pullup 10 [pullup-10 #727] Fix off-by-one bug in btpand

June 23, 2024

/r/NetBSD SGImips 10.0 on R5000 O2 doesn’t boot

Digging out some of my older workstations lately, one a SGI O2 with R5000 and 384MB RAM. First threw OpenBSD on which worked fine except that the packages and ports system was broken (sgimips hasn’t been updated in ages) so I ditched it for NetBSD. Unfortunately I can’t get it to boot past the first few lines of kernel output. Booting off a CD burned from the sgimips ISO. Tried different assortments of RAM, and two different R5k cpus (both with secondary cache, one 180MHz/512kb and one 200MHz/1MB). Same results! I haven’t tried netbooting yet but it seems to be loading the kernel fine so I’m not sure that’ll make any difference.

Thoughts? Worth it to keep pursuing?

submitted by /u/Macroexp
[link] [comments]

June 22, 2024

Pullup 9 [pullup-9 #1850] install xsetwallpaper manual page

June 21, 2024

UnitedBSD Netflix on Netbsd with linux compat

So far: i have managed to make the readable and executable by firefox(i hope) and i have all the necessecary libraries it needs, and after a long wait netflix returns with error code F7701-1003. i am on firefox 123.0.1

Pullup 10 [pullup-10 #726] xbdback_xenbus.c 1.107 (fixes disk corruption)

June 20, 2024

/r/NetBSD how to disable ACPI warnings during install?

I get a ton of ACPI warnings on my console, which don't play well with the ncurses installer. is there a way to disable those? I still want ACPI to work, i just don't want the error messages. I know the manufacturer fucked some stuff up, but it seems to work fine for now, so I just want to silence them

submitted by /u/yukijoou
[link] [comments]

June 19, 2024

/r/NetBSD Problems getting CDE 2.5.2 installed from pkgsrc up & running on NetBSD 10.0

Decided to try and install CDE on my virtual netBSD system. Followed the instructions as much as i could, typed in `startcde`, and…

It quit back to cli, some apps of CDE did work stand-alone, but other then that some CDE apps required the underlining subsystems that CDE provides.

Am i doing something wrong along the lines? Or had the instructions became outdated?
Posting images of the problem + CLI output up on twitter/x.

submitted by /u/Marwheel
[link] [comments]
/r/NetBSD how to silence rsync acl warnings ?

hi folks,

when rsync'ing a directory tree (git clone) locally, I'm getting nasty warnings on each file:

default_perms_for_dir: sys_acl_get_file(., ACL_TYPE_DEFAULT): Operation not supported, falling back on umask

Tried --no-acls and --no-p, but doesn't work (on OpenBSD this does work, on FreeBSD it's not needed at all). How can I silence these warnings ?

thx --mtx

submitted by /u/metux-its
[link] [comments]
/r/NetBSD Suggestions for xf86-input-keyboard Manual


We're trying to build a new semantic manual page for the Xorg keyboard driver. Since this changes so rarely, we want to get it right the first time. I don't think we can do that without feedback from the NetBSD community!

If you have any experience and knowlege using this driver, I would love to hear absolutely anything (on topic 😋) from you!

Merge request:

My latest draft:


submitted by /u/CobblerDesperate4127
[link] [comments]

June 18, 2024

Pullup 10 [pullup-10 #725] Fw: CVS commit: xsrc/external/mit/xorg-server/dist/hw/xfree86/modes

June 17, 2024

Pullup 9 [pullup-9 #1849] Please pull up the following commits to the 9.0 branch (fwd)
Pullup 10 [pullup-10 #724] Please pull up the following commits to the 10.0 branch
Pullup 10 [pullup-10 #723] Appease kUBSan for PCI_CLASS_MASK

June 16, 2024

UnitedBSD pkgin suddenly not working with error

Hello everyone

I've been running NetBSD 9.3 on a Pi3 for about a year now with no problems. Suddenly today I do pkgin upgrade (as I always do) and I get this:

271808015988736:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:/usr/src/crypto/external/bsd/openssl/dist/ssl/statem/statem_clnt.c:1915:
271808015988736:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:/usr/src/crypto/external/bsd/openssl/dist/ssl/statem/statem_clnt.c:1915:
271808015988736:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:/usr/src/crypto/external/bsd/openssl/dist/ssl/statem/statem_clnt.c:1915:
pkgin: Could not fetch Authentication error

Can anyone tell me how to fix this? I have no clue what the problem is. Thanks in advance if you can help.

uname -a:
NetBSD RPi3-NetBSD 9.3 NetBSD 9.3 (GENERIC64) #0: Thu Aug 4 15:30:37 UTC 2022 [email protected]:/usr/src/sys/arch/evbarm/compile/GENERIC64 evbarm

June 14, 2024

UnitedBSD NetBSD 10 graphics card rx580

Hello everyone, I have a question about the rx580 graphics card, does it work in netbsd 10, are there any problems?

June 13, 2024

Pullup 9 [pullup-9 #1848] Fix a regression with coretemp functionality, etc.
Pullup pkgsrc [pullup-pkgsrc #6869] Please update firefox115 to 115.12.0
Pullup pkgsrc [pullup-pkgsrc #6868] pullup-request: lang/php8?

June 11, 2024

Ruben Schade I love Linux! ♡

It’s no secret that I love FreeBSD and NetBSD, and use both wherever I can for work and fun. Their operation makes the most sense to me, they have the tooling I trust and prefer to use, I’m sympathetic to their permissive licensing, and I like being a part of their communities.

This has lead more than a few people email asking why I don’t like Linux, or going as far to claim I must hate it. The TL;DR is, I don’t! I literally run it every day, at work and at home.

Background by Sosuke on a Fedora 40 desktop

(With thanks to sosuke for the amazing wallpaper. Pavolia Reine and Ceres Fauna are my favourite vtubers. Yes, I’m one of those people! Their original Pixiv account is gone alas).

I love Linux for a bunch of reasons.

On the server, it just runs (usually). I’d estimate half the customer VMs we run at work are Linux, but they’re responsible for less than 10% of our support tickets. When I am on pager duty for the evening and I get an alert from a Linux box, it’s almost always for something external affecting them. I wish I could say the same thing for Windows Server, which seems to spit the dummy at the slightest provocation.

Young people starting out in IT can get a Linux VPS or cloud server and learn to build amazing things. Every Linux server is another that would have previously been an expensive commercial system, or may not have even existed at all. This social good that comes from having access to this, alongside high-quality software a package manager command away cannot be understated; not to mention sticking it to convicted monopolists.

Moving to the desktop, modern Linux has made it feasible for me to not even need Windows for games, something I could have scarcely believed a decade ago. Red Hat Linux, Mandrake, and Cobind were my introduction to *nix before I even knew BSD was a thing, and I still run a lot of the software I got used to back then (even on the Mac).

This gets to the other fundamental reason I appreciate Linux. Just as Linux users and developers benefit from the tooling and code that comes from BSD, likewise we benefit from Linux existing. I run desktops and applications on my FreeBSD workstation that were mostly built for Linux. When something doesn’t have a native BSD build, it’s significantly easier to port or recompile a Linux application for BSD than, say, a Windows program (or even some old school UNIX). BSD users also tend to benefit from vendors realising they need to support Linux; it’s one step closer!

I don’t agree with some of the directions commercial vendors have forced the broader Linux ecosystem to take, though some Linux people don’t either!

Point is, even though I defer to BSD where possible, I’d still prefer to run Linux than almost anything else. I’m thankful it exists. 🐧

By Ruben Schade in Sydney, 2024-06-12.

June 10, 2024

OS News NetBSD 10 with disk encryption on UEFI, and NetBSD 10 on the Pinebook Pro

NetBSD 10 was released recently, so a lot of people are experimenting with it and writing down their thoughts. I’ve got two of those for you today, to help you in case you, too, want to install NetBSD 10 and play around with, or just use, it.

First, what if you want to install NetBSD 10 on a UEFI system, but with full disk encryption in case your device gets stolen? It turns out there are countless guides for installing with full-disk encryption on MBR-based systems, but once you use UEFI – as you should be – things get a lot more complicated. The NetBSD installer is apparently rather basic, and a better solution is to drop to a shell and install NetBSD that way instead, and even then, full disk encryption with UEFI is actually not possible, as it seems the root file system – where the operating system itself resides – cannot be encrypted.

The restriction is in the root file-system. It needs to be in plain-text and in a regular partition. It seems to me that rootfs in CGD or LVM is not well supported.


This seems like something the NetBSD team may need to take a look at, since full disk encryption should be an easy option to choose, even, or especially in 2024, on UEFI systems. Such encryption is easily achieved on Linux or Windows systems, and it seems odd to me that NetBSD is lagging behind a bit here. In the meantime, the linked guide will be a good jumping-off point for those of you interested in going a similar route.

The second article I want to highlight concerns NetBSD 10 on the Pinebook Pro, the inexpensive ARM laptop that normally ships with Linux. It turns out there’s a NetBSD 10 image for this device, so installation is quite a bit more straightforward than the more exotic setup I mentioned earlier. It seems most of the hardware works quite well out of the box, with the inly exception being the on-board Wi-Fi, which the author addressed with a USB W-Fi dongle.

Other than that, NetBSD is running well on the Pinebook Pro for the author, which is great to read since that makes this cheap device a great starting point for people interested in running NetBSD.

Pullup pkgsrc [pullup-pkgsrc #6867] pullup-request: lang/php82
Pullup pkgsrc [pullup-pkgsrc #6866] pullup-request: lang/php83
Pullup pkgsrc [pullup-pkgsrc #6865] pullup-request: lang/php81

June 09, 2024

Ruben Schade Create a FreeBSD jail with just base.tgz

This isn’t so much a tutorial (because you should read the Handbook for such guidance instead) and more a case of oh, that’s neat.

I’ve mentioned you can create a FreeBSD jail using bsdinstall(8), which you might have used to install FreeBSD in the first place. This lets you choose multiple distribution sets, and enable/disable certain services.

For example, if your jails are in the same place as mine:

holo# zfs create srv/jail/pavoliareine
holo# bsdinstall jail /srv/jail/pavoliareine

If you only need base though, you can just extract a tarball instead you downloaded from a FreeBSD mirror:

holo# zfs create srv/jail/pavoliareine
holo# tar -xvf base.tgz -C /srv/jail/pavoliareine

Wait, that’s it? Yes!

Okay, you may still need to configure it, like setting up resolv.conf and other files in /etc if you intend it to be network-facing. But other configuration you would have set up in /etc/jail.conf will be applied automatically.

When I talked about the practical differences between FreeBSD and Linux, this is one of the key ones that makes my life easier. I use a similar approach for chroot environments on NetBSD too, which I use/abuse for similar deployments to jails; that probably warrants its own post.

By Ruben Schade in Sydney, 2024-06-10.

June 08, 2024

UnitedBSD Moksha Desktop environment pkgsrc port

Anyone wants to take a shot at porting Moksha DE

# $NetBSD$

DISTNAME=       moksha-0.4.1
GITHUB_TAG=     v0.4.1

MAINTAINER=     [email protected]
COMMENT=        Moksha is an advanced window manager for X11 based on Enlightenment DR17
LICENSE=        2-clause-bsd

USE_TOOLS+=     autoconf automake gmake pkg-config

.include "../../x11/libX11/"
.include "../../x11/libXext/"
.include "../../x11/libXrender/"
.include "../../x11/libXrandr/"
.include "../../mk/"

June 07, 2024

Amitai Schlair Small ARMs

On my home network, some important jobs are performed by little ARM computers.

AirPlay to sound system

The house came with a decent sound system wired in. The receiver can take 1/8” stereo input — from AirPlay, with help from a decade-old Raspberry Pi 1 Model B Rev 2.

1. Prepare disk

With a 4GB SD card, from macOS:

$ diskutil list    # inspect output
$ SDCARD=disk6
$ diskutil unmountDisk ${SDCARD}
$ links
$ DISKIMAGE=20231109_raspi_1_bookworm.img.xz
$ fetch${DISKIMAGE}
$ xzcat ${DISKIMAGE} \
  | sudo dd of=/dev/r${SDCARD} bs=64k oflag=sync status=progress
$ diskutil eject ${SDCARD}

2. First boot

Place the RPi somewhere convenient. Connect SD card, keyboard, HDMI, Ethernet, and power. Log in as root, no password:

# apt update
# apt -y install etckeeper
# cd /etc
# git branch -M main
# apt -y install sudo
# visudo    # for the sudo group, insert NOPASSWD: before the final ALL
# useradd -m -G sudo -s /bin/bash schmonz
# passwd schmonz
# exit

Log in as schmonz:

$ sudo passwd root
$ sudo sh -c 'echo schleierplay >> /etc/hosts'
$ sudo hostnamectl hostname schleierplay
$ sudo ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime
$ sudo etckeeper commit -m 'Set root password, hostname, and timezone.'
$ sudo apt -y install shairport-sync
$ sudo vi /etc/shairport-sync.conf
$ sudo etckeeper commit -m 'Set AirPlay name.'
$ sudo shutdown -h now

3. Deployment

Raspberry Pi (with green case) _in situ_

Place the RPi where it’ll live. Connect audio cable, Ethernet, and power.

$ ssh-copy-id schleierplay.local

4. Usage

Make sure receiver is set to AUX input. Use AirPlay.

5. Maintenance

As with any Debian:

$ ssh schleierplay.local -t 'sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove'

To back up /etc, git push it someplace trustworthy and private.

6. Wishlist

I’d rather run NetBSD, but on 10.0 with shairport-sync, I saw a lot of AirPlay Speaker Not Available: 'House' is being used by someone else (even when it wasn’t). I may investigate on another Raspberry Pi with the pre-AirPlay Sonos speaker in my office.

AirPrint to old printer

My ancient USB-only HP LaserJet P1006 remains reliable for our basic needs and we’ve still got a pile of toner cartridges. A friend recently sent me a comparatively beefy Pine A64 board.

1. Prepare disk

With a 4GB SD card, from macOS:

$ diskutil list    # inspect output
$ SDCARD=disk6
$ diskutil unmountDisk ${SDCARD}
$ links
$ DISKIMAGE=Armbian_24.5.1_Pine64_bookworm_current_6.6.31_minimal.img.xz
$ fetch${DISKIMAGE}
$ xzcat ${DISKIMAGE} \
  | sudo dd of=/dev/r${SDCARD} bs=64k oflag=sync status=progress
$ diskutil eject ${SDCARD}

2. First boot

Place the A64 somewhere convenient. Connect SD card, keyboard, HDMI, Ethernet, and power. Follow the prompts to set the root password, create a user account, and select a locale. Then continue:

# apt update
# apt -y install etckeeper
# cd /etc
# git branch -M main
# visudo    # for the sudo group, insert NOPASSWD: before the final ALL
# exit

Log in as schmonz:

$ sudo sh -c 'echo schleierprint >> /etc/hosts'
$ sudo hostnamectl hostname schleierprint
$ sudo ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime
$ sudo etckeeper commit -m 'Set root password, hostname, and timezone.'
$ sudo apt -y install hplip avahi-daemon
$ sudo usermod -a -G lpadmin schmonz
$ sudo etckeeper commit -m 'Make myself a printer admin.'
$ sudo shutdown -h now

3. Deployment

Pine A64 Pi (with black and white case) _in situ_

Place the A64 where it’ll live. Connect printer, Ethernet, and power.

$ ssh-copy-id schleierprint.local
$ ssh schleierprint.local
$ sudo hp-setup -i    # follow prompts, mostly defaults; name the queue 'hpljp1006'
$ sudo etckeeper commit -m 'Add initial hplip config for P1006.'
$ sudo sed -i \
  -e '/^\*ColorDevice: True$/s|True|False|' \
  -e '/^\*OpenUI \*Duplex\/Double-Sided Printing: PickOne$/,/^\*CloseUI: \*Duplex$/s|^|*% |' \
  -e '/^\*OpenUI \*ColorModel\/Output Mode: PickOne$/,/^\*CloseUI: \*ColorModel$/s|^|*% |' \
$ sudo etckeeper commit -m 'Correct advertised printer capabilities.'
$ sudo sed -i \
  -e 's|^Info $|Info HP LaserJet P1006|' \
  -e 's|^<Printer |<DefaultPrinter |' \
  -e 's|/Printer>$|/DefaultPrinter>|' \
$ sudo etckeeper commit -m 'Name printer and set it as default.'
$ sudo sed -i \
  -e 's|^Listen localhost:631$|Listen|' \
  -e '/^<Location \/>$/a Allow @LOCAL' \
  -e '/^<Location \/admin>$/a Allow @LOCAL' \
  -e '/^WebInterface /a PreserveJobFiles No' \
$ sudo etckeeper commit -m 'Let local network talk to CUPS.'
$ sudo systemctl restart cups

On macOS, do not override the generic driver with “HP LaserJet P1006”. You won’t be able to print (with filter failed in the server logs), except that every “Supply Levels” check — including the ones that happen as part of every print job — will produce a piece of paper containing the single line @PJL INFO SUPPLIES.

As I understand it, some versions of CUPS have a server bug where it can’t discern whether incoming data has already been filtered for the target queue: filters converted the data (via application/vnd.cups-raster) to the printer’s native command set (whatever that might be)… but when the job got sent to the CUPS server it was tagged as application/vnd.cups-raster rather than, say, application/octet-stream.

While that discussion is over a decade old, its advice — leave the filtering to the server, and make sure clients don’t do any — has me printing from macOS, iOS, and Windows.

4. Usage

On macOS, add the printer. When it autoselects “Generic PostScript Printer”, leave it (details in sidebar). Print.

On iOS, print.

On Windows, add the printer. Print.

5. Maintenance

As with any Debian:

$ ssh schleierprint.local -t 'sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove'

To back up /etc, git push it someplace trustworthy and private.

6. Wishlist

I’d rather run NetBSD, but neither 10.0 nor -current brought up HDMI. I could try writing NetBSD to an SD card, mounting it from another NetBSD system, setting hostname in rc.conf, adding a non-root user, and then booting the A64 from it in order to do the rest over ssh. (Other systems that also didn’t bring up HDMI, wherefore I landed by trial and error on Armbian: FreeBSD 14, OpenBSD 7.5, Debian 12.)

UnitedBSD Bluetooth configuration

made a little tutorial that allows you to use wireless headphones on NetBSD

June 06, 2024

Pullup 9 [pullup-9 #1847] Non crilitical fix for mouse buttons on mac68k and macppc

May 30, 2024

OS News Help identify these obscure operating systems and vendors

Over on the GNU config-patches mailing list, Zack Weinberg is looking for help identifying a number of ancient operating systems and vendors.

These are probably all either vendor or OS names from the late 1980s or early 1990s. Can anyone help me fill out the following list of things that ought to appear in testsuite/, if I knew what to put in place of the question marks?

???-pc533 ???-pc533-???
???-sim ???-sim-???
???-ultra ???-ultra-???
???-unicom ???-unicom-???
???-acis ???-???-aos
???-triton ???-???-sysv3
???-oss ???-???-sysv3
???-storm-chaos ???-???-???

↫ Zack Weinberg

One of them has already been identified – “storm-chaos” turns out to have been added to binutils and/or maybe GCC in 2000, and after some digging around, John Marshall found what it’s referring to: chaos, a hobby operating system for x86 written in C. It has a long history, and after a period of inactivity came back in 2015 with a new website. Some new releases followed, with the last one being version 0.3.0 in 2019. It’s been silence since then.

The others are still up for grabs to be discovered. There is some talk that the pc533 one might be a misspelling of pc532, which would refer to the “NS32K-based PC532 board running NetBSD”. This is an incredibly obscure complete system built around the NS32532, of which only around 150 were built in the early ’90s. However, Weinberg is hesitant to accept this theory without more information, since there is already code to handle the pc532, and he wants to be sure before making any changes.

If there is one place on the internet outside of the GNU mailing lists that might be able to help Weinberg, it’s the OSNews audience. We have so many older people reading OSNews who have been working or otherwise active in this field for many decades, and I wouldn’t be surprised if these cryptic names make some bells ring for some of you. If one of you does e-mail a reply, be sure to mention this article – organic marketing to help keep us going!

May 27, 2024

OS News IceWM 3.5.0 released

IceWM, the venerable window manager we’ve all used at some point in our lives, has released a new version, 3.5.0. It’s a relatively minor release, so you’ve got things like a new install option which will install an extra theme, a fix for porting to NetBSD 10, translation updates, and more such small improvements. The AddressBar, a command line in the taskbar that can be summoned with ctrl+alt+space, also got some love, with file argument completion and support for the cd and pwd commands.

You can compile IceWM yourself, of course, but it’ll most likely find its way into your distribution’s repository quickly enough.

May 25, 2024

Ruben Schade Practical differences between FreeBSD and Linux

Michał emailed earlier this year saying he’s been reading a lot about BSD lately, but wanted to know the practical differences between it and Linux.

The Internet is replete with SEO-optimised comparison sites that offer superficial summaries of LLM-generated data laundered from sites like Wikipedia, so I thought I’d address the comparison here with my own experiences running both in production.

All of these are completely factual, with absolutely no subjective invocations of personal experience, jokes, or silliness. Yes, of course. Much of this also applies to NetBSD.




The bottom of the post

I’ve pointed out the similarities between the systems to encourage Linux people to give FreeBSD a try, but I hope this explains more of the differences. I happen to think FreeBSD is better for most things, but as with any tool, you should evaluate it based on your use case and requirements. That won’t satiate those looking for a flamewar, but it’s fact.

The Handbook and FreeBSD Foundation have more resources, and Klara Systems have an excellent series of articles that go into more technical detail about differences and migration paths.

My attitude is that if you’re interested, give it a try! There’s a lot to like, and even if you come away from it thinking it’s not for you, the only thing you’ve lost are your Linux blinkers. You don’t need to justify or make excuses for curiosity.

By Ruben Schade in Sydney, 2024-05-26.

May 20, 2024

OS News Windows Server 2025 to ship with DTrace by default

Windows Server 2025 comes equipped with dtrace as a native tool. DTrace is a command-line utility that enables users to monitor and troubleshoot their system’s performance in real-time. DTrace allows users to dynamically instrument both the kernel and user-space code without any need to modify the code itself. This versatile tool supports a range of data collection and analysis techniques, such as aggregations, histograms, and tracing of user-level events. To learn more, see DTrace for command line help and DTrace on Windows for additional capabilities.

↫ What’s new in Windows Server 2025

DTrace was originally developed by Sun as part of Solaris, but eventually made its way to other operating systems as Sun collapsed in on itself and Oracle gave it the final push. DTrace is available for the various surviving Solars-based operating systems, Linux, FreeBSD, NetBSD, macOS, and QNX, and Microsoft ported DTrace from FreeBSD to Windows back in 2018. With Windows Server 2025, DTrace will be shipped out of the box.

May 17, 2024

Ruben Schade NetBSD, AI-generated code, spam, and truth

AI-generated code is going about as well as you’d expect. Fun!

We start with The Register:

Pulumi AI and its online archive of responses, AI Answers, is a case in point. Google’s search crawler indexes the output of Pulumi’s AI and presents it to search users alongside links to human-authored content. Software developers have found some of the resulting AI-authored documentation and code inaccurate or even non-functional.

This is the only time I think it’s appropriate to call such works content. These examples and code don’t come from a place of care, respect, and proficiency, because that’s not what makes money. Spam already existed, but this significantly lowered the barrier to entry.

This outcome was entirely predictable, if you actually understand how these tools work. It’s also interesting to think about in the context of reaching peak LLM, as Jason Gorman theorised on Mastodon:

I’m guessing maybe that what’s happening with GPT is what we saw with text-to-image generative transformers. e.g., Midjourney has pivoted to new features because improving the performance of the core model is now bringing diminishing returns.

And since neither’s reliable enough for most use cases, the next A.I. winter may be upon us already.

I’ll admit, I’m biased given that generative AI spammers have increased my workload significantly. As with every technology with negative externalities, the people who use it aren’t the ones who pay. This is a bit of conjecture, but I suspect that if we had an economic system that brought these back as internal costs, most of these models would be unsustainable (if they weren’t already).

On this subject of ethics (and frankly security), last week I talked about how Stack Overflow announced they were going to launder licences by training models in what I suspect is a violation of Creative Commons. NetBSD have taken the reasonable approach that such works can’t be trusted by default:

If you commit code that was not written by yourself, double check that the license on that code permits import into the NetBSD source repository, and permits free distribution. Check with the author(s) of the code, make sure that they were the sole author of the code and verify with them that they did not copy any other code.

Code generated by a large language model or similar technology […] is presumed to be tainted code, and must not be committed without prior written approval by core.

It’s a bit grim that plagiarism has to be spelled out like this, but we’re in weird times right now. Next thing we’ll have to tell people not to drink paint because an LLM autocompleted a sentence suggesting it, or that a generative art model trained on someone’s life works and spitting out rough analogues does not, in fact, represent their dead spirit. I imagine we’re not that far off grifters comparing these tools to the singularity. And that it tastes like paint for some reason.

Which leads us to this final post by Gary Marcus, who debunks the idea that AIs “hallucinating” are the same as a human not telling the truth.

LLMs errors result from a different underlying process. They don’t have (e.g., ) intentions, egos, or financial interests, so they don’t lie; they don’t take drugs; they don’t have emotional states.

I’ve long said here that generative AIs bullshit rather than lie, because the latter requires intent that a computer doesn’t possess. Well, yet.

Anyway, that was just a collection of stories that came across my radar recently. For all the extraordinary potential for this technology, it’s not surprising at all that it’s being employed to generate spam, grifts, and plagiarism. As long as it’s easy, fast, and makes money (albeit in ever-diminishing, race-to-the-bottom, hyphenated-ways), the incentives will be there, and people will do it.

By Ruben Schade in Sydney, 2024-05-17.

May 15, 2024

OS News NetBSD bans use of Copilot-generated code

The NetBSD project seems to agree with me that code generated by “AI” like Copilot is tainted, and cannot be used safely. The project’s added a new guideline banning the use of code generated by such tools from being added to NetBSD unless explicitly permitted by “core“, NetBSD’s equivalent, roughly, of “technical management”.

Code generated by a large language model or similar technology, such as such as GitHub/Microsoft’s Copilot, OpenAI’s ChatGPT, or Facebook/Meta’s Code Llama, is presumed to be tainted code, and must not be committed without prior written approval by core.

↫ NetBSD Commit Guidelines

GitHub Copilot is copyright infringement and open source license violation at an industrial scale, and as I keep reiterating – the fact Microsoft is not training Copilot on its own closed-source code tells you all you need to know about what Microsoft thinks about the legality of Copilot.

May 09, 2024

NetBSD Package System (pkgsrc) on DaemonForums Gnumeric crashes under NetBSD evbarm
For me a big problem: Since 9.3 my NeBSD evbarm on my RaspberryPi's 4B crashes, as soon I open a .gnumeric file or enter any data into a cell. The crash produces a gnumeric.core file with size 0, there is no message in Xorg.o.log neither in messages.

This behaviour is 1005% reproducable and it happens always. However I remember older version, which ran properly. No problems under OpenBSD or FreebSD.

Any idea what going wrong here?


May 07, 2024

NetBSD Blog NetBSD 8.3 released and end of support for netbsd-8

The NetBSD Project is pleased to announce NetBSD 8.3, the third and final release from the NetBSD 8 stable branch.

It represents a selected subset of fixes deemed important for security or stability reasons since the release of NetBSD 8.2 in March 2020, as well as some enhancements backported from the development branch. It is fully compatible with NetBSD 8.0.

This also represents the end-of-life for the netbsd-8 release branch. No further security updates will happen. Users running 8.2 or an earlier release are strongly recommended to upgrade to a newer branch, preferably the recent NetBSD 10.0 release.

Pkgsrc has already desupported the netbsd-8 branch.

See the full release announcement (including download links).

Amitai Schlair notqmail 1.09 released

notqmail logo

My early imaginings of a collaborative Open Source successor to qmail, let me assure you, did not include going nearly four years between releases. Well, at least it hasn’t been more than four. notqmail 1.09 is here:

For decades, due to each administrator needing to patch in their particular missing bits of functionality, the qmail source code itself has effectively been a public API. Some future release of notqmail will include everything most everyone needs. On that day, we’ll freely make desirable code changes without worrying about breaking people’s patches. On that day, notqmail will have become a relatively normal software project operating under relatively normal constraints.

This is not that day. notqmail remains a uniquely challenging legacy-code rehabilitation project, and 1.09 is merely a solid, long-overdue release that includes the work of a couple dozen new contributors.

Since this release took too long, our next development cycle will be

  1. Time-bounded
  2. Focused on process improvements

In legacy code, every time we can turn a vicious cycle virtuous, it’s a big win. By making the code easier and safer to change, we’ll have more fun; by having more fun, we’ll make more progress; by making more progress, we’ll get more feedback; by getting more feedback, we’ll have more fun; and so on.

Have fun with notqmail 1.09! Let us know how the upgrade goes for you. (I’ll be updating the pkgsrc package soon.) And if getting involved is your kind of thing, please feel welcome to join us.

May 05, 2024

Unix Stack Exchange Can't use OpenVPN as client on NetBSD, route add command fails

I am trying to use OpenVPN as a client under NetBSD using this command:

openvpn --client --config /etc/openvpn/config.ovpn

I am getting the following output and errors:

localhost# openvpn --client --config /etc/openvpn/openvpn.ovpn 
2024-04-26 10:29:35 WARNING: Compression for receiving enabled. Compression has been used in the past to break encryption. Sent packets are not compressed unless "allow-compression yes" is also set.
2024-04-26 10:29:35 DEPRECATED OPTION: --cipher set to 'AES-256-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305). OpenVPN ignores --cipher for cipher negotiations. 
2024-04-26 10:29:35 OpenVPN 2.6.10 x86_64--netbsd [SSL (OpenSSL)] [LZO] [LZ4] [MH/PKTINFO] [AEAD]
2024-04-26 10:29:35 library versions: OpenSSL 1.1.1k  25 Mar 2021, LZO 2.10
Enter Auth Username:********
Enter Auth Password:********
2024-04-26 10:32:48 TCP/UDP: Preserving recently used remote address: [AF_INET]**.191.33.**:1701
2024-04-26 10:32:48 Socket Buffers: R=[32768->32768] S=[32768->32768]
2024-04-26 10:32:48 Attempting to establish TCP connection with [AF_INET]**.191.33.**:1701
2024-04-26 10:32:48 TCP connection established with [AF_INET]**.191.33.**:1701
2024-04-26 10:32:48 TCPv4_CLIENT link local: (not bound)
2024-04-26 10:32:48 TCPv4_CLIENT link remote: [AF_INET]**.191.33.**:1701
2024-04-26 10:32:48 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
2024-04-26 10:32:48 TLS: Initial packet from [AF_INET]**.191.33.**:1701, sid=0006909e 9b0d208f
2024-04-26 10:32:48 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
2024-04-26 10:32:48 VERIFY OK: depth=1, C=US, ST=New York, L=New York, O=Ubiquiti Inc., OU=UniFi_OpenVPN_CA, CN=UniFi_OpenVPN_CA
2024-04-26 10:32:48 VERIFY KU OK
2024-04-26 10:32:48 Validating certificate extended key usage
2024-04-26 10:32:48 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
2024-04-26 10:32:48 VERIFY EKU OK
2024-04-26 10:32:48 VERIFY OK: depth=0, C=US, ST=New York, L=New York, O=Ubiquiti Inc., OU=UniFi_OpenVPN_Server, CN=UniFi_OpenVPN_Server
2024-04-26 10:33:53 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 2048 bits RSA, signature: RSA-SHA256, peer temporary key: 253 bits X25519
2024-04-26 10:33:53 [UniFi_OpenVPN_Server] Peer Connection Initiated with [AF_INET]**.191.33.**:1701
2024-04-26 10:33:53 TLS: move_session: dest=TM_ACTIVE src=TM_INITIAL reinit_src=1
2024-04-26 10:33:53 TLS: tls_multi_process: initial untrusted session promoted to trusted
2024-04-26 10:33:53 PUSH: Received control message: 'PUSH_REPLY,dhcp-option DNS,route,route,route,route,route-gateway,topology subnet,ping 10,ping-restart 60,ifconfig,peer-id 0,cipher AES-256-GCM'
2024-04-26 10:33:53 OPTIONS IMPORT: --ifconfig/up options modified
2024-04-26 10:33:53 OPTIONS IMPORT: route options modified
2024-04-26 10:33:53 OPTIONS IMPORT: route-related options modified
2024-04-26 10:33:53 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
2024-04-26 10:33:53 TUN/TAP device /dev/tun0 opened
2024-04-26 10:33:53 /sbin/ifconfig tun0 mtu 1500 netmask up
2024-04-26 10:33:53 /sbin/route add -net -netmask
add net gateway
2024-04-26 10:33:53 /sbin/route add -net **.191.33.** -netmask
route: writing to routing socket: File exists
add net **.191.33.**: gateway File exists
2024-04-26 10:33:53 ERROR: OpenBSD/NetBSD route add command failed: external program exited with error status: 1
2024-04-26 10:33:53 /sbin/route add -net -netmask
add net gateway
2024-04-26 10:33:53 /sbin/route add -net -netmask
add net gateway
2024-04-26 10:33:53 /sbin/route add -net -netmask
add net gateway
2024-04-26 10:33:53 /sbin/route add -net -netmask
add net gateway
2024-04-26 10:33:53 /sbin/route add -net -netmask
route: writing to routing socket: File exists
add net gateway File exists
2024-04-26 10:33:53 ERROR: OpenBSD/NetBSD route add command failed: external program exited with error status: 1
2024-04-26 10:33:53 /sbin/route add -net -netmask
add net gateway
2024-04-26 10:33:53 GID set to nogroup
2024-04-26 10:33:53 UID set to nobody
2024-04-26 10:33:53 Initialization Sequence Completed
2024-04-26 10:33:53 Data Channel: cipher 'AES-256-GCM', peer-id: 0, compression: 'lzo'
2024-04-26 10:33:53 Timers: ping 10, ping-restart 60

I have a working internet connection when running OpenVPN as a client, but I can't access any of the machines on the network **.191.33.**, I know I should be able to SSH into, but I can't reach that machine through OpenVPN, there are firewall rules in the Ubuiquity box allowing traffic from 192.168.7.* to 192.168.1.* I know this is working, its testet from Mac and PC using the OpenVPN Client, I just can't get it to work on NetBSD

This is my routing table before running OpenVPN:

Destination        Gateway            Flags    Refs      Use    Mtu Interface
default        UGS         -        -      -  iwn0
127/8              UGRS        -        -  33624  lo0          lo0                UHl         -        -  33624  lo0
192.168.1/24       link#2             UC          -        -      -  iwn0       link#2             UHl         -        -      -  lo0      00:1e:80:a2:2e:ff  UHL         -        -      -  iwn0

This is my routing table when running OpenVPN:

Destination        Gateway            Flags    Refs      Use    Mtu Interface
0/1              UGS         -        -      -  tun0
default        UGS         -        -      -  iwn0
**.191.33.**/32      UGS         -        -      -  iwn0
127/8              UGRS        -        -  33624  lo0          lo0                UHl         -        -  33624  lo0
128/1            UGS         -        -      -  tun0
192.168.1/24       link#2             UC          -        -      -  iwn0       link#2             UHl         -        -      -  lo0
192.168.2/24        UGS         -        -      -  tun0
192.168.3/24        UGS         -        -      -  tun0
192.168.4/24        UGS         -        -      -  tun0
192.168.7/24        UGS         -        -      -  tun0        UH          -        -      -  tun0        tun0               UHl         -        -      -  lo0      00:1e:80:a2:2e:ff  UHL         -        -      -  iwn0

This is my routing table after stopping OpenVPN:

Destination        Gateway            Flags    Refs      Use    Mtu Interface
0/1              UGS         -        -      -  tun0
default        UGS         -        -      -  iwn0
**.191.33.**/32      UGS         -        -      -  iwn0
127/8              UGRS        -        -  33624  lo0          lo0                UHl         -        -  33624  lo0
128/1            UGS         -        -      -  tun0
192.168.1/24       link#2             UC          -        -      -  iwn0       link#2             UHl         -        -      -  lo0
192.168.2/24        UGS         -        -      -  tun0
192.168.3/24        UGS         -        -      -  tun0
192.168.4/24        UGS         -        -      -  tun0
192.168.7/24        UGS         -        -      -  tun0        tun0               UHl         -        -      -  lo0      00:1e:80:a2:2e:ff  UHL         -        -      -  iwn0

This is my routing table when i have destroyed tun0:

ifconfig tun0 destroy
Destination        Gateway            Flags    Refs      Use    Mtu Interface
default        UGS         -        -      -  iwn0
**.191.33.**/32      UGS         -        -      -  iwn0
127/8              UGRS        -        -  33624  lo0          lo0                UHl         -        -  33624  lo0
192.168.1/24       link#2             UC          -        -      -  iwn0       link#2             UHl         -        -      -  lo0      00:1e:80:a2:2e:ff  UHL         -        -      -  iwn0

The route to **.191.33.** is still there when stopping OpenVPN and destroying the tunnel tun0, I don't know if this is expected behaviour.

Update I have checked several computers now, and none of them have the 192.168.1/24 route, its only on the PC running NetBSD, I have tried to delete it, with no success. I have also read a lot of man pages and various other documentation, but I have not come up with anything usefull yet.

OpenVPN Config

dev tun
proto tcp
remote **.191.33.** 1701
resolv-retry infinite

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup


remote-cert-tls server
cipher AES-256-CBC
verb 3

auth SHA1
key-direction 1

reneg-sec 0

redirect-gateway def1

-----BEGIN OpenVPN Static key V1-----
-----END OpenVPN Static key V1-----


I am trying to connect to a VPN at a remote location, from home. The remote network is protected by a firewall facing the internet, all computers on the network behind the router is accessible, the 192.168.7.* network is standard Ubuiquity and used for VPN clients, I have added a firewall rule to allow traffic from 192.168.7.* to the 192.168.1.* network, this works fine from all computers I have tried it with, Mac, PC, Windows, Linux, MacOS. etc. except a PC running NetBSD.

The network configuration on the PC running NetBSD was performed during installation, and I used the auto-configuration feature, so I have not specified any networks, routes or rules at all. I am able to access the internet when using OpenVPN client, I just cannot access any of the machines on the remote network. So I guess the part I am missing is the routing from 192.168.7.* to 192.168.1.* so I will be able to access computers attached to that network

May 04, 2024

NetBSD Blog X.Org on NetBSD - the state of things

A few years ago, I wrote a "state of things" blog post about Wayland on NetBSD. It's only natural that I should do one about X11, which is used by far more people to get a graphical environment on NetBSD.

Spinning glxgears, a classic X.Org program.

There are a lot of differences from how NetBSD and the typical distributor ship X.Org. For one, we ship it as an optional monolithic package rather than separate individual packages. This means every driver is included on every system, rather than as an optional module. Sometimes, this means we need to fine-tune driver selection to ensure the correct drivers are loaded on the correct hardware, since multiple conflicting drivers can claim a video output. We also want sensible fallbacks, since if you're using a GPU from the future with an old OS version, you probably want X to seamlessly fall back to a regular framebuffer.

Secondly, the way our "xsrc" repository is set up, it's effectively functioning as a fork of X.Org that regularly pulls from upstream (but does not push back). This allows X development to happen as part of NetBSD.

Thirdly, we use our own build system based purely on BSD makefiles, not X.Org's based on GNU autotools. This fits well with our cross-compilation system.

We have a number of drivers which have not made their way upstream. Perhaps the most ubiquitous of these is xf86-input-ws, a driver which came from OpenBSD, targets an API from NetBSD, and continues to be developed in both. This is a generic input driver that can support any pointing device that the kernel supports. Unlike xf86-input-mouse, it doesn't assume the device is a mouse, and can support advanced touchpad and touchscreen features. Other NetBSD exclusives include xf86-video-pnozz, xf86-video-mgx, and xf86-video-crime. While these all share the "xf86" name inherited from the historical XFree86 distribution, none of them are exclusively for x86.

There are a number of drivers that are accelerated when used in NetBSD, but the acceleration support is missing upstream. This is mostly due to the work of macallan@, who has diligently worked on drivers for accelerators found on SPARC and PowerPC hardware.

X.Org has historically supported two 2D acceleration modes, XAA and EXA. XAA seems complicated - according to the X.Org Foundation it supports accelerating "patterned fills and Bresenham lines" (eh?). XAA was removed from the X.Org server in 2012, and many old drivers were not updated to support the newer and simpler EXA model, except in NetBSD, over a time period of several years.

Did you know that Nvidia used to have an open source graphics driver? It supported 2D acceleration for a range of cards. In NetBSD, it's retained for platforms that included embedded Nvidia chips and aren't capable of (or predate, or don't want) the modern novueau driver. Six years ago, it was updated in NetBSD to support EXA acceleration.

There are a few ways our X integration could be improved. While lots of attention has been paid to the server, less has been paid to clients (programs). Did you know that X includes a text editor, and that text editor supports syntax highlighting and spell checking?

xedit, the standard editor

NetBSD includes its own command-line spell checker and associated dictionaries, spell(1), inherited from the BSD UNIX of yore. It's pretty basic, and only supports variations of English. To get spell checking to work in xedit, you need to install ispell (another command-line spell checker) from pkgsrc, install a dictionary, then set some Xresources (or create symlinks) to make sure xedit finds ispell. This could surely be streamlined by teaching xedit about spell.

We also ship every program that has been included with historical X.Org distributions. This includes well-known things like xterm, slightly less well-known things like xbiff(1), and obscurities like bitmap(1) (apparently a 1-bit-per-pixel alternative to MS Paint). A while ago, we removed some libraries which are no longer used by the modern X server, and maybe we should evaluate whether we need all of these programs too. xmh(1) is a frontend for a mail system that isn't included in base. Together, bitmap and xmh are around 300 kilobytes.

We include fonts, bitmaps and scalable, for a wide range of computing devices. In the latest versions of NetBSD, the font size will automatically scale with the screen size to support HiDPI displays as well as small mobile devices. However, we don't ship a scalable cursor theme at the moment. We're also missing high-resolution fonts for Japanese, a shame considering the popularity of NetBSD in Japan. Koruri looks interesting and is suitably small, maybe we should import it.

While we have many useful simple programs by default (a clock, a calculator, an editor, a window manager, a compositor, a terminal emulator...), we're notably missing a screen locking program for X in the default install, although we have lock(1) for the tty.

The big question - does all this have a future? The good news is that all new hardware has generic support in X. Someone writes either a modesetting kernel driver or a classical wsdisplay kernel driver and they will be automatically supported by the associated drivers in X. The bad news is that to have applications running we require access to a larger open source ecosystem, and that ecosystem has a lot of churn and is easily distracted by shiny new squirrels. The process of upstreaming stuff to X.Org is an ongoing process, but it's likely we'll run into things that will never be suitable for upstream.

Of course, on NetBSD, you also have the option of trying vanilla modular X.Org from pkgsrc, or using something else entirely.

April 25, 2024

Ruben Schade A BSD person tries Alpine Linux

In February last year I wrote about running a FreeBSD desktop, and concluded that sometimes you need to give yourself permission to tinker.

Well recently I’ve started tinkering with Alpine Linux! It’s been recommended to me for years, so I’m finally getting around to checking it out. There’s a lot to like if you come from BSD, which we’ll dig into here.

Booting a new Alpine ISO on OrionVM

A potted history

The Alpine website describes it as:

an independent, non-commercial, general purpose Linux distribution designed for power users who appreciate security, simplicity and resource efficiency.

Its small footprint and design decisions also make it more secure:

All userland binaries are compiled as Position Independent Executables (PIE) with stack smashing protection. These proactive security features prevent exploitation of entire classes of zero-day and other vulnerabilities.

Natanael Copa discussed the genesis of the project back in 2005, making it older than I realised. Like the BSDs, it’s found its way into embedded systems, routers, and mobile devices, as well as general purpose servers and desktops.

Alpine is also a popular base for use in Linux containers, owing to its compact size and limited dependencies. There are also toolchains for easily running it in a chroot(8), which is interesting for someone who uses NetBSD chroots(8) and FreeBSD jails extensively for testing and deployments.


Alpine comes in a few different versions, including builds for ARM, PPC64, x86, and x86_64.

I downloaded the Xen ISO image because I was booting it on a VM at work, before realising I misread Dom0 as DomU. The former refers to a Xen hypervisor, not a guest. Either way, it booted and installed the same as a standard ISO.

The install process is about as simple as you could make it. You log into the live environment with root and no password, then execute setup-alpine.

You’re asked basic questions for your keymap, networking, timezone, and root authentication. You can also inject an SSH key from the start, which is useful if you’re deploying a fleet of VMs or servers with an orchestration tool after the fact, or you’re deploying to a mediocre hosting provider that doesn’t give you an OOB console.

You’re also given the choice of a few different SSH servers and ntp clients, which let me choose my preferred OpenSSH and openntpd. It also correctly identified it was operating under Xen.

Screenshot of a portion of the Alpine Linux installer, showing the mirror selection, user config, and Xen installation.

It can also configure an LVM, but I stuck with what Alpine calls standard sys partitions for now. This uses ext4.

Post-install and exploration

Booting into Alpine for the first time, your given a hint as to why it’s special: dmesg(1) informs you you’re running OpenRC! It’s portable, small, fast, efficient, transparent, and secure. It’s also very familiar to a BSD person used to writing rc scripts. /etc/rc.conf and crond(8)!? Yes!!!

At the risk of embellishing my feelings about this, it is such a relief that there are Linux distros like Devuan, Gentoo, and Alpine using this. It’s a breath of alpine air, and has legitimately made Linux fun again.

Screenshot showing dmesg output on first boot.

Along with OpenRC, Alpine is bundled with musl, and runs busybox. Both are obviously more limited than GCC and the GNU coreutils, but they further contribute to the base system’s smaller size and attack surface. llvm is also available, as is the MirBSD Korn shell, one of my two preferred interactive shells.

Um, Ruben, I’d like to interject for a moment. What you are referring to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, a GNU grilled cheese sandwich merely featuring Linux as the…

… nope!


Speaking of installing packages, let’s take a look at that. Alpine’s default package manager is apk. As is normal on Linux, this handles updating the base system and all packages, because it makes no distinction. I’d be interested to see if I could also run an unprivileged copy of this as I like to do on the BSDs, but I haven’t checked yet. There’s also pkgsrc, so no biggie.

Configuration is in /etc/apk/repositories, where you can enable the community repo by uncommenting the second URL supplied by the installer. Alpine also has a testing repo, and you can add your own.

Usage is easy, though I’ve still been mistyping apt install instead of apk add, because old habits die hard. There’s an official web interface, and Alpine repos are on

A few packages later, and I had my “essentials” going, like I do on my console-only laptop:

Alpine running tmux, htop, zpool, and cmatrix.

Perhaps the package I was most surprised about was zfs. It was literally two commands to install and load the kernel module (though obviously root on ZFS would be more involved). What that would look like after an upgrade I’d have to see, but thus far I’m impressed.

# apk add zfs zfs-lts
# modprobe zfs


I’ve barely scratched the surface, but there’s enough here for me to seriously consider a switch to it as my primary Linux distro for testing and servers. I love that htop(1) and lsof(1) only shows a small list of recognisable processes, that it uses OpenRC, that package management seems straight forward, and that it’s so simple to configure. I’ve wondered what a modern, functional “Occam’s Linux” would look like. This is it.

I’d be interested in seeing if uutils runs if I need something more than busybox, but for a server I doubt it.

Alpine running the Alpine mail client

I heard you liked Alpine, so I etc…

By Ruben Schade in Sydney, 2024-04-26.

April 23, 2024

NetBSD Blog NetBSD 9.4 released

The NetBSD Project is pleased to announce NetBSD 9.4, the fourth release from the NetBSD 9 stable branch.

It represents a selected subset of fixes deemed important for security or stability reasons since the release of NetBSD 9.3 in August 2022, as well as some enhancements backported from the development branch. It is fully compatible with NetBSD 9.0. Users running 9.3 or an earlier release are strongly recommended to upgrade.

The general NetBSD community is very excited about NetBSD 10.0, the latest NetBSD release, but if for some reason you can not (or do not want to) update to 10.0, it is strongly recommended to update to 9.4. This is especially true for users still using a NetBSD 8.x release as that old release branch will be desupported by the end of April 2024.

Full release notes, including download links

April 20, 2024

The NetBSD Foundation NetBSD 9.4 is available!

April 14, 2024

DragonFly BSD Digest Lazy Reading for 2024/04/14

If you sorta squint and tilt your head, it’s a games theme this week.

Your unrelated music for the week: New Strategies for Modern Crime Vol 1.  (via)

April 12, 2024

Stack Overflow NetBSD driver: flags always true for memory pages

I am trying to write a driver for NetBSD that will reserve 10 pages of virtual memory, then provide the first 5 pages with physical addresses. At the end, I output the page number, its physical address, and flags such as Valid, User and Modified. However, it seems to me that the flags are not working correctly, since for all pages, all flags have the same value, which is 1 (true). Please help me figure out what I'm doing wrong.

#include <sys/cdefs.h>
#include <sys/module.h>
#include <sys/param.h>
#include <sys/sysctl.h>
#include <uvm/uvm.h>

#define PAGESIZE 0x1000
extern paddr_t avail_end;
vaddr_t va;
struct pglist plist;
static int lab4_modcmd(modcmd_t cmd, void* arg) {
   va = uvm_km_alloc(kernel_map, PAGESIZE*10, 0, UVM_KMF_VAONLY);
   if (va == 0) {
      return 0;
   int error = uvm_pglistalloc(PAGESIZE*5, 0, avail_end, 0, 0, &plist, 5, 0);
   if (!error) printf ("LAB4 loaded\n");
   struct vm_page *page = TAILQ_FIRST(&plist);
   for(int i = 0; page; i++) {
      pd_entry_t *ppte;
      ppte = L2_BASE+pl2_i(va+PAGESIZE*i);
      paddr_t pa = VM_PAGE_TO_PHYS(page);
      printf("Page - %d\n", i+1);
      printf("Valid - %d\n", ((*ppte & PG_V) ? 1 : 0));
      printf("Used - %d\n", ((*ppte & PG_U) ? 1 : 0));
      printf("Modified - %d\n", ((*ppte & PG_M) ? 1 : 0));
      printf("Physical address - 0x%lx\n", pa);
      page = TAILQ_NEXT(page, pageq.queue);
   uvm_km_free(kernel_map, va, PAGESIZE*10, UVM_KMF_VAONLY);
   return 0;

I tried to look for other examples where these flags are used.

April 09, 2024

Stack Overflow PyQt - Hidden widget leaves space in Window

I have the following code that produces a window with a QTableView visible. I add a QTextEdit to the right but hide it. When I run the code it looks as though space has been reserved on the right for the TextEdit even though the TableView has a setSizePolicy of Expanding. What do I need to set so that the TableView initially takes up all the space in the window, then shrinks to accommodate the TextEdit and then expands fully when the TextEdit is hidden? Thank you in advance.

import sys
from PyQt5.QtWidgets import QApplication, QGridLayout, QMainWindow, QPushButton
from PyQt5.QtWidgets import  QSizePolicy, QTableView, QTextEdit, QWidget

class MainWindow(QMainWindow):
    def runBtn(self):
        if self.hdn == True:
            self.hdn = False

    def __init__(self):            
        widget = QWidget()
        self.layout = QGridLayout(widget)
        self.hdn = True

        self.Btn = QPushButton('Hide/Show',self)
        self.layout.addWidget(self.Btn, 0, 0, 1, 1)

        self.view = QTableView()
        self.layout.addWidget(self.view, 1, 0, 48, 50)
        self.view.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) # /73522221/

        self.text = QTextEdit()
        self.layout.addWidget(self.text, 1, 50, 48, 2)

app = QApplication(sys.argv)
window = MainWindow()

April 02, 2024

Amitai Schlair pkgsrc on macOS: still works

A few weeks ago, Apple released new versions of Xcode and Command Line Tools. Not thinking too hard about how my pkgsrc developer environment often gets broken by OS or tool updates, I updated promptly. For one thing, I’m kinda used to it. For another, it doesn’t usually break. For a third thing, managing dependencies — anything not my code that can break my code — means responsibility for dealing with the inevitable trouble, and therefore the sooner I find it the better. (More on my approach to life with dependencies.)

A vendor-provided toolchain is a significant dependency. So I accepted the Command Line Tools update, and it commandeered my spare time for two weeks as I hurried carefully to repair one of the world’s biggest continuous-integration cauldrons on one of its most popular platforms. When I ran my usual pkg_rolling-replace -suv to rebuild anything outdated, it did not go well at all.

This article uses “we” because the continued smooth operation of pkgsrc on macOS reflects the contributions of many developers on many occasions, including this one: I happened to be first on the scene, but several of us of were discussing the problems and potential workarounds and all of “my” commits were adjusted accordingly.

Did I mention that a few weeks ago we were aiming to stabilize for yesterday’s quarterly release? Suddenly, if we didn’t scramble to straighten things out for macOS users, we’d have to manage a complicated situation for a while. But if we created a mess on other platforms by moving rashly, that’d be even worse.

The usual feedback mechanism for proposed infrastructure changes is to compare full bulk builds before and after. There was no time for that.

Happily, the conclusion of the story is boring: as always, the pkgsrc 2024Q1 stable branch supports macOS and its developer tools, including the latest releases of each. (So does -current pkgsrc, of course, if that’s your thing.)

Curious what we had to do to keep it boring? Read on.

Stricter clang defaults

Upstream Clang 16 and GCC 14 have promoted several warnings to errors by default, and Apple’s Clang 15 has followed suit. (Gentoo has very helpfully documented this for packagers.) These changes are intentional and well-intentioned, pushing maintainers to ship more reliable code. But pkgsrc’s job is to build nearly 30,000 codebases we don’t maintain. And stricter compiler defaults break a lot of builds.

As you might hope, we can make the breakage go away in one place.

In pkgsrc, packages declare which programming languages are required for their build. The compiler framework then selects package-and-platform-appropriate compilers, places them preferentially in the package’s build environment, and — crucially — intercepts compiler invocations and rewrites them for a variety of purposes.

When we look into pkgsrc’s clang logic, we find prior art for this specific class of problem. In September 2020, Xcode 12 (and its associated Command Line Tools) arrived even later in our quarterly schedule and promoted -Wimplicit-function-declaration to an error. The surgical fix: on macOS only, if invoking clang reveals the new stricter default, we pass -Wno-error=implicit-function-declaration to demote the error back to a warning.

Apple Clang 15’s new strictures aren’t observable in the same way, so we adjust our workaround: if clang doesn’t complain when we try demoting the new errors back to warnings, we pass those arguments too, via the same compiler-framework mechanism.

Missing m4 and yacc

This messy regression found only in the Command Line Tools update — not in the corresponding full Xcode 15.3 (build 15E204a) update — must have been unintended.

On macOS, some of the familiar Unix tools in /usr/bin are in fact stubs. When invoked, they either execute into the corresponding installed program (living somewhere under /Library/Developer) or prompt the user to install the Command Line Tools.

This Command Line Tools update uninstalls m4 and yacc from /Library/Developer. But since the OS-provided /usr/bin/m4 and /usr/bin/yacc stubs still exist, running m4 or yacc still does something: it pops up a window prompting you to reinstall the CLT. Unfortunately, as the latest available version doesn’t provide those tools, reinstalling is a waste of time.

As you might once again hope, we can hide the problem without personally visiting 29,000+ packages.

In pkgsrc, we also have a framework to control which non-compiler tools are invoked during builds. Packages declare which tools are required for their build. The tools framework then selects package-and-platform-appropriate incarnations of the declared tools and places them preferentially in the package’s build environment.

We just got handed a few new twists to handle in the framework, is all.

First, because this clever new CLT failure mode outfoxes our usual tool-detection mechanism, we special-case m4 and yacc detection on macOS, performing an existence check for the stubs’ targets. Then the selection mechanism’s usual fallback logic can provide them some other way. This prevents the primary source of needless CLT install popups. For non-macOS platforms, no change.

Second, because some packages might not yet be declaring all their tool dependencies, we special-case m4 and yacc handling on macOS: when they’re not declared, we place them in the build environment anyway, as no-ops. If the package build happens to invoke them, nothing happens. This prevents the secondary source of needless CLT install popups, at the risk of breaking macOS builds for packages that are missing these tool declarations and have heretofore gotten lucky; in such cases, the breakage will be obvious and the fix easy. For non-macOS platforms, no change. (At leisure, we might like to broaden this approach to help find and fix all undeclared tools on all platforms.)

Third, because the flex tool expects to invoke a GNU-compatible m4, we adjust the tools framework to infer gm4 from a flex declaration so that the framework controls which m4 gets found. This more correctly expresses our intent on all platforms, and in the macOS package build environment it restores /usr/bin/flex to a working state.

Broader xcrun search

We were already relying on xcrun for a couple of things, so when our new tool-detection special cases were sometimes getting surprising results from it, that was concerning. Turns out xcrun no longer looks solely in Apple-controlled locations, but also consults the environment’s $PATH. By invoking xcrun with an empty PATH and --no-cache, we obtain controlled, predictable tool detection.


Under the constraints, we changed as little as possible, as safely as possible, as similarly as possible to previous proven changes, avoiding novel constructs or any whiff of unforeseen consequences. We could not have done nearly as safe or thorough a job without good abstractions already in place. Total lines of pkgsrc infrastructure code changed: less than 100. Now that 2024Q1 is out, we have room to refactor.

These 15.3 updates also include a brand new linker. So far it hasn’t given us any trouble. If that changes, wanna guess whether we have one place to take care of it?

March 31, 2024

Frederic Cambus Toolchains adventures - Q1 2024

This is the ninth post in my toolchains adventures series. Please check the previous posts in the toolchains category for more context about this journey. There was no Q4 2023 report as there wasn't really anything worthwhile to write about.

I've been taking a break from Pkgsrc to only focus on OpenBSD at this point, for which I updated binutils to version 2.42 in the ports tree.

During this OpenBSD release cycle, the remaining parts required to get pinsyscalls(2) working have been committed, and I added support upstream for the PT_OPENBSD_SYSCALLS segment type to readelf in GNU Binutils, as well as in LLVM versions of objdump and readobj.

Lastly, I also wrote a blog post about Speedbuilding LLVM/Clang in 3 minutes on Power10.

As usual, I’ve also been busy reading different material, and adding new resources to

binutils commits:

2024-02-12d86205cAdd support to readelf for the PT_OPENBSD_SYSCALLS segment type

LLVM commits

2024-02-20a8d7511[llvm-readobj] Add support for the PT_OPENBSD_SYSCALLS segment type
2024-02-201b89486[llvm-objdump] Add support for the PT_OPENBSD_SYSCALLS segment type
2024-02-1797eff26[Support/ELF] Add OpenBSD PT_OPENBSD_SYSCALLS constant
2024-02-10d2e4a72[clang] Update Clang version from 18 to 19 in scan-build.1

March 30, 2024

NetBSD Blog NetBSD 10.0 available!

The NetBSD project is pleased to announce the eighteenth major release of the NetBSD operating system NetBSD 10.0!
See the release announcement for details.

The netbsd-10 release branch is more than a year old now, so it is high time the 10.0 release makes it to the front stage. This matches the long time it took for the development branch to get ready for branching, a lot of development went into this new release.

This also caused the release announcement to be one of the longest we ever did.

If you want to try NetBSD 10.0 please check the installation notes for your architecture and download the preferred install image from the CDN or if you are using an ARM based device from the netbsd-10 builds from the bootable ARM images page.

If you have any issues with installation or run into issues with the system during use, please contact us on one of the mailing lists or file a problem report.

NetBSD Blog Statement on backdoor in xz library

Recently, a backdoor was discovered in the xz compression library. xz/liblzma are included as a part of NetBSD and used by the project for distribution of new releases and packages.

The version of xz shipped in all stable (and unstable) versions of NetBSD predates any code changes by the author of the backdoor. NetBSD is therefore safe and unaffected by the recent discoveries. It is believed that the attack only targets Linux/glibc, but checking this allowed us to rule out any other attempts at compromising the library by the author.

The version of xz shipped in pkgsrc, however, is affected. Using xz from pkgsrc is a non-default setting on NetBSD, and requires explicit opt-in. Most users of NetBSD will not install xz from pkgsrc because the version from the base system is preferred. However, users of pkgsrc on other platforms will need to take precautions.

Regardless of NetBSD being affected or not, the discovery of the backdoor is a wake-up call and further discussion will be happening internally over how to proceed.

March 28, 2024

NetBSD Installation and Upgrading on DaemonForums NetBSD on Synology 107+
Greetings to the whole group.
I am a systems enthusiast, I use linux for several years in an exclusive way.
I’m trying to learn (never ends) with a little difficulty with the English language... so you’ll forgive me if I use a translator...

I am currently working on a synology 107+ that I have been doing for many years... I have put it back doing some hardware maintenance.
the problem was triggered when I realized that the official website was no longer available firmware for my model....
searching on the internet an alternative I came to NetBSD...
I followed this quida:

but my limitations arose when I failed to boot altboot.bin via TFTP....
I hope to find among you some advice and some tips to get ahead of this issue... and clearly increase personal knowledge...
I attach a bit of info in the following post...

The NetBSD Foundation NetBSD 10.0 is available!

March 19, 2024

Unix Stack Exchange NetBSD - how to display information about kernel memory in GDB?

I'm debugging the NetBSD kernel with gdb, but I would like to be able to display information about the memory region an address is in. I'm mainly interested in finding out the permissions of a page of memory, along with the size of the region it is enclosed in (if the latter part of that question makes sense).

Does the kernel have a concept of memory regions in kernel space? i.e. a contiguous block of pages (virtual addresses) reserved for a specific purpose (which is kept track of somewhere)? Or is it down to each specific module to keep track of which blocks of memory belong to a logical group?

Here's an example of what I'm looking for:

(gdb) addressinfo 0xffffffff80e1000

                Start                End    Offset    Perm     Size
    0xffffffff80e0000  0xffffffff80e2000    0x1000    r--p     0x2000   

I don't mind adding a hook to the kernel for a GDB script to output this information, if this functionality does not exist. At the minimum it would be useful to add a hook for GDB scripts to view the page permissions.

March 17, 2024

DragonFly BSD Digest Lazy Reading for 2024/03/17

Command line / history is I guess the mini-theme.

March 12, 2024

The NetBSD Foundation NetBSD 10.0 RC6 is available!

March 10, 2024

The NetBSD Foundation One New Security Advisory: NetBSD-SA2024-001

March 04, 2024

DragonFly BSD Digest March 6 NYCBUG meeting

The March 6 NYCBUG meeting is coming up, and it sounds like something I’d want to see: NetBSD for the Advanced Minimalist, working remote using only a $100 Pinebook.  Be sure to RSVP if you can go cause this is in-person and they need to know who is coming into the NYU facility.

February 27, 2024

The NetBSD Foundation NetBSD 10.0 RC5 is available!

February 25, 2024

NetBSD Installation and Upgrading on DaemonForums NetBSD 10 RC_4 experiences
A few days ago I installed the 4th release candidate of NetBSD on a 32 GB USB 3.0 memory stick.

Install went well and fast. After booting up I installed the Firefox compiled package with pkgin This also went smooth.

I did not have to do anything for the X configuration. But when I started firefox the system became unresponsive (crashed) and seemed to be busy writing a dump file.
Sometimes OpenBSD also shows the same behaviour on this system. Powering off is the only way to regain control.

The system I used is my grumpy HP Proliant server. Linux, FreeBSD and DragonFlyBSD complain that about mixed 32bit and 64bit ACPI data.
The cheap 64bit Xeon CPU has a built-in Matrox VGA processor (mga driver in X Window) and probably uses part of the normal ECC RAM.

NetBSD also mentions problems with the ACPI stuff. It seems to truncate some entries:
The dmesg:

$ sed -e "s/^\[    /[/" U/dmesg_netbsd10_rc4.txt

[ 1.000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
[ 1.000000]    2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
[ 1.000000]    2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
[ 1.000000]    2024
[ 1.000000]    The NetBSD Foundation, Inc.  All rights reserved.
[ 1.000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[ 1.000000]    The Regents of the University of California.  All rights reserved.

[ 1.000000] NetBSD 10.0_RC4 (GENERIC) #0: Tue Feb  6 12:38:53 UTC 2024
[ 1.000000]    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC
[ 1.000000] total memory = 4061 MB
[ 1.000000] avail memory = 3902 MB
[ 1.000000] timecounter: Timecounters tick every 10.000 msec
[ 1.000000] Kernelized RAIDframe activated
[ 1.000000] timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
[ 1.000004] mainbus0 (root)
[ 1.000004] ACPI: RSDP 0x00000000000F4F00 000024 (v02 HP    )
[ 1.000004] ACPI: XSDT 0x00000000F1DE6400 0000B4 (v01 HP    ProLiant 00000002 ??  0000162E)
[ 1.000004] ACPI: FACP 0x00000000F1DE6540 0000F4 (v03 HP    ProLiant 00000002 ??  0000162E)
[ 1.000004] Firmware Warning (ACPI): 32/64X length mismatch in FADT/Pm1aControlBlock: 16/32 (20221020/tbfadt-640)
[ 1.000004] Firmware Warning (ACPI): 32/64X length mismatch in FADT/Pm2ControlBlock: 8/32 (20221020/tbfadt-640)
[ 1.000004] Firmware Warning (ACPI): Invalid length for FADT/Pm1aControlBlock: 32, using default 16 (20221020/tbfa
[ 1.000004] Firmware Warning (ACPI): Invalid length for FADT/Pm2ControlBlock: 32, using default 8 (20221020/tbfadt

[ 1.000004] ACPI: DSDT 0x00000000F1DE6640 002A13 (v01 HP    DSDT    00000001 INTL 20030228)
[ 1.000004] ACPI: FACS 0x00000000F1DE4140 000040
[ 1.000004] ACPI: SPCR 0x00000000F1DE4180 000050 (v01 HP    SPCRRBSU 00000001 ??  0000162E)
[ 1.000004] ACPI: MCFG 0x00000000F1DE4200 00003C (v01 HP    ProLiant 00000001      00000000)
[ 1.000004] ACPI: HPET 0x00000000F1DE4240 000038 (v01 HP    ProLiant 00000002 ??  0000162E)
[ 1.000004] ACPI: FFFF 0x00000000F1DE4280 000064 (v02 HP    ProLiant 00000002 ??  0000162E)
[ 1.000004] ACPI: SPMI 0x00000000F1DE4300 000040 (v05 HP    ProLiant 00000001 ??  0000162E)
[ 1.000004] ACPI: ERST 0x00000000F1DE4340 000230 (v01 HP    ProLiant 00000001 ??  0000162E)
[ 1.000004] ACPI: APIC 0x00000000F1DE4580 000252 (v01 HP    ProLiant 00000002      00000000)
[ 1.000004] ACPI: FFFF 0x00000000F1DE4800 000176 (v01 HP    ProLiant 00000001 ??  0000162E)
[ 1.000004] ACPI: BERT 0x00000000F1DE4980 000030 (v01 HP    ProLiant 00000001 ??  0000162E)
[ 1.000004] ACPI: HEST 0x00000000F1DE49C0 0000BC (v01 HP    ProLiant 00000001 ??  0000162E)
[ 1.000004] ACPI: DMAR 0x00000000F1DE4A80 00030E (v01 HP    ProLiant 00000001 ??  0000162E)
[ 1.000004] ACPI: FFFF 0x00000000F1DE63C0 00002D (v01 HP    ProLiant 00000001      00000000)
[ 1.000004] ACPI: SSDT 0x00000000F1DE9080 000137 (v03 HP    CRSPCI0  00000002 HP  00000001)
[ 1.000004] ACPI: SSDT 0x00000000F1DE91C0 000573 (v03 HP    riser0  00000002 INTL 20030228)
[ 1.000004] ACPI: SSDT 0x00000000F1DE9740 0001E1 (v01 HP    pcc      00000001 INTL 20090625)
[ 1.000004] ACPI: SSDT 0x00000000F1DE9940 000377 (v01 HP    pmab    00000001 INTL 20090625)
[ 1.000004] ACPI: SSDT 0x00000000F1DE9CC0 0009E4 (v01 INTEL  PPM RCM  80000001 INTL 20061109)
[ 1.000004] ACPI: 6 ACPI AML tables successfully acquired and loaded
[ 1.000004] ioapic0 at mainbus0 apid 8: pa 0xfec00000, version 0x20, 24 pins
[ 1.000004] x2APIC available but disabled by DMAR table
[ 1.000004] cpu0 at mainbus0 apid 0
[ 1.000004] cpu0: Use lfence to serialize rdtsc
[ 1.000004] cpu0: Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz, id 0x306c3
[ 1.000004] cpu0: node 0, package 0, core 0, smt 0
[ 1.000004] cpu1 at mainbus0 apid 2
[ 1.000004] cpu1: Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz, id 0x306c3
[ 1.000004] cpu1: node 0, package 0, core 1, smt 0
[ 1.000004] cpu2 at mainbus0 apid 4
[ 1.000004] cpu2: Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz, id 0x306c3
[ 1.000004] cpu2: node 0, package 0, core 2, smt 0
[ 1.000004] cpu3 at mainbus0 apid 6
[ 1.000004] cpu3: Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz, id 0x306c3
[ 1.000004] cpu3: node 0, package 0, core 3, smt 0
[ 1.000004] acpi0 at mainbus0: Intel ACPICA 20221020
[ 1.000004] acpi0: X/RSDT: OemId <HP    ,ProLiant,00000002>, AslId <  <2147483602>^D,0000162e>
[ 1.000004] acpi0: MCFG: segment 0, bus 0-63, address 0x00000000f4000000
[ 1.000004] acpi0: SCI interrupting at int 9
[ 1.000004] acpi0: fixed power button present
[ 1.000004] timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
[ 1.021219] hpet0 at acpi0: high precision event timer (mem 0xfed00000-0xfed00400)
[ 1.021219] timecounter: Timecounter "hpet0" frequency 14318180 Hz quality 2000
[ 1.021431] ipmi_acpi0 at acpi0 (MI0, IPI0001-0): io 0xca2-0xca3
[ 1.021431] ipmi0 at ipmi_acpi0
[ 1.021431] attimer1 at acpi0 (TIME, PNP0100): io 0x40-0x43 irq 0
[ 1.021431] pcppi1 at acpi0 (BEEP, PNP0800): io 0x61
[ 1.021431] spkr0 at pcppi1: PC Speaker
[ 1.021431] wsbell at spkr0 not configured
[ 1.021431] midi0 at pcppi1: PC speaker
[ 1.021431] sysbeep0 at pcppi1
[ 1.021431] com0 at acpi0 (COMA, PNP0501-0): io 0x3f8-0x3ff irq 4
[ 1.021431] com0: ns16550a, 16-byte FIFO
[ 1.021431] pckbc1 at acpi0 (KBD, PNP0303) (kbd port): io 0x60,0x64 irq 1
[ 1.021431] pckbc2 at acpi0 (PS2M, PNP0F13) (aux port): irq 12
[ 1.021431] PMI0 (ACPI000D) at acpi0 not configured
[ 1.021431] acpitz0 at acpi0 (THM0): cpu0
[ 1.021431] acpitz0: levels: critical 31.3 C, passive 9.8 C, passive cooling
[ 1.021431] attimer1: attached to pcppi1
[ 1.021431] pckbd0 at pckbc1 (kbd slot)
[ 1.021431] pckbc1: using irq 1 for kbd slot
[ 1.021431] wskbd0 at pckbd0: console keyboard
[ 1.021431] pms0 at pckbc1 (aux slot)
[ 1.021431] pckbc1: using irq 12 for aux slot
[ 1.021431] wsmouse0 at pms0 mux 0
[ 1.021431] pci0 at mainbus0 bus 0: configuration mode 1
[ 1.021431] pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
[ 1.021431] pchb0 at pci0 dev 0 function 0: Intel Xeon E3-1200 v3 Host Bridge, DRAM (rev. 0x06)
[ 1.021431] ppb0 at pci0 dev 1 function 0: Intel Haswell PCI-E x16 Controller (rev. 0x06)
[ 1.021431] ppb0: PCI Express capability version 2 <Root Port of PCI-E Root Complex> x8 @ 8.0GT/s
[ 1.021431] pci1 at ppb0 bus 4
[ 1.021431] pci1: i/o space, memory space enabled, rd/line, wr/inv ok
[ 1.021431] ppb1 at pci0 dev 1 function 1: Intel Haswell PCI-E x8 Controller (rev. 0x06)
[ 1.021431] ppb1: PCI Express capability version 2 <Root Port of PCI-E Root Complex> x8 @ 8.0GT/s
[ 1.021431] pci2 at ppb1 bus 7
[ 1.021431] pci2: i/o space, memory space enabled, rd/line, wr/inv ok
[ 1.021431] xhci0 at pci0 dev 20 function 0: Intel 8 Series USB xHCI (rev. 0x04)
[ 1.021431] xhci0: 64-bit DMA
[ 1.021431] xhci0: interrupting at msi0 vec 0
[ 1.021431] xhci0: xHCI version 1.0
[ 1.021431] usb0 at xhci0: USB revision 3.0
[ 1.021431] usb1 at xhci0: USB revision 2.0
[ 1.021431] ehci0 at pci0 dev 26 function 0: Intel 8 Series USB EHCI (rev. 0x04)
[ 1.021431] ehci0: 64-bit DMA
[ 1.021431] ehci0: interrupting at ioapic0 pin 21
[ 1.021431] ehci0: BIOS has given up ownership
[ 1.021431] ehci0: EHCI version 1.0
[ 1.021431] ehci0: Using DMA subregion for control data structures
[ 1.021431] usb2 at ehci0: USB revision 2.0
[ 1.021431] ppb2 at pci0 dev 28 function 0: Intel 8 Series PCIe (rev. 0xd4)
[ 1.021431] ppb2: PCI Express capability version 2 <Root Port of PCI-E Root Complex> x1 @ 5.0GT/s
[ 1.021431] pci3 at ppb2 bus 10
[ 1.021431] pci3: i/o space, memory space enabled, rd/line, wr/inv ok
[ 1.021431] ppb3 at pci0 dev 28 function 4: Intel 8 Series PCIe (rev. 0xd4)
[ 1.021431] ppb3: PCI Express capability version 2 <Root Port of PCI-E Root Complex> x1 @ 5.0GT/s
[ 1.021431] pci4 at ppb3 bus 2
[ 1.021431] pci4: i/o space, memory space enabled, rd/line, wr/inv ok
[ 1.021431] ppb4 at pci0 dev 28 function 5: Intel 8 Series PCIe (rev. 0xd4)
[ 1.021431] ppb4: PCI Express capability version 2 <Root Port of PCI-E Root Complex> x1 @ 5.0GT/s
[ 1.021431] pci5 at ppb4 bus 3
[ 1.021431] pci5: i/o space, memory space enabled, rd/line, wr/inv ok
[ 1.021431] bge0 at pci5 dev 0 function 0: Broadcom BCM5720 Gigabit Ethernet
[ 1.021431] bge0: APE firmware NCSI
[ 1.021431] bge0: interrupting at msix1 vec 0
[ 1.021431] bge0: HW config 002b10d4, 00006014, 0000aa38, 00000000 00000000
[ 1.021431] bge0: ASIC BCM5720 A0 (0x5720000), Ethernet address a0:1d:48:97:5b:74
[ 1.021431] bge0: setting short Tx thresholds
[ 1.021431] brgphy0 at bge0 phy 1: BCM5720C 1000BASE-T media interface, rev. 0
[ 1.021431] brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
[ 1.021431] bge1 at pci5 dev 0 function 1: Broadcom BCM5720 Gigabit Ethernet
[ 1.021431] bge1: APE firmware NCSI
[ 1.021431] bge1: interrupting at msix2 vec 0
[ 1.021431] bge1: HW config 002b10d4, 00006014, 0000aa38, 00000000 00000000
[ 1.021431] bge1: ASIC BCM5720 A0 (0x5720000), Ethernet address a0:1d:48:97:5b:75
[ 1.021431] bge1: setting short Tx thresholds
[ 1.021431] brgphy1 at bge1 phy 2: BCM5720C 1000BASE-T media interface, rev. 0
[ 1.021431] brgphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
[ 1.021431] ppb5 at pci0 dev 28 function 6: Intel 8 Series PCIe (rev. 0xd4)
[ 1.021431] ppb5: PCI Express capability version 2 <Root Port of PCI-E Root Complex> x1 @ 5.0GT/s
[ 1.021431] pci6 at ppb5 bus 13
[ 1.021431] pci6: i/o space, memory space enabled, rd/line, wr/inv ok
[ 1.021431] ppb6 at pci0 dev 28 function 7: Intel 8 Series PCIe (rev. 0xd4)
[ 1.021431] ppb6: PCI Express capability version 2 <Root Port of PCI-E Root Complex> x1 @ 5.0GT/s
[ 1.021431] ppb6: link is x1 @ 2.5GT/s
[ 1.021431] pci7 at ppb6 bus 1
[ 1.021431] pci7: i/o space, memory space enabled, rd/line, wr/inv ok
[ 1.021431] Hewlett-Packard iLO3 Slave (miscellaneous system, revision 0x05) at pci7 dev 0 function 0 not configured
[ 1.021431] vga0 at pci7 dev 0 function 1: Matrox MGA G200eH (rev. 0x00)
[ 1.021431] wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation), using wskbd0
[ 1.021431] wsmux1: connecting to wsdisplay0
[ 1.021431] drm at vga0 not configured
[ 1.021431] Hewlett-Packard iLO3 Management (miscellaneous system, revision 0x05) at pci7 dev 0 function 2 not configured
[ 1.021431] uhci0 at pci7 dev 0 function 4: Hewlett-Packard iLO3 Virtual USB (rev. 0x02)
[ 1.021431] uhci0: interrupting at msi3 vec 0
[ 1.021431] usb3 at uhci0: USB revision 1.0
[ 1.021431] ehci1 at pci0 dev 29 function 0: Intel 8 Series USB EHCI (rev. 0x04)
[ 1.021431] ehci1: 64-bit DMA
[ 1.021431] ehci1: interrupting at ioapic0 pin 20
[ 1.021431] ehci1: BIOS has given up ownership
[ 1.021431] ehci1: EHCI version 1.0
[ 1.021431] ehci1: Using DMA subregion for control data structures
[ 1.021431] usb4 at ehci1: USB revision 2.0
[ 1.021431] ichlpcib0 at pci0 dev 31 function 0: Intel C222 LPC (rev. 0x04)
[ 1.021431] timecounter: Timecounter "ichlpcib0" frequency 3579545 Hz quality 1000
[ 1.021431] ichlpcib0: 24-bit timer
[ 1.021431] tco0 at ichlpcib0: TCO (watchdog) timer configured.
[ 1.021431] tco0: autoconfiguration error: TCO timer reboot disabled by hardware; hope SMBIOS properly handles it.
[ 1.021431] tco0: Min/Max interval 1/367 seconds
[ 1.021431] ahcisata0 at pci0 dev 31 function 2: Intel 8 Series (desktop) SATA Controller (AHCI) (rev. 0x04)
[ 1.021431] ahcisata0: 64-bit DMA
[ 1.021431] ahcisata0: AHCI revision 1.30, 6 ports, 32 slots, CAP 0xdf30ff45<EMS,PSC,SSC,PMD,ISS=0x3=Gen3,SCLO,SAL,SALP,SSS,SMPS,SNCQ,S64A>
[ 1.021431] ahcisata0: interrupting at msi4 vec 0
[ 1.021431] atabus0 at ahcisata0 channel 0
[ 1.021431] atabus1 at ahcisata0 channel 1
[ 1.021431] atabus2 at ahcisata0 channel 2
[ 1.021431] atabus3 at ahcisata0 channel 3
[ 1.021431] atabus4 at ahcisata0 channel 4
[ 1.021431] atabus5 at ahcisata0 channel 5
[ 1.021431] isa0 at ichlpcib0
[ 1.021431] com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, 16-byte FIFO
[ 1.021431] acpicpu0 at cpu0: ACPI CPU
[ 1.021431] acpicpu0: C1: FFH, lat  1 us, pow  1000 mW
[ 1.021431] acpicpu0: C2: FFH, lat  96 us, pow  350 mW
[ 1.021431] coretemp0 at cpu0: thermal sensor, 1 C resolution, Tjmax=100
[ 1.021431] acpicpu1 at cpu1: ACPI CPU
[ 1.021431] coretemp1 at cpu1: thermal sensor, 1 C resolution, Tjmax=100
[ 1.021431] acpicpu2 at cpu2: ACPI CPU
[ 1.021431] coretemp2 at cpu2: thermal sensor, 1 C resolution, Tjmax=100
[ 1.021431] acpicpu3 at cpu3: ACPI CPU
[ 1.021431] coretemp3 at cpu3: thermal sensor, 1 C resolution, Tjmax=100
[ 1.021431] timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
[ 1.021431] timecounter: Timecounter "TSC" frequency 3092842000 Hz quality 3000
[ 1.907097] uhub0 at usb0: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 3.00/1.00, addr 0
[ 1.907097] uhub0: 2 ports with 2 removable, self powered
[ 1.907097] uhub1 at usb1: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 0
[ 1.907097] uhub1: 10 ports with 10 removable, self powered
[ 1.907097] IPsec: Initialized Security Association Processing.
[ 1.923540] uhub2 at usb2: NetBSD (0x0000) EHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 1
[ 1.923540] uhub2: 2 ports with 2 removable, self powered
[ 1.923540] uhub3 at usb3: NetBSD (0x0000) UHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1
[ 1.923540] uhub3: 2 ports with 2 removable, self powered
[ 1.923540] uhub4 at usb4: NetBSD (0x0000) EHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 1
[ 1.923540] uhub4: 2 ports with 2 removable, self powered
[ 2.003540] ahcisata0 port 0: device present, speed: 6.0Gb/s
[ 2.003540] ahcisata0 port 4: device present, speed: 1.5Gb/s
[ 2.383539] uhub5 at uhub1 port 3: vendor 0424 (0x0424) product 2660 (0x2660), class 9/0, rev 2.00/8.01, addr 1
[ 2.383539] uhub5: single transaction translator
[ 2.383539] uhub5: 2 ports with 1 removable, self powered
[ 2.993539] uhub6 at uhub4 port 1: vendor 8087 (0x8087) product 8000 (0x8000), class 9/0, rev 2.00/0.04, addr 2
[ 2.993539] uhub6: single transaction translator
[ 2.993539] uhub7 at uhub2 port 1: vendor 8087 (0x8087) product 8008 (0x8008), class 9/0, rev 2.00/0.04, addr 2
[ 2.993539] uhub7: single transaction translator
[ 2.993539] uhub6: 6 ports with 6 removable, self powered
[ 2.993539] uhub7: 4 ports with 4 removable, self powered
[ 3.563538] umass0 at uhub0 port 2 configuration 1 interface 0
[ 3.563538] umass0: USB (0x0781) SanDisk 3.2Gen1 (0x5567), rev 3.20/1.00, addr 2
[ 3.563538] umass0: using SCSI over Bulk-Only
[ 3.563538] scsibus0 at umass0: 2 targets, 1 lun per target
[ 3.573537] sd0 at scsibus0 target 0 lun 0: <USB, SanDisk 3.2Gen1, 1.00> disk removable
[ 3.573537] sd0: 29358 MB, 59648 cyl, 16 head, 63 sec, 512 bytes/sect x 60125184 sectors
[ 3.583536] wd0 at atabus0 drive 0
[ 3.583536] wd0: <ST2000DM001-1CH164>
[ 3.583536] wd0: drive supports 16-sector PIO transfers, LBA48 addressing
[ 3.583536] wd0: 1863 GB, 3876021 cyl, 16 head, 63 sec, 512 bytes/sect x 3907029168 sectors (4096 bytes/physsect;
first aligned sector: 8)
[ 3.593538] wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133), WRITE DMA FUA, NCQ (32 tags)
[ 3.593538] wd0(ahcisata0:0:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133) (using DMA), NCQ (31 ta
[ 3.593538] atapibus0 at atabus4: 1 targets
[ 3.603537] cd0 at atapibus0 drive 0: <hp      DVD-RAM GHA3N, KD5DAF43954, WH01> cdrom removable
[ 3.613539] cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
[ 3.613539] cd0(ahcisata0:4:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100) (using DMA)
[ 3.633538] uhidev0 at uhub1 port 5 configuration 1 interface 0
[ 3.633538] uhidev0: SEM (0x1a2c) USB Keyboard (0x2124), rev 1.10/1.10, addr 3, iclass 3/1
[ 3.643536] ukbd0 at uhidev0
[ 3.643536] wskbd1 at ukbd0 mux 1
[ 3.643536] wskbd1: connecting to wsdisplay0
[ 3.643536] uhidev1 at uhub1 port 5 configuration 1 interface 1
[ 3.643536] uhidev1: SEM (0x1a2c) USB Keyboard (0x2124), rev 1.10/1.10, addr 3, iclass 3/0
[ 3.643536] uhidev1: 2 report ids
[ 3.643536] uhid0 at uhidev1 reportid 1: input=2, output=0, feature=0
[ 3.643536] uhid1 at uhidev1 reportid 2: input=1, output=0, feature=0
[ 4.123538] uhidev2 at uhub1 port 6 configuration 1 interface 0
[ 4.123538] uhidev2: vendor 275d (0x275d) USB OPTICAL MOUSE (0x0ba6), rev 1.10/1.00, addr 4, iclass 3/1
[ 4.123538] ums0 at uhidev2: 3 buttons and Z dir
[ 4.123538] wsmouse1 at ums0 mux 0
[ 4.603537] uaudio0 at uhub1 port 9 configuration 1 interface 0
[ 4.603537] uaudio0: C-Media INC. (0x0d8c) USB Audio (0x0001), rev 1.10/0.10, addr 5
[ 4.603537] uaudio0: audio rev 1.00
[ 4.603537] audio0 at uaudio0: playback
[ 4.603537] audio0: slinear_le:16 2ch 48000Hz, blk 11520 bytes (60ms) for playback
[ 4.603537] spkr1 at audio0: PC Speaker (synthesized)
[ 4.603537] wsbell at spkr1 not configured
[11.453530] ipmi0: version 32.0 interface KCS iobase 0xca2/0x2 spacing 1
[11.453530] ipmi0: ID 19.2 IPMI 2.0 Available
[11.453530] ipmi0: Additional Chassis FRU SEL SDR Sensor
[11.453530] ipmi0: Manufacturer 0000b Product 200b
[11.453530] ipmi0: Firmware 1.32
[11.453530] swwdog0: software watchdog initialized
[11.493529] WARNING: 1 error while detecting hardware; check system log.
[11.493529] boot device: sd0
[11.493529] root on sd0a dumps on sd0b
[11.503529] root file system type: ffs
[11.503529] kern.module.path=/stand/amd64/10.0/modules
[11.503529] WARNING: NVRAM century is 33 but RTC year is 2024
[24.873516] wsdisplay0: screen 1 added (80x25, vt100 emulation)
[24.873516] wsdisplay0: screen 2 added (80x25, vt100 emulation)
[24.873516] wsdisplay0: screen 3 added (80x25, vt100 emulation)
[24.883516] wsdisplay0: screen 4 added (80x25, vt100 emulation

February 18, 2024

Unix Stack Exchange NetBSD: how to mount a disk image?

I have create a disk image on netbsd

newfs -F -s 10G 1.img

How to mount it?

I have tried "nodev" but give error and try to mount /mnt/p2

mount -v -o nodev /home/user/1.img /mnt/p2