2 The device manager(devman) is now started automatically during the
3 mount -a operation. As fstab is generated during installation it is
4 required to manually insert the following entry in fstab. Failing to
5 do so will result in the devmand daemon to be able to open the events
8 none /sys devman rw,rslabel=devman 0 0
11 New install and mk files require the following steps:
13 # cp /usr/src/share/mk/*.mk /usr/share/mk
15 # make -C usr.bin/xinstall all
16 # cp usr.bin/xinstall/xinstall /usr/bin/install
23 WARNING: the shared libraries major revision set to 0 will break
24 existing dynamically linked binaries if they exist.
26 There are two risks. One: existing binaries won't find the current
27 libraries; two: linking binaries with both majors present will link
28 them in twice. So the previous libraries have to be removed.
30 . re-build world statically first if necessary
31 . remove libraries from /lib and /usr/lib
35 Upgrade your clang to clang-2.9nb6 or clang-3.1nb3 to be able to
36 build shared libraries and dynamically linked executables. The
37 system will keep working without them, but a dynamic-capable
38 system will be a requirement soon.
41 Boot loader menu now has an option to boot into single user mode. To
42 get the menu option do:
44 # cp /usr/src/etc/boot.cfg.default /etc
48 an installed genassym is required to build the kernel:
49 # make -C usr.bin/genassym install
52 The boot loader now defaults to 115200 baud rate to make booting over
53 serial more pleasant. To install the new boot loader do
59 To boot over serial add the following to /etc/boot.cfg.local (create
60 the file if not present):
61 menu=Start latest serial MINIX 3:load_mods /boot/minix_latest/mod*;multiboot /boot/minix_latest/kernel rootdevname=c0d0p0s0 cttyline=0 cttybaud=115200
64 To install the new boot configuration run
69 The base system only looks in /usr/pkg/compiler-rt/lib now, so
70 -L/usr/pkg/lib is gone.
71 Please make sure you have the latest compiler-rt package
75 Compiling everything with clang (previous entry) depends on a
76 relatively new clang package. Please make sure you have at
77 least clang-2.9nb3 installed. The symptom of an old clang being
78 used is an assert(inited) firing, e.g. after rebuilding make.
81 Full switch to clang/ELF. ack is no longer supported.
83 clang is the ELF-generating compiler in the base system, gcc is
84 available as a package.
86 To boot ELF-format images, either reinstall your whole system,
87 thereby getting the netbsd-based boot loader, or use the boot
88 monitor as documented at
89 http://wiki.minix3.org/en/UsersGuide/BootMonitor
91 Single copies of ELF boot files are also stored in /boot on
92 make hdboot as a boot monitor compatability measure. In short,
93 to boot the ELF image in /boot using the boot monitor,
94 do "mb=1" and "kernel=/boot/kernel", then "boot" in the boot
97 Workaround for header file timestamps causing perpetual recompiles:
98 # find /usr/pkg -name '*.h' | xargs touch
100 Now that CC is clang instead of ack (cc), the depend files will
101 be out of date, so to make world, do:
102 # make cleandepend clean world
105 Replace VFS with AVFS
107 In case you were running AVFS by doing
108 'BUILDAVFS=yes make clean world', you now have to do a
109 'make clean cleandepend world' instead of a normal 'make clean world'.
112 Rename installboot to installboot_minix.
114 Do this BEFORE a 'make world':
115 # rm -f /usr/bin/installboot /usr/sbin/installboot
116 # make -C boot/installboot clean install
117 # make -C usr.sbin/installboot clean install
118 Then 'make clean world' as usual.
121 Follow up to previous entry. The same problem also exists for
124 Do this BEFORE a 'make world':
125 # rm /usr/man/man1/rm.1
126 # cp /usr/man/man1/cp.1 /usr/man/man1/rm.1
127 Then 'make clean world' as usual.
130 Replace our native rm and rmdir with NetBSD version.
132 As our native rm is a hard link to cp, simply overwriting rm with
133 the new version would cause mv, cp, ln, etc to stop working.
135 Do this BEFORE a 'make world':
138 Then 'make clean world' as usual.
141 This update requires /etc/fstab having the new format.
143 The latest mkfs.mfs and fsck.mfs must be installed in
144 /sbin when building a new image, and booting with the new mfs,
145 and the new system rc script must be installed that invokes the new
148 Do this BEFORE a 'make world':
149 # make clean etcfiles etcforce includes libraries
150 # make -C commands/mkfs.mfs clean install
151 # make -C commands/fsck.mfs clean install
152 Then 'make clean world' as usual.
155 After a successful "make world", issue the following commands:
160 Switch to NetBSD passwd system.
162 You have to bootstrap pwd_mkdb:
163 # make clean includes elf-libraries
164 # make -C usr.sbin/pwd_mkdb install
166 Now build world. WARNING: this will blind your system to
167 /etc/shadow, making current user accounts vanish. Updating the
168 group file is necessary to add a 'users' group so the new stock
172 # cp etc/group /etc/group
174 The new shadow file is /etc/master.passwd. Add your old user
175 accounts back with useradd(8), groups with groupadd(8), and
176 set a root pw with passwd(1) if you want. Use vipw(8) to edit
177 /etc/master.passwd if you want. See useradd(8) to get started
178 with the new pw format. Test your new system now by logging in.
180 Once you're satisfied your new system works, remove the old
181 adduser, and rely exclusively on the new useradd and
183 # rm /usr/bin/adduser
184 # mv /etc/shadow /etc/shadow.orig
186 pwdauth is updated so that current binaries (e.g. sshd) will
187 work with the new pw db.
189 By default your new users are in the 'users' group. Add yourself
190 to the 'operator' group if you want to be able to su without
191 typing in the password.
194 fstab format change. /etc/rc reads both formats for a while.
195 Please convert your /etc/fstab to the new format though as
196 the system will assume the new format in the future.
198 A helper script is in etc/. Example:
199 # sh etc/newfstab.sh /etc/fstab >newfstab
200 (Don't redirect to /etc/fstab directly as the shell will
201 truncate it before it can be read.)
204 Update your /usr/etc/daily and /etc/man.conf if you
205 want to fully enjoy the manpage fixes.
208 To use the new asynchronous version of VFS do:
209 # BUILDAVFS=yes make cleandepend world
211 To switch back to the normal VFS do:
212 # make cleandepend world
214 By default the old VFS and PFS are built and included in the boot
215 image. AVFS is a work in progress and not yet mature. Use at your own
218 To install the new mkdep:
219 # cp /usr/bin/mkdep /usr/bin/ackmkdep
222 # touch findcc.d mkdep.d .depend
226 To install libterminfo and terminfo database, you need
228 # cd /usr/src/usr.bin/stat
231 You must create a directory /usr/share/terminfo for terminfo database
233 # make -C etc install
235 Then make clean world as normal.
238 * VFS and installed MFSes must be in sync before and after this change *
240 You must update the GNU headers.
244 You must rebuild both MFS and VFS (including those one in the image).
245 Either make world or do the following:
246 # cd /usr/src/servers/mfs
248 # cd /usr/src/servers/vfs
255 # rm -rf /usr/include /usr/netbsd
256 # make etcfiles includes cleandepend depend gnu-includes
259 Important: this automatically updates your /usr/lib/descr,
260 something you will have to revert manually if you
261 want to go back a revision! Previous to this
262 revision, you do this by:
263 # cp commands/acd/acd.descr /usr/lib/descr
264 Repeating the above commands to make sure your /usr/include
265 is re-acked is probably a good idea too for going back revisions.
268 1. /usr/include to /usr/include.ack
269 2. /usr/netbsd/include to /usr/include
271 Reduce compiler cases to only two:
272 1. ack, a.out, minix headers (moved to /usr/include.ack),
274 2. gcc/clang, elf, netbsd headers (moved to /usr/include),
275 netbsd libc (moved to /usr/lib)
277 So this obsoletes the /usr/netbsd hierarchy.
279 There are no specific UPDATING instructions, but you should know
280 that starting with this version, gcc/clang use the netbsd libc and
281 headers system exclusively, and those files are in the standard
282 locations now. It's the first step to switching completely and
283 simplifying building.
287 make -C usr.bin/m4 install
290 You must install clang. By default, it is used to build the
291 elf libraries and some userland utilities.
294 Since buildworld will also build the elf-libraries, you
295 must follow the process in
296 http://wiki.minix3.org/en/UsersGuide/ELFSwitch
299 (Next release bumped to MINIX 3.2.0.)
300 ELF support in the base system. /usr/lib libraries
301 will be in ELF format once you upgrade.
302 These were know as 'gcc format', but now more properly refered
303 to as 'elf format,' as they are shared between gcc and clang.
304 To start producing ELF, please see:
305 http://wiki.minix3.org/en/UsersGuide/ELFSwitch
307 To create the /usr/netbsd hierarchy:
311 # mount -e -t procfs none /proc
314 Create ddekit include dirs:
315 mkdir -p /usr/include/ddekit/minix
318 gcc format libraries are created in /usr/lib now,
319 so throw out /usr/gnu/lib/ if you want to make sure you
320 don't pick up the old ones.
321 (with pkgsrc and this, all of /usr/gnu is obsolete now.)
328 From now on, the rc scripts, recovery scripts and system.conf in /etc
329 and /usr/etc are updated automatically by make world. If you want to
330 change them, do so in the source tree. If you make changes to your
331 settings in /etc and /usr/etc, merge them into the the source tree
332 before issuing a make world.
335 mkfs and fsck have been renamed to mkfs.mfs and fsck.mfs, respectively.
336 Moreover, they have been moved to /sbin, which is by default not in
337 PATH. Edit your .ashrc (or equivalent) to also include /sbin in PATH.
338 Also, first issue a 'make commands' before building world.
341 /usr/src/etc/system.conf updated to include ext2 file server: copy it
342 (or merge it) to /etc/system.conf.
345 If you installed using a 3.1.6 image (or earlier) and haven't updated
346 the boot monitor since r6246 you need to do so now:
347 cd /usr/src/boot; make install; sh updateboot.sh
350 mknod /dev/uds c 18 0
354 /usr/src/etc/rc updated: copy it (or merge it) to /etc/rc.
355 /usr/src/etc/system.conf updated to include boot sys services: copy
356 it (or merge it) to /etc/system.conf.
357 *** WARNING ***: this change breaks binary compatibility with
358 old images. Use only newly compiled images (make clean world
359 the first time) or download and install the latest ISO.
361 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc.
362 /usr/src/etc/rc updated: copy it (or merge it) to /etc/rc.
363 Perform some cleanup (optional):
364 # rm -f /sbin/tty /sbin/log
366 protocol change between service and rs: be sure to compile commands
367 together with the system image and don't use the new userspace with
368 an old image (or vice versa); it is recommended to replace
369 /boot/image_big with the newly compiled image to keep option 1 in the
372 /etc/mk has been moved to /usr/share/mk. You will need to
373 create /usr/share/mk manually.
374 # cp -r /usr/src/share/mk /usr/share/
375 # cd /usr/src; make -m /usr/share/mk world
377 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc.
378 /etc/inet.conf is now line-based; if you have hand-edited this file
379 before, then make sure that you do not have configurations in there
380 that span multiple lines.
385 # make depend all install
387 # LEX=flex make depend all install
389 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc.
391 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc.
392 /usr/src/etc/rc updated: copy it (or merge it) to /etc/rc.
394 /usr/src/etc/usr/rc updated: copy it (or merge it) to /usr/etc/rc.
396 Gas2ack updates: Run 'make install' in commands/i386/gas2ack
398 /usr/src/etc/system.conf updated to ignore default kernel calls: copy
399 it (or merge it) to /etc/system.conf.
400 The hello driver (/dev/hello) added to the distribution:
401 # cd /usr/src/commands/scripts && make clean install
402 # cd /dev && MAKEDEV hello
404 /usr/man/man9 is required
405 # mkdir /usr/man/man9
407 Include directory reorganization:
408 # mv /usr/include/ibm /usr/include/i386
409 # ln -s /usr/include/i386 /usr/include/machine
411 # cd commands/simple && make /bin/install
413 Gas2ack updates: Run 'make install' in commands/i386/gas2ack
415 Make(1) has been replaced: Run 'make install' in commands/make
416 Mkdep updates: Copy commands/scripts/mkdep.sh to /usr/bin/mkdep
417 Make(1) needs mkfiles: Copy files in etc/mk to /etc/mk
418 ACK update: Copy commands/i386/acd.descr to /usr/lib/descr
420 -Copy /usr/lib/i86/end.a to /usr/lib/i86/libend.a
421 -Copy /usr/lib/i386/end.a to /usr/lib/i386/libend.a
422 -Copy /usr/gnu/lib/end.a to /usr/gnu/lib/libend.a
423 Asmconv updates: Run 'make install' in commands/i386/asmconv
425 /etc/drivers.conf has been renamed to /etc/system.conf.
426 user "service" has been added to password file /etc/passwd.
428 OSS requires an improved make to be compiled; run "make install"
429 in /usr/src/commands/make before running "make world".
431 mkfs needs more memory to make an image; chmem it or do
432 # touch mkfs.c ; make /usr/bin/mkfs
433 in /usr/src/commands/simple.
435 drivers.conf has been updated to include an ACL for mfs. it has
436 to be installed before rebooting after an update of the mount command.
438 The archictecture-dependent/-independent split needs ARCH=<arch>
439 in /etc/make.conf, included by some Makefiles and sourced by
440 some shell scripts. To install it, type 'make install' in
441 src/etc, or simply copy the file over.
443 Install binaries in the right order because the new readdir
444 implementation and the new mount program are incompatible
445 with older kernels and the new kernels require the new mount.
456 Installing fails for boot. Reboot the system
457 # reboot -x 'unset image; boot'
458 Now install everything
462 You need flex in your $PATH, which has become part of the base
463 system. This needs bigger binaries.
464 If you don't have flex yet, you can compile it first by doing:
465 # cp /usr/src/etc/binary_sizes* /etc
467 # cd /usr/src/commands/flex-2.5.4