What does pi-topOS do differently to Raspbian?

pi-topOS builds on Raspbian, so a lot of things are identical. However there are some differences.

pi-topOS changes some of the theming provided by Raspbian, and adds out-of-the-box device support for pi-top hardware.

The focus of development in pi-topOS is primarily around device support for pi-top hardware, and usability improvements. Raspbian handles much of the backbone functionality that pi-topOS depends on - things like the way that software stays up-to-date, the general desktop environment, etc.

This means that pi-top developers are not directly involved in the development of these core features, even though pi-topOS directly benefits from this work done by the Raspberry Pi Foundation.

What are the main things that are different in pi-topOS?

We install multiple extra bits of software (known as packages) on top of Raspbian. These packages are responsible for such things as:

  • Plug-and-Play functionality with pi-top hardware
  • Modifying the user interface
  • Notification system
  • Automatic software updater
  • Onboarding/tour
  • Additional settings for pi-top hardware
  • About page to show key information about the OS that is installed

These are installed by a “parent” package: pt-os.

Other changes, performed during the creation of the OS, include:

  • Changing the default pi user password to pi-top
  • Enabling VNC Server by default
  • Adding pi-top software repository
  • Installing pi-top software (via pt-os package)
  • Modifying SSH text interface
  • Changing /boot/config.txt
    • Force HDMI out of HDMI1 on Raspberry Pi 4 to allow for VNC without a connected display
      • hdmi_force_hotplug:1=1
      • hdmi_blanking=1
    • Enable SPI0 to detect possible original pi-top/pi-topCEED
      • dtparam=spi=on
    • Enable SPI1 to use pi-top [4] OLED - default on
      • dtoverlay=spi1-1cs
    • Enable I2C to communicate with all pi-top hardware
      • dtparam=i2c_arm=on
    • Enable extra video codecs in Raspberry Pi GPU firmware; adds native support for Raspberry Pi Camera
      • start_x=1
    • Set GPU memory allocation to 128MB
      • gpu_mem=128
    • Configuring DHCP server on pi-top [4]’s USB-OTG port
    • Setting up screen blanking
    • Setting up dynamic swap for better performance
    • Changing hostname from 'raspberrypi' to 'pi-top'
    • Setting default locale and keyboard layout to US
    • Modifying system logging settings to persist (to aid with debugging)
    • Add build information into /etc/pt-issue
    • Clean up unwanted leftover directories and packages from Raspbian