NetBSD: Difference between revisions

From Wii-Linux Wiki
Jump to navigation Jump to search
Waterpear (talk | contribs)
m GaMeCuBe
Linux doesn't do sw color conversion anymore
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''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.
{{seealso|[https://netbsd.org/ 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 ===
=== Comparison with Wii-Linux ===
* [[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.


* Wii-Linux is launched from boot2 via Gumboot. While NetBSD has boot2 support in the current branch, as of May 2025, release builds are started via the Homebrew Channel.
* 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.
* Wii-Linux is able to use part of MEM1 as system RAM, while NetBSD only seems to use MEM2. Hence, a Wii-Linux system has access to more RAM. (This is somewhat mitigated by the NetBSD init system being ''much'' simpler than systemd.)
 
* The Wii-Linux ArchPOWER image has better menu-driven configuration tools. While NetBSD's `sysinst` can be used for tasks like network configuration, it is not as easy to use as tools like `nmtui` or [[ConfigMii]].
 
* NetBSD's package manager is not included as part of the base system, and has to be installed using `sysinst`.


* USB support in NetBSD seems to be more complete and less buggy. Many common USB networking devices that aren't supported or don't work with the Wii-Linux kernel will operate just fine in NetBSD.
* The Wii-Linux [[ArchPOWER]] image has better menu-driven configuration tools. While NetBSD's <code>sysinst</code> can be used for tasks like network configuration, it is not as easy to use as tools like <code>nmtui</code> or [[ConfigMii]].


* The framebuffer driver in Wii-Linux emulates RGB colors, so graphical software doesn't have to be rewritten for the Wii's YUV framebuffer. NetBSD's driver does not, preferring to perform the color transformation in the X.org server.
* NetBSD's package manager is not included as part of the base system, and has to be installed using <code>sysinst</code>.
** As a consequence, the color palette for the text-mode console has many incorrect colors, which makes a lot of text-mode screens hard to read.


* As of May 2025, NetBSD doesn't have drivers for [[GameCube Controller]] or the [[USB Gecko]], and the driver for the internal Wi-Fi adapter is not yet available in release builds.
* 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 [[Hardware/GX|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 [[Hardware/Serial Interface|SI]] driver simulates a USB hub and presents [[GameCube Controller|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 [[Wii Hardware/BCM4318|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.

Latest revision as of 00:00, 18 October 2026

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]
  • 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 sysinst can be used for tasks like network configuration, it is not as easy to use as tools like nmtui or 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.