Adobe Flash Player 10.1 RC is now available as a prerelease. This version does not require the medialib dependency and should work on its own after installation. You can find it at the Adobe Labs site.
$ wget http://download.macromedia.com/pub/labs/ flashplayer10/flashplayer10_1_rc1_solaris_x86_0 61010.tar.bz2 $ bzip2 -d flashplayer10_1_rc1_solaris_x86_061010.tar.bz2 $ tar xvf flashplayer10_1_rc1_solaris_x86_061010.tar $ mkdir -p ~/.mozilla/plugins/ $ mv flash_player_solaris_10_1_53_64_x86/libflashplayer.so ~/.mozilla/plugins/ OR $ pfexec mv flash_player_solaris_10_1_53_64_x86/ libflashplayer.so /usr/lib/firefox/plugins/SPARC
$ wget http://download.macromedia.com/pub/labs/ flashplayer10/flashplayer10_1_rc1_solaris_sparc_ 061010.tar.bz2 Follow x86 directions above
On occasion if you are trying to fdisk or mount a USB disk on Solaris 10 you may get an error that says "Cannot open device." For example:
# fdisk /dev/rdsk/c2t0d0s2 Cannot open deviceThings to check:
- 1. Make sure you are root or have the correct user privilege
- 2. Try `devfsadm -Cv` to remove any stale disk entries
- 3. Stop volume management `svcadm disable volfs`
If you have been using the package management system in the newest builds of OpenSolaris (b133+), you may have noticed the naming scheme changes that affect new and existing packages. [Full list of changes]
For example, trying to find the usb header file package is a bit trickier. These files, namely usba.h, usbai.h, and usbdevs.h, are not installed into /usr/include/sys/usb in the default installation. To retrieve them, use this command:
$ pfexec pkg install header-usbIn previous version, these files could have been obtained from either SUNWusbu or SUNWsfwhea. The removal of the SUNW prefix is the most apparent name change for the package collection. Now you can get busy building the latest apcupsd version!
I needed to find a way to get the physical (MAC) address using C. From what I could gather from searching opensolaris.org, there are two methods for retrieving it: libdlpi and arp. libdlpi is the more elegant solution as it requires a simple call to dlpi_get_physaddr(). This is how ifconfig prints your network interface's MAC address. Unfortunately, libdlpi calls are only permitted as root.
The reason it was like this was historical: getting the MAC address in ifconfig meant opening up the DLPI node and talking to the driver. As the drivers didn't have discrete privileges for each operation, and you had to be almighty root to touch them, 'ifconfig' didn't show the MAC address when not privileged.*whatever*
The second solution is to use arp. In Solaris you can determine the physical address by looking at the arp tables directly (`arp -a | grep <INTERFACE>` or `netstat -p | grep <INTERFACE>`). With C, this can be done by using the if sockets and arp libraries.
I wrote up a solution called "getmac" using both methods. You can gather it here.
$ wget http://www.pauliesworld.org/project/getmac.c $ gcc getmac.c -o getmac -lsocket -ldlpi $ ./getmac <interface_name> arp: ffffffffffff dlpi: dlpi failure, are you root? $ pfexec ./getmac <interface_name> arp: ffffffffffff dlpi: ffffffffffff
libupnp 1.6.6 is a little tricky to compile on Solaris. After downloading the source from Source Forge, you will want to extract the bzip2 and cd to the libupnp-1.6.6 directory, then do the following.
vi upnp/src/api/upnpapi.cOn line 59, there is a bug. Change
#if defined(__sun)The change is adding an extra underscore. Otherwise sockio.h will not be recognized properly and you will get some missing networking variables when you try to build. After that is taken care of...
$ ./configure CFLAGS="-DSPARC_SOLARIS" --disable-samples $ gmake # gmake install
After the failure of the SATA and USB ports on my Intel D945GCL Atom board, I decided to build out a new file server. Sticking to the Atom theme, I decided to go small and get the CompuLab FIT-PC2. This little toy uses the Z530 1.6Ghz CPU that apparently uses only 6 watts of power. I'm assuming that means *without* a hard drive installed.
Measuring in at around 115 x 101 x 27mm (~ 4.5"x4.0"x1.0"), it is only big enough to hold one laptop sized 2.5" SATA drive.
The drive I installed only has 80GB of space. That would run out real quick with my needs, so I decided to get a MediaSonic USB disk enclosure to link up with my server. It can hold up to 4 SATA drives.
The PC sits on top of the enclosure on my bookshelf taking up 8.5" x 5.0" x 6.5" amount of space. This is not only power efficient, but space efficient since I am using 4 x 1TB drives. 4TB total (theoretical), ~2.6TB in a ZFS raidz. If I were to have purchased the 2TB drives, it would be even better.
Doug's blog on the FIT-PC2 gives a good overview on the features of the device and what works. There is no wifi driver and Xorg doesn't work, so you may want to install OpenSolaris on another machine before installing the internal HDD. My server is headless and uses the built-in gigabit ethernet, so I don't care about those issues.
Links and prices
CompuLab FIT-PC2 Diskless Nettop PC
Mediasonic (HF2-SU2S2) Pro Box 4 Bay Enclosure
Samsung 1TB 7200 RPM
4 x $85 = $340