NetBSD
- See also: Official NetBSD Website
NetBSD is one of the BSD operating systems, descended from the Berkeley System Distribution. Starting with version 10.0, NetBSD supports the Wii as a first class platform, with further enhancements to hardware support added in version 11.0.
Comparison with Wii-Linux
[edit | edit source]- Wii-Linux is launched from BootMii via Gumboot or NPLL. NetBSD is started from the Homebrew Channel, or, as of NetBSD 11.0, from BootMii via a NetBSD-specific bootloader.
- When NetBSD starts from the Homebrew Channel, it can only use MEM1 and part of MEM2, since IOS reserves the upper 12MB. Wii-Linux is able to use all of MEM2, as can NetBSD if started from BootMii.
- NetBSD's init system is much simpler and lighter than systemd.
- The Wii-Linux ArchPOWER image has better menu-driven configuration tools. While NetBSD's
sysinstcan be used for tasks like network configuration, it is not as easy to use as tools likenmtuior ConfigMii.
- NetBSD's package manager is not included as part of the base system, and has to be installed using
sysinst.
- The framebuffer driver in both Wii-Linux and NetBSD emulates RGB colors, so graphical software doesn't have to be rewritten for the Wii's YUYV framebuffer. NetBSD's driver does this via the GX GPU, using a scratch framebuffer in memory, copying into the EFB (via the CPU) every frame, and then using GX to do the conversion + copy back to the XFB. Linux previously did this via software math. Those 2 approaches have similar performance. Modern Linux versions, however, do this by exposing the RGB linear framebuffer as GX tiled texture, then using an indirect texture to remap the output to appear correct after rendering into the EFB, and thus appearing correct on the display after copying out to the XFB (also using GX).
- Wii-Linux has more complete hardware support in some areas:
- Recent versions of Wii-Linux present the EXI bus as SPI, allowing the use of SPI drivers (most notably using the mmc-spi driver for SD Gecko support). NetBSD has a bespoke SPI stack, with driver support limited to the RTC and the USB Gecko.
- Because NetBSD has no general "game pad" or "joystick" input abstraction, the SI driver simulates a USB hub and presents GameCube controllers as USB game controllers.
- NetBSD has no GameCube support whatsoever.
- NetBSD has superior hardware support in other areas:
- There seems to be a wider array of USB drivers enabled in NetBSD, so many devices will work on NetBSD but not Linux.
- The NetBSD driver for the Wii's BCM4318 Wi-Fi has been reported to be faster and more stable than Linux's driver (although performance is still not good.)
- NetBSD has support for Hollywood's AES engine. Allegedly, this is used for accelerating WPA as well as disk encryption.