Blog

Seas 11-FM speaker repair / replacement

SEAS 11-FM Speaker Foam Surround Repair

I bought a SEAS 603 kit many years ago and over the years it has been put into new cabinets , the tweeter and woofer have been replaced so only the midrange unit 11-FM is the original. This unit is not looking so good – the foam surround has perished in places and is looking yucky :-

 

11-FM speaker before repair
11-FM speaker before repair

A search for a suitable replacement did not yield any satisfactory results – most speaker units these days are designed for 2 way systems and the 11-FM comes with it’s own sealed enclosure  cone and the specs are quite unusual. So my search turned to replacement foam surrounds – I found a company Good HIFi that offers replacement foam surrounds for the SEAS 11-FM and they also ship world wide. They have a useful video on their site showing how to replace a foam surround. I ordered 2 replacement foam surrounds an a bottle of glue. The replacements arrived and they looked like :-

SEAS 11-FM foam surround

 

Once removed from the cabinet the old foam surround is removed – useful tools are a craft knife and a wood chisel.

SEAS 11-FM with old foam surround removed

Next you glue the inner edge of the replacement foam surround to the cone and use a suitable weight to hold down the cone until the glue dries – make sure the cone is still centred and does  not rub on anything.

Next glue thr outer edge of the replacement foam surround to the speaker chassis – use some clothes pegs and cardboard  to hold it down while the glue dries. Once complete it will look as good as new.

Finished repaired speaker
Finished repaired speaker

Now you can put them back into the cabinets and enjoy your speakers once more

Speakers in cabinet
Speakers in cabinet

 

Speaker in cabinet
Speaker in cabinet

 

 

UTF-8 AIX and the 

I setup a GPG encryption transfer with a 3rd party to transfer XML files.

On decrypting the GPG XML file I noticed when I vi’d the file I had  at the beginning of the file – everything else in the file was displayed OK.

In the end it turned out it was all to do with character sets – the default AIX charcter set is ISO8859-1 and the file was sent from a server that was using UTF-8

The  I was seeing is the BOM Byte Order Mark – Wikipedia has a useful page  that shows what characters are displayed on a ISO8859-1 system for the various UTF encodings.

To convert to ISO8859-1 you can use iconv

Install websm client on Linux to access HMC

Install websm client on Linux

From your Linux box copy over /usr/websm/pc_client/wsmlinuxclient.exe  from your AIX LPAR.

For Centos x86_64 I needed additional RPMs :-

yum groupinstall “GNOME Desktop Environment”     ( only needed if you don’t have X11 installed )
yum install libXmu.i386
yum install libXp.i386

Note the libs have to be the i386 version even though the Linux is x86_64

Install websm

./wsmlinuxclient.exe -console

If you accept the defaults then after teh install satrt it up :-

/opt/websm/bin/wsm

If it bombs out with errors like :-

java.lang.UnsatisfiedLinkError: /opt/websm/_jvm/bin/libawt.so: libXp.so.6: canno
t open shared object file: No such file or directory
Then install the missing library RPM ( it needs to be the i386 version )

Migrating Wview from a Nslu2 to a Sheevaplug

My Nslu2 which I had been running Wview on finally died and rather than replace it with another one I decided to buy a Sheevaplug instead.

Migrating archive data from wlk files to Sqlite

The version of Wview on the Nslu2 was quite old and used  .wlk files to store archived readings. The newer versions of Wview store the data in a Sqlite database. The Wview software comes with utilities to migrate the data in the wlk files into the Sqlite database.

Copy the old .wlk files from the Wview archive directory on the old server to /var/lib/wview/archive on the Sheevaplug. The utility to copy the data from the wlk files into the Sqlite database is wlk2sqlite

The first time I ran it I got an error :-

root@sheeva:/var/lib/wview/archive# wlk2sqlite /var/lib/wview/archive
Using default $prefix/var/wview/archive destination…
Converting…(this takes a while, longer on small devices)…
Conversion Stats:
Time      : 0:0
Floating point exception

It turns out the Nslu2 was a Big Endian machine and the Sheevaplug is Little Endian . Luckily the Wview software comes with a converter program. Make a new directory for the converted files then convert them and overwrite the original ones.

mkdir old

arc_be2le /var/lib/wview/archive /var/lib/wview/archive/old
mv old/*wlk  .

Run the conversion program and it should start converting the files and load them into the database. It took 20 mins to convert 2.5 years worth of archive data.

root@sheeva:/var/lib/wview/archive# wlk2sqlite /var/lib/wview/archive
Using default $prefix/var/wview/archive destination…
Converting…(this takes a while, longer on small devices)…
Conversion Stats:
Time      : 1:0 minutes
Recs/sec  : 200
Inserts   : 12050
Duplicates: 4
Errors    : 0

Now stop and start Wview

/etc/init.d/wview restart

Do a tail -f /var/log/wview.log and you should see Wview generating history htmls :-

Nov 24 17:03:16 sheeva htmlgend[16835]: <1322154196730> : htmlHistoryInit: storing day history for Sun Jan  2 00:05:00 2011
Nov 24 17:03:17 sheeva htmlgend[16835]: <1322154197158> : htmlHistoryInit: storing day history for Mon Jan  3 00:05:00 2011
Nov 24 17:03:17 sheeva htmlgend[16835]: <1322154197609> : htmlHistoryInit: storing day history for Tue Jan  4 00:05:00 2011

Now all your old data is in the database of the Wview on the Sheevaplug.

Updating Centos 5 to php 5.3

Updating centos 5 to php 5.3

The version of php shipped with Centos 5 is 5.1.6 , lots of programs now need php 5.2 or 5.3 to install. The latest version of WordPress for example will not install or update on servers running 5.1.6.

When Centos 5.6 came out it had the opportunity to install PHP 5.3 from Centos – the problem is not all the PHP rpms available at 5.1.6 are there in the Centos repository at 5.3 e.g. php-pear php-mcrypt

One way around this is use a different repository , a good one for PHP is IUS . IUS has some nice features such as an add on to yum to make replacing the Centos PHP very easy – also it names it’s RPMs differently to Centos so you don’t have to worry about it overwriting Centos RPMs when you do a yum update. You may need to upgrade tour PHP applications to work with PHP 5.3 so check them out before you upgrade.

The following upgrade procedure is taken mostly from here

wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1.0-8.ius.el5.noarch.rpm

wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-5-4.noarch.rpm

rpm -Uvh ius-release*.rpm epel-release*.rpm

Check you can now see the  PHP 5.3 rpms from IUS

yum list | grep -w \.ius\.

Install the IUS add-on to yum :-

yum install yum-plugin-replace

Stop Apache

service httpd stop

List what php rpms you have installed

-bash-3.2# rpm -qa | grep php
php-pdo-5.1.6-27.el5_5.3
php-pgsql-5.1.6-27.el5_5.3
php-odbc-5.1.6-27.el5_5.3
php-bcmath-5.1.6-27.el5_5.3
php-pear-1.4.9-6.el5
php-5.1.6-27.el5_5.3
php-devel-5.1.6-27.el5_5.3
php-gd-5.1.6-27.el5_5.3
php-cli-5.1.6-27.el5_5.3
php-mbstring-5.1.6-27.el5_5.3
php-common-5.1.6-27.el5_5.3
php-ldap-5.1.6-27.el5_5.3
php-mysql-5.1.6-27.el5_5.3
-bash-3.2
Now replace those rpms with the ones from IUS using the IUS yum add-on

-bash-3.2# yum replace php –replace-with php53
Loaded plugins: fastestmirror, priorities, replace
Loading mirror speeds from cached hostfile
* addons: mirror.netrino.co.uk
* base: mirror.netrino.co.uk
* epel: mirror01.th.ifl.net
* extras: mirror.netrino.co.uk
* ius: mirror.rackspace.co.uk
* rpmforge: fr2.rpmfind.net
* updates: mirror.netrino.co.uk
1872 packages excluded due to repository priority protections
Replacing packages takes time, please be patient…

WARNING: Unable to resolve all providers: [‘config(php)’, ‘php’, ‘config(php-ldap)’, ‘php-ldap’, ‘config(php-mbstring)’, ‘php-mbstring’, ‘config(php-mysql)’, ‘php-mysql’, ‘config(php-pgsql)’, ‘php-pgsql’, ‘config(php-common)’, ‘dbase.so()(64bit)’, ‘php-dbase’, ‘php-mime_magic’, ‘php-pspell’, ‘php-common’, ‘config(php-pdo)’, ‘php-pdo’, ‘config(php-odbc)’, ‘php-odbc’, ‘config(php-gd)’, ‘php-gd’, ‘config(php-bcmath)’, ‘php-bcmath’]

This may be normal depending on the package.  Continue? [y/N]
Resolving Dependencies
Resolving Dependencies
–> Running transaction check
—> Package php.x86_64 0:5.1.6-27.el5_5.3 set to be erased
–> Processing Dependency: php >= 4.0.4 for package: squirrelmail
—> Package php-bcmath.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-cli.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-common.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-devel.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-gd.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-ldap.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-mbstring.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-mysql.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-odbc.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-pdo.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php-pgsql.x86_64 0:5.1.6-27.el5_5.3 set to be erased
—> Package php53.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-bcmath.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-cli.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-common.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-devel.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-gd.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-ldap.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-gd.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-ldap.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-mbstring.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-mysql.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-odbc.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-pdo.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-pgsql.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-process.x86_64 0:5.3.3-1.el5_6.1 set to be updated
—> Package php53-xml.x86_64 0:5.3.3-1.el5_6.1 set to be updated
–> Running transaction check
—> Package squirrelmail.noarch 0:1.4.8-5.el5.centos.10 set to be erased
–> Finished Dependency Resolution
–> Running transaction check
—> Package squirrelmail.noarch 0:1.4.8-5.el5.centos.10 set to be erased
–> Processing Dependency: php >= 4.0.4 for package: squirrelmail
–> Processing Dependency: php-mbstring for package: squirrelmail
–> Running transaction check
—> Package squirrelmail.noarch 0:1.4.8-5.el5.centos.10 set to be erased
–> Finished Dependency Resolution

Dependencies Resolved
=================================================================================
Package             Arch        Version                    Repository      Size
=================================================================================
Installing:
php53               x86_64      5.3.3-1.el5_6.1            updates        1.3 M
php53-bcmath        x86_64      5.3.3-1.el5_6.1            updates         42 k
php53-cli           x86_64      5.3.3-1.el5_6.1            updates        2.4 M
php53-common        x86_64      5.3.3-1.el5_6.1            updates        605 k
php53-devel         x86_64      5.3.3-1.el5_6.1            updates        590 k
php53-gd            x86_64      5.3.3-1.el5_6.1            updates        109 k
php53-ldap          x86_64      5.3.3-1.el5_6.1            updates         37 k
php53-mbstring      x86_64      5.3.3-1.el5_6.1            updates        1.2 M
php53-mysql         x86_64      5.3.3-1.el5_6.1            updates         92 k
php53-odbc          x86_64      5.3.3-1.el5_6.1            updates         52 k
php53-pdo           x86_64      5.3.3-1.el5_6.1            updates         67 k
php53-pgsql         x86_64      5.3.3-1.el5_6.1            updates         74 k
php53-process       x86_64      5.3.3-1.el5_6.1            updates         38 k
php53-xml           x86_64      5.3.3-1.el5_6.1            updates        119 k
Removing:
php                 x86_64      5.1.6-27.el5_5.3           installed      6.2 M
php-bcmath          x86_64      5.1.6-27.el5_5.3           installed       33 k
php-cli             x86_64      5.1.6-27.el5_5.3           installed      5.3 M
php-common          x86_64      5.1.6-27.el5_5.3           installed      397 k
php-devel           x86_64      5.1.6-27.el5_5.3           installed      2.5 M
php-gd              x86_64      5.1.6-27.el5_5.3           installed      333 k
php-ldap            x86_64      5.1.6-27.el5_5.3           installed       49 k
php-mbstring        x86_64      5.1.6-27.el5_5.3           installed      1.8 M
php-mysql           x86_64      5.1.6-27.el5_5.3           installed      196 k
php-odbc            x86_64      5.1.6-27.el5_5.3           installed       88 k
php-pdo             x86_64      5.1.6-27.el5_5.3           installed      114 k
php-pgsql           x86_64      5.1.6-27.el5_5.3           installed      128 k
Removing for dependencies:
squirrelmail        noarch      1.4.8-5.el5.centos.10      installed       14 M

Transaction Summary
=================================================================================
Install      14 Package(s)
Upgrade       0 Package(s)
Remove       13 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Total download size: 6.7 M
Is this ok [y/N]:
Downloading Packages:
(1/14): php53-ldap-5.3.3-1.el5_6.1.x86_64.rpm             |  37 kB     00:00
(2/14): php53-process-5.3.3-1.el5_6.1.x86_64.rpm          |  38 kB     00:00
(3/14): php53-bcmath-5.3.3-1.el5_6.1.x86_64.rpm           |  42 kB     00:00
(4/14): php53-odbc-5.3.3-1.el5_6.1.x86_64.rpm             |  52 kB     00:00
(5/14): php53-pdo-5.3.3-1.el5_6.1.x86_64.rpm              |  67 kB     00:00
(6/14): php53-pgsql-5.3.3-1.el5_6.1.x86_64.rpm            |  74 kB     00:00
(7/14): php53-mysql-5.3.3-1.el5_6.1.x86_64.rpm            |  92 kB     00:00
(8/14): php53-gd-5.3.3-1.el5_6.1.x86_64.rpm               | 109 kB     00:00
(9/14): php53-xml-5.3.3-1.el5_6.1.x86_64.rpm              | 119 kB     00:00
(10/14): php53-devel-5.3.3-1.el5_6.1.x86_64.rpm           | 590 kB     00:00
(11/14): php53-common-5.3.3-1.el5_6.1.x86_64.rpm          | 605 kB     00:00
(12/14): php53-mbstring-5.3.3-1.el5_6.1.x86_64.rpm        | 1.2 MB     00:00
(13/14): php53-5.3.3-1.el5_6.1.x86_64.rpm                 | 1.3 MB     00:00
(14/14): php53-cli-5.3.3-1.el5_6.1.x86_64.rpm             | 2.4 MB     00:00
——————————————————————————–

Total                                            3.2 MB/s | 6.7 MB     00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing     : php53-common                                             1/27
warning: /etc/php.d/json.ini created as /etc/php.d/json.ini.rpmnew
Installing     : php53-pdo                                                2/27
Installing     : php53-cli                                                3/27
Installing     : php53                                                    4/27
Installing     : php53-mbstring                                           5/27

Installing     : php53-bcmath                                             6/27
Installing     : php53-pgsql                                              7/27
Installing     : php53-mysql                                              8/27
Installing     : php53-ldap                                               9/27
Installing     : php53-xml                                               10/27
Installing     : php53-process                                           11/27
Installing     : php53-gd                                                12/27
Installing     : php53-devel                                             13/27
Installing     : php53-odbc                                              14/27
Erasing        : php-ldap                                                15/27
Erasing        : php-pdo                                                 17/27
Erasing        : php-mysql                                               18/27
Erasing        : php-devel                                               19/27
Erasing        : php-odbc                                                20/27
Erasing        : php-gd                                                  21/27
Erasing        : php                                                     22/27
Erasing        : php-common                                              23/27
Erasing        : php-bcmath                                              24/27
Erasing        : php-cli                                                 25/27

Erasing        : squirrelmail                                            26/27
Erasing        : php-pgsql                                               27/27

Removed:
php.x86_64 0:5.1.6-27.el5_5.3         php-bcmath.x86_64 0:5.1.6-27.el5_5.3
php-cli.x86_64 0:5.1.6-27.el5_5.3     php-common.x86_64 0:5.1.6-27.el5_5.3
php-devel.x86_64 0:5.1.6-27.el5_5.3   php-gd.x86_64 0:5.1.6-27.el5_5.3
php-ldap.x86_64 0:5.1.6-27.el5_5.3    php-mbstring.x86_64 0:5.1.6-27.el5_5.3
php-mysql.x86_64 0:5.1.6-27.el5_5.3   php-odbc.x86_64 0:5.1.6-27.el5_5.3
php-pdo.x86_64 0:5.1.6-27.el5_5.3     php-pgsql.x86_64 0:5.1.6-27.el5_5.3

Dependency Removed:
squirrelmail.noarch 0:1.4.8-5.el5.centos.10

Installed:
php53.x86_64 0:5.3.3-1.el5_6.1         php53-bcmath.x86_64 0:5.3.3-1.el5_6.1
php53-cli.x86_64 0:5.3.3-1.el5_6.1     php53-common.x86_64 0:5.3.3-1.el5_6.1
php53-devel.x86_64 0:5.3.3-1.el5_6.1   php53-gd.x86_64 0:5.3.3-1.el5_6.1
php53-ldap.x86_64 0:5.3.3-1.el5_6.1    php53-mbstring.x86_64 0:5.3.3-1.el5_6.1
php53-mysql.x86_64 0:5.3.3-1.el5_6.1   php53-odbc.x86_64 0:5.3.3-1.el5_6.1
php53-pdo.x86_64 0:5.3.3-1.el5_6.1     php53-pgsql.x86_64 0:5.3.3-1.el5_6.1
php53-process.x86_64 0:5.3.3-1.el5_6.1 php53-xml.x86_64 0:5.3.3-1.el5_6.1

Complete!

Check all the php rpms you had installed at 5.1.6 are now there at 5.3

-bash-3.2# rpm -qa | grep php
php53-cli-5.3.3-1.el5_6.1
php53-process-5.3.3-1.el5_6.1
php53-mysql-5.3.3-1.el5_6.1
php-pear-1.4.9-6.el5
php53-mbstring-5.3.3-1.el5_6.1
php53-devel-5.3.3-1.el5_6.1
php53-pdo-5.3.3-1.el5_6.1
php53-bcmath-5.3.3-1.el5_6.1
php53-xml-5.3.3-1.el5_6.1
php53-odbc-5.3.3-1.el5_6.1
php53-pgsql-5.3.3-1.el5_6.1
php53-5.3.3-1.el5_6.1
php53-gd-5.3.3-1.el5_6.1
php53-common-5.3.3-1.el5_6.1
php53-ldap-5.3.3-1.el5_6.1
-bash-3.2#
-bash-3.2# php -v
PHP 5.3.3 (cli) (built: Mar 30 2011 13:51:54)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
-bash-3.2#

Set your timezone for PHP ( if you do not do this you may see errors like PHP Warning:  strtotime(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. )

vi /etc/php.ini

date.timezone = ‘Europe/London’

Restart Apache

service httpd start

Check your applications now work

 

AIX bug on 5.3 TL11 SP6 directory corruption

After patching to AIX 5.3 TL11 SP6 with fileset bos.mp , bos.mp64 5.3.11.6 a directory became unusable and corrupt , the only solution was to unmount the filesystem and mount it again. fsck did not report any errors. I managed to re-create the error :-

$ cd /test
$ ls -l
total 0
-rw——-    1 root     system            0 Jul 22 10:59 one
drwxr-xr-x    2 root     system          256 Jul 22 10:59 onedir
-rw-r–r–    1 root     system            0 Jul 22 10:59 three
drwxr-xr-x    2 root     system          256 Jul 22 10:59 threedir
-rw-r–r–    1 root     system            0 Jul 22 10:59 two
drwxr-xr-x    2 root     system          256 Jul 22 11:00 twodir
$ mv -f one twodir
mv: 0653-401 Cannot rename one to twodir/one:
The file access permissions do not allow the specified action.
$ ls -l
ls: 0653-341 The file ./one does not exist.
ls: 0653-341 The file ./twodir does not exist.
total 0
drwxr-xr-x    2 root     system          256 Jul 22 10:59 onedir
-rw-r–r–    1 root     system            0 Jul 22 10:59 three
drwxr-xr-x    2 root     system          256 Jul 22 10:59 threedir
-rw-r–r–    1 root     system            0 Jul 22 10:59 two
$

$ cd twodir
ksh: twodir: 0403-036 The specified directory is not valid.
$ find twodir
find: 0652-019 The status on sixdir is not valid.
$
You end up with a directory you can do anything with –  and any sub directories are also unavailable. No data is actually lost – if you unmount and remount the filesystem all the data is available again.

The fix is to install APAR IZ96928  which requires a reboot.

Setup SAMBA on Ubuntu for XBMC shares

Like a lot of people I have a central computer which stores my pictures , videos etc, and have a home theater server with XBMC in the living room. To enable XBMC to display pictures and stream videos from your central computer you can use SAMBA. These instructions are for Ubuntu but apart from the actual SAMBA package install they should work for any Linux flavor.

Install SAMBA

On your server you want to share out the media from install SAMBA

sudo apt-get install samba

Create a nice easy directory structure

To make things easy for XBMC create a directory structure with symlinks to your media directories that can be shared out. e.g. within XMBC I want to have my media split into movies , videos, music_videos , music and pictures. The real directories for these on my central server are /videos/movies , /misc/vids, /misc/music_vids , /music , /camera . So I created a top level /xbmc directory with /xbmc/movies /xbmc/videos /xbmc/music_videos /xbmc/pictures

sudo mkdir /xbmc

sudo ln -s /videos/movies /xbmc/movies
sudo ln -s /misc/vids  /xbmc/videos
sudo ln -s /misc/music_vids /xbmc/music_videos
sudo ln -s /music  /xbmc/music
sudo ln -s /camera  /xbmc/pictures

Now when I share out /xbmc everything is nicely organized.

Configure SAMBA

sudo vi /etc/samba/smb.conf

Ensure your network interfaces are in the interfaces =   line and remove the ; at the beginning of the line.

Add these lines after the interfaces line , where the IP address after 127.0.0.1 is the IP address of your XBMC box assuming it has a static IP, if you are using DHCP for the XBMC server then put in the DCHP subnet e.g. 192.168.1.0/24

hosts allow = 127.0.0.1,192.168.1.45
hosts deny = 0.0.0.0/0

Remove the ; from the line bind interfaces only = yes

If using symlinks then add this line :-

unix extensions = no

Remove the hash at the beginning of the line security = user

Search for socket and add the line

socket options = IPTOS_LOWDELAY TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

At the end of the file add :-

[xbmc]
comment = XBMC share
path = /xbmc
read only = yes
guest ok = no
user = xbmc
follow symlinks = yes
wide links = yes

Save the file

Create a linux user with enough permissions to be able to read your media files and a shell of  /bin/false – do not create a linux password for the user – we only want the user to login via SAMBA

sudo groupadd xbmc

sudo useradd -d /xbmc -c “XBMC SAMBA user” -g xbmc -s /bin/false xbmc

sudo smbpasswd -a xbmc

Restart SAMBA

sudo /etc/init.d/smbd restart

Add the share in XBMC

Video – Add Source

Path is  smb://192.168.1.45/xbmc        ( use the IP address of your SAMBA server )

OK – it will then ask for a username and password and if you select

Living the Linux dream – installing XMBC on an Acer Revo 3700

Installing XBMC on the Acer Revo 3700

After years of waiting for the price of quiet small form factor PCs to come down to a reasonable price point the Acer Revo 3700 has appeared. I purchased one to install XBMC on. I also purchased an add on external USB DVD drive as I also wanted to replace my DVD player.

Because I wanted to use the Revo to do other things besides XBMC I decided to do a normal Ubuntu install rather than a minimum install with XBMC. I selected Ubuntu 10.04 LTS 32 bit to install.

I decided to make things easy and do the install with a wired Ethernet connection and enable wireless afterwards.

As I had an USB DVD drive I thought I would use this to do the install – big mistake it failed after the splash screen with :-

(initramfs) mount mounting /dev/loop0 on filesystem.squashfs failed: Input/Output error Cannot mount /dev/loop0 (/cdrom/casper/filesystem.squashfs on // filesystem.squashfs

Looking at the forums it appeared that boot from a USB memory stick would be a better solution. To make a bootable USB stick go here

Power on the Revo and hit DEL to enter the BIOS. Select Advance BIOS Features  – cursor down to 1st Boot Device and use the – key to select Removable Device.

F10 to save your settings and the Revo will reboot.

In spite of selecting Removable Device as the 1st boot it still booted from the hard disk – so I booted again and hit F12 to go into the boot menu then I could select the USB Flash to boot from.

Select erase and use the entire disk

Login name xbmc

Set a password and select Log in automatically

Once the installation is complete it will prompt you to reboot  – click Restart Now. Hit DEL to go into the BIOS again and select the hard disk as the 1st Boot Device . Remove the USB memory stick you booted from. Hit F10 to save and exit. It should now boot from the hard disk into Ubuntu.

Open up a terminal and do netstat -rn to check the network looks right.

Stop the screen saver from locking the screen with a password – System – Preference – Screensaver – untick lock screen when screensaver is active.

Install the Nvidia binary drivers -see here

Turn off compiz  – Preferences – Appearance – Visual Effects – None

Update manager should appear on the bottom toolbar advising that updates are available. Install the updates and once installed reboot the Revo.

Wireless network

I had a lot of problems getting the wireless network to work. First set it up in Network Manager , go to  System – Preferences – Network Connections

Select Wireless – Add  and add your wireless details.  Choose Infrastructure rather than addhoc and select the tick box to allow all users access. Reboot the Revo and if like me the wireless does not work check in /var/log/messages for failure to open a file :-

May 24 09:34:03 xbmc-desktop kernel: [   15.933794] Read file “/etc/Wireless/RT2860STA/RT2860STA.dat” failed(errCode=0)!

To fix :-

sudo mkdir -p  /etc/Wireless/RT2860STA

sudo touch /etc/Wireless/RT2860STA/RT2860STA/RT2860STA.dat

Reboot the Revo – you will be prompted for your password to start the network and now you should get a message about the wireless network has established a connection.

Now go to System – Preference – Network Connections

You will see a new connection with Last Used of now

Edit this and ensure the mode is Infrastructure , Connect automatically is ticked and available to all users is ticked. Apply the changes – it will disconnect the wireless connection. Reboot the Revo and this time you should not be prompted for a password and the wireless network should connect successfully.

I would advise you to setup a static IP address for the Revo as this will make things easy for using NFS mounts and using an Android phone app as a remote.

To setup a static IP address go to the Network Manager, select the Wireless connection 1 and add a static IP ( your router should have details of the DHCP range of IPs it gives out so select an IP address outside of this range ). Fill in the gateway ( e.g. the address of your router , the DNS servers ( either use your ISP’s one or use a public DNS service like Google’s one ). Reboot the Revo and check with netstat -rn and ifconfig -a that all is well.

Install flash and other media codecs

As this server is going to be able to play multiple video and sounds formats install the restricted extras for Ubuntu – see here

Sound over HDMI in the Revo 3700

I had lots of problems with this and there are lots of remedies posted on forums, the fix does seem to depend on what version of Ubuntu you install. To have sound over HDMI working you need X up and be connected to a HDMI display so plug your TV into the HMDI port.

Update the Alsa packages – instructions are  here – you need to reboot after updating.

After installing a newer version of ALSA you now see the Nvidia devices :-

xbmc@xbmc-desktop:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC662 rev1 Digital [ALC662 rev1 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0

Startup alsamixer and use F6 key to select the Nvidia card – it should look like :-

alsamixer with muted channels

You now need to unmute the channels shown as MM – use the cursor keys to navigate to the MM boxes and use the m keys to toggle them to 00 . The display should now look like :-

alsamixer with channels unmuted
alsamixer with channels unmuted

Hit ESC to exit alsamixer

To test :-

xbmc@xbmc-desktop:~$ aplay -D plughw:1,7 /usr/share/sounds/alsa/Front_Center.wav

Sound should come out of the TV.

Now you need to setup Pulse audio

sudo vi /etc/pulse/default.pa

Search for the hashed out line #load-module module-pipe-sink

Add a line :-

load-module module-alsa-sink device=plughw:1,7

Remove any local user pulse config files :-

rm -rf ~/.pulse ~/.asound* ~/.pulse-cookie

Create a new /etc/asound.conf

sudo vi /etc/asound.conf
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}

Reboot the Revo and now you should be greeted by Tom-Toms when Ubuntu starts and playing a video from a website in Firefox the sound will now come out of the TV. Don’t worry about the slow performance playing a Video in Firefox – the fixes are later in this guide.

Install XBMC

instructions are here

Ensure you install NVidia hardware acceleration (VDPAU)  in the above instructions.

Open a terminal and type xbmc to start it up. Go to System – Settings and configure :-

Audio Output

Audio output              HDMI
Speaker configuration      2.0
Boost volume level on downmix
Audio output device         Defaults
Passthrough output device      hdmi

Video Playback

Render method           Auto detect
Allow hardware acceleration (VDPAU)
Adjust display refresh rate to match video
Sync playback to display
A/V sync method                 video clock (drop/dupe audio)
VDPAU studio level color conversion

Power saving

Shutdown function       shutdown

Weather – General  change area code 1 – set it to your local city

Speedup video playback

Ensure you installed NVidia hardware acceleration (VDPAU) when you did the XBMC install above. To allow flash videos ( like Youtube ) to run in full screen you need a version of flash that supports hardware acceleration – this currently means getting a beta version. The easiest way is to install Flash Aid Firefox plugin , once installed click on the Flash Aid symbol in the top right hand corner of Firefox and just let the wizard install the best version of flash for the hardware.  I did notice that Youtube videos played faster in the XBMC plugin than in Firefox which is fine as the XBMC plugin is nice to use.

If you are in the UK then install the BBC Iplayer XBMC plugin – follow the instructions here . The XBMC BBC  Iplayer plugin plays  programs much better full screen than in Firefox.

Remote Control

As I have an Android phone I looked for a remote app for XBMC and downloaded the official XBMC app

On the Revo start up XBMC and go to System – Network . enable Allow control of XBMC via HTTP , Allow programs on other systems to control XBMC, set a user name and password. Then go to System – Settings – Input Devices and enable Remote control sends keyboard presses.

Assuming you already have your Android phone setup so it is connected to your WIFI :-

Download the XBMC Android app, Once downloaded press menu and fill in the IP address of the Revo , username and password you setup in XBMC above ( not the Linux username / password ) , tick WIFI only. press the back button and OK the settings. Now you should be able to control XBMC from your phone.

setup XBMC to autostart

To setup XBMC to autostart but still have the Gnome desktop available if you click exit rather than shutdown in XBMC  :-

System – Preferences – Startup Applications. Click add and fill in name: xbmc , Command: xbmc  , Comment xbmc

Now when the Revo boots it will run xbmc but you still have the option to exit to the desktop by selecting exit in XBMC or to shutdown the Revo by selecting shutdown in XBMC

Sound no longer works after updates that include a new kernel

If you install updates ( security fixes etc. ) and it includes a new kernel the HDMI sound won’t work and XBMC will say cannot open audio device.

Update the alsa packages as above, make a copy of your /etc/asound.conf , create a new /etc/asound.conf  :-

pcm.!default {
type plug
slave.pcm “dmix:0,3”
}

If you don’t do this then you will get an error when starting alsamixer after the reboot ALSA lib pulse.c:229:(pulse_connect) PulseAudio: Unable to connect: Connection refused cannot open mixer: Connection refused

rm -rf ~/.pulse ~/.asound* ~/.pulse-cookie

Now reboot and check aplay -l sees the Nvidia sound card as in the install instructions above.

Startup alsamixer and unmute the channels as in the install instructions

Copy back your original /etc/asound.conf , reboot and your sound should be back.

Remove delete a legacy_run from SMF on Solaris 10

Remove the scripts from /etc/init.d and rc3.d etc.

root@mydb # svcs -a | grep -i oracle
legacy_run Feb_28 lrc:/etc/rc3_d/S99Oracle_Listener
root@mydb  #

Now we want to remove it from SMF – Note once you have removed the RC scripts rebooting the server will also mean SMF won’t pick it up again, but if you don’t want to reboot you can do the following :-

root@mydb # svccfg -s smf/legacy_run
svc:/smf/legacy_run> listpg *
rc2_d_S20sysetup framework NONPERSISTENT
rc2_d_S70uucp framework NONPERSISTENT
rc2_d_S72autoinstall framework NONPERSISTENT
rc2_d_S73cachefs_daemon framework NONPERSISTENT
rc2_d_S89PRESERVE framework NONPERSISTENT
rc2_d_S95lwact framework NONPERSISTENT
rc2_d_S98deallocate framework NONPERSISTENT
rc3_d_S16boot_server framework NONPERSISTENT
rc3_d_S52imq framework NONPERSISTENT
rc3_d_S84appserv framework NONPERSISTENT
rc3_d_S85dsmcsched framework NONPERSISTENT
rc3_d_S99Oracle_Listener framework NONPERSISTENT
svc:/smf/legacy_run> delpg rc3_d_S99Oracle_Listener
svc:/smf/legacy_run> exit
root@mydb #

root@mydb # svcs -a | grep -i oracle
root@mydb #