tech-install archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ./build.sh install-image: Should that work for all ports?



> As a CI project, I'm doing quite a lot of automated NetBSD builds,
> basically calling build.sh for
> tools/libs/release and {iso,install,live}-image .  That's done on a
> quite recent NetBSD -current VM (auto-installed from the install ISO
> from the previous round) as well as in a Linux-based Docker container
> running `sid` Debian userland.
> 
>   I noticed that some in machine/architecture combinations (e.g.
> evbarm with earmv4eb) the install-image doesn't build as it tries to
> fetch kern-GENERIC (which isn't built.)

Initially install-images were only implemented for i386 and amd64.
For evbarm, it looks only aarch64 and earmv7hf (i.e. RPi 3/4)
are implemented:
 https://github.com/NetBSD/src/commit/52ca013

See src/distrib/*/installimage dirs for details:
 https://github.com/NetBSD/src/tree/trunk/distrib/amd64/installimage 
 https://github.com/NetBSD/src/tree/trunk/distrib/evbarm/installimage
 https://github.com/NetBSD/src/tree/trunk/distrib/i386/installimage

Building install-images are a bit complicated because:
 - bootstrap methods are quite machine dependent
 - not all ports have removable external storages
 - several ports require machine specific file systems

For CI use, I guess building live-images (i.e. no installer binaries)
are more appropriate and simpler to configure.

There several liveimages, mostly for emulators:
 https://github.com/NetBSD/src/tree/trunk/distrib/hpcarm/liveimage
 https://github.com/NetBSD/src/tree/trunk/distrib/pmax/liveimage/emuimage
 https://github.com/NetBSD/src/tree/trunk/distrib/sparc/liveimage/emuimage
 https://github.com/NetBSD/src/tree/trunk/distrib/sun3/liveimage/emuimage
 https://github.com/NetBSD/src/tree/trunk/distrib/zaurus/liveimage

Anyway, you can add and configure liveimage or installimage dirs
in src/distrib/${MACHINE} dir for your own use.

See following common Makefiles what should be done on image builds:
 https://github.com/NetBSD/src/blob/trunk/distrib/common/bootimage/Makefile.bootimage
 https://github.com/NetBSD/src/blob/trunk/distrib/common/bootimage/Makefile.installimage
 https://github.com/NetBSD/src/blob/trunk/distrib/common/bootimage/Makefile.liveimage

Machine dependent stuff (install kernel names) are handled in MD dirs like:
 https://github.com/NetBSD/src/blob/trunk/distrib/amd64/liveimage/Makefile.liveimage
 https://github.com/NetBSD/src/blob/trunk/distrib/zaurus/liveimage/Makefile

Thanks,
---
Izumi Tsutsui


Home | Main Index | Thread Index | Old Index