Confirmed update procedure for a self-hosted armv6hf system

bob prohaska fbsd at www.zefox.net
Tue May 24 03:18:56 UTC 2016


On Mon, May 23, 2016 at 08:49:57PM -0600, Ian Lepore wrote:
> 
> Ut oh.  It just popped into my head that the standard freebsd update
> procedure is to install the kernel, then reboot, then install the
> world, right?  (I've never once done it that way in 20 years of using
> freebsd, I always install both at once then reboot.)
> 
My custom has been to build world and kernel, install world and kernel,
then reboot promptly. Not sure where I got the  habit from, the idea 
was to minimize mismatch between kernel and userland. 

> I think that may be the problem here, if you did it the right way. 
>  Once you're running on the new kernel, TARGET_ARCH=armv6 isn't a
> crossbuild anymore because it thinks armv6 is the current arch.  I
> wonder if it would work for you to try:
> 
>   setenv UNAME_P armv6hf
>   make -j6 installworld TARGET_ARCH=armv6
> 
If I did this right, no luck...

root at www:/usr/src # uname -p
armv6hf
root at www:/usr/src # setenv UNAME_P armv6hf
root at www:/usr/src # make -j6 installworld TARGET_ARCH=armv6 > installworld.log &
[1] 69457
root at www:/usr/src # 1 error

[1]    Exit 2                        make -j6 installworld TARGET_ARCH=armv6 > installworld.log
root at www:/usr/src # 
root at www:/usr/src # tail -n100 installworld.log
--- installworld ---
--- __installcheck_UGID ---
--- installworld ---
mkdir -p /tmp/install.XvgDGNcF
progs=$(for prog in [ awk cap_mkdb cat chflags chmod chown cmp cp  date echo egrep find grep id install   ln make mkdir mtree mv pwd_mkdb  rm sed services_mkdb sh strip sysctl test true uname wc zic tzsetup   makewhatis; do  if progpath=`which $prog`; then  echo $progpath;  else  echo "Required tool $prog not found in PATH." >&2;  exit 1;  fi;  done);  libs=$(ldd -f "%o %p\n" -f "%o %p\n" $progs 2>/dev/null | sort -u |  while read line; do  $line;  if [ "$2 $3" != "not found" ]; then  echo $2;  else  echo "Required library $1 not found." >&2;  exit 1;  fi;  done);  cp $libs $progs /tmp/install.XvgDGNcF
cp -R ${PATH_LOCALE:-"/usr/share/locale"} /tmp/install.XvgDGNcF/locale
cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj  MACHINE_ARCH=armv6  MACHINE=arm  CPUTYPE= GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin  GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font  GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC="cc " CXX="c++  "  CPP="cpp "  AS="as" AR="ar" LD="ld" NM=nm  OBJDUMP=objdump OBJCOPY="objcopy"  RANLIB=ranlib STRINGS=  SIZE="size" PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/tmp/install.XvgDGNcF  LD_LIBRARY_PATH=/tmp/install.XvgDGNcF  PATH_LOCALE=/tmp/install.XvgDGNcF/locale make -f Makefile.inc1    __MAKE_SHELL=/tmp/install.XvgDGNcF/sh reinstall;  MAKEOBJDIRPREFIX=/usr/obj  MACHINE_ARCH=armv6  MACHINE=arm  CPUTYPE= GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin  GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font  GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC="cc " CXX="c++  "  CPP="cpp "  AS="as" AR="ar" LD="ld" NM=nm  OBJDUMP=objdump OBJCOPY="objcopy"  RANLIB=ranlib STRINGS=  SIZE="size" PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/tmp/install.XvgDGNcF  LD_LIBRARY_PATH=/tmp/install.XvgDGNcF  PATH_LOCALE=/tmp/install.XvgDGNcF/locale rm -rf /tmp/install.XvgDGNcF
sh: cc: not found
make[2]: "/usr/src/share/mk/bsd.compiler.mk" line 142: Unable to determine compiler type for CC=cc .  Consider setting COMPILER_TYPE.
*** [installworld] Error code 1

Perhaps it's time to install the new kernel and reboot.

I also have two kernels that report uname -p as armv6, one pre-hf and one post-hf. Worth a try?

> As long as the build system uses uname (not sysctl hw.machine_arch),
> that should fool it enough to do the proper install.

Thanks for all your help!

bob prohaska



More information about the freebsd-arm mailing list