default the partition to FFSv2 (instead of FFSv1).
This makes update installs add the correct bootstrap code.
Fixes PR/33682 and PR/32636 (and 33228 which has alrady been closed
as a duplicate of 32636).
I think the code it correct - but since it is only relevant when setting
the default boot partition (for mbr_bootsel) to an extended partition
it probably doesn't matter too often!
1) Add an md_post_extract() function. This function is called after
extracting the sets, and allows the arch to do something at that time.
In the case of prep, it is much easier to install the bootcode after all
the sets are extracted, so we do it in md_post_extract(). Added empty
md_post_extract() functions to all other arches so they compile.
2) Add md_mbr_use_wholedisk() and md_check_mbr(). In edit_mbr() I have
split off the code that uses the whole disk for NetBSD, into the
mbr_use_wholedisk() function. On most ports that use mbr.c, I made
md_mbr_use_wholedisk() just call that and return. On prep we create the
magical prep boot partition here. The md_check_mbr() function allows the
arch to add additional checks after the user had manually edited the MBR
to make sure the choices he made allow NetBSD to function. Added a dummy
routine to all mbr.c using arches.
3) Added code to bsdlabel.c to create a partition of type boot if
PART_BOOT is defined, but BOOT_SIZE is not defined. Also added two more
globals "bootsize" and "bootstart" which must be seeded in order to do
so. This is done on prep in md_check_mbr().
4) Added MBR_PTYPE_PREP to the list of MBR partitions.
5) Made the prep port actually install sanely. It now creates a prep
boot partition, labels it correctly, installs all the sets, and then runs
mkbootimage and dd's the bootimage into the prep partition. The result
is a prep installer that creates a bootable NetBSD installation
automatically.
6) Edited the prep menus and messages files to add new labels. In the
case of the translated files, I just added the words in english for
someone to translate later.
I tried to xcompile a few arches to make sure I didn't break anything,
but I could have missed something. Please let me know if I have broken
your arch in any way. I'll watch the autobuilds for the next few days
too. For all ports other than prep there should be no functional changes
at all.
Ask whether the user wants to delete the fetched files (ftp and floppy) after
install. Delete after sucessful install of each file.
Kill bufferred tty input in a couple of places when typeahead will be wrong.
Code added to run.c to do a 'cd' in the child, unused (so far).
for the location of the source of the sets.
Put the menu in the place on the screen that used to contian a display
of what was selected.
Now these screen work the same way as the disk partitioning ones.
Leaves more screen real-estate for more questions.
asks you where to load stuff from.
Initialise stuff so that 'install default set of sets' works.
Fix install loop, removing infinite loop if/when first kernel not selected.
of the sets after an error.
A side effect is that it now does fetch-install-fetch-install..., not
fetch-...-fetch-install-...install.
The set selection code now uses a byte per set (not a bit-pattern) removing
the restriction of 32 sets, and allowing a per set status display (TBC).
Also TBC is deleting sets from /usr/INSTALL.
However I believe it works...
systems where the bios doesn't support LBA reads.
Due to faked geometries the last few (over 30000!) sectors may not be reported
as being readable, but we expect them to be in swap. So we don't force a
root+usr install in that case.
selection (eg selecting the X sets).
libcurses got changed earlier in the year so that the erase (and refresh)
of the message window caused all the unchanged spaces to be redrawn
overwriting most of the main set selection window.
non-reentrant version here in order to avoid linker conflicts when
the rest of this file is attempted linked together with libc's
getgrent.o.
Reviewed by christos.
Since all the x_<prog> get build into crunched binaries (which does a
reachover build these days) I suspect this is entirely unnecessary.
But having deleted x_dmesg we must ensure it doesn't go there.
It is worth remembering that trailing spaces are significant in the message
files - they cause a line break if the text is auto-filled to the RH margin.
(This is often the case when the text is a format string.)
Note: nothing (yet) checks the number (or type) of the format effectors in
the message strings. I found and fixed one big error, but others will
cause core dumps.
- Add xen devices to MAKEDEV
- Add Xen kernels to list of kernel to build
- Add INSTALL_XENU to the install kernels
- introduce the xbd disk devices to sysinst.
This will add 3 kernels to the i386 release:
XEN0 for use as a Xen domain0 kernel
XENU for use on a non-privileged domain
INSTALL_XENU to install NetBSD on a non-privileged domain virtual disk.
want to keep or delete the dist files.
Stop the "type enter to continue" if the rmdir fails - may not be empty.
Report an error if the chroot() (for RUN_CHROOT) fails.
fflush log and script files before writing to them from a child.
Usually the unreadable part will be swap, but remove it from root even
if swap is not selected.
The user can always put it back on the next screen.
Saves sysinst allocating /usr when the bios geometry excludes the last
few MB of the disk (32 on one disk I have).
finding them out and adding the comments to wsksymdef.h.
Make German always have KB_NODEAD set - IIRC Martin said that is needed.
Unfortunately this means we have our own list...
that the "int maxgroups" and "int *ngroups" parameters are separated into
two separate parameters which makes it possible to call multiple nsswitch
back-ends and have the results correctly merged.
getgrouplist(3) is now implemented using getgroupmembership(3).
Proposed on tech-userlevel on December 1, 2004.
contain a GENERIC kernel.
With this commit, NetBSD can now be successfully installed via sysinst on the
IP12 (Personal Iris / Indigo R3k) family of workstations.
* Add the IP12 kernel set to the list, and make it the default kernel selection
if we're installing on an IP12,
* Don't install ARCS bootblocks on IP12,
* Install the ECOFF kernel to the volume header for IP12.
filesystem and then follow existing symbolic links in that filesystem.
The choot is required to make absolute links be processed correctly,
and must be done by tar because the program (and input file) do not
exist inside the chroot.
Fixes PR install/5010 and install/8090 (at least)
trying to parse the output of ifconfig)
Loop if the user specifies an unsupported media type.
Run ifocnfig to set the media type (any anything else the user typed in)
before running dhcp to assign an address.
Correctly extract the defualt gateway from output of 'route -n show'
Extract nameserver from resolv.conf without using get_command_out(),
delete get_command_out().
Fixes (at least) PR install/11880, install/12706
Remove a 'Press <enter> to continue' message that was accidently left
in by a previous commit.
Fixes PR/18555 (and a recent discussion on a mailing list)
exists, and use the 'c' (raw) partition for boot code installation
instead of the 'a' partition (which will not work). This should fix
the problem that newly-partitioned and newly-installed disks will not
be made bootable by sysinst.
in PR install/27281.
XXX - Output is not correct since sysinst does not set the proper LC_CTYPE
yet (which happens to not affect umlauts, but sharp-s (0xdf))
The Iyonix is a desktop machine from Castle Technology, based on a 600MHz
XScale[tm] 80321 processor.
* Uses the bootloader from NetBSD/acorn32, which is now 32-bit compatible.
* Currently boots multiuser with a serial console.
* Device support is not yet complete.
With help from abs.
Move info about cylinders to the 'ask for units' menu.
(translations need checking, done by cutting sentences)
Stop i386 always asking for units.
Use BIOS cylinders for MBR and disk cylinders for the disklabel.
(code intended to do this, but got it wrong...)
Mark some menus as 'sub menu' or MC_SUBMENU so that the screen underneath
is saved.
Add GENERIC.MPACPI to i386 menu.
and bcylsize (bios cylinder size) can be calculated in the one place
it is needed.
The ask_sizemult() call will go once I decide what to to with the
(slightly useful) explanatory text about cylinder alignment.
a single function, the latter is now the return value of get_ramsize().
Changed all uses of rammb to get_ramsize().
Used the 64bit HW_PHYSMEM64 so silly things don't happen if the memory size
approaches (or even exceeds) 4GB.
Save the result in /etc/wscons.conf at the end of the install/upgrade.
Currently only builds for i386 - change arch/*/Makefile and add the
extra messages (though they could go into the msg.mi.* files).
Needs the 'Keyboard type' message translated in to German, French and polish.
Maybe the keyboard type names could be less cryptic...
I've made the error retry loops go back as far as the input menus.
Split all the pathname inputs into 2 pieces (base directory and set directory).
Reduced the size of some fixed strings.
Stopped the install aborting if ftp can't find a set (eg the X ones).
The French and Polish transations don't differenciate between Base_dir and
Set_dir - but that can be fixed later.
Convert ' ' to 0 to ensure a valid device name is genarated.
(This will be a problem in 'upgrade' when filesystems are mounted
using the targets extisting /etc/fstab.)
written into the correct place - even if the user decides not to update
the mbr code and has the old (pre layout change) code installed.
Tell the user that the mbr code needs updating if the new install uses
'all the disk' and teh old version had the bootselect code (otherwise you
get an empty menu).
Probably fixes PR install/25146
use union to align struct fs
don't check error return from fsck upgrade/downgrade runs
use RUN_DISPLAY | RUN_PROGRESS when running upgrade runs
don't use opendisk
much the same function).
Mainly some extra comments, also moved a 'static' so we use 512bytes of
stack and not static data. Killed call to access() as it is pointless
and doesn't do what you want (access is for suid programs to check whether
the real user could do the operation).