David Wolfskill
2004-Aug-22 07:32 UTC
NFS installkernel broke with "make: don't know how to make bsd.README. Stop"
But only for one of the 2 machines that I upgrade with the same procedure. I don't get it! :-( I have 3 machines that play a role in this: * freebeast -- an SMP "build machine". It has a private mirror of the FreeBSD CVS repo, updated daily, and tracks RELENG_4 on a daily basis. * bunrab -- the machine I'm using to write this message. * janus -- another machine. The latter 2 machines are (for me) "production" machines; freebeast is not. The production machines do not build their own kernels (or much of anything else); those are built on freebeast. This morning, as I have for hundreds of previous occasions (every day for almost 3 years now), I updated /usr/src on freebeast, did the usual steps to build & install a snapshot of RELENG_4 as of the time of the CVS repo update, then rebooted. All was well. Then (as I have for 74 previous occasions), I built new kernels for each of bunrab & janus; no problems. Then for each of bunrab & janus, I logged in and issued sudo script /tmp/u Within "script," then, I issued a command alias that expanded to: mount -u -w /usr && mount -o ro {freebeast:,}/usr/src && \ mount -o ro freebeast:/common/S1/obj /usr/obj && \ cd /usr/src && whoami && mount && uname -a && date && \ make installkernel && date && \ rm -fr /usr/include.old && date && \ mv /usr/include{,.old} && date && \ mergemaster -p -u 0022 && date && \ make installworld && date && \ mergemaster -u 0022 -i && date && df -k as I have for the vast bulk of the previous 74 times. On bunrab, the process completed with no unusual phenomena: bunrab(4.10-S)[1] uname -a FreeBSD bunrab.catwhisker.org 4.10-STABLE FreeBSD 4.10-STABLE #74: Sun Aug 22 06:02:42 PDT 2004 root@freebeast.catwhisker.org:/common/S1/obj/usr/src/sys/BUNRAB i386 bunrab(4.10-S)[2] On janus, I got: Script started on Sun Aug 22 06:24:28 2004 janus(4.10-S)[1] _iw root /dev/ad0s1a on / (ufs, local, soft-updates) /dev/ad0s1e on /usr (ufs, local, soft-updates) /dev/ad0s3e on /var (ufs, local) mfs:23 on /tmp (mfs, asynchronous, local) procfs on /proc (procfs, local) freebeast:/usr/src on /usr/src (nfs, read-only) freebeast:/common/S1/obj on /usr/obj (nfs, read-only) FreeBSD janus.catwhisker.org 4.10-STABLE FreeBSD 4.10-STABLE #73: Sun Aug 8 06:09:37 PDT 2004 root@freebeast.catwhisker.org:/common/S1/obj/usr/src/sys/JANUS i386 Sun Aug 22 06:24:31 PDT 2004 -------------------------------------------------------------->>> Making hierarchy-------------------------------------------------------------- cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=i386 MACHINE=i386 OBJFORMAT_PATH=/usr/obj/usr/src/i386/usr/libexec GROFF_BIN_PATH=/usr/obj/usr/src/i386/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/i386/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/i386/usr/share/tmac PATH=/usr/obj/usr/src/i386/usr/sbin:/usr/obj/usr/src/i386/usr/bin:/usr/obj/usr/src/i386/usr/games:/sbin:/bin:/usr/sbin:/usr/bin make -f Makefile.inc1 hierarchy cd /usr/src/etc; make distrib-dirs set - `grep "^[a-zA-Z]" /usr/src/etc/locale.deprecated`; while [ $# -gt 0 ] ; do for dir in /usr/share/locale /usr/share/nls /usr/local/share/nls; do test -d /${dir} && cd /${dir}; test -L "$2" && rm -rf "$2"; test \! -L "$1" && test -d "$1" && mv "$1" "$2"; done; shift; shift; done mtree -deU -f /usr/src/etc/mtree/BSD.root.dist -p / mtree -deU -f /usr/src/etc/mtree/BSD.var.dist -p /var mtree -deU -f /usr/src/etc/mtree/BSD.usr.dist -p /usr mtree -deU -f /usr/src/etc/mtree/BSD.include.dist -p /usr/include mtree -deU -f /usr/src/etc/mtree/BSD.include.dist -p /usr/libdata/perl/5.00503/mach mtree -deU -f /usr/src/etc/mtree/BSD.sendmail.dist -p / cd /; rm -f /sys; ln -s usr/src/sys sys cd /usr/share/man/en.ISO8859-1; ln -sf ../man* . cd /usr/share/man; set - `grep "^[a-zA-Z]" /usr/src/etc/man.alias`; while [ $# -gt 0 ] ; do rm -rf "$1"; ln -s "$2" "$1"; shift; shift; done cd /usr/share/locale; set - `grep "^[a-zA-Z]" /usr/src/etc/locale.alias`; while [ $# -gt 0 ] ; do rm -rf "$1"; ln -s "$2" "$1"; shift; shift; done cd /usr/share/openssl/man/en.ISO8859-1; ln -sf ../man* . cd /usr/share/nls; set - `grep "^[a-zA-Z]" /usr/src/etc/nls.alias`; while [ $# -gt 0 ] ; do rm -rf "$1"; ln -s "$2" "$1"; shift; shift; done -------------------------------------------------------------->>> Installing kernel-------------------------------------------------------------- cd /usr/obj/usr/src/sys/; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=i386 MACHINE=i386 OBJFORMAT_PATH=/usr/obj/usr/src/i386/usr/libexec GROFF_BIN_PATH=/usr/obj/usr/src/i386/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/i386/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/i386/usr/share/tmac PATH=/usr/obj/usr/src/i386/usr/sbin:/usr/obj/usr/src/i386/usr/bin:/usr/obj/usr/src/i386/usr/games:/sbin:/bin:/usr/sbin:/usr/bin make KERNEL=kernel install make: don't know how to make bsd.README. Stop *** Error code 2 Stop in /usr/src. *** Error code 1 Stop in /usr/src. janus(4.10-S)[2] [end of log excerpt from janus] Now, I admit that janus:/etc/make.conf is a little different from the corresponding file on bunrab: In addition to specifying a different kernel image, the one on janus also specifies: NOPORTDOCS= true NO_SHAREDOCS= true NOGAMES= true NOINFO= true NO_OBJC= true (as well as its own SENDMAIL_MC). I tried taking the above NO* lines out of make.conf and re-trying the "make installkernel;" I got the same failure. I verified that /usr/share/mk/bsd.README was visible on janus (recall that /usr/src is a read-only NFS mount); it certainly didn't complain: janus(4.10-S)[2] ls -l /usr/src/share/mk/bsd.README -rw-rw-r-- 1 admin wheel 11267 Jul 19 2002 /usr/src/share/mk/bsd.README janus(4.10-S)[3] And same with /usr/share/mk.bsd.README: janus(4.10-S)[3] ls -l /usr/share/mk/bsd.README -r--r--r-- 1 root wheel 11267 Aug 8 06:28 /usr/share/mk/bsd.README janus(4.10-S)[4] I tried adding some debug flags to the "make" invocation: janus(4.10-S)[6] pwd /usr/src janus(4.10-S)[7] make -d c -d d -d l -d m installkernel && date Caching /usr/share/mk...done expanding "sys.mk".../usr/share/mk/sys.mk lhs = "", rhs = "", op = =... [lots of lines elided...] Searching for bsd.subdir.mk...failed. Searching for bsd.subdir.mk...failed. Searching for bsd.subdir.mk.../usr/src/share/mk...here...returning /usr/src/shar e/mk/bsd.subdir.mk Searching for bsd.init.mk...failed. Searching for bsd.init.mk...failed. Searching for bsd.init.mk.../usr/src/share/mk...here...returning /usr/src/share/ mk/bsd.init.mk Searching for bsd.sys.mk...failed. Searching for bsd.sys.mk...failed. Searching for bsd.sys.mk.../usr/src/share/mk...here...returning /usr/src/share/m k/bsd.sys.mk Searching for .depend...failed. Searching for .depend.../usr/src/share/mk...failed. Searching for beforeinstall.c...failed. Searching for beforeinstall.cc...failed. Searching for beforeinstall.cpp...failed. Searching for beforeinstall.cxx...failed. Searching for beforeinstall.C...failed. Searching for beforeinstall.F...failed. Searching for beforeinstall.f...failed. Searching for beforeinstall.e...failed. Searching for beforeinstall.r...failed. Searching for beforeinstall.sh...failed. Searching for beforeinstall.y...failed. Searching for beforeinstall.l...failed. Searching for beforeinstall...failed. Examining beforeinstall...Searching for beforeinstall...failed. non-existent...non-existent and no sources...out-of-date. update time: 6:34:04 Aug 22, 2004 Searching for _proginstall.c...failed. Searching for _proginstall.cc...failed. Searching for _proginstall.cpp...failed. Searching for _proginstall.cxx...failed. Searching for _proginstall.C...failed. Searching for _proginstall.F...failed. Searching for _proginstall.f...failed. Searching for _proginstall.e...failed. Searching for _proginstall.r...failed. Searching for _proginstall.sh...failed. Searching for _proginstall.y...failed. Searching for _proginstall.l...failed. Searching for _proginstall...failed. Examining _proginstall...Searching for _proginstall...failed. non-existent...non-existent and no sources...out-of-date. update time: 6:34:04 Aug 22, 2004 Searching for bsd.README.c...failed. Searching for bsd.README.cc...failed. Searching for bsd.README.cpp...failed. Searching for bsd.README.cxx...failed. Searching for bsd.README.C...failed. Searching for bsd.README.F...failed. Searching for bsd.README.f...failed. Searching for bsd.README.e...failed. Searching for bsd.README.r...failed. Searching for bsd.README.sh...failed. Searching for bsd.README.y...failed. Searching for bsd.README.l...failed. Searching for bsd.README...failed. Examining bsd.README...Searching for bsd.README...failed. non-existent...non-existent and no sources...out-of-date. make: don't know how to make bsd.README. Stop *** Error code 2 Stop in /usr/src. *** Error code 1 Stop in /usr/src. janus(4.10-S)[8] [end of this log excerpt] At this point, I'm confused and stuck. The machine seems to be operating OK otherwise. I would appreciate any hints or clues for finding (and fixing) the cause of this error. Thanks, david -- David H. Wolfskill david@catwhisker.org Evidence of curmudgeonliness: becoming irritated with the usage of the word "speed" in contexts referring to quantification of network performance, as opposed to "bandwidth" or "latency."
Marcel Moolenaar
2004-Aug-22 07:56 UTC
NFS installkernel broke with "make: don't know how to make bsd.README. Stop"
On Sun, Aug 22, 2004 at 07:31:53AM -0700, David Wolfskill wrote:> -------------------------------------------------------------- > >>> Installing kernel > -------------------------------------------------------------- > cd /usr/obj/usr/src/sys/;See how it didn't cd into an actual kernel build directory. This means INSTALLKERNEL is empty. This can happen when KERNCONF is set to an non- existing configuration file for example. -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net
David Wolfskill
2004-Aug-22 10:15 UTC
NFS installkernel broke with "make: don't know how to make bsd.README. Stop"
OK; with a lot of help from Marcel Moolenaar (thanks!!!), it turns out that the kernel configuration file (/usr/src/sys/i386/conf/JANUS) didn't exist -- more accurately, there was no file with that path on janus. Here's how that happened, and why it used to work: My /usr/src is a CVS working directory; it's repo is my local private mirror. I also keep my kernel configs in CVS, but I don't pollute the FreeBSD repo for that; instead, I create symlinks in /usr/src/sys/i386/conf pointing to kernel config files that live in /usr/local/src/kernels -- more specifically, they pointe dto /usr/local/src/kernels/stable/{BUNRAB,JANUS,FREEBEAST,LAPTOP_30W...}. Accordingly, I had a dummy (empty) file with the path /usr/local/src/kernels/stable/JANUS on janus -- janus, after all, is not the machine where the kernel gets built, so the contents of the file are not especially relevant at install time -- just (as Marcel pointed out) existence. But now that RELENG_5 is moving toward -STABLE, I thought I should clarify the names a bit, so on the machines where I build kernels, I changed "stable/" to "FreeBSD-4/" and "current/" to "FreeBSD-5/" under /usr/local/src/kernels. And I changed the symlinks under /usr/src/sys/i386/conf to match. Now, bunrab runs an automounter, and bunrab:/usr/local/src points to the automounter mount point for freebeast. Thus, when there was a reference to /usr/local/src/kernels/FreeBSD-4/BUNRAB, it pointed to the real config file. However, janus does not run an automounter (by intent). Rather, back in December 2001, I had created that emtpy /usr/local/src/kernels/stabe/JANUS file so the "make installkernel" would work, but naturally, I had forgotten about it by now. :-{ And we now see: janus(4.10-S)[1] uname -a FreeBSD janus.catwhisker.org 4.10-STABLE FreeBSD 4.10-STABLE #74: Sun Aug 22 06:02:38 PDT 2004 root@freebeast.catwhisker.org:/common/S1/obj/usr/src/sys/JANUS i386 janus(4.10-S)[2] Marcel, I owe you a beverage of choice. :-) [And some folks claim that open source software doesn't have enough support! Ha!] Peace, david -- David H. Wolfskill david@catwhisker.org Evidence of curmudgeonliness: becoming irritated with the usage of the word "speed" in contexts referring to quantification of network performance, as opposed to "bandwidth" or "latency."