Diff for /wikisrc/tutorials/how_to_run_matlab_r14.3_on_netbsd__92__i386.mdwn between versions 1.1 and 1.2

version 1.1, 2011/11/20 20:55:21 version 1.2, 2012/02/05 07:14:36
Line 1 Line 1
 **Contents**  **Contents**
   
 [[!toc levels=3]]  [[!toc levels=3]]
   
 #  Things needed  #  Things needed 
   
 the latest stable NetBSD/i386 installation. The archivers/{zip,unzip} packages. The linux emulation packages suse_base and suse_compat.  the latest stable NetBSD/i386 installation. The archivers/{zip,unzip} packages. The linux emulation packages suse_base and suse_compat. 
   
 If you want to run binary modules (MEX), you also need the suse_devel-7.3 package; that is not (yet?) available as suse9.x version. Matlab 14.3 ships with a JDK 1.5 which runs nicely on netbsd-3, so no additional JRE needed. The three Matlab 7 / R14 Unix installation CDROMs. The patches listed below. A few GBytes of diskspace.  If you want to run binary modules (MEX), you also need the suse_devel-7.3 package; that is not (yet?) available as suse9.x version. Matlab 14.3 ships with a JDK 1.5 which runs nicely on netbsd-3, so no additional JRE needed. The three Matlab 7 / R14 Unix installation CDROMs. The patches listed below. A few GBytes of diskspace. 
   
 #  Work to do  #  Work to do 
   
 #  A Short Cut  #  A Short Cut 
   
 While the following steps are kept for documentation and your own experiments, there is a [tar-ball](http://www.spg.tu-darmstadt.de/~hf/notes/patch_matlabcd.tar.gz) available with the patches and a shell script to apply them.  While the following steps are kept for documentation and your own experiments, there is a [tar-ball](http://www.spg.tu-darmstadt.de/~hf/notes/patch_matlabcd.tar.gz) available with the patches and a shell script to apply them. 
   
 Unpack, change to the patch_matlabcd directory, call sh patch-matlab.sh -m /path/to/cdcontent, optionally add '-v' for verbose output.  Unpack, change to the patch_matlabcd directory, call sh patch-matlab.sh -m /path/to/cdcontent, optionally add '-v' for verbose output. 
   
 #  Footwork  #  Footwork 
   
   * Copy the three CDROMs to the harddisk (directories CD1, CD2, CD3).    * Copy the three CDROMs to the harddisk (directories CD1, CD2, CD3). 
   * mount_union(8) a scratch directory on top of the directory that contains CD[123]. This scratch directory will contain all the changes that you make to the content of the CDs.    * mount_union(8) a scratch directory on top of the directory that contains CD[123]. This scratch directory will contain all the changes that you make to the content of the CDs. 
   * chdir to CD1    * chdir to CD1 
   * Apply the patch    * Apply the patch 
          
 <pre><code>      <pre><code>    
 --- /u/software/payware/unix/matlab-r14/CD1/install     2004-09-13 14:56:28.000000000 +0200  --- /u/software/payware/unix/matlab-r14/CD1/install     2004-09-13 14:56:28.000000000 +0200
 +++ install     2004-09-14 11:04:26.000000000 +0200  +++ install     2004-09-14 11:04:26.000000000 +0200
 @@ -516,6 +516,19 @@  @@ -516,6 +516,19 @@
                                 Darwin)                                 # Mac OS X                                  Darwin)                                 # Mac OS X
                                          ARCH="mac"                                           ARCH="mac"
                                          ;;                                           ;;
 +               NetBSD)                                 # NetBSD (Linux emul)  +               NetBSD)                                 # NetBSD (Linux emul)
 +                   case "`/usr/bin/uname -m`" in  +                   case "`/usr/bin/uname -m`" in
 +                   i*86)  +                   i*86)
 +                       ARCH="glnx86"  +                       ARCH="glnx86"
 +                       ;;  +                       ;;
 +                   ia64)  +                   ia64)
 +                       ARCH="glnxi64"  +                       ARCH="glnxi64"
 +                       ;;  +                       ;;
 +                   x86_64)  +                   x86_64)
 +                       ARCH="glnxa64"  +                       ARCH="glnxa64"
 +                       ;;  +                       ;;
 +                   esac  +                   esac
 +                   ;;  +                   ;;
                          esac                           esac
                  fi                   fi
                 return 0                  return 0
 @@ -730,6 +743,19 @@  @@ -730,6 +743,19 @@
                         Darwin)                                     # Mac OS X                          Darwin)                                     # Mac OS X
                                  ver=`/usr/bin/uname -r | awk '{print $1}'`                                   ver=`/usr/bin/uname -r | awk '{print $1}'`
                                  ;;                                   ;;
 +           NetBSD)                                     # NetBSD (Linux emul)  +           NetBSD)                                     # NetBSD (Linux emul)
 +               case $Arch in  +               case $Arch in
 +                   glnx86)  +                   glnx86)
 +                       ver=`/emul/linux/lib/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`  +                       ver=`/emul/linux/lib/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`
 +                       ;;  +                       ;;
 +                   glnxi64)  +                   glnxi64)
 +                       ver=2.2.4  +                       ver=2.2.4
 +                       ;;  +                       ;;
 +                   glnxa64)  +                   glnxa64)
 +                       ver=`/emul/linux/lib64/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`  +                       ver=`/emul/linux/lib64/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`
 +                       ;;  +                       ;;
 +               esac  +               esac
 +               ;;  +               ;;
                  esac                   esac
          fi           fi
  #   #
          
 </code></pre>  </code></pre>
 to the ./install script (assuming /emul/linux is a symlink to the root of the linux emulation setup). Apply equally to CD2 and CD3. Apply the patch  to the ./install script (assuming /emul/linux is a symlink to the root of the linux emulation setup). Apply equally to CD2 and CD3. Apply the patch 
          
          
     --- /u/software/payware/unix/matlab-r14/CD1/update/install/arch.sh      2004-09-13 14:54:55.000000000 +0200      --- /u/software/payware/unix/matlab-r14/CD1/update/install/arch.sh      2004-09-13 14:54:55.000000000 +0200
     +++ update/install/arch.sh      2004-09-14 11:38:19.000000000 +0200      +++ update/install/arch.sh      2004-09-14 11:38:19.000000000 +0200
     @@ -185,6 +185,19 @@      @@ -185,6 +185,19 @@
                     Darwin)                                 # Mac OS X                      Darwin)                                 # Mac OS X
                          ARCH="mac"                           ARCH="mac"
                          ;;                           ;;
     +               NetBSD)                                 # NetBSD (Linux emul)      +               NetBSD)                                 # NetBSD (Linux emul)
     +                   case "`/usr/bin/uname -m`" in      +                   case "`/usr/bin/uname -m`" in
     +                   i*86)      +                   i*86)
     +                       ARCH="glnx86"      +                       ARCH="glnx86"
     +                       ;;      +                       ;;
     +                   ia64)      +                   ia64)
     +                       ARCH="glnxi64"      +                       ARCH="glnxi64"
     +                       ;;      +                       ;;
     +                   x86_64)      +                   x86_64)
     +                       ARCH="glnxa64"      +                       ARCH="glnxa64"
     +                       ;;      +                       ;;
     +                   esac      +                   esac
     +                   ;;      +                   ;;
                  esac                   esac
              fi               fi
             return 0              return 0
          
   
 to ./update/install/arch.sh. Apply equally to CD2 and CD3. Pick the ./update/pd/install/tar.cmp zip archive from CD1, and unpack it.  to ./update/install/arch.sh. Apply equally to CD2 and CD3. Pick the ./update/pd/install/tar.cmp zip archive from CD1, and unpack it. 
          
          
     Archive:  tar.cmp      Archive:  tar.cmp
       Length     Date   Time    Name        Length     Date   Time    Name
      --------    ----   ----    ----       --------    ----   ----    ----
         41864  09-14-04 13:10   install_matlab          41864  09-14-04 13:10   install_matlab
             0  09-14-04 13:08   update/              0  09-14-04 13:08   update/
             0  09-14-04 13:08   update/install/              0  09-14-04 13:08   update/install/
             0  09-14-04 13:08   update/install/scripts/              0  09-14-04 13:08   update/install/scripts/
           676  07-10-97 05:11   update/install/scripts/abort.sh            676  07-10-97 05:11   update/install/scripts/abort.sh
          2575  01-11-99 20:24   update/install/scripts/actualp.sh           2575  01-11-99 20:24   update/install/scripts/actualp.sh
          6230  09-14-04 13:11   update/install/scripts/arch.sh           6230  09-14-04 13:11   update/install/scripts/arch.sh
          7329  07-27-00 21:42   update/install/scripts/batch1.sh           7329  07-27-00 21:42   update/install/scripts/batch1.sh
          2597  01-11-99 20:24   update/install/scripts/batch4.sh           2597  01-11-99 20:24   update/install/scripts/batch4.sh
          6985  01-29-03 21:28   update/install/scripts/bld_lbin.sh           6985  01-29-03 21:28   update/install/scripts/bld_lbin.sh
          9466  12-11-03 19:21   update/install/scripts/bld_sbin.sh           9466  12-11-03 19:21   update/install/scripts/bld_sbin.sh
           789  10-23-95 19:07   update/install/scripts/center.sh            789  10-23-95 19:07   update/install/scripts/center.sh
           530  12-11-03 19:21   update/install/scripts/cleanup.sh            530  12-11-03 19:21   update/install/scripts/cleanup.sh
           486  01-11-99 20:24   update/install/scripts/clearsc.sh            486  01-11-99 20:24   update/install/scripts/clearsc.sh
           848  01-11-99 20:24   update/install/scripts/cont.sh            848  01-11-99 20:24   update/install/scripts/cont.sh
           449  01-11-99 20:24   update/install/scripts/echon.sh            449  01-11-99 20:24   update/install/scripts/echon.sh
          2167  11-01-02 03:33   update/install/scripts/fin.sh           2167  11-01-02 03:33   update/install/scripts/fin.sh
          4590  03-22-04 06:07   update/install/scripts/genpathdef.sh           4590  03-22-04 06:07   update/install/scripts/genpathdef.sh
          3256  12-11-03 19:21   update/install/scripts/intro_l.sh           3256  12-11-03 19:21   update/install/scripts/intro_l.sh
          5376  12-11-03 19:21   update/install/scripts/intro_s.sh           5376  12-11-03 19:21   update/install/scripts/intro_s.sh
         20832  01-09-04 18:30   update/install/scripts/lm.sh          20832  01-09-04 18:30   update/install/scripts/lm.sh
          6718  12-11-03 19:21   update/install/scripts/local.sh           6718  12-11-03 19:21   update/install/scripts/local.sh
          3590  12-11-03 19:21   update/install/scripts/main.sh           3590  12-11-03 19:21   update/install/scripts/main.sh
          1115  12-11-03 19:21   update/install/scripts/mapname.sh           1115  12-11-03 19:21   update/install/scripts/mapname.sh
          1502  01-11-99 20:24   update/install/scripts/netruser.sh           1502  01-11-99 20:24   update/install/scripts/netruser.sh
          1754  10-23-98 20:50   update/install/scripts/oldname.sh           1754  10-23-98 20:50   update/install/scripts/oldname.sh
          5267  11-01-02 03:33   update/install/scripts/options.sh           5267  11-01-02 03:33   update/install/scripts/options.sh
          6853  08-31-00 18:09   update/install/scripts/perm.sh           6853  08-31-00 18:09   update/install/scripts/perm.sh
          6585  06-12-02 22:21   update/install/scripts/ruser.sh           6585  06-12-02 22:21   update/install/scripts/ruser.sh
           784  01-11-99 20:24   update/install/scripts/searchp.sh            784  01-11-99 20:24   update/install/scripts/searchp.sh
          3303  12-11-03 19:21   update/install/scripts/ucleanpe.sh           3303  12-11-03 19:21   update/install/scripts/ucleanpe.sh
          3295  12-11-03 19:21   update/install/scripts/update.sh           3295  12-11-03 19:21   update/install/scripts/update.sh
          5395  12-11-03 19:21   update/install/scripts/util.sh           5395  12-11-03 19:21   update/install/scripts/util.sh
          8565  12-11-03 19:21   update/install/scripts/verifyp.sh           8565  12-11-03 19:21   update/install/scripts/verifyp.sh
      --------                   -------       --------                   -------
        171771                   34 files         171771                   34 files
          
   
 Apply the patch  Apply the patch 
          
          
     --- install_matlab.orig     2005-08-12 10:23:52.000000000 +0200      --- install_matlab.orig     2005-08-12 10:23:52.000000000 +0200
     +++ install_matlab  2005-09-30 14:27:23.000000000 +0200      +++ install_matlab  2005-09-30 14:27:23.000000000 +0200
     @@ -552,6 +552,19 @@      @@ -552,6 +552,19 @@
                 Darwin)                                 # Mac OS X                  Darwin)                                 # Mac OS X
                          ARCH="mac"                           ARCH="mac"
                          ;;                           ;;
     +           NetBSD)                                 # NetBSD (Linux emul)      +           NetBSD)                                 # NetBSD (Linux emul)
     +               case "`/usr/bin/uname -m`" in      +               case "`/usr/bin/uname -m`" in
     +               i*86)      +               i*86)
     +                   ARCH="glnx86"      +                   ARCH="glnx86"
     +                   ;;      +                   ;;
     +               ia64)      +               ia64)
     +                   ARCH="glnxi64"      +                   ARCH="glnxi64"
     +                   ;;      +                   ;;
     +               x86_64)      +               x86_64)
     +                   ARCH="glnxa64"      +                   ARCH="glnxa64"
     +                   ;;      +                   ;;
     +               esac      +               esac
     +               ;;      +               ;;
                  esac                   esac
              fi               fi
         return 0          return 0
     @@ -795,6 +808,19 @@      @@ -795,6 +808,19 @@
             Darwin)                                     # Mac OS X              Darwin)                                     # Mac OS X
                      ver=`/usr/bin/uname -r | awk '{print $1}'`                       ver=`/usr/bin/uname -r | awk '{print $1}'`
                      ;;                       ;;
     +       NetBSD)                                     # NetBSD (Linux emul)      +       NetBSD)                                     # NetBSD (Linux emul)
     +           case $Arch in      +           case $Arch in
     +               glnx86)      +               glnx86)
     +                   ver=`/emul/linux/lib/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`      +                   ver=`/emul/linux/lib/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`
     +                   ;;      +                   ;;
     +               glnxi64)      +               glnxi64)
     +                   ver=2.2.4      +                   ver=2.2.4
     +                   ;;      +                   ;;
     +               glnxa64)      +               glnxa64)
     +                   ver=`/emul/linux/lib64/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`      +                   ver=`/emul/linux/lib64/libc.so.6 | head -1 | sed -e "s/^[^0-9]*//" -e "s/[ ,].*$//"`
     +                   ;;      +                   ;;
     +           esac      +           esac
     +           ;;      +           ;;
              esac               esac
          fi           fi
      #       #
          
   
 to install_matlab, and the patch  to install_matlab, and the patch 
          
          
     --- orig/update/install/scripts/arch.sh 2004-04-04 10:20:31.000000000 +0200      --- orig/update/install/scripts/arch.sh 2004-04-04 10:20:31.000000000 +0200
     +++ update/install/scripts/arch.sh      2004-09-14 13:11:17.000000000 +0200      +++ update/install/scripts/arch.sh      2004-09-14 13:11:17.000000000 +0200
     @@ -185,6 +185,19 @@      @@ -185,6 +185,19 @@
                     Darwin)                                 # Mac OS X                      Darwin)                                 # Mac OS X
                          ARCH="mac"                           ARCH="mac"
                          ;;                           ;;
     +               NetBSD)                                 # NetBSD (Linux emul)      +               NetBSD)                                 # NetBSD (Linux emul)
     +                   case "`/usr/bin/uname -m`" in      +                   case "`/usr/bin/uname -m`" in
     +                   i*86)      +                   i*86)
     +                       ARCH="glnx86"      +                       ARCH="glnx86"
     +                       ;;      +                       ;;
     +                   ia64)      +                   ia64)
     +                       ARCH="glnxi64"      +                       ARCH="glnxi64"
     +                       ;;      +                       ;;
     +                   x86_64)      +                   x86_64)
     +                       ARCH="glnxa64"      +                       ARCH="glnxa64"
     +                       ;;      +                       ;;
     +                   esac      +                   esac
     +                   ;;      +                   ;;
                  esac                   esac
              fi               fi
             return 0              return 0
          
   
 (same as above) to update/install/scripts/arch.sh. Re-zip the contents of the archive  (same as above) to update/install/scripts/arch.sh. Re-zip the contents of the archive 
          
          
     [hf@venediger] /var/tmp # zip -r tar.cmp install_matlab update      [hf@venediger] /var/tmp # zip -r tar.cmp install_matlab update
       adding: install_matlab (deflated 77%)        adding: install_matlab (deflated 77%)
       adding: update/ (stored 0%)        adding: update/ (stored 0%)
       adding: update/install/ (stored 0%)        adding: update/install/ (stored 0%)
       adding: update/install/scripts/ (stored 0%)        adding: update/install/scripts/ (stored 0%)
       adding: update/install/scripts/abort.sh (deflated 53%)        adding: update/install/scripts/abort.sh (deflated 53%)
       adding: update/install/scripts/actualp.sh (deflated 63%)        adding: update/install/scripts/actualp.sh (deflated 63%)
       adding: update/install/scripts/arch.sh (deflated 69%)        adding: update/install/scripts/arch.sh (deflated 69%)
       adding: update/install/scripts/batch1.sh (deflated 70%)        adding: update/install/scripts/batch1.sh (deflated 70%)
       adding: update/install/scripts/batch4.sh (deflated 60%)        adding: update/install/scripts/batch4.sh (deflated 60%)
       adding: update/install/scripts/bld_lbin.sh (deflated 75%)        adding: update/install/scripts/bld_lbin.sh (deflated 75%)
       adding: update/install/scripts/bld_sbin.sh (deflated 80%)        adding: update/install/scripts/bld_sbin.sh (deflated 80%)
       adding: update/install/scripts/center.sh (deflated 55%)        adding: update/install/scripts/center.sh (deflated 55%)
       adding: update/install/scripts/cleanup.sh (deflated 42%)        adding: update/install/scripts/cleanup.sh (deflated 42%)
       adding: update/install/scripts/clearsc.sh (deflated 41%)        adding: update/install/scripts/clearsc.sh (deflated 41%)
       adding: update/install/scripts/cont.sh (deflated 53%)        adding: update/install/scripts/cont.sh (deflated 53%)
       adding: update/install/scripts/echon.sh (deflated 39%)        adding: update/install/scripts/echon.sh (deflated 39%)
       adding: update/install/scripts/fin.sh (deflated 78%)        adding: update/install/scripts/fin.sh (deflated 78%)
       adding: update/install/scripts/genpathdef.sh (deflated 66%)        adding: update/install/scripts/genpathdef.sh (deflated 66%)
       adding: update/install/scripts/intro_l.sh (deflated 80%)        adding: update/install/scripts/intro_l.sh (deflated 80%)
       adding: update/install/scripts/intro_s.sh (deflated 85%)        adding: update/install/scripts/intro_s.sh (deflated 85%)
       adding: update/install/scripts/lm.sh (deflated 81%)        adding: update/install/scripts/lm.sh (deflated 81%)
       adding: update/install/scripts/local.sh (deflated 78%)        adding: update/install/scripts/local.sh (deflated 78%)
       adding: update/install/scripts/main.sh (deflated 68%)        adding: update/install/scripts/main.sh (deflated 68%)
       adding: update/install/scripts/mapname.sh (deflated 54%)        adding: update/install/scripts/mapname.sh (deflated 54%)
       adding: update/install/scripts/netruser.sh (deflated 62%)        adding: update/install/scripts/netruser.sh (deflated 62%)
       adding: update/install/scripts/oldname.sh (deflated 53%)        adding: update/install/scripts/oldname.sh (deflated 53%)
       adding: update/install/scripts/options.sh (deflated 72%)        adding: update/install/scripts/options.sh (deflated 72%)
       adding: update/install/scripts/perm.sh (deflated 74%)        adding: update/install/scripts/perm.sh (deflated 74%)
       adding: update/install/scripts/ruser.sh (deflated 82%)        adding: update/install/scripts/ruser.sh (deflated 82%)
       adding: update/install/scripts/searchp.sh (deflated 47%)        adding: update/install/scripts/searchp.sh (deflated 47%)
       adding: update/install/scripts/ucleanpe.sh (deflated 63%)        adding: update/install/scripts/ucleanpe.sh (deflated 63%)
       adding: update/install/scripts/update.sh (deflated 70%)        adding: update/install/scripts/update.sh (deflated 70%)
       adding: update/install/scripts/util.sh (deflated 70%)        adding: update/install/scripts/util.sh (deflated 70%)
       adding: update/install/scripts/verifyp.sh (deflated 78%)        adding: update/install/scripts/verifyp.sh (deflated 78%)
          
   
 to the same name. Copy to CD1, CD2 and CD3. Rinse and repeat.  to the same name. Copy to CD1, CD2 and CD3. Rinse and repeat. 
   
   * And that's about it. Provide a proper license.dat, and you are ready for installation. chdir to the installation directory, call the /path/to/install script from CD1, and click OK a few times.    * And that's about it. Provide a proper license.dat, and you are ready for installation. chdir to the installation directory, call the /path/to/install script from CD1, and click OK a few times. 
   
 At the end of the installation, there is a spurious rm -f with empty argument that can safely be ignored. If you find out where it hides, please tell me.  At the end of the installation, there is a spurious rm -f with empty argument that can safely be ignored. If you find out where it hides, please tell me. 
   
   * OK, there's still the license manager...    * OK, there's still the license manager... 
   
 FlexLM comes with a byzantine set of shell script tools. Of course, there is one more arch.sh to patch, this time under {MATLABHOME}/etc/util/arch.sh. Then create /usr/tmp, preferably as a symlink to /var/tmp, because FlexLM and the MLM backend have that hard-coded for logs, locks, preferences. Make sure you have got a proper license file in place - the procedure is well-documented. After that, you can either start the flexlm daemon from /etc/rc.local by using {MATLABHOME}/etc/rc.lm.glnx86 start|stop, or with the following rc.d script :  FlexLM comes with a byzantine set of shell script tools. Of course, there is one more arch.sh to patch, this time under {MATLABHOME}/etc/util/arch.sh. Then create /usr/tmp, preferably as a symlink to /var/tmp, because FlexLM and the MLM backend have that hard-coded for logs, locks, preferences. Make sure you have got a proper license file in place - the procedure is well-documented. After that, you can either start the flexlm daemon from /etc/rc.local by using {MATLABHOME}/etc/rc.lm.glnx86 start|stop, or with the following rc.d script : 
          
          
     #!/bin/sh      #!/bin/sh
     #      #
     # $Id$      # $Id$
     #      #
     # PROVIDE: flexlm      # PROVIDE: flexlm
     # REQUIRE: DAEMON      # REQUIRE: DAEMON
          
     . /etc/rc.subr      . /etc/rc.subr
          
     name="flexlm"      name="flexlm"
     rcvar=$name      rcvar=$name
     flexlm_user="flexlm"      flexlm_user="flexlm"
     matlabroot="/path/to/matlabr14"      matlabroot="/path/to/matlabr14"
     lm_license="${matlabroot}/etc/license.dat"      lm_license="${matlabroot}/etc/license.dat"
     required_files="${lm_license}"      required_files="${lm_license}"
     command="${matlabroot}/etc/glnx86/lmgrd"      command="${matlabroot}/etc/glnx86/lmgrd"
     command_args="-c ${lm_license} -2 -p -l +/var/log/flexlmlog"      command_args="-c ${lm_license} -2 -p -l +/var/log/flexlmlog"
          
     load_rc_config $name      load_rc_config $name
     run_rc_command "$1"      run_rc_command "$1"
          
   
 -- you need to create a user to run flexlm as, and own the logfile to him.  -- you need to create a user to run flexlm as, and own the logfile to him. 
   
 #  Other patches  #  Other patches 
   
 #  arch.sh  #  arch.sh 
   
 For whatever reason there may be, a Matlab 14 installation has three instances of the arch.sh script that works out what platform Matlab is running on:  For whatever reason there may be, a Matlab 14 installation has three instances of the arch.sh script that works out what platform Matlab is running on: 
          
          
     > find . -name arch.sh -print      > find . -name arch.sh -print
     ./bin/util/arch.sh      ./bin/util/arch.sh
     ./etc/util/arch.sh      ./etc/util/arch.sh
     ./update/install/scripts/arch.sh      ./update/install/scripts/arch.sh
          
   
 And (of course) the one that is sourced by {MATLABROOT}/bin/matlab is the original version which you should replace by e.g. {MATLABROOT}/etc/util/arch.sh once you get tired of adding -glnx86 to every matlab invocation.  And (of course) the one that is sourced by {MATLABROOT}/bin/matlab is the original version which you should replace by e.g. {MATLABROOT}/etc/util/arch.sh once you get tired of adding -glnx86 to every matlab invocation. 
   
 #  MEX  #  MEX 
   
 If you want to build binary modules with mex you need to make sure those modules (libraries) are linux libraries since you cannot use native NetBSD libraries with a program running in emulation. Make sure you install the suse_devel package as listed above, and apply this patch to {MATLABROOT}/toolbox/matlab/general/mex.m. It makes sure the mex shell-script (which calls the compiler) is executed by the linux shell.  If you want to build binary modules with mex you need to make sure those modules (libraries) are linux libraries since you cannot use native NetBSD libraries with a program running in emulation. Make sure you install the suse_devel package as listed above, and apply this patch to {MATLABROOT}/toolbox/matlab/general/mex.m. It makes sure the mex shell-script (which calls the compiler) is executed by the linux shell. 
   
 #  Sound  #  Sound 
   
 Add a symlink to the native /dev/sound like  Add a symlink to the native /dev/sound like 
          
          
     [hf@dreispitz] /<1>linux/dev > pwd      [hf@dreispitz] /<1>linux/dev > pwd
     /usr/pkg/emul/linux/dev      /usr/pkg/emul/linux/dev
     [hf@dreispitz] /<1>linux/dev > ll audio      [hf@dreispitz] /<1>linux/dev > ll audio 
     0 lrwx------  1 root  wheel  13 Sep 10 03:25 audio -> /../dev/sound      0 lrwx------  1 root  wheel  13 Sep 10 03:25 audio -> /../dev/sound
          
   
 #  Linux pthread libs  #  Linux pthread libs 
   
 Matlab 13, at least, expects the pthread shared library under /usr/lib whereas NetBSD's suse*_base package installs it under /lib. You need to manually add  Matlab 13, at least, expects the pthread shared library under /usr/lib whereas NetBSD's suse*_base package installs it under /lib. You need to manually add 
          
          
     [hf@dreispitz] /<2>usr/lib > ll libpthread.so*      [hf@dreispitz] /<2>usr/lib > ll libpthread.so*
     0 lrwxr-xr-x  1 root  wheel  25 Jul 22 17:35 libpthread.so -> ../../lib/libpthread.so.0      0 lrwxr-xr-x  1 root  wheel  25 Jul 22 17:35 libpthread.so -> ../../lib/libpthread.so.0
     0 lrwxr-xr-x  1 root  wheel  25 Jul 22 17:35 libpthread.so.0 -> ../../lib/libpthread.so.0      0 lrwxr-xr-x  1 root  wheel  25 Jul 22 17:35 libpthread.so.0 -> ../../lib/libpthread.so.0
          
   
 #  LD_LIBRARY_PATH  #  LD_LIBRARY_PATH 
   
 As a Linux binary, Matlab makes heavy use of the LD_LIBRARY_PATH environment variable to access shared libraries. For a shell exit, it populates LD_LIBRARY_PATH like  As a Linux binary, Matlab makes heavy use of the LD_LIBRARY_PATH environment variable to access shared libraries. For a shell exit, it populates LD_LIBRARY_PATH like 
          
          
     >> !echo $LD_LIBRARY_PATH      >> !echo $LD_LIBRARY_PATH
     /opt/matlabr14/sys/os/glnx86:/opt/matlabr14/bin/glnx86:/opt/matlabr14/extern/lib/glnx86:/opt/matlabr14/sys/java/jre/glnx86/jre1.5.0/lib/i386/native_threads:/opt/matlabr14/sys/java/jre/glnx86/jre1.5.0/lib/i386/client:/opt/matlabr14/sys/java/jre/glnx86/jre1.5.0/lib/i386      /opt/matlabr14/sys/os/glnx86:/opt/matlabr14/bin/glnx86:/opt/matlabr14/extern/lib/glnx86:/opt/matlabr14/sys/java/jre/glnx86/jre1.5.0/lib/i386/native_threads:/opt/matlabr14/sys/java/jre/glnx86/jre1.5.0/lib/i386/client:/opt/matlabr14/sys/java/jre/glnx86/jre1.5.0/lib/i386
     >>      >>
          
   
 [NetBSD ELF](http://www.netbsd.org/Documentation/elf.html) binaries do not normally use LD_LIBRARY_PATH; instead, NetBSD compiles fixed library paths into shared libraries and applications. Nevertheless, non-setuid NetBSD binaries still look at LD_LIBRARY_PATH. The above path apparently confuses complex NetBSD binaries like NEdit, XEmacs, Mozilla, which try to pick up Linux libraries instead of the native ones. As a workaround, unset LD_LIBRARY_PATH before calling the application, either with per-application wrapper scripts, or a generic wrapper script like  [NetBSD ELF](http://www.netbsd.org/Documentation/elf.html) binaries do not normally use LD_LIBRARY_PATH; instead, NetBSD compiles fixed library paths into shared libraries and applications. Nevertheless, non-setuid NetBSD binaries still look at LD_LIBRARY_PATH. The above path apparently confuses complex NetBSD binaries like NEdit, XEmacs, Mozilla, which try to pick up Linux libraries instead of the native ones. As a workaround, unset LD_LIBRARY_PATH before calling the application, either with per-application wrapper scripts, or a generic wrapper script like 
   
   
     #!/bin/sh      #!/bin/sh
     unset LD_LIBRARY_PATH      unset LD_LIBRARY_PATH
     exec "$@"      exec "$@"
          
   
 #  OpenGL  #  OpenGL 
   
 Commands like bench that use OpenGL result in a [kernel panic](http://mail-index.netbsd.org/port-i386/2005/10/07/0004.html) . Christos Zoulas has provided a [kernel patch](http://www.spg.tu-darmstadt.de/~hf/notes/matlab7_opengl.patch). It is against 2005-10-10 NetBSD-current source and applies with offsets to the netbsd-3 branch; apply from within sys/arch/i386/.  Commands like bench that use OpenGL result in a [kernel panic](http://mail-index.netbsd.org/port-i386/2005/10/07/0004.html) . Christos Zoulas has provided a [kernel patch](http://www.spg.tu-darmstadt.de/~hf/notes/matlab7_opengl.patch). It is against 2005-10-10 NetBSD-current source and applies with offsets to the netbsd-3 branch; apply from within sys/arch/i386/. 
   
 The patch avoids the panic; what functionality exactly is missing remains to be seen.  The patch avoids the panic; what functionality exactly is missing remains to be seen. 
   
 _Workaround_: The Matlab command opengl software enforces software rendering which is slower than using hardware support - but appears to work, unlike the latter. You still need the kernel patch, though, as any OpenGL operation will panic otherwise.  _Workaround_: The Matlab command opengl software enforces software rendering which is slower than using hardware support - but appears to work, unlike the latter. You still need the kernel patch, though, as any OpenGL operation will panic otherwise. 
   
 #  Issues left  #  Issues left 
   
 Why Mathworks duplicate their set of install scripts everywhere and still keep a zipped copy around to drop on top of the installation is beyond me. The diffs above are clean and minimal - it's just that you have to have five instances of each.  Why Mathworks duplicate their set of install scripts everywhere and still keep a zipped copy around to drop on top of the installation is beyond me. The diffs above are clean and minimal - it's just that you have to have five instances of each. 
   
      
 --Hauke Fath  --Hauke Fath 
   

Removed from v.1.1  
changed lines
  Added in v.1.2


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb