Showing posts with label solaris. Show all posts
Showing posts with label solaris. Show all posts

Sunday, May 12, 2013

HOWTO get TiVO daily call and updates working under Solaris 11

I still use my Gen 1 TiVO because I bought it when you could still buy a lifetime subscription. The problem that I ran into when I switched to Magic Jack for phone service was that it was no longer possible to obtain updates because the dial up connection would timeout probably due to a slow data connection. So I setup an old laptop that had a bad HDD and a dead battery to run a live distro of FC which let me use the instructions found everywhere for connecting a gen 1 TiVO to your network using a serial cable (with a null modem) and Linux. Today I ran out of luck as that old laptop finally croaked and that had me wondering if I could have my Ultra 11 step up to the plate and work. Surprisingly, I was able to get everything going after a few hours of "why doesn't this work?" 

Step 1: Get a USB->Serial adapter. 

 I actually had the least amount of problems with this step. I went to Best Buy and, by some miracle, they had an open box/returned Dynex USB->Serial (DX-UDBB9). I came home wondering if I was going to have to go scouring the Internet for obscure drivers to work under Solaris, but, to my complete surprise, it worked as soon as I plugged it in without even needing to reboot. So I thought the next part would be the easiest, but it took some head scratching only because I wasn't familiar with enabling forwarding on the Solaris TCP/IP stack. 

Step 2: Enable setting up pppd on Solaris 

There are two parts to this: 

 a) Enabling forwarding of TCP/IP packets. 
 This part gave me headaches because under Linux it's: echo 1 > /proc/sys/net/ipv4/ip_forward 
Under Solaris, after much searching, I found the obscure equivalent: routeadm -e ipv4-routing -u 

 If you're running a firewall or firewall rules on your Solaris box then you may have to adjust some/all of your rule sets to accommodate this setting. I leave this to you because I don't run any firewall rules on my box since I'm behind a firewall appliance. 

 b) The actual pppd command. 

I haven't created an elaborate SMF service or anything else (yet) so I open a terminal and then execute the following (as root): pppd cua/0 115200 noauth proxyarp nocrtscts nobsdcomp nodeflate persist local lcp-max-configure 28800 asyncmap 0 passive netmask 255.255.255.0 192.168.a.x:192.168.a.y 

Where a is your local number (e.g. 0 for 192.168.0.x) 
x is an unused number on your network (e.g. 253) 
y is an unused number on your network (e.g. 254) 
cua/0 is the /dev on my Solaris box for the USB->Serial adapter. 

If you're in doubt you can launch the Device Driver Utility (located under Applications->System Tools) and look at the devfs path for your serial adapter then see what file under /dev is linked to it. 

Anyone looking for the modifications on the TiVO end of things can look here

Wednesday, March 28, 2012

New Oracle Solaris Studio 12.3 for Solaris 11 Install instructions (IPS)

Oracle has released new instructions for installing Oracle Studio 12.3 using IPS. This method seems to be aimed at eventually pushing users in to requiring a support contract for using the IPS version of Oracle Studio 12.3. For those with a valid support contract the instructions from Oracle are:
  • Visit Oracle Certificate Requests to request an Oracle Solaris Studio certificate - http://pkg-register.oracle.com
  • Per instructions at site, download and install certificate and key on your system
  • Per instructions at site, add the solarisstudio publisher and install Oracle Solaris Studio 12.3

Monday, December 12, 2011

Notes on upgrading to Solaris 11

This is just a posting about the snags I encountered while upgrading from Solaris 11 Express to Solaris 11 11/11. The biggest problem that I encountered is that I simply could not upgrade using the package upgrade utility. It would install everything fine, but once rebooted grub would complain about a missing kernel (which has a Xen label buried in it). So I decided to try to use Oracle Solaris 11 11/11 Automated Installer. That would be mistake number 2.

The automated installer not only blew away all my partitions, but, I discovered painfully, is missing more than half the packages needed to get X running (note to Oracle: I hate you). My first thought was to download the repo images on the download page and the missing binaries would be on there. No go.

The solution to getting X working on Solaris is making sure your network connection works (at least the automated installer got the config files right - mostly) and using pkg list -a. You will need to install practically everything remotely related to X including the themes and the display drivers (why does an over the wire automated installer NOT do this for me?) before you can get X working. Once you've got the X working you can then leisurely install any and all remaining packages using the graphical installer.

Friday, December 9, 2011

HOWTO install Oracle Studio 12.3Beta on Solaris 11 using pkg (NOT tgz)

The normal installer is broken so installing via GUI is not possible. However, I did some digging and a bit of guesswork which resulted in me finding the solution. The first part of the solution is to extract the installer files from the shar that you downloaded from Oracle (SolarisStudio12.3-beta-solaris-x86.sh in my case) which is accomplished by running: sh ./SolarisStudio12.3-beta-solaris-x86.sh --extract-installation-data .

This will result in 20 different files being unpacked in to the current directory. To install them you need to call them using: pkgadd -d filename. Filename is replace by each of the 20 files such as cc, c++, etc.

Kudos to Tech-Recipes for the pkgadd command. http://www.tech-recipes.com/rx/350/install-a-solaris-datastream-package/

Tuesday, July 26, 2011

The Solaris package for the mysterious "libgnomebreakpad.so"

Looking through a ton of postings I could only find people complaining about this library with the only solution being given was to copy it manually, but I finally found an obscure posting that pointed out the package: gnome/crash-report/bug-buddy

Thursday, July 21, 2011

How to setup the updater for Solaris 11

A brief overview is located at:
Support Repositories Explained [ID 1021281.1]
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=1021281.1

Get your x.509 certificate for accessing the repository at:
https://pkg-register.oracle.com/register/status/

There's a HOWTO section link located on the bottom, but I'll reprint the instructions in case things change.
------
How to Install this Oracle Solaris 11 Express Support Certificate

   1. Download the provided key and certificate files, called Oracle_Solaris_11_Express_Support.key.pem and Oracle_Solaris_11_Express_Support.certificate.pem using the buttons above. Don't worry if you get logged out, or lose the files. You can come back to this site later and re-download them. We'll assume that you downloaded these files into your Desktop folder, ~/Desktop/.
   2. Use the following comands to make a directory inside of /var/pkg to store the key and certificate, and copy the key and certificate into this directory. The key files are kept by reference, so if the files become inaccessible to the packaging system, you will encounter errors. Here is how to do it:

          $ sudo mkdir -m 0755 -p /var/pkg/ssl
          $ sudo cp -i ~/Desktop/Oracle_Solaris_11_Express_Support.key.pem /var/pkg/ssl

          $ sudo cp -i ~/Desktop/Oracle_Solaris_11_Express_Support.certificate.pem /var/pkg/ssl
        

   3. Add the publisher:

          $ sudo pkg set-publisher \
                     -k /var/pkg/ssl/Oracle_Solaris_11_Express_Support.key.pem \
                     -c /var/pkg/ssl/Oracle_Solaris_11_Express_Support.certificate.pem \
                     -O https://pkg.oracle.com/solaris/support/ solaris
        

   4. Check your publisher settings, there should be no unrelated mirrors set up. To check for any set up mirrors invoke the following command:

          $ pkg publisher solaris | grep Mirror
        
        

      If the output is empty you are all set. If not remove unrelated mirrors by running:

          $ sudo pkg set-publisher -M http://mirror1.x.com -M http://mirror2.y.com ... solaris
        
        

   5. To see the packages supplied by this publisher, try:

          $ pkg list -a 'pkg://solaris/*'

        

      If you use the Package Manager graphical application, you will be able to locate the newly discovered packages when you restart Package Manager.

Monday, February 21, 2011

VirtualBox SMF

/lib/svc/method/vboxheadless:

#!/bin/sh
# Customise this file to start and stop your application as necessary.

. /lib/svc/share/smf_include.sh


    getproparg() {

            val=`svcprop -p $1 $SMF_FMRI`

            [ -n "$val" ] && echo $val

    }

VM=`getproparg vbox/VM`

    if [ -z $SMF_FMRI ]; then

            echo "Error: SMF framework variables are not initialized"

            exit $SMF_EXIT_ERR

    fi


case "$1" in
  'start') /opt/VirtualBox/VBoxHeadless -s $VM  &
  ;;
  'stop') /opt/VirtualBox/VBoxManage controlvm $VM savestate
  ;;
  'refresh') /opt/VirtualBox/VBoxManage controlvm $VM reset
  ;;
  *) echo "Usage: $0 { start | stop | refresh }"
  exit 1
  ;;
esac

exit $SMF_EXIT_OK


/var/svc/manifest/application/vboxheadless.xml:
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<service_bundle type='manifest' name='vboxheadless'>

<service name='application/vboxheadless' type='service' version='1'>


<method_context>
  <method_credential user='root' group='root' />
</method_context>


<exec_method type='method' name='start'
     exec='/lib/svc/method/vboxheadless start'
     timeout_seconds="60" />

<exec_method type='method' name='stop'
     exec='/lib/svc/method/vboxheadless stop'
     timeout_seconds="60" />

<exec_method type='method' name='refresh'
     exec='/lib/svc/method/vboxheadless refresh'
     timeout_seconds="60" />
<property_group name="startd" type="framework">
<propval name="duration" type="astring" value="transient"/>
</property_group>

<instance name='w7' enabled='true'>
<property_group name='vbox' type='application'>
<propval name='VM' type='astring'
                        value='w7' />
</property_group>
</instance>

<stability value='Unstable' />

<template>
   <common_name>
      <loctext xml:lang='C'>VirtualBox Headless</loctext>
  </common_name>
  <documentation>
      <manpage title='VBoxManage' section='1m' manpath='/usr/share/man' />
      <doc_link name='homepage' uri='http://sgpit.com/smf' />
  </documentation>
</template>

</service>
</service_bundle>


Running VirtualBox in a zone under Solaris 11

When trying to run VirtualBox in a zone under Solaris 11 make sure fonts are installed in the zone or else VirtualBox will core dump.  Package list:

FSWfontconfig-devel-docs                      0.5.11-0.130    known      --o--
print/filter/ghostscript/fonts/gnu-gs-fonts-other 6.0-0.151.0.1   known      -----
print/filter/ghostscript/fonts/gnu-gs-fonts-std 6.0-0.151.0.1   known      -----
system/font/daewoo-misc                       1.0.1-0.151     known      -----
system/font/gnome-fonts                       0.5.11-0.151.0.1 installed  -----
system/font/isas-misc                         1.0.1-0.151     known      -----
system/font/jis-misc                          1.0.1-0.151     known      -----
system/font/misc-ethiopic                     1.0.1-0.151     known      -----
system/font/misc-meltho                       1.0.1-0.151     known      -----
system/font/truetype/arabeyes                 0.5.11-0.151.0.1 known      -----
system/font/truetype/arphic-ukai              0.5.11-0.151.0.1 known      -----
system/font/truetype/arphic-uming             0.5.11-0.151.0.1 known      -----
system/font/truetype/bh-luxi                  1.0.1-0.151     known      -----
system/font/truetype/bitstream-vera           1.10-0.151      known      -----
system/font/truetype/bpg-georgian             0.5.11-0.151.0.1 known      -----
system/font/truetype/dejavu                   2.31-0.151      known      -----
system/font/truetype/fonts-core               1.1-0.151.0.1   installed  -----
system/font/truetype/gentium                  0.5.11-0.151.0.1 known      -----
system/font/truetype/google-droid             0.2010.2.24-0.151 known      -----
system/font/truetype/hanyang-ko               0.5.11-0.151.0.1 known      -----
system/font/truetype/hanyang-ko-core          0.5.11-0.151.0.1 known      -----
system/font/truetype/indic-fonts-core         0.5.11-0.151.0.1 known      -----
system/font/truetype/ipafont                  0.5.11-0.151.0.1 known      -----
system/font/truetype/ipafont-mincho           0.5.11-0.151.0.1 known      -----
system/font/truetype/kacst                    0.5.11-0.151.0.1 known      -----
system/font/truetype/liberation               1.4-0.151       known      -----
system/font/truetype/lohit                    0.5.11-0.151.0.1 known      -----
system/font/truetype/mgopen                   0.5.11-0.151.0.1 known      -----
system/font/truetype/sil                      0.5.11-0.151.0.1 known      -----
system/font/truetype/thai-scalable            0.5.11-0.151.0.1 known      -----
system/font/truetype/ttf-fonts-core           1.1-1           known      --r--
system/font/truetype/unfonts-ko-core          0.5.11-0.151.0.1 known      -----
system/font/truetype/unfonts-ko-extra         0.5.11-0.151.0.1 known      -----
system/font/truetype/unifont                  0.5.11-0.151.0.1 known      -----
system/font/truetype/wqy-zenhei               0.5.11-0.151.0.1 known      -----
system/font/xorg/cyrillic                     1.0.2-0.151     known      -----
system/font/xorg/iso8859-1                    7.5-0.151       installed  -----
system/font/xorg/iso8859-10                   7.5-0.151       known      -----
system/font/xorg/iso8859-11                   7.5-0.151       known      -----
system/font/xorg/iso8859-13                   7.5-0.151       known      -----
system/font/xorg/iso8859-14                   7.5-0.151       known      -----
system/font/xorg/iso8859-15                   7.5-0.151       known      -----
system/font/xorg/iso8859-16                   7.5-0.151       known      -----
system/font/xorg/iso8859-2                    7.5-0.151       known      -----
system/font/xorg/iso8859-3                    7.5-0.151       known      -----
system/font/xorg/iso8859-4                    7.5-0.151       known      -----
system/font/xorg/iso8859-5                    7.5-0.151       known      -----
system/font/xorg/iso8859-7                    7.5-0.151       known      -----
system/font/xorg/iso8859-8                    7.5-0.151       known      -----
system/font/xorg/iso8859-9                    7.5-0.151       known      -----
system/font/xorg/xorg-core                    7.5-0.151       known      -----
system/library/fontconfig                     2.8.0-0.151     installed  -----
system/library/fontconfig/documentation       2.8.0-0.144     known      --r--
x11/font-utilities                            7.5-0.151       installed  -----
x11/library/libfontenc                        1.0.5-0.151     installed  -----
x11/library/libxfont                          1.4.1-0.151     installed  -----
x11/xfontsel                                  1.0.2-0.151     installed  -----

Thursday, November 4, 2010

Getting Apache 2.2 working under Solaris using SMC

Don't ask me why I did this (it was painful), but I got Apache 2.2 running on Solaris 10 using the SMC instead of the default pre-fork model.  Results to be figured out later.  Anyway, for those interested here are the relevant files.  For those curious I do use zones and this is in one:

[/lib/svc/method/apache22]

#ident  "@(#)apache22        1.1     08/04/30 SMI"

. /lib/svc/share/smf_include.sh

# SMF_FMRI is the name of the target service. This allows multiple instances
# to use the same script.

getproparg() {
        val=`svcprop -p $1 $SMF_FMRI`
        [ -n "$val" ] && echo $val
}


PIDFILE=/tmp/apache.pid
APACHEBIN=`getproparg apache22/bin`
APACHEDATA=`getproparg apache22/data`


if [ -z $SMF_FMRI ]; then
        echo "Error: SMF framework variables are not initialized"
        exit $SMF_EXIT_ERR
fi


if [ -z $APACHEDATA ]; then
        echo "Error: apache22/data property not set"
        exit $SMF_EXIT_ERR_CONFIG
fi

case "$1" in
'start')
pidd="PidFile /tmp/apache.pid"
$APACHEBIN/httpd -f ${APACHEDATA}/conf/httpd.conf  -C "PidFile /tmp/apache.pid"
        ;;

'stop')
pidd="PidFile /tmp/apache.pid"
        $APACHEBIN/httpd -f ${APACHEDATA}/conf/httpd.conf -k stop  -C "PidFile /
tmp/apache.pid"
        ;;

'refresh')
pidd="PidFile /tmp/apache.pid"
$APACHEBIN/httpd -f ${APACHEDATA}/conf/httpd.conf -k restart -C "PidFile /tmp/ap
ache.pid"
        ;;

*)
        echo "Usage: $0 {start|stop|refresh}"
        exit 1
        ;;

esac
exit $SMF_EXIT_OK



[/var/svc/manifest/application]

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
 Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 Use is subject to license terms.

 ident  "@(#)apache22.xml  1.1     08/04/30 SMI"

        NOTE:  This service manifest is not editable; its contents will
        be overwritten by package or patch operations, including
        operating system upgrade.  Make customizations in a different
        file.
-->


<service_bundle type='manifest' name='apache22'>

<service
    name='application/web/apache22'
    type='service'
    version='1'>

<!--
Wait for network interfaces to be initialized.
-->

    <dependency
        name='network'
        grouping='require_all'
        restart_on='none'
        type='service'>
        <service_fmri value='svc:/milestone/network:default' />

    </dependency>

<!--
Wait for all local filesystems to be mounted.
-->

<dependency
    name='filesystem-local'
    grouping='require_all'
    restart_on='none'
    type='service'>
    <service_fmri value='svc:/system/filesystem/local:default' />
</dependency>

<exec_method
    type='method'
    name='start'
    exec='/lib/svc/method/apache22 start'
    timeout_seconds='60' />

<exec_method
    type='method'
name='stop'
exec='/lib/svc/method/apache22 stop'
timeout_seconds='60' />

<instance name='apache22' enabled='false'>

    <method_context>
    <method_credential user='root' group='root' />
    </method_context>

    <property_group name='apache22' type='application'>
        <propval name='bin' type='astring'
            value='/opt/httpd22/bin/' />
        <propval name='data' type='astring'
            value='/var/httpd22/' />
    </property_group>

</instance>

<stability value='Evolving' />

<template>
    <common_name>
        <loctext xml:lang='C'>
            Apache 2.2 httpd
        </loctext>
    </common_name>

    <documentation>
        <manpage title='Apache 2.2' section='1' />
        <doc_link name='apache.org' uri='http://httpd.apache.org/docs/2.2/' />
    </documentation>
</template>

</service>

</service_bundle>