This document is currently unfinished...

Cross-compiling NetBSD -current

From NetBSD i386 for my Cobalt RaQ2+

  1. From the x86 machine, grab the sources and attempt to build:
    # cd /usr/
    # mkdir src &&  cd src
    # export CVS_RSH="ssh"
    # export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"
    # cvs checkout -A -P src
    # cd src
    # sh build.sh -O ../obj -T ../tools -m cobalt -a mipsel -D ~/dest -R ~/release release
    
  2. That gives these results:
    make release started at: Sat Apr 2 01:41:58 EDT 2011
    make release finished at: Sat Apr 2 08:54:28 EDT 2011
    ===> Successful make release
    
  3. Now if you check out /usr/src/release you'll have cobalt/{binary,installation}.
  4. Since I did this from a base NetBSD install on the x86 - I used scp (I prefer rsync) to transfer the sets:
    # cd /usr/
    # scp -r release dayid@falkor:/usr/
    
  5. Once all the sets were transfered, I double-checked the MD5s by printing the MD5 file to the display, then showing the MD5 for each individual set and eyeballing them. I know this could've been further scripted, but I'm comfortable eyeballing MD5s.
    dayid@falkor$ cd /usr/release/cobalt/binary/sets
    dayid@falkor$ cat MD5
    dayid@falkor$ for file in *.tgz; do md5 $file; done
    
  6. Once the sets are good, extract all except etc.tgz - we'll use etcupdate for that.
    tar -xvzpef base.tgz -C /
    tar -xvzpef comp.tgz -C /
    tar -xvzpef games.tgz -C /
    tar -xvzpef man.tgz -C /
    tar -xvzpef misc.tgz -C /
    tar -xvzpef modules.tgz -C /
    tar -xvzpef tests.tgz -C /
    tar -xvzpef text.tgz -C /
    
  7. Update /etc from etc.tgz
    etcupdate -a -p less -s ./etc.tgz
    
  8. I received a warning after this about obsolete files, so cleared those up also:
    /usr/sbin/postinstall -s './etc.tgz' -d / fix obsolete
    
  9. Move the new kernel into place
    cp /netbsd /netbsd.1
    cd /usr/release/cobalt/binary/kernel/
    tar -xvzpef netbsd-GENERIC.tgz -C /