Retro‎ > ‎Sega Dreamcast‎ > ‎

DreamPi NOOBS Image

Background information about DreamPi

 The Sega Dreamcast was quite innovative for its time. One major selling point and unique feature for the console during its tragically short, but glorious lifespan was the inclusion of a built-in 56k dial-up internet modem, making the Sega Dreamcast the first home video game console to have online support out-of-the-box. The modem could be upgraded to a Broadband Adapter (BBA) for a higher speed, larger bandwidth DSL internet connection; however, these units are rare, in high-demand, and expensive (even today on eBay). With the 56k modem, players could surf the web using a dial-up connection and Dreamcast web browsers such as PlanetWeb (or likewise could use a DSL connection with the BBA). Most of these web browsers also allowed players to read and send email. Moreover, many games supported online features, such as online multiplayer, leaderboards, and the ability to download DLC to the VMU memory card for usage in-game. 

   Despite the Sega Dreamcast being discontinued prematurely in 2001, many of the game servers stayed online for a few years afterwards. Eventually, however, as the Sega Dreamcast grew older and less socially relevant, all of the games' official servers were retired offline. Recently there have been many online Dreamcast games whose inner workings have been reverse-engineered, and private servers created to resurrect their online functionality. Despite this, however, nowadays with the advent of newer online connection types (such as DSL, fiber, etc), real landline dial-up connections to use with the default 56k modem are becoming obsolete and it is getting much harder to find ISPs who can offer a dial-up connection, while the BBA adapter (for usage with DSL connections) is still rare and expensive.

Enter DreamPi

   In order to create a standardized, modern set of hardware to allow players to connect their Dreamcasts to the internet and applicable games to their respective resurrected game servers, a fellow named "Kazade" created the DreamPi. It is a customized Debian-based Linux distro that runs on a Raspberry Pi Model 2 or 3, which will allow a Dreamcast to connect online via a modern-day RJ45 Ethernet or WiFi connection. A DreamPi setup consists of the following
  • Raspberry Pi Model 2 or 3
  • DreamPi distro
  • Linux-Compatible USB Modem
  • RJ11 Phone cord
  • Line Voltage Inducer circuit (if the USB Modem or Dreamcast modem model requires voltage on the modem connection)
  • Internet connection via RJ45 connection (required for Model 2 RPis) OR WiFi access point (for WiFi-equipped Model 3 RPis)

   With the DreamPi software and the USB modem setup, the DreamPi will answer to the Dreamcast's dial-up calls, and allow it to connect to the internet. The Dreamcast Now website displays which players are currently online with registered DreamPis and for what games. Furthermore, a DreamPi can be used to get other dial-up based consoles and computers back online for surfing the web, such as a Sega Saturn. With a DreamPi, the Sega Saturn can browse online with a PlanetWeb web browser and NetLink modem cartridge, or browse the resurrected NetLink Zones for Netlink-enabled games. (More information about surfing the NetLink Zones via the DreamPi on the Sega Saturn available here). One minor con of the DreamPi distro, however, is that it is not NOOBS compatible; the distro must be installed directly to the SD Card by writing the image to it, meaning that one cannot partition the SD Card easily for multi-booting of several Linux-based distros on the SD card. Enter DreamPi NOOBS Image!


DreamPi NOOBS image



   The easiest way to setup a new Raspberry Pi is to install a bootloader software known as NOOBS (New Out Of Box Software). It comes in 2 versions: the full-version (has a few Linux distros available locally for installation from the SD Card, and allows installing other Distros from an online server), and the lite version (only allows the user to install a few Linux distros from online). NOOBS is run when the Raspberry Pi boots, allows one to install various operating systems in such a way to allow multi-booting, and allows the user to select which OS to run. All the user needs to do to install NOOBS is to plop the contents of the NOOBS download to the root of the designated SD Card (formatted to FAT32) for the Raspberry Pi. On first boot, the NOOBS bootloader will create a primary FAT32 partition sized appropriately to contain the NOOBS bootloader files and local OSes (if any) for installation on the SD Card's root folder; afterwards, the user can select what OSes to install (either locally from this partition in the "os" folder for the full-versionr, or online for the lite-version from the online server for various officially-sponsored distros). The lite-version can only install OSes from the online server. Installing OSes via NOOBS allows multi-boot capabilities.

   A much better alternative to NOOBS is PINN (PINN Is Not NOOBS), which I highly recommend using over NOOBS. PINN is based off of NOOBS, has the same features as NOOBS, and also has the following enhancements such as:
  • Various ways to install OSes
    • Install from SD Card (offline)
    • Install from online server (with a wider variety of OSes)
    • External Media
      • USB Flash Drive
      • External SD Card via a USB SD Card reader
  • Install additional 512MB ext4 Data paritions, for general data usage
  • Reserve empty partitions ("project spaces") for future OSes.
  • Download and archive to the SD Card the OSes from the online server, for offline installation
  • Easily reinstall OSes if something goes wrong (without having to redo a fresh NOOBS/PINN setup)
  • Replacement and upgrading of OS partitions
  • Dual PINN firmware support to handle Pre-Raspberry Pi Model 3B+ model and later

  • Various maintenance capabilities
    • OS maintenance utility
    • Recovery shell
    • SD card clone utility
    • Password restorer
    • File System Checker
   To allow easy setup of a DreamPi distro on a Raspberry Pi (with multi-boot capabilities for other OSes), I have a created a NOOBS/PINN-compatible DreamPi image, based against the latest version of DreamPi. This image has its own OS icon and slideshow images too when installing!


How to install DreamPi via NOOBS/PINN

If modifying an existing NOOBS/PINN setup, it is highly recommended to backup the SD Card first!
  • Upgrading an existing DreamPi partition from
    an older NOOBS image to a newer
    on an existing PINN setup
    • Such as upgrading DreamPi NOOBS image from v1.6 to v1.7
    • If your version of PINN does not have a "replace [OS]" feature in the maintenance menu, please upgrade PINN to the latest version
      • Feature added after around PINN v2.4.5 (Feb 2018)
      • Feature is necessary to upgrade the DreamPi partition!
      • Upgrade PINN
        • Online update feature
          OR
        • Manual install
          • Copy all files/folders from new PINN zip folder onto SD card except Recovery.cmdline
          • Recovery.cmdline on a fresh PINN install "includes the 'runinstaller' option by default. WARNING: If you DO copy recovery.cmdline by mistake, it will wipe out all your existing installed operating systems due to the runinstaller option! If upgrading an existing PINN system, please check recovery.cmdline does not include the 'runinstaller' option."

    • Extract the contents of the newer DreamPi NOOBs image archive onto the root of an external medium (USB Stick or USB SD Card Reader+SD Card)
    • Boot into PINN with the external medium inserted
      • DreamPi OS entry should say "[NEW VERSION]" and have a USB icon
    • Click "More (m)" button to navigate to the "Maintenance" menu
      • Check "DreamPi" OS and click "Replace"
      • Select the new DreamPi image to replace the old partition in the dialog box that appears
      • Click "OK"
      • A warning dialog box shall appear warning you that all data on the DreamPi parition will be deleted during the OS replacement. Click "Yes" if you wish to continue.
    • Let the latest DreamPi image replace the old partition
    • Done!



  • Setting up a new SD Card
    • Format the SD Card to FAT32
      • This will erase all data on it!
    • Download latest version of either NOOBS (full version) or PINN (latter highly recommended)
    • Put the contents of either download onto the root of the SD Card
    • Download my DreamPi NOOBS compatible image below

    • Extract the contents from my download onto the root of the SD card; overwrite any files/folders.
      • Also copy the folders for any additional NOOBS-compatible OS images there too (for NOOBS setup, if necessary)
      • To quote the PINN documentation:
        "Make sure to add any OSes to the /os/ folder before you boot [NOOBS/PINN] in [an] RPi for the first time.
        Otherwise you will find the partition has been shrunk to its minimum size and
        there will be no room to add any more OSes to the card later."

    • Place SD Card into Raspberry Pi, and boot the Pi up.
    • Install the OSes (DreamPi and others).
      • Important: For NOOBS, make sure you check you all of the OSes you want installed at once!
        Installing a single OS may wipe any currently existing ones, and you aren't easily able to change OSes installed afterwards!

    • Enjoy your new multi-boot capabilities!

  • Setting up an existing SD Card with NOOBS/PINN already installed, and installing DreamPi for the first time
    • NOOBS Lite
      • Upgrade to either NOOBS Full-version or PINN (recommended), then follow the "Setting up a new SD Card" section.
        This is required, because we need offline installation for the DreamPi NOOBS image!

    • NOOBS Full-version
      • Follow steps in "Setting up a new SD Card section" for NOOBS setup.
        Backup data before doing so, and make sure you either have local access to all OSes

        OR

      • Upgrade to superior PINN instalation

    • PINN
      • Format USB Stick/external SD Card to FAT32
        • (if not already; USB Stick/SD Card will be erased!)
      • Download my DreamPi NOOBS image, extract contents onto the root of USB Stick/external Card
      • Boot up Pi with USB Stick/USB Card reader+SD Card inserted, install DreamPi

Installing DreamPi (for dual-boot setup in PINN)


DreamPi installation Slideshow

How to convert stock DreamPi image
into a NOOBS-compatible image

This section is just a quick summary of the technical details for the conversion process, for those curious (and as as note to myself on the process for future ref :P). It is performed for the creation of each NOOBS-compatible image, and is based off the information on this mounting guide and conversion guide. For this quick guide, we'll use the Stock DreamPi v1.7 image as an example ("DreamPi-1.7.img").
  • Boot up a working Linux environment. (Raspbian via PINN on Raspberry Pi preferred)
  • Download the official DreamPi image and extract it onto a USB Stick
  • Plug USB stick into Linux machine
  • Open up terminal
    • Navigate to the directory holding the DreamPi image on the USB Stick within Terminal
    • Run "fdisk -l DreamPi-1.7.img"
      • This will list the size of each sector within the image, the partitions within the image, and the starting sector addresses for each partition.
      • Keep all of this data handy
      • Write down the full size of each partition in MB (partition size = size of each sector * amount of sectors)


    • Mount the 1st partition (boot partition)
      • This is the smaller, FAT32 formatted partition
      • Run "sudo mount -o loop,offset=[offset value] DreamPi-1.7.img /mnt/"
        • For DreamPi v1.7 example
          • Sector size = 512 bytes
          • Boot partition starts at sector address 8192
          • Offset value = (8192 sectors * 512 bytes/sector) = 4194304
      • Boot partition's contents will be mounted into /mnt/ folder
      • Archive the mounted filesystem into a tarball ("boot.tar")
        • Navigate to the folder containing the mounted filesystem ("/mnt/" in example) in Terminal
        • Run "sudo tar -cvpf [path/to/directory/holding_DreamPiImage/onUSBStick]/boot.tar ./*"
        • Write down the filesize of this uncompressed tar file in bytes; save it for later
      • XZ Compress the tarball into "boot.tar.xz" file
        • Run "xz -9 -e -v boot.tar" at the location of the boot.tar file

    • Mount the 2nd partition (root partition)
      • This is the larger partition, containing the OS' files
      • Do same actions as with 1st partition, but save tarball as "root.tar" and "root.tar.xz"
        • Run "sudo mount -o loop,offset=[offset value] DreamPi-1.7.img /mnt/"
        • Archive the filesystem into tarball
        • XZ Compress tarball

    • Setup a NOOBs folder for the converted image (call it "DreamPi").
      • This folder should be placed under [root]/os/ on the external medium, for install later)
      • Move the boot.tar.xz and root.tar.xz files into here
      • Copy os.json, partitions.json, and partition_setup.sh from my DreamPi NOOBS image below into here
      • Modify info in os.json
        • Description
        • OS name ("DreamPi")
        • Supported Raspberry Pi models
        • URL
      • Modify info in partitions.json
        • Modify partition_size_nominal for both boot and root
          • Size of the uncompressed, full partitions in MB (values which you recorded when running "fdisk" commands)
          • Round up to the nearest MB with some extra MB of padding for spare space!
        • Modify uncompressed_tarball_size for both boot and root
          • Size of the uncompressed tarballs in MB
          • Round up to the nearest MB.
      • Create OS logo
        • 40x40 px png
        • Named [OS_Name].png ("DreamPi.png")
      • Place images for the installation slideshow in subfolder "slides_vga"
        • 640x440 px pngs
        • Named alphabetically ("A.png", "B.png", etc)
      • Distribute NOOBs image as archive (like I've done)
      • Done!


Download:


Note: DreamPi v1.7 has a bug; read this thread for the fix.

ą
DPiN4.jpg
(1003k)
Tamkis K,
Aug 3, 2018, 2:47 AM
Comments