…the more I use FreeBSD, the less I want a Linux server anymore.
That’s all. Tuesday thoughts.
Oh, also I’ve changed the site to allow comments without them having to be approved first. Hello, World!
Bacon + Technology
…the more I use FreeBSD, the less I want a Linux server anymore.
That’s all. Tuesday thoughts.
Oh, also I’ve changed the site to allow comments without them having to be approved first. Hello, World!
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\SystemFrom an administrative command prompt, you can simply run this instead:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1
Requirements:
USBSend:
– USBSend.exe (from hp.com)
– USBSend.exe (from itbacon.com)
Newer Firmware (links updated on 12-24-2023):
– cljmfpM280fw_20230822.ENG.rfu (hp.com)
– cljmfpM280fw_20230822.nativeofficefonts.rfu (hp.com)
– cljmfpM280fw_20230822.ENG.rfu (itbacon.com)
– cljmfpM280fw_20230822.nativeofficefonts.rfu (itbacon.com)
Original Firmware I used:
– cljmfpM280fw_20220414.ENG.rfu (itbacon.com)
Disclaimer: You do this at your own choosing and risk. This is for informational purposes only.
Printer must be installed to your computer via USB cable. When the printer is in FW Update mode, you can add a new printer, local port, USB001 (or 002/003/004), and choose or browse to the m281fdw driver.
If your printer is continually rebooting itself, you will probably need to put it into Firmware Update mode, which will require taking off the left panel of the printer. This isn’t hard, but it’s not super easy either – HP sure likes to add a lot of clips to hold it together. On the back of the printer is where I recommend starting, unscrew the 1 screw holding the side panel on and begin to pry it out and away from the network port and USB port. You’ll need a flathead screwdriver or some other prying type tool, to run along the top edge of the left panel and slowly pop it out.
When you get the panel most of the way off, unsnapping it from the front was tricky, I don’t remember fully what I did. Keep unprying from the top and bottom along the sides and it should eventually come loose.
We are looking for 2 pins on the right side of the formatter board:
I used a small screwdriver to wedge between the pins while I plugged the printer in:

European Models do not have pins, you’ll need to jump the pads in the middle (thanks to this post)


When the printer turns on it should almost immediately come to a Ready 2 Download screen:
Remove your FW Upgrade jumper.
Launching a Command Prompt
You’ll need to start a command prompt. If they were in your downloads folder you should be able to hold shift, and right-click an empty area of the folder (don’t have any files selected) and a menu option to Open PowerShell/Command Prompt should be in the list.
Another method would be to press your Windows Key + R, which should bring up a Run box. Type cmd into the box and press enter to start a command prompt.
If the files are on your desktop, type cd Desktop to ‘change directory’ (cd) into the Desktop folder. Otherwise cd Downloads.
Now all that’s left is to use USBSend to send the RFU file to the printer (note, you must use the ENG version first, ignore the typo in screenshot – you may want to rename the rfu file to something easier to type beforehand):
The format is: usbsend filename.rfu
The printer display will go through Downloading, Erasing, Programming, and should end you at this screen:
Turn the printer off, and then turn it back on, and it should boot-up normally and ask you to select language etc. That’s it!
Afterwards you can download the current firmware updater to install the ‘nativeofficefonts’ firmware: M280_Series_FW_Update-20220414.nativeofficefonts.exe (from hp.com)
Update 8-13-2023: You may or may not need some or all of these commands anymore.
Below is a set of commands you can try running to help resolve issues with multiple random temporary addresses, and seemingly all of IPv6 stops working randomly. I use DHCP6 on my home network and this has helped to resolve a lot of connectivity issues for me. I don’t seem to lose IPv6 connectivity anymore.
The interface does seem to still get more than one address, which is frustrating, but probably due to router advetisements on my firewall. It only seems to use the primary one it gets from DHCP however, which is good. I have tried doing netsh int ipv6 set interface “<interface>” routerdiscovery=disabled store=persistent but, it does not persist after a reboot, and netsh int ipv6 show interface “<interface>” shows that it is enabled again. I imagine there is some registry edit that can be done, or adding it to task scheduler but, until it becomes an issue I am find that the below works for me.
I don’t know why Microsoft has made this so hard. All of my Linux and FreeBSD machines can acquire and maintain an IPv6 address forever. A singular address.
You’ll need to run these in an Administrator command prompt. You can access that by right-clicking your Start button and choosing either Command Prompt (Admin) or Windows Powershell (Admin). If you only have Powershell, once it opens, type cmd and press enter to go into a command prompt shell. Alternatively, press your Windows key or click the start button, and type cmd and press CTRL-SHIFT-ENTER once you see Command Prompt in the list (you will only need to type cmd, the start menu will select Command Prompt after a moment in ‘Best Match‘ at the top of the search results.)
netsh int ipv6 set privacy state=disabled store=active
netsh int ipv6 set privacy state=disabled store=persistent
netsh int ipv6 set global randomizeidentifiers=disabled store=active
netsh int ipv6 set global randomizeidentifiers=disabled store=persistent
Afterwards, I find going into Control Panel, (small icons) Network and Sharing Center, Change Adapter Settings, and right-click on your interface and Disable it, then Enable it with another right-click. Or you can reboot.
Sometimes, randomly, Windows Server will switch to a Private Network Profile after a reboot, or just sporadically. Usually restarting the NlaSvc service will resolve this, but I have found if it keeps happening on reboot, this will also help resolve this issue.
You can check this in a Powershell prompt by typing: Get-NetConnectionProfile
PowerShell> Get-NetConnectionProfile
[...]
NetworkCategory : Private
In order to fix this, all I needed to change was the dependencies for NlaSvc (Network Location Awareness Service). From an Administrative command prompt I ran the following (NOTE: This is ONLY for servers that have the DNS role installed!):
sc config NlaSvc depend=NSI/RpcSs/TcpIp/Dhcp/EventLog/DNS
After rebooting, my profile finally showed as a Domain network instead of a Private Network.
If your server does NOT have the DNS role installed, then you can additionally run this command (I would also run this if your server has the DNS role and you’re still having problems):
reg add HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters /v AlwaysExpectDomainController /t REG_DWORD /d 1 /f
Windows Server 2025 is available as a free evaluation: https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2025
Here’s a simple Powershell snippet that will check for the DNS role and apply the fix/fixes:
if (Get-Service DNS -EA SilentlyContinue) {
Write-Host "Updating NlaSvc dependencies to include DNS and adding registry entry."
cmd /c sc config nlasvc depend= NSI/RpcSs/EventLog/Dhcp/TcpIp/DNS
reg add HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters /v AlwaysExpectDomainController /t REG_DWORD /d 1 /f
} else {
Write-Host "Adding registry entry to try and assist with Domain Network Profile."
reg add HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters /v AlwaysExpectDomainController /t REG_DWORD /d 1 /f
}
Edit 6/26/2026: I will probably not update this unless I get very bored. It is much, much easier to setup WordPress on an Ubuntu server. It should still serve as a good starting point to get it running however.
This is a work in progress – pictures will be added, stories will be written, coffees will be spilled.

<rule name="HTTPs 301 redirect" stopProcessing="true"><match url="(.*)" /><conditions logicalGrouping="MatchAll" trackAllCaptures="false"><add input="{HTTPS}" pattern="^OFF$" /></conditions><action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /></rule>And we’re back!… Kinda.