Sometimes you want to try out a new feature not yet delivered into Solaris Nevada, and you have apply binaries using BFU. I imagine if you do this all the time, you know all the tricks and gotchas. I don't do it often enough and sometimes get caught up in some details. So here are the steps I tend to use.

First, get the latest BFU package from the ON (OS/Net) Consolidation. I typically only use the SUNWonbld tar file for my hardware.

Download the bits you want to install, such as those for Crossbow Beta or Clearview's snoop on loopback

To make life a little simpler, I add the following to root's .profile file.

if [ -d /opt/onbld ]
then
   FASTFS=/opt/onbld/bin/`uname -p`/fastfs ; export FASTFS
   BFULD=/opt/onbld/bin/`uname -p`/bfuld ; export BFULD
   GZIPBIN=/usr/bin/gzip ; export GZIPBIN
   PATH=$PATH:/opt/onbld/bin
fi

Now to apply the bits. After unpacking the bits into a temporary location, lets say /tmp/bfu, install the onbld package.

# pkgadd -d onbld all

Processing package instance  from 

OS-Net Build Tools(sparc) 11.11,REV=2008.03.18.14.39
Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.

...

Installation of  was successful.
#
I re-read my .profile, and verify that the necessary BFU variables are set
# . /.profile
# echo $FASTFS
/opt/onbld/bin/sparc/fastfs
Now apply the BFU (this one is for Crossbow beta). You must use the full pathname!

Note: you may want to do this from the console, in case you loose your network connection.

# bfu `pwd`/nightly-nd
Copying /opt/onbld/bin/bfu to /tmp/bfu.1000
Executing /tmp/bfu.1000 /tmp/bfu/nightly-nd

...

Entering post-bfu protected environment (shell: ksh).
Edit configuration files as necessary, then reboot.

bfu#
Note that you end up in the BFU shell. Now issue an automatic conflict resolution check.
bfu# /opt/onbld/bin/acr
Getting ACR information from /tmp/bfu/nightly-nd... ok

updating //platform/sun4v/boot_archive
Finished.  See /tmp/acr.nhaqVi/allresults for complete log.
bfu#

bfu# exit
Exiting post-bfu protected environment.  To reenter, type:
LD_NOAUXFLTR=1 LD_LIBRARY_PATH=/tmp/bfulib LD_LIBRARY_PATH_64=/tmp/bfulib/64 
PATH=/tmp/bfubin /tmp/bfubin/ksh
#
Its time to reboot and run with the new bits!
Comments:

I'm trying to install crossbow onto a zone and this is my error when I execute bfu
root@router:~/crossbow# bfu -f ./nightly/
Copying /opt/onbld/bin/bfu to /tmp/bfu.4255
Executing /tmp/bfu.4255 -f ./nightly/

bfu requires all privileges
bfu aborting

Posted by Corey on October 30, 2008 at 04:44 PM EDT #

Hi Cory, BFUs (or at least this one) only work in the global zone. You are changing system files, and can only do so in the global zone.

Posted by Steffen Weiberle on October 30, 2008 at 04:47 PM EDT #

If I bfu the global zone then the package manager wont work anymore, or is it just image-update wont work anymore? If so how do you update to new builds?

Posted by Corey on October 30, 2008 at 06:30 PM EDT #

These steps are for Nevada or SXCE. It sounds like you are running OpenSolaris, which has a different delivery mechanism. I see two choices, wait for the BFUs for SXCE 101 to come out in the next week or so, or wait until Crossbow is checked into the source tree, and then a package update may get you them before the spring version of OS. While there may be a way to apply binary changes to OS, Crossbow engineering is very busy getting the bit ready for putback into the main code base.

Posted by Steffen Weiberle on October 30, 2008 at 07:43 PM EDT #

Post a Comment:
  • HTML Syntax: NOT allowed

This blog copyright 2009 by stw