Revitalizing an aging Nokia E66 mobile phone

July 27th, 2010

I had decided to give my wife my E66, but my E66 was pretty much worn out. The case had started to fall apart and there was dust beneath the glass protecting the TFT screen.

What was wrong with the E66? (broken fascia)

What was wrong with the E66? (wear and tear)

It is possible to buy spareparts for mobile phones though. Buying them from a local dealer in your country will surely set you back many many dollars. Luckily Ebay came to the rescue. I bought a new fascia housing for my Nokia E66. Only  set me back around $10.

The seller states:

NOT supplied fitting manual
Replacing your phone with this new fascia, the preference to phone shop engineering maintainers or alternatively change it by yourself with any of corresponding tools.

So this blogpost constitutes a walkthrough on how to replacing the fascia, in case somebody else decides to revitalizing his or hers aging Nokia E66.

What was in the package from the seller?

Old phone and new package

Unpacking the new stuff (fascia and 3 screwdrivers)

Unpacking (taking the new fascia apart)

I then started to take the old phone apart. Gently, noting where everything went. This is not the time where you want to have leftovers afterwards!

Taking the E66 apart (remove battery and SIM)

Next up, remove the screws. Notice carefully what screws belongs to what hole. There are 3 different screws on the back.

Taking the E66 apart (reming the 6 screws from the back)

Next seperate the front and the back from the actual phone mainboard. Do this very very carefully. Do not get angry! And do not use excessive force. Everything in the phone are hold together using plastic tabs at this point.

Detaching the phone mainboard from the back and front

The two connectors from the front and back PCB to the main PCB needs to be detached gently. They will come off without force if you do it right.

The front and back cover seperated from the mainboard

Working on the back, you need to detach the PCB where all the buttons are located. Gently use a thin screwdriver for this. You also need to detach the power connector. That is most easily done by putting a screwdriver into the powerconnector, tipping the screwdriver downwards. That will make the connector pop out of its plastic tabs.

The button PCB of the back being detached

The button PCB hanging in midair

The button PCB and power connector removed

Assembling the back is just the reverse process. Keywords are: patience, low force, patience

Attaching power and button PCB onto new back fascia

Back part done

Working on the front part. Unscrew the two screws holding the PCB onto the slider. Do not fall for the urge to do anything about the spring system!! If you do, you will not get a working phone afterwards!

After unscrewing the two screws, you can pull the PCB out of the fascia. I then cleaned the TFT and put the PCB into the new fascia.

Seperating the front and cleaning it

Putting the front PCB into the new fascia

Front and back fascia was now done.

Front and back are exchanged

Assembly of the parts again. Just reverse the steps you did when taking the phone apart.

Only battery and SIM missing

And then

All done

And it is still alive, who should have thought that ;-)

It is alive

Got myself a HTC Desire mobile

July 22nd, 2010

My wife complained about her Nokia 6700 classic was a real pain to use for SMS’s. She tried my Nokia E66 and found it to be much better. As the true gentleman I am, I imediatly gave her my E66 — it was almost two years since I got it anyway. Having given her my phone, I had none. On the other hand,  that provided me with an excuse for buying a new one.  More specifiically an  HTC Desire.

HTC Desire

The phone arrived today and after having used it for some hours I can say that it is a fine piece of equipment. Useful as a phone, useful as a toy, useful as a tool, useful as a camera, voice recorder, media player. You name it. I am quite sure that we will get along just fine :-)

How to use a broken IBM Thinkpad T43 for something useful using puppy linux.

July 21st, 2010

I recently got my hands on a IBM Thinkpad T43. Unfortunately it was broken. More specifically the connector between the mainboard and the harddrive had problems.

IBM T43 connector (broken)

I googled a bit and discovered, that this was a known problem. The laptop worked fine, if I put pressure on the right spot on the case of the Thinkpad. Otherwise it would not detect and/or spin up the harddrive. I tried to fix it by re-soldering the connector and using some two-component glue to fixate the connector. I did not succeed :-/

So then what? Throw out the laptop? Or? … I decided to make a project out of it.

A laptop without storage is useless. Due to the broken connector, I could not use a harddrive. I did not want to use a cdrom as it is a slow medium. That left me with a USB flash drive as the only option. It would be a clumsy solution just to plug a USB flash drive into the laptop and be done with it, so I chose to solder a USB flash directly onto the mainboard.

First I stripped a standard 1GB USB Flash from its case and detached the PCB from the USB connector using a soldering iron

Stripped USB flash

After that I soldered 5 wires onto the PCB of the laptop and used one of the holes in the PCB used for assembly as a pass through hole. I initially used 4 wires as the USB connector only had 4 pins, but that was not enough. More on that later.

Wires soldered onto mainboard

Having soldered the wires onto to the mainboard, I now needed to solder the other ends onto to the PCB of the USB flash. That went fairly smoothly

Wires soldered onto flash

Before powering on anything, I used a multimeter to check for bad solderjoins and shorts. I found neither.

Checking for shorts using digital multimeter

Luckily I had a Linux based rescue distribution installed on the USB flash drive, so I just booted that to see if the operation on the T43 was a success. As can be seen below it worked just fine. Well, sort of fine, but more on that in a moment.

Testbooting the flashdrive

Almost done now. I just needed to assemble the laptop again, leaving the USB Flash inside.

Ready to wrap up

Closing the lid on the laptop, securing all the screws I had myself a working IBM Thinkpad T43. Or so I thought. When I tested the laptop thoroughly I discovered that the kernel ring buffer was filled with

hub 2-0:1.0: over-current change on port 1
hub 2-0:1.0: over-current change on port 2

That cryptic message just states that the USB device is drawing more power than it is allowed to by the USB specification. Or more precisely that the port on the USB hub inside the laptop is delivering more power than it was supposed to. It first that puzzled me. Then I read about the USB connector and realized my fail. The 4 wires of the USB connector consists of  VCC, GND, Data+ and Data -. Given both VCC and GND was part of the 4 pins I only soldered 4 pins. After seeing the problems above, I investigated the matter and found a reference to OverCurrent (OC) protection on the header itself. I thus soldered the 5th pin and the problem went away.

I now had a working IBM Thinkpad T43 with 1GB of flash storage. What should I use it for? I decided to use it for puppy linux. Primarily for two reasons.

  1. It appeared to be tailor made for small harddrives
  2. I had never tried it before

I downloaded the 106MB large iso file and burned it onto a CDrom. Now I faced the problem of installing puppy linux onto my flash without using a cdrom drive (as I found the laptop without one). Puppy linux made it quite easy. Using another computer I booted the cdrom. Installed puppy onto a spare flash drive. Booted that flash drive in my IBM Thinkpad T43 and pressed “install” once more, installing it onto the “internal” flash drive.

Booted into puppy linux

All done. Actually it takes quite some time to boot the machine, but that is primarily due to the bios insisting on searching for a harddrive. Unfortunately the IBM BIOS lacks the option to stop it from doing that. After the system is loaded however, it is lightning fast. Way faster than my IBM Thinkpad T400. This is due to the fact that puppy linux loads everything into a ramdisk, so starting program does not require any moving parts to be ready. Programs starts instantaneously. The whole experience just proves (once more), that the computers of today is severely I/O limited, but hopefully SSD will change that real soon now(tm)

Certfied CSA – HP-UX 11i v3

June 17th, 2010

Then I got around to get certified in HP-UX. I passed with a score of 80% in 75 minutes at Atea using a standard Prometric test. I had hoped on a little bit more, but I was under a lot of pressure work wise up until the test, so I did not get around to rehearse as much as I wanted to.

I can recommend ‘HP Certified Systems Administrator – 11i V3, 3rd Edition‘ by Asghar Ghori as a help on  getting your CSA.

Next up is HP-UX CSE – High Availability.

Saved by ZFS – a disk is about to die

May 19th, 2010

I have setup an NFS share under Solaris 10. It utilizes ZFS, which in turn uses  an IBM DS400 for backend storage. On top of that I have nagios running to monitor it. I got an alarm about the zfs pool being in a degraded state. I logged into the system and found this in the dmesg:

May 17 03:20:20 files DESC: The number of checksum errors associated with a ZFS device
May 17 03:20:20 files exceeded acceptable levels.  Refer to http://sun.com/msg/ZFS-8000-GH for more information.

To see more information I ran

-bash-3.00# zpool status
 pool: rz2pool
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
 attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
 using 'zpool clear' or replace the device with 'zpool replace'.
 see: http://www.sun.com/msg/ZFS-8000-9P
 scrub: scrub completed after 5h21m with 0 errors on Wed May 19 08:41:49 2010
config:

 NAME                        STATE     READ WRITE CKSUM
 rz2pool                     DEGRADED     0     0     0
   raidz2                    ONLINE       0     0     0
     c3t21000000D12643DEd0   ONLINE       0     0     0
     c3t21000000D12643DEd1   ONLINE       0     0     0
     c3t21000000D12643DEd2   ONLINE       0     0     0
     c3t21000000D12643DEd3   ONLINE       0     0     0
     c3t21000000D12643DEd4   ONLINE       0     0     0
     c3t21000000D12643DEd5   ONLINE       0     0     0
     c3t21000000D12643DEd6   ONLINE       0     0     0
   raidz2                    DEGRADED     0     0     0
     c3t21000000D12643DEd7   ONLINE       0     0     0
     c3t21000000D12643DEd8   ONLINE       0     0     0
     c3t21000000D12643DEd9   ONLINE       0     0     0
     c3t21000000D12643DEd10  ONLINE       0     0     0
     c3t21000000D12643DEd11  ONLINE       0     0     0
     c3t21000000D12643DEd12  DEGRADED     0     0   234  too many errors
     c3t21000000D12643DEd13  ONLINE       0     0     0

errors: No known data errors

And this is where ZFS is awsome. It may not be the fastest volume manager on the planet, or the smartest. But I trust the integrity of it (having read whitepapers on it).

What is really cool here:

  1. It has detected that the underlying LUN is misbehaving.
  2. It has marked the LUN as degraded
  3. It has saved my data from silent corruption.

There are not many volume managers out there, which does that. I have not lost data, the dataintegrity is still in place and I know what disk is about to fail. Kudos and thanks to the ZFS dev team!

Updating system firmware on an IBM Thinkpad T43 using pxeboot

April 30th, 2010

Recently I got my hands on an IBM Thinkpad T43 without disk drive and cdrom (perfectly OK machine thrown out, apparently for no reason). I decided to update the firmware to the newest version before considering buying replacement parts for it.

So how do you update the firmware on an IBM Thinkpad without floppy or cdrom? You netboot it ofcourse. Needless to say these instructions might also work for other models. And finally: If you break your Thinkpad following these instructions I have no liability and you get to thank yourself and keep both parts!

With the standard disclaimer out of the way, lets start.

First I went to the excelent site thinkwiki.org where I located the latest bios. I then downloaded bios version 1.29 from Lenovo (Notice that two versions of the T43 exists and they are incompatible!)

I turned my attention to my linux server (ubuntu) and configured the dhcpd, tftpd and inetd to allow me to netboot using pxe. First off I installed the four needed utilities.

sudo apt-get install openbsd-inetd tftpd-hpa  dhcp3-server cabextract

When PXE booting a computer, it broadcasts for a lease from a DHCP server on the net. I configured my dhcpd server with the following besides the normal dhcpd options.

sudo vi /etc/dhcp3/dhcpd.conf
...
...
       host t43 {
                hardware ethernet 00:11:25:d6:ef:4b;
                fixed-address 192.168.1.35;
                filename "pxelinux.0";
      }
...
...

You ofcourse have to change the hardware ethernet to the mac address of your Thinkpads ethernetcard. I saved the file and restarted dhcpd with

/etc/init.d/dhcp3-server restart

Next I configured inetd:

vi /etc/inetd.conf
tftp  dgram  udp  wait  root  /usr/sbin/in.tftpd -v -v -v -s /usr/lib/syslinux

Saved and restarted inetd

sudo /etc/init.d/openbsd-inetd

I then configured pxe with a config file that pxelinux.0 expects (your mac address will vary ofcourse) .

mkdir -p /usr/lib/syslinux/pxelinux.cfg
vi /usr/lib/syslinux/pxelinux.cfg/01-00-11-25-d6-ef-4b
DEFAULT t43firmware
LABEL t43firmware
        kernel memdisk
        append vga=normal initrd=flash/t43/70UJ29US.IMG --
PROMPT 1
TIMEOUT 0

Almost there. Next up, get the flash image ready

mkdir -p /usr/lib/syslinux/flash/t43
cd /usr/lib/syslinux/pxelinux.cfg
wget http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/70uj29us.exe

That got you an windows cabinetfile. Extract the firmware from that

cabextract -F 70UJ29US.IMG 70uj29us.exe
Extracting cabinet: 70uj29us.exe
  extracting 70UJ29US.IMG
All done, no errors.

I then powered up the T43. It booted over PXE

I pressed return and the flash program started:

I accepted the (many) warnings and disclaimers….. and

…. nothing happened! It just hung. I thought I had fried my newly aquired Thinkpad. I powered it off and on again just to see that it still worked, and that I was on the same BIOS level. Hmm, now what? It nearly worked, but still no cigar. I decided to take it one level further, doing it all by hand:

Mount the image file by hand using the loop driver:

sudo mkdir /floppy
sudo mkdir /floppy1
sudo mount -o loop /usr/lib/syslinux/flash/t43/70UJ29US.IMG /floppy

Get a standalone freedos boot image (called balder) from the nice guys at freedos.org:

cd /usr/lib/syslinux/flash/t43/
wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/\\
     unofficial/balder/balder10.img
sudo mount -o loop /usr/lib/syslinux/flash/t43/balder10.img /floppy1

Remove a lot of files from balder10.img and copy files over from the IBM flash disk.

sudo rm /floppy1/{display.exe,edit.exe,dosfsck.exe,zip.exe,unzip.exe,\\
                  defrag.exe,fdisk.exe,chkdsk.exe,cwsdpmi.exe,keyboard.sys,\\
                  format.exe,subst.exe,edit.hlp,country.sys,keybrd2.sys,\\
                  diskcopy.exe,edlin.exe,replace.exe,fdiskpt.ini,debug.com,\\
                  mode.com,shrdrv86.exe,xcopy.exe,move.exe,keyb.exe,tree.com,\\
                  fdisk.ini,diskcomp.com,ctmouse.exe,more.exe,shsucdx.com}
sudo cp /floppy/{\$0199000.fl1,06d*,chkbmp.exe,flash2.exe,lcreflsh.bat,logo.bat,\\
                 logo.scr,phlash16.exe,prepare.exe,prod.da*,qkflash.exe,\\
                 readme.txt,tpchks.exe,updtflsh.exe,updtmn.exe,userint.exe,\\
                 utilinfo.exe} /floppy1

# rename the flash file
sudo mv \$0199000.fl1 flash.img

# unmount floppy
sudo umount /floppy1/

Edit the pxe config file (your mac address will vary ofcourse) to use the balder/freedos image file instead of the Lenovo flash disk.

vi /usr/lib/syslinux/pxelinux.cfg/01-00-11-25-d6-ef-4b
DEFAULT t43firmware
LABEL t43firmware
        kernel memdisk
        append vga=normal initrd=flash/t43/balder10.img --
PROMPT 1
TIMEOUT 0

Reboot the T43 machine. Boot over PXE, single step (F8) the freedos start. Make sure you do NOT use EMS or HIMEM. After a brief period of time you should find yourself in an dos prompt, where you run

A:\phlash16.exe flash.img

The system should flash nicely and you should be all done within a minute:

Not for the faint of hearted, but I never promised that ;-)

Firewall in an ZynOS based xDSL router (ie. zyxel P660R-D1)

April 13th, 2010

I recently got xDSL from one of the major danish ISPs. I was very satisfied until I discovered that port 80 was closed. I looked high and low for a solution. Eventually I gave up and contacted the support, which confirmed my suspicion: the router had an firewall which blocked port 80.

The solution is actually quite straight forward:

wan node index 1
wan node filter incoming tcpip 256 256 256 256
wan node filter outgoing tcpip 256 256 256 256
wan node save

And now my blog is accessible for the outside world again.

Portforwarding on a zyxel device using the ZynOS cli

March 29th, 2010

Due to a change of jobs, my xDSL connection was terminated today. Luckily I have other means of Inet access, but given that I run my own server I needed some portforwarding in order to be a happy camper.

Getting access to the router using telnet was easy.

telnet 10.0.0.1 23023

It was harder (hence this post) to figure out to do port forwarding. Basic stuff first. What version of ZynOS?

ras> sys version

 ZyNOS version: V3.40(AHX.4) | 05/02/2008
 romRasSize: 1407100
 system up time:   513:16:29 (b0380b6 ticks)
 bootbase version: V1.06 | 1/20/2006

Using help I figure out that I needed to go for the ip section

ras> help
Valid commands are:
sys             exit            ether           wan
ip              bridge          lan

But then I was lost

ras> ip
address         alias           aliasdis        arp
dhcp            dns             httpd           icmp
ifconfig        ping            route           smtp
status          udp             rip             tcp
telnet          tftp            traceroute      xparent
tredir          backup          mcastChan       igmp
policyrouting

Where was the portforward section?? I litteraly used an hour figuring out what to do. It turns out, that it is a leap of faith kind of thing:

ras> ip nat
hashTable       server          service         resetport
incikeport      session         addrmap         AOL-version9

Lo and behold, it is all there ;-) The rules are ordered in sets, where you edit a given rule in a set. When you get hold of the syntax it is actually quite easy

ras> ip nat server disp
Server Set: 1

Rule         name             Svr P Range    Server IP       LeasedTime
 Active  protocol     Int Svr P Range    Remote Host IP Range
--------------------------------------------------
 1 DMZ                       default             0.0.0.0   0
 No      ALL               0 - 0              0.0.0.0 - 0.0.0.0
 2 WWW                       80 - 80            10.0.0.5   0
 YES      ALL               0 - 0              0.0.0.0 - 0.0.0.0

Then you load a set, edit the rules and write the set. Eg

# Load set 1
ras> ip nat server load 1
#edit rule 2
ras> ip nat server edit 2 forwardip 10.0.0.5
# save set 1
ras> ip nat server save

All done.

Non-HP harddrives in an HP MSA20

March 11th, 2010

A customer asked me if it was possible to use non-hp drives in an HP MSA20 as they costed a lot less than HPs own drives. I honestly said that it would require a POF. The customer accepted the initial expense of single 1TB SATA drive.  I fired up hpacucli to figure out what was up and down on this

=> ctrl ch="mirror" show config detail
....
....
physicaldrive 1:1
Box: 1
Bay: 1
Status: OK
Drive Type: Data Drive
Interface Type: SATA
Size: 1000.2 GB
Firmware Revision: HPG1
Serial Number: 9QJ2B4GD
Model: HP GB1000EAFJL
SATA NCQ Capable: False

As HP does not make harddrives, but uses OEM drives with custom firmware I had to figure out what types of drives was in there. The easiest solution would be to shut the box down and pull out a drive to inspect. Having dealt with HP quite a lot, I know that they also remark the drives, so I would probably not be able to see what types of drives was in there, leaving me with guessing if I choose to go that route.

Instead I opted for figuring out what type of drive it was likely to be based on the firmware.  I googled a bit and found that the MSA20 could support up to 1TB disks. A bit more googling yielded this advisory from HP about upgrading firmware on Seagate drives to HPG6. Based on the age of the MSA20 in question, the age of the 1TB HP disks we already had in them, I decided it was most likely to be Baracuda 7200.11 drives that HP utilized for this and thus we ordered one of those.
Drive arrived. We put it in. Rescanned and lo and behold:

physicaldrive 1:6
Box: 1
Bay: 6
Status: OK
Drive Type: Data Drive
Interface Type: SATA
Size: 1000.2 GB
Firmware Revision: CC38
Serial Number:             9VP4D0ZA
Model: Seagate ST31000528AS
SATA NCQ Capable: False

A non-HP drive working. We have now placed an order for 19 x 1TB Seagate drives.

Your millage may wary if you try this. It is also worth mentioning that it would be an option to test non-seagate disks and/or bigger disks. Beware of the heat and power requirements though! HP themselves only sells the MSA20 with upto 1TB disks.

Finally for the record, it should be state that this was on an MSA20 with this firmware level:

MSA20 in mirror
 Bus Interface: SCSI
 Serial Number: PAAAC0PMQTR7V0
 Chassis Serial Number: E01RMLJ17M
 Chassis Name: mirror
 RAID 6 (ADG) Status: Enabled
 Controller Status: OK
 Chassis Slot: 2
 Hardware Revision: Rev A
 Firmware Version: 2.08
 Rebuild Priority: Medium
 Expand Priority: Medium
 Surface Scan Delay: 3 secs
 Cache Board Present: True
 Cache Status: OK
 Accelerator Ratio: 50% Read / 50% Write
 Drive Write Cache: Disabled
 Read Cache Size: 56 MB
 Write Cache Size: 56 MB
 Total Cache Size: 112 MB
 Chassis Slot 2 Battery Info
 Battery Pack Count: 2
 Battery Status: OK
 Host Bus Adapter Slot: Slot Unknown
 Host Bus Adapter Port: 1
 SATA NCQ Supported: False

New job – Senior Operations Specialist in NNIT

March 1st, 2010

Well, then it happened.  I quit Telia. I will surely miss my colleagues which are among the smartest and most dedicated people in Denmark, but it was time to move on to new worlds.

I look forward to work for NNIT. A title of Senior is new to me. Let us see, if I can lift the burdens put onto my shoulders.