private non-installed build infrastructure from sys/rump.
breakdown of commit:
* install relevant headers into /usr/include/rump
* build sys/rump/librump/rumpuser and sys/rump/librump/rumpkern
from src/lib and install as librumpuser and librump, respectively
+ this retains the ability to test a librump build with just the
kernel sources at hand
* move sys/rump/fs/lib/libukfs and sys/rump/fs/lib/libp2k to src/lib
for general consumption, they are not kernel-space dwellers anyway
* build and install sys/rump/fs/lib/lib$fs as librumpfs_$fs
* add chapter 3 manual pages for rump, rumpuser, ukfs and p2k
* build and install userspace kernel file system daemons if MKPUFFS=yes
is spexified
* retire fsconsole for now, it will make a comeback with an actually
implemented version shortly
This is consistent with several other rc.d scripts
and fixes problem with /sbin not in PATH.
(Tested several times for over three weeks, but not all
parts of this code were used by me.)
and create sums for it.
This means all the pieces to do network installation are easily accessible
following a release build (and will also come out of the build servers).
netbsd-GENERIC is in binary/kernel/
pxeboot_ia32.bin is in installation/misc/
miniroot.kmod is in installation/miniroot/
- Make MULTIPROCESSOR mandatory on i386.
Installation changes:
- Update installation section of release notes to match reality.
- Rename INSTALL to INSTALL_FLOPPY, retire INSTALL_LARGE.
- Build INSTALL kernel from GENERIC, like on amd64.
- Update boot menu to allow disabling ACPI and/or SMP.
- Remove GENERIC.NOACPI from the installed kernel list.
- TODO: install default boot.cfg in etc.tgz.
- TODO: possibly enable PCI fixup stuff at runtime if ACPI is disabled.
Build changes:
- No longer build ALL, it's for verification, is slow to build and the
build process is already crippled by the number of kernels built.
- No longer build GENERIC.NOACPI.
Only a sensor is only returning unknown data, all the other ones
match what the BIOS returns.
- Improve comments and add a note for contacting me if the values
returned by drivers are not correct.
btuartd(8) should be named btattach(8) for consistency
with other parts of NetBSD
make btattach(8) a single-use tool for less complexity
device specicific initialisation (from btuart(4)) is carried
out prior to activating the line discipline (in btattach(8)),
which simplifies the API somewhat and means that the user
tool and the kernel do not need to be kept in sync.
btuart(4) driver is much reduced; naming is made consistent
and all tsleep() and delay() are removed to userland
like "cmd: not found" are also redirected.
This should fix a problem reported by Chavdar Ivanov in which
the message "mtree: not found" appears during installation.
already-existing device nodes. This is done by invoking pax with its
current working directory set to an empty temporary directory.
* Add "-t mtree" command line option, to force MAKEDEV to use "mtree
-e -U" to create device nodes. Here are some timings from "MAKEDEV
${method} all" on an i386 system; each method was executed three
times, first in an empty directory, then twice in an already-populated
directory:
-m mknod
4.56 real 1.58 user 1.68 sys
2.96 real 1.37 user 1.48 sys
2.95 real 1.43 user 1.44 sys
-p pax
1.80 real 0.18 user 0.62 sys
2.35 real 0.25 user 0.80 sys
2.38 real 0.24 user 0.82 sys
-t mtree
1.62 real 0.22 user 0.44 sys
0.23 real 0.29 user 0.04 sys
0.24 real 0.28 user 0.05 sys
* If no command line options force a choice, then prefer mtree, pax, or
mknod, in that order of preference.
No objections in tech-userlevel to an earlier version of this change.
"retro" computers, but NetBSD also runs a growing number of rare
and retro add-on cards. With this patch, NetBSD supports the IDEC
Supervision/16, a black&white image capture board for the 16-bit
ISA bus. Approximate date of manufacture: 1991. Total instances
known to be in use throughout the world: one.
Coming soon; isvctl(8), the utility program for capturing 8-bit,
512x480 images at speeds of up to 6 frames per second.
This is so that md code that tries to call makedev altq or fd does not fail
when the file exists. This was reported in port-powerpc, when building /dev.
Now "etcupdate -s /path/to/src" should no longer complain about being
unable to make atf-run.hooks. build.sh passes NETBSDSRCDIR in the
environment, so it used to work even without this include.
* Add a nooutput function to be used instead of redirecting to /dev/null,
because /dev/null might not exist early in the boot sequence. This
should fix a bug in which the pax autodetection failed when used from
init(8) with a read-only root file system without a /dev/null.
* Move most of the main program into a new makedev_main function,
to allow reuse by MAKEDEV.local.
In MAKEDEV.local:
* Use the new makedev_main function defined in MAKEDEV. This allows
MAKEDEV.local to support all the options understood by MAKEDEV, instead
of only a subset. This should fix a bug in which the setup() function
could try to use pax mode even though that was previously not supported.
In MAKEDEV.local man page:
* Update list of command line options.
* Don't explain all the options, just refer to MAKEDEV(8) man page.
* Remove BUGS section now that all MAKEDEV options are supported
by MAKEDEV.local.
Improve the documentation around that.
* The "-p pax", "-m mknod", and "-s" (mtree specfile) options should
always have been mutually exclusive. Now enforce that.
* The "-f" option didn't ever work with pax or mtree mode; document that,
and make it an error to try something that won't work.
* Make pax mode the default, if no other options prevent this, and if
"pax -w -M" appears to be usable.
* Add missing options to a usage message.
output from MAKEDEV.local.
Fixes PR 37498 from dlagner at rambler.ru, using an idea from David
Laight. The while loop in the old code is executed in a subshell, so it
can't make persistent modifications to the parent shell's variables.
This change converts all the existing regression tests in regress/games
to the new framework provided by atf. As a side effect, this also moves
all the tests programs in regress/games to tests/games.
This change converts all the existing regression tests in
regress/sys/fs/tmpfs to the new framework provided by atf. As a side
effect, this also moves all the tests programs in regress/sys/fs/tmpfs to
tests/fs/tmpfs.
This change converts all the existing regression tests in regress/bin to
the new framework provided by atf. As a side effect, this also moves all
the tests programs in regress/bin to tests/util, as they all belong to
utilities installed by the base-util-root package.
This adds a new tests.tgz set to releases which includes all the tests
for the system. It is important to note that this set does not rely on
comp.tgz: a user of the system can run the tests without having the
development tools installed, which can be useful in a production machine.
This change adds the ATF manual pages that are not tied to any specific
tool nor library. It also adds some distribution documentation to the
system, as this is linked to by the manual pages (plus we have to install
the license text to comply with its terms).
This adds reachover Makefiles to build the libatf library and enables it in
the parent Makefile.
Things to review in this change:
* Add proper version numbers in the shlib_version files.
* Is libatf properly listed in lib/Makefile? It theoretically needs
libstdc++, but the resulting binary library is not linked against it.
- since no floppy drive is useful even with standard SP3 and EnCorePP1
configuration, floppy related descriptions will be removed in future.
installation procedure needs to have renovations.
http://mail-index.netbsd.org/current-users/2007/07/16/0012.html
- Introduce sme_class into the sysmon_envsys struct to specify a
class; currently there are two classes: SME_CLASS_ACADAPTER and
SME_CLASS_BATTERY.
- Add a new envsys event: PENVSYS_EVENT_LOW_POWER that is reached when
all SME_CLASS_BATTERY devices are in CRITICAL/LOW state and there's not
any SME_CLASS_ACADAPTER connected.
- Add the 'low-power' event into the sensor_battery script that will
shutdown the system gracefully via 'shutdown -p'. If powerd(8) is
not running, cpu_reboot(9) with RB_POWERDOWN is used.
- Make acpiacad(4) a SME_CLASS_ACADAPTER device and acpibat(4) a
SME_CLASS_BATTERY device.
Update the documentation accordingly to these changes.
release) to not start postfix if $postfix is not explicitely set and
another mailer is selected in /etc/mailer.conf. Also print a warning if it
happens because the mailer in rc.conf is the removed sendmail.
This prevents starting two MTAs at once if one uses a custom MTA.
As proposed on tech-userlevel, approved by martin.
'ramdisk' MAKEDEV goal instead of from a Makefile definition. As there
is just one configuration for the ramdisk, it's better to keep everything
in one place.
(Part 4: documentation and configuration files)
* Support for detachable sensors.
* Cleaned up the API for simplicity and efficiency.
* Ability to send capacity/critical/warning events to powerd(8).
* Adapted all the code to the new locking order.
* Compatibility with the old envsys API: the ENVSYS_GTREINFO
and ENVSYS_GTREDATA ioctl(2)s are supported.
* Added support for a 'dictionary based communication channel' between
sysmon_power(9) and powerd(8), that means there is no 32 bytes event
size restriction anymore.
* Binary compatibility with old envstat(8) and powerd(8) via COMPAT_40.
* All drivers with the n^2 gtredata bug were fixed, PR kern/36226.
Tested by:
blymn: smsc(4).
bouyer: ipmi(4), mfi(4).
kefren: ug(4).
njoly: viaenv(4), adt7463.c.
riz: owtemp(4).
xtraeme: acpiacad(4), acpibat(4), acpitz(4), aiboost(4), it(4), lm(4).
Bug fixes:
- Fix crash reported by Scott Ellis on current-users@.
- Fix race conditions in enforcing the Veriexec rename and remove
policies. These are NOT security issues.
- Fix memory leak in rename handling when overwriting a monitored
file.
- Fix table deletion logic.
- Don't prevent query requests if not in learning mode.
KPI updates:
- fileassoc_table_run() now takes a cookie to pass to the callback.
- veriexec_table_add() was removed, it is now done internally. As a
result, there's no longer a need for VERIEXEC_TABLESIZE.
- veriexec_report() was removed, it is now internal.
- Perform sanity checks on the entry type, and enforce default type
in veriexec_file_add() rather than in veriexecctl.
- Add veriexec_flush(), used to delete all Veriexec tables, and
veriexec_dump(), used to fill an array with all Veriexec entries.
New features:
- Add a '-k' flag to veriexecctl, to keep the filenames in the kernel
database. This allows Veriexec to produce slightly more accurate
logs under certain circumstances. In the future, this can be either
replaced by vnode->pathname translation, or combined with it.
- Add a VERIEXEC_DUMP ioctl, to dump the entire Veriexec database.
This can be used to recover a database if the file was lost.
Example usage:
# veriexecctl dump > /etc/signatures
Note that only entries with the filename kept (that is, were loaded
with the '-k' flag) will be dumped.
Idea from Brett Lymn.
- Add a VERIEXEC_FLUSH ioctl, to delete all Veriexec entries. Sample
usage:
# veriexecctl flush
- Add a 'veriexec_flags' rc(8) variable, and make its default have
the '-k' flag. On systems using the default signatures file
(generaetd from running 'veriexecgen' with no arguments), this will
use additional 32kb of kernel memory on average.
- Add a '-e' flag to veriexecctl, to evaluate the fingerprint during
load. This is done automatically for files marked as 'untrusted'.
Misc. stuff:
- The code for veriexecctl was massively simplified as a result of
eliminating the need for VERIEXEC_TABLESIZE, and now uses a single
pass of the signatures file, making the loading somewhat faster.
- Lots of minor fixes found using the (still under development)
Veriexec regression testsuite.
- Some of the messages Veriexec prints were improved.
- Various documentation fixes.
All relevant man-pages were updated to reflect the above changes.
Binary compatibility with existing veriexecctl binaries is maintained.
This should avoid occasional problems with syncing or unmounting
filesystems on machines which use the automounter. Tested
successfully under NetBSD-i386 3.1_STABLE and 4.0_BETA2.
by killing the parent process. The parent's PID is saved in $RC_PID.
* In all rc.d/* scripts that previously tried to stop the boot,
replace in-line code with "stop_boot".
* Document this.
This should fix PR 29822.
examples in the wscons.conf). Now, you have to specify wscons
control device and put variable name and parameter on separate
fields.
NB: changes ARE NOT backward compatible and config file must be
checked (but default config doesn't utilizing setvar).
can't find the el-torito boot image with the old syntax. This can be
fixed by removed the leading "i386/" from the -b argument, but then
the mkisofs from the current cdrtools-2.01 package won't find the boot image.
Change the graf-point specifications so that a trailing / terminates
the grafted directories. This way both versions of mkisofs can find the
boot loader.
instead of one by one using mknod. This is much faster (speed
increases of up to 20 times have been observed, but 3 to 5 times is
more common).
* One "-M" flag will create the mfs file system but not redirect output
to a temporary console; "-M -M" will also redirect output.
* Change the way we accumulate options to pass to MAKEDEV.local.
so that it can be loaded by the machine's firmware. Put the resulting
image inside the 'installation/instkernel' release subdirectory, as the
installation instructions explain.
Fixes port-shark/35563.
Since I managed to commit my alternate scheme for zeropad, delete
the commented out lines and replace the only other use.
I've not deleted the function itself though.
relies on mkisofs to create bootable ISO image. macppc should also be there,
but it seems the code to make an iso bootable never got added in etc.macppc/
GENERIC kernels. If ACPI is an issue on your hardware, 'boot -c' and
'disable acpi' should be a workaround. ACPI-enabled kernels works fine
on pre-acpi hardware.
for amd64:
- add ACPI to INSTALL and GENERIC, remove the *_ACPI config files.
- get rid of the bootfloppy-big.fs boot image, and got to a 3-floppy boot
image
for i386:
- introduce INSTALL_LARGE which has ACPI and some devices with big firmware
- move some devices from INSTALL to INSTALL_LARGE
- Boot floppies still use INSTALL, and bootfloppy-big.fs is still there
(for thoses who want to build el-torito floppy emulation boot CD) and use
INSTALL.
For both, drop the 'iso-image' code in etc/ to make the iso bootable, we'll
use something else to build bootable CDs.
human procedures) breaking because they assume it's enough to copy
MAKEDEV fom one place to another.
Let MAKEDEV return after defining shell functions but before doing any
real work, if MAKEDEV_AS_LIBRARY is set.
Let MAKEDEV.local load MAKEDEV as a function library via
"MAKEDEV_AS_LIBRARY=1 . MAKEDEV".
filesystem and then populate it.
Determine the actual number of inodes that will be needed and add 10%.
Use "mount_mfs -o union" to save us having to copy MADEDEV (in case
anyone wishes to see it.
use by both MAKEDEV and MAKEDEV.local. This allows MAKEDEV.local
to accept the same command line arguments as MAKEDEV.
The installed MAKEDEV.subr is generated from MAKEDEV.subr.tmpl.
Replace the licence on MAKEDEV.local with a NetBSD licence, since I
rewrote the entire file.
Reviewed by christos and agc
removed.)
Add rebuild_whatisdb weekly variable that defaults to NO.
This is for running makewhatis weekly.
This defaults to NO because it is not needed using just base sets/default
install which provide the whatis.db file(s).
* If per_user_tmp is disabled and /tmp equals to ${per_user_tmp_dir}/@uid,
remove it and recreate it with proper permissions (1777).
This fixes the problem when per_user_tmp is enabled and will put /tmp
on its original state when it's disabled.