Enables the user to configure a few additional items, including using
pkgin to manage binary packages, in a post-install menu which replaces
the series of questions (Do you want to set a root password? etc).
This is by no means a perfect solution, nor should it discourage anyone
from working on more sweeping changes to sysinst.
Some bug fixes, and .de translation provided by Julian Fagir.
XXX .es, .fr and .pl translations still needed. Please help!
i.e. DEFAULT_UFS2 as src/distrib/utils/sysinst/bsddisklabel.c does
since post-NetBSD5. This avoids rendering an i386 or amd64 system
unbootable if the given example is thoughtlessly cut-and-pasted on
a NetBSD6.x system (been there, done that ;-) Qualify the descriptions
of /usr/mdec/bootxx_ffsv{1,2} along those lines.
Fixed a small typo in comment of distrib/utils/sysinst/arch/amd64/md.h.
Ok by releng@
- fix typos in timecounter names.
- make sure to drain Tx FIFO to avoid clobbering
kernel boot messages.
- allow to have the 3rd UART.
- add missing time-of-day clock support.
Ok by releng.
and then modified, it is much easier to let this late, user-oriented
customisation be done automatically. These mods let mkimage change
information based on files in a "custom" directory, which can be set
in mkimage using -c customdir.
After all other configuration, the files under custom/ will be copied
into the main image. The files under custom/ are taken into account
when performing autosizing.
Also, generalise the sets directory to point to the current machine
architecture, although this can be overwritten from the command line
by anyone making cross-images.
An example to make a user image with an embedded read-only 100 MB
iSCSI target:
% ./mkimage -c custom
=== making a new 272 MB image in usermode.img ===
272+0 records in
272+0 records out
285212672 bytes transferred in 7.616 secs (37449142 bytes/sec)
=== mounting image via vnd vnd0 ===
/dev/rvnd0a: 272.0MB (557056 sectors) block size 8192, fragment size 1024
using 6 cylinder groups of 45.34MB, 5803 blks, 11264 inodes.
super-block backups (for fsck_ffs -b #) at:
32, 92880, 185728, 278576, 371424, 464272,
=== installing sets ===
base
etc
modules
=== performing customisations ===
=== making extra directories ===
=== customising /var/tmp ===
=== user customisations from files in custom ===
Filesystem 1K-blocks Used Avail %Cap Mounted on
/dev/vnd0a 269967 263958 -7489 102% /mnt
% ls -l -R custom
total 8
drwxr-xr-x 3 agc agc 512 Jan 18 03:58 etc
drwxr-xr-x 2 agc agc 512 Jan 18 04:00 iscsi
custom/etc:
total 8
drwxr-xr-x 2 agc agc 512 Jan 18 03:58 iscsi
-rw-r--r-- 1 agc agc 564 Jan 18 03:58 rc.conf
custom/etc/iscsi:
total 6
-r--r--r-- 1 agc agc 799 Jan 18 04:27 targets
custom/iscsi:
total 102484
-rw-r--r-- 1 agc agc 104857600 Jan 18 04:00 iscsi-target0
% sudo vnconfig vnd0 usermode.img
% sudo mount /dev/vnd0a /mnt
% cat /mnt/etc/iscsi/targets
# $NetBSD: targets,v 1.2 2006/02/16 19:30:57 agc Exp $
#
# Structure of this file:
#
# + an extent is a straight (offset, length) pair of a file or device
# it's the lowest common storage denominator
# at least one is needed
# + a device is made up of one or more extents or other devices
# devices can be added in a hierachical manner, to enhance resilience
# + in this example, no device definitions are necessary, as the target
# will just use a simple extent for persistent storage
# + a target is made up of 1 or more devices
# The code does not support RAID1 recovery at present
# Simple file showing 1 extent, mapped straight into 1 target
# extent file or device start length
extent0 /iscsi/iscsi-target0 0 100MB
# target flags storage netmask
target0 ro extent0 0.0.0.0/0
% ls -l /mnt/iscsi/iscsi-target0
-rw-r--r-- 1 agc agc 104857600 Jan 18 04:00 /mnt/iscsi/iscsi-target0
% diff custom/etc/iscsi/targets /mnt/etc/iscsi/targets
%
embedded platform in particular.
+ mkimage will make an autosized image in a file (using vnd) from sets
the resulting image can be mounted read-only, with tmpfs used for volatile
files on top of read-only bases
+ mkpkgs will make an autosized image in a file (using vnd) from binary
packages
+ usermode is an easy way to invoke usermode, making sure that bridging
is set up properly, and that the host syscallemu module is loaded. This
script then runs usermode with two file images (as produced by mkimage
and mkpkgs)
with improved German translations from Martin Husemann and Julian
Djamil Fagir. French, Spanish, and Polish translations are
still needed. OK christos, riz.
the target filesystem, but before mounting it. Use this on sparc64
to install the primary boot block, but install the secondary boot
(/ofwboot) later.
This allows sysinst to run at securelevel 1 (as long as we don't do an
upgrade install on the hard disk we booted from).
Even after almost a lost decade since NetBSD/luna68k was
switched to using ELF format by default back in 2001,
actually only one fix (bus.h) is required for a GENERIC kernel itself
to get multiuser login: prompt on a real hardware. Hurrahhh!!!
Demonstrated with a working Xorg mono server on the NetBSD booth
at Open Source Conference 2011 Kansai @ Kyoto:
http://www.ospn.jp/osc2011-kyoto/
"Very impressed," commented by Tomoko YOSHIDA,
Program Committee Chair of the Conference,
and some other OMRON guys.
Special Thanks to Tadashi Okamura, for providing
a working SX-9100/DT "LUNA" for this mission.
Changes details:
sys/arch/luna68k/include/bus.h
- handle stride properly even on multi and region ops for MI spc(4)
- also fix stride handling of (currently unused) 2 and 4 byte ops
sys/arch/luna68k/conf/Makefile.luna68k
sys/arch/luna68k/conf/kern.ldscript.head
sys/arch/luna68k/conf/kern.ldscript.tail
- build a faked a.out kernel using elf2aout(8) tool
and a linker script derived from cats and shark
for the LUNA firmware that loads a.out binary directly
via network or from a UNIOS partition on a local disk
sys/arch/luna68k/dev/omrasops.c
sys/arch/luna68k/dev/omron_rfont.h
- use the original OMRON font derived from 4.4BSD-Lite/luna68k
rather than gallant19 which is used on Sun workstations
(XXX omrasops.c should be rewritten to use generic wsfont(4))
distrib/luna68k/*
distrib/utils/sysinst/arch/luna68k/*
etc/etc.luna68k/MAKEDEV.conf
etc/etc.luna68k/Makefile.inc
sys/arch/luna68k/conf/INSTALL
- build a ramdisk based INSTALL kernel with sysinst(8) for luna68k
- also build an installation iso image for luna68k
sys/arch/luna68k/conf/GENERIC
- enable SYSVSHM (and other SYSV*) options for Xorg server
More Xorg changes (which need some more cleanup) and
isiboot.c fixes will come soon.
is safe to remove a "floppy" now) into two parts: md_hello to tell MD
specific informations (empty on most archs), and md_may_remove_boot_medium,
which is only added if md_may_remove_boot_medium() says so - by default only
say so on non local / filesystems, and never if / is on CD/DVD.
Fixes first part of PR 44738.
XXX - I'm not a linguistic genious nor semantic mind reading sed process,
please fix any fallout if you are a native speaker of an affected language
and/or user of a port I did not test. Send-pr if in doubt.
NetBSD/emips port runs on Xilinx and Beecube FPGA systems and the
Giano system simulator.
eMIPS is a platform developed at Microsoft Research for researching
reconfigurable computing. eMIPS allows dynamic loading and scheduling
of application-specific circuits for the purpose of accelerating
computations based on the current workload.
NetBSD eMIPS support for NetBSD 4.x was written at Microsoft Research
by Alessandro Forin and Neil Pittman. Microsoft Corporation has
donated full copyright to The NetBSD Foundation.
Platform support for eMIPS is the first part of Microsoft's
contribution. The second part includes the hardware accelerator
framework and will be proposed on tech-kern soon.
Users who really really really want to change the default setting can
continue to change their cipher algorithm right after a clean install
by modifying /etc/passwd.conf and regenerating the root password if
previously set by sysinst.
per running INSTALL kernel name taken from sysctl kern.version.
XXX: on all arm ports, sysctl hw.cpu_model returns a processor name,
XXX: not machine model as mentioned in <sys/sysctl.h>.
XXX1: I don't think it's worth to keep bad144 for modern flash devices.
XXX2: Should we still maintain non-English translations without a maintainer
even after we removed www translations?
Use IPAQ and JORNADA720 instead in messages per md.h.
XXX1: hpcarm seems to have more kernels.
XXX2: hpcarm doesn't have a common INSTALL kernel so
choosing a kernel set during sysinst doesn't make sense.
seen in the wild. So, before accepting arbitrary strings from there,
validate at least slightly and ignore if the entries are not properly
0 terminated or contain controll characters.
the install media provides the utilities. Set this for sparc64 for now,
since the bootblocks don't deal with the default LFS parameters used
by sysinst.
on the CD) if we can find CDs (i.e. media, not drives) automagically
and check the standard paths on it.
If we find multiple CDs, offer a menu to select showing the volume
name. If something goes wrong, fall back to the manual input method.
In typical installs this makes us just proceed with extracting the sets
after selecting "install from CD/DVD", w/o any further interaction.
As a side effect fixes PR 43012.
XXX new messages need translations.
s/MP/UP/ kernels were otherwise in place.
in my testing on a U60, i couldn't really notice any different in
speed, but we need testing on a U1/U5/U10 systems to be sure that
GENERIC.UP isn't necessary.
for sparc64, this is some what required as USIIIi systems have the
memory controller on the CPU, and unless the CPU is spunup, a UP
kernel will not function on these systems. (we obviously need to
join the NUMA-for-netbsd camp now, too! :-)
this should enable the installer to function on all systems that we
support, but also give the option for people to install GENERIC.UP
on their single-cpu systems if they choose.
XXX: i haven't actually tested sysinst with this, but i have built
both sparc and sparc64 release iso's successfully with this change
(sans having to comment out kern_ctf.c.)
ramdisks and prefer disklabel elsewhere.
Based on discussion on affected port lists (port-sparc port-sparc64
port-sun3 port-sun2 port-atari port-mvme68k).
All listed ports plus amd64 test built after change
passwd.conf file to passwd.conf.pre-sysinst file and creating a new one
from scratch:
- This is consistent with all other edits of configuration files performed
by sysinst. (E.g. in-place changes of rc.conf.)
- This eases the upgrade of the system to a newer set of files because the
diffs presented by etcupdate are easier to read.
No objections in tech-install@. Tested installing NetBSD/amd64.
uint32_t. Might make sysinst work on disks between 1TB and 2TB.
Not actually tested because I don't have a big disk.
Hopefully I haven't broken the small disk case!
Set WARNS= 4 so that comparisons of signed and unsigned block numbers
are trapped.
understanding of cryptography won't choose DES as the default on his system.
The default option should be the best possible in case the user is unsure.
As man page says, installboot(8) is required only OpenFirmware 1 and 2
machines and even on such machines the root partition has to be at the
beginning of the disk to make installboot(8) work.
On OpenFirmware version 3 machines, the strategy provided by
installboot(8) doesn't work, and they need to have an extra
native partition (HFS or FAT16) which can be recognized by
the newer firmware to put a loadable bootloader.
If PART_A has some offset, we can assume the disk is partitioned
for a machine with OF3, which does't require installboot(8).
Eventually, we should provide an independent partitioning method
for OpenFirmware 3 machines (fdisk MBR partition + FAT16 partition
for ofwboot.xcf as OpenBSD does), but it may require some new API
to get OF version in sysinst.
don't blow away existing config files.
- Wait until all sets have been unpacked to run postinstall. Previously
we ran it after extracting etc, which meant that /var/db/obsolete/ was
not fully populated.
for the first swap partition use type sw,dp instead of sw, so dump device
gets configured correctly if swap is not on the second partition.
Fixes PR install/42148.
- Re-order the md_*() definitions so they are in the order called
- Add some comments
- Remove obsolete md_set_no_x() definition
- Remove md_copy_filesystem()
- #if defined(DEBUG) declare backtowin(void) to avoid scattering
externs in various md .c files
mbr.[ch]:
- Add a set_bios_geom_with_mbr_guess() which can be called by all
the non x86 ports rather than copying the same code into arc,
bebox, cobalt, evbmips, evbppc, hpcarm, hpcmips, landisk, ofppc,
prep, sandpoint, and zaurus md.c
install.c:
- Remove now unnecessary call to md_copy_filesystem()
upgrade.c:
- Move move_aout_libs() here, and put under #ifdef AOUT2ELF
- Rather than having *every* md_update call wrefresh(curscr),
wmove(stdscr, 0, 0), wclear(stdscr), and wrefresh(stdscr),
move them here
arch/acorn26/md.c:
- Just include arch/acorn32/md.c, but add a note there warning
about this, and while here add a note to i386/md.c that it
is included by amd64
arch/*/md.c:
- By all means "Vive la difference", but we have 38 pairs of md.[ch],
and they could not even agree on the order in which to list the
md hooks, let alone formatting. Sort the md hooks to match the
(now sane) order in def.sh, and try to normalise the formatting
- Also copy across some function level comments everywhere
- Ensure functions only used inside each md.c are defined as static
- Remove some now unused functions
- Some files had enable_rc_conf in #ifdef DEBUG. Add this to all
- bebox, evbppc and sandpoint were still playing broken games with
copying the booted ramdisk to the target disk, the primary result
of which was just to slow things down and ensure the target system
lost the .profile extracted from the sets. Just kill this.
- For some ports md_update() called endwin(), and in others not.
Take a cure from i386/amd64 and a few other more active ports,
and update everything to match (no endwin())
- In a couple of cases correct port names in comments
- ANSIfy some lingering old style functions
- Consistently use "return 0;" rather than "return (0);"
More of the mbr code should be abstracted, along with the
get_ramsize() / set_swap() logic, but this is (more than)
enough for one day...
sysinst built for all ports but only runtime tested on amd64 & i386
the device name
Try ATA/SCSI identify commands and when successful, use the model information
along with the disk size when creating the 'Available disks' menu.
Instead of having a list of disks (wd0, wd1, sd0) the menu now looks like:
Available disks
>a: wd0 (977M, SanDisk SDCFB-1024)
b: wd1 (233G, FUJITSU MHY2250BH)
c: sd0 (246M, LEXAR JUMPDRIVE ELITE)
ok martin@
- add HAVE_UFS2_BOOT define on ports which have UFS2 capable loader
- reject UFS2 for root file system on ports !HAVE_UFS2_BOOT
- add a MI function to get bootxx name from root file system type
per MD defines and remove md_bootxx_name() from arch/i386/md.c,
so that alpha can use bootxx_ffsv2 for UFS2 as well as x86
Tested on i386 and alpha with FFSv1 and FFSv2, and also
tested on vax (on simh) for !HAVE_UFS2_BOOT case.
de translation is provided by martin@.
No objection on tech-install, and "move forward with it" from perry@.
XXX1: not tested on all ports, more ports might/could have UFS2 root support
XXX2: no es, fr, and pl translations, even en message should be improved
XXX3: alpha has a fixed en message without MSG
Linux compat, and we are planning to kill ptrace and make the debugger
use /proc instead.
- kernfs is hosed at the moment and nothing appears to rely on it any more,
so disable it. (IPsec did at one point, IIRC).