I’m happy to announce the availability of MidnightBSD 1.0 for amd64 and i386. Over the years, many ambitious goals were set for our 1.0 release. As it approached, it was clear we wouldn’t be able to accomplish all of them. This release is more of a natural progression rather than a groundbreaking event. It includes many updates to the base system, improvements to the package manager, an updated compiler, and tools.
Of particular note, you can now boot off of ZFS and use NVME SSDs and some AMD Radeon graphics cards support acceleration. AMD Ryzen support has greatly improved in this release. We also have added bhyve from FreeBSD.
The single largest removal of functionality was the sensors framework. We found that there were some locking issues that couldn’t easily be addressed without some major work. It may reappear in a new form in the future. That said, many of the features provided by the framework are still available.
Sudo was removed from the base system and replaced with doas(1) from OpenBSD. You can still install sudo from mports.
Lindev was removed as a device as /dev/full has replaced it.
Many software packages were updated for this release in the base system.
Ryzen support was added including a fix for moving the shared page down by one to prevent hanging as well as new chipset support for AMD B350, X370, and X399 chipsets.
New hardware features include support for Intel 8th generation chipsets, Corsair K70 LUX keyboards, several wifi devices such as Realtek USB 802.11n devices.
Updated Intel® network drivers for em, ix, igb, including support for Ice Lake and Cannon Lake devices and Intel® i219(4)/ i219(5) kaby lake support. Wake on lan support was added to em(4) for Intel® i217, i218 and i219 chips and igb(4).
There is now support for older AMD graphics cards with KMS such as the 6450. X.org was also updated to go along with this functionality. When trying this functionality out, you may wish to change your VT by using the following echo >> "kern.vty=vt" /boot/loader.conf
The drm code has been updated to match Linux® version 3.8.13.
nvme(4) and nvd(4) have been imported from FreeBSD as well as eMMC support from FreeBSD 10.4.
qlxgbe(4) firmware updated to 5.4.66.
Mellanox® ConnectX-4 series adapters are supported by mlx5ib(4).
cxgbetool(8) has been added, to support debugging cxgbe(4) devices.
cxgbev(4), glnxe(4) network drivers added.
mpr(4) supports tri-mode broadcom storage adapters.
Atheros Killer E2400 and E2500 NICs are supported.
psm(4) supports touchpads on newer Lenovo laptops.
cdce(4) supports RTL8153
snd_hda(4) supports ThinkPad X1 20BS
Support for AMD® Family 16h sensor devices has been added to amdtemp(4).
Intel® XL710 ixlv(4) added.
Mport now supports installing multiple packages with one command. Updating multiple packages using mport upgrade has been fixed.
Mport now tracks deprecated and expired packages to give warning ahead of time. You can see this information using mport info. A known bug exists with setting permissions when using @(,,755) syntax in plists. This will be fixed in a future update. Most ports have a workaround in place already so that shouldn’t affect regular users much.
A new package format was introduced with this release. Older packages may not install properly.
At the time of writing, new packages are being built for amd64 and i386.
Bhyve support!!!! In order to boot FreeBSD on MidnightBSD in bhyve, you need to get a boot loader from a FreeBSD 10.x system. There is an mport for this also. You may also use grub.
Boot loader and ZFS boot capability were iimported from FreeBSD 10 stable (rev 334154)
For GPT partitions, fsck_ffs can use alternate superblocks.
aesni(4) no longer shares a single FPU context for multiple sessions in multiple threads, fixing issues with ipsec(4).
Userland coredumps can now trigger events such as generating a human readable crash report via devd(8). This feature is off by default.
inetd(8) is built without libwrap support when tcp wrappers are turned off for the build.
truss(1) updated to include -H flag.
zfsbootcfg(8) added for one time boot.config style options for zfsboot(8)
pw(8) now respects pw.conf(5)
Ifconfig can now display MAC addresses
Syslogd can restart logging a subprocess. It also can look for config files in /etc/syslog.d and /usr/local/etc/syslog.d
Cron can now see files in /etc/cron.d and /usr/local/etc/cron.d
newsyslog(8) can handle RFC5424 format.
Bsdinstall now aligns on 4096 byte boundaries for partitions. EFI partition size was increased.
Max_align_t is defined for C11 compliance.
vt(4) is now available.
Linux emulation now supports 64bit and 32bit binaries. Ports are not yet available to take advantage of this feature yet. The version of the Linux kernel emulated was also updated so that we may provide newer Linux packages.
devctl(8) supports clear driver command
ar(1) supports the-D flag to prevent real mtime, uid, gid and file modes
camcontrol(8) fwdonwload was improved.
cp(1) supports -s flag to create a sym link to a source.
Ifconfig supports showing SFP/SFP+ data with -v flag.
jail(8) supports a -l flag to create a clean environment.
last(1) shows reboot.
mkimg(1) handles MBR and GPT and fixes a bug with VHD format with qemu.
pciconf(8) can use the pci ids from ports if present.
“Reroot” support added to reboot.
The release of ACPI included has a known issue with some Z170 & Z270 Intel motherboards that causes sysctl -a to hang, occasional errors reported from ACPI/AML and reboot may hang on these systems. Aside from these issues, the system should work fine. We plan on updating to a newer version in a future release. If you have a Kabylake based system, you may see this behavior. It’s been reported on various brands of motherboards including Asus, Asrock, and OEM systems from Dell. It is not the vendor’s fault, but rather a regression in the ACPI code.
Initial ISOs provided for i386 had an issue with the perl install that prevented manual pages from getting generated. Compiling perl and installing will fix the issue. A revised ISO will be posted.
If you are updating an existing system, after installing 1.0, you can use mport upgrade to update packages with 1.0 versions. It is recommended that you delete /usr/mports/Packages and run mport clean to remove old package remnants.
You may use svnlite (part of the base system) to checkout mports or src, if you do not wish to install the
cd /usr/ && svnlite co http://svn.midnightbsd.org/svn/mports/trunk mports