NetBSD/Dreamcast

From dreamcast.wiki
Revision as of 19:37, 4 January 2023 by Unknown user (talk) (Created page with "'''This article is a WIP. It is subject to rapid change. Beware!''' Before building NetBSD, it's important to undertand [http://www.netbsd.org/releases/release-map.html relea...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This article is a WIP. It is subject to rapid change. Beware!

Before building NetBSD, it's important to undertand release types and pick one of release, stable, or current types. Example is using 10.0_BETA

References: How to fetch NetBSD sources, How to build NetBSD

Example

Initial folder setup

Create a working directory in your home folder and enter it:

mkdir ~/netbsd
cd netbsd

Create additional directories for files:

mkdir -p usr obj src-tars xsrc-tars

Download files

Download from ftp.netbsd.org/pub/NetBSD/NetBSD-release-10/tar_files/src/ and place files into directory src-tars

Download from ftp.netbsd.org/pub/NetBSD/NetBSD-release-10/tar_files/xsrc/ and place files into directory xsrc-tars

Extract files

for file in src-tars/*.tar.gz; do tar -zxf $file -C usr; done
for file in xsrc-tars/*.tar.gz; do tar -zxf $file -C usr; done

Build toolchain

cd usr/src
/build.sh -U -O ~/netbsd/obj -j2 -m dreamcast tools

(-U is unprivileged, -O is where to store object files, -j is number of threads during build, -m is machine type, tools is toolchain)

run the following command and take note of your tooldir name, e.g. on Linux:

ls -l ~/netbsd/obj

will returns something like...

- tooldir.Linux-6.0.15-gentoo-x86_64
- tools

The one with "tooldir" in the name is the directory to note.

Build kernel

cd sys/arch/dreamcast/conf

If your target Dreamcast is modded with 32MB of RAM and you wish to build for that, open std.dreamcast and replace

options 	IOM_RAM_SIZE=0x01000000         # 16MB

with

options 	IOM_RAM_SIZE=0x02000000         # 32MB

You can pick GENERIC, GENERIC_MD (memory disk), or G1ATA kernel types, or copy one of them to a new file in the same dir and edit to configure your own kernel options. Run nbconfig on your kernel config, putting in the tooldir you noted before:

~/netbsd/obj/<YOUR_TOOLDIR_NAME>/bin/nbconfig GENERIC

Then build dependencies and kernel:

~/netbsd/obj/<YOUR_TOOLDIR_NAME>/bin/nbmake-dreamcast depend
~/netbsd/obj/<YOUR_TOOLDIR_NAME>/bin/nbmake-dreamcast

Build userland

cd ~/netbsd/usr/src
./build.sh -U -u -j2 -O ~/netbsd/obj -m dreamcast release

(-u is update-only so we use what we've already built before instead of building another toolchain, and don't forget -j is number of threads during build)

Build X Server

./build.sh -U -u -O ../../obj -j30 -x -X ../xsrc -m dreamcast release

(-x is to build the X server, -X is the path of the X source code)