Home Uniquely NZ Travel Howto Pauline Small Firms Search
Diary of System and Website Development
Part 17 (January 2010 -> October 2010 )

2nd January 2010

Unlocking a Vodafone branded Huawei E160 USB Broadband Dongle

Firstly some areas of Vodafone themselves are not sure if this can be done - it is no good ringing Customer Services on 191 who will tell you that they can not get unlock codes for mobile broadband - instead look at the posting on the Vodafone eForums http://forum.vodafone.co.uk/index.php?showtopic=27722 and then make a request on their form at http://help.vodafone.co.uk/contactus .

Whilst waiting for the unlock code I tried to find out how you enter it into a Dongle rather than a phone where you wrap it up in some codes and 'dial' the result. The Vodafone dashboard under Windows is based on the one from Huawei but has the facility removed. After a lot of searching I found that it can be done by sending a special AT string to the modem. Most modems still have a serial connection to the computer and are controlled by a set of serial commands sent to them which are extensions of the original Hayes Modem AT commands going back to the first serial dialup modems of 30 years ago. The AT stood for ATtention. Wikipedia wil give you a start if you want to understand a bit more - see http://en.wikipedia.org/wiki/AT_commands .

The AT commands I have found which seem to be relevant are:

AT^CARDLOCK?

This is the command to interogate the locking status of the dongle and SIM card which will respond

^CARDLOCK: 2,10,0

for an accepted and usable SIM or

^CARDLOCK: 1,10,0

for an unacceptable SIM ie one that you are locked out from

Checking the status is a good way to ensure you understand what you are doing and that you are entering AT commands correctly and you should try with your current working SIM and the one you wish to use just in case it is already usable.

Now how to we actually send the commands? This needs us to connect to the modem (USB Dongle) using a serial terminal where we can type the commands, send them and look at what response comes back. There is a terminal program available under Ubuntu which makes this very easy. Load it by Applications -> Add/Remove and search for Serial port terminal and Install it. It will then be avialable by Applications -> Accessories -> Serial Port Terminal

Make sure the dongle is plugged in:

Run the Serial Port Terminal. Ffirst set up the port by Configuration -> Port -> Port: which you set to be /dev/ttyUSB0 (type it in to the Port: box as it is not on the drop down list) -> OK . Note you have to do this every time you run the program, it is a very basic tool!

Now you can enter AT return and the response should be OK - if the AT is not echoed or you do not see the OK check the Port is set correctly.

You can now try: AT^CARDLOCK? with your current working SIM and then with the one you wish to use just in case it is already usable and as a baseline. The following screen shot shows the Window with this when using my Vodafone NZ SIM - it looks just the same but with a 2,10,0 when I use my Vodafone SIM provided with the Dongle.

Only after you have done the above and are happy with what you are doing should you use the code you are sent by vodafone as you have a limited number of attempts before you are locked out from the Dongle. The string you send has no spaces and I understand the quote are important and you should replace the 47938060 by your NUC code

AT^CARDLOCK="47938060"

You will see above this returned OK as the code was accepted

You can now try AT^CARDLOCK? again and it should now respond with: ^CARDLOCK: 2,10,0 instead of ^CARDLOCK: 1,10,0 as shown at the bottom above. The screen dump is of the actual proceedure when I unlocked my Dongle and has a couple of extra AT commands to check everything was working before each stage - note that the commands are not case sensitive although the convention is always to use upper case.

I have now reached NZ and have checked that the dongle has been unlocked so that it works with my NZ Vodafone card as (March 2010)

This proceedure needs care and is at your own risk as it is not in any way supported or authorised by Vodafone UK - they will offer to send you a program to do it if you telephone them and are in the UK and are using Windows and their dashboard.

4th January 2010

SMS Tools under Linux - knokii and friends

I have been looking for a way to handle SMS messages under Ubuntu, in particular when using the Dongle to avoid having to use Windoz. I have not found a complete solution other than the very complex Vodafone Dashboard I covered much earlier. I have, however, found a very simple tool- gnome-phone-manager - which allows me to see incoming SMS messages whilst it is running and I hope it can be run in parallel with a Mobile Broadband connection as it can be set to use an alternative USB port into the Dongle. Some users find you can run both, some not.

The main tools I found available within the Ubuntu distributions are based round the package gnokii. The useful interfaces are Xgnokii which is a GUI front end to gnokii and gnome-phone-manager which is an even simpler applet which sits in the tool tray and alerts you to incoming SMS messages and allows you to reply or write new ones.

Although you can install knokii using the Synaptic Package Manager you still need to copy a configuration file /etc/knokiird into your home directory, rename to .knokiirc and configure for your connection (path to /dev/ttyUSB1 ) and model to AT (AT command set interface) at a minimum. You can at least configure the gnome-phone-manager within the package but you do need knokii to be set up first.

In trying to get to grips with what was going on I found a very full explanation and tutorial which provides many of the basic AT codes and demonstrations of how you can use them to test the facilities of a GSM phone or dongle to send and receive SMS messages at the Developers Home SMS Tutorial. It is very comprehensive and runs to 66 pages, it gave me a much improved understanding and enabled me to receive and look at an incoming series of TXT messages quite easily.

5 March 2010

Vodafone K3565-Z (ZTE MF6xx series)

I have just bought an extra USB dongle in New Zealand which was on a special offer and was unlocked. I thought it was a K3565 like my existing one but I quickly discovered it was a K3565-Z which contained a completely different chipset from a different manufacturer ZTE, a large Chinese manufacturer, which was not recognised by by Ubuntu Jaunty or even under Windows by my existing Vodafone Dashboard. I found various bits of information on the internet and I have got it working. The stages I had to do were firstly to get it working under Windows to check it was not faulty, switch its mode using terminal commands under Windows so the auto-mounting function was turned off then do some configurstion so it cound be started by GnomePPP - as yet it is not recognised by the Netmanager Applet, hopefully Lucid will have support built in. The stages I took were:

I uninstalled the existing Windows Vodafone Dashboard and reinstalled from the K3565-Z following the Vodafone instructions.

I then checked it was recognised as a modem by the dashboard and closed the dashboard.

I then looked in the Device manager to find which serial port had been used to mount it.

I started Hyperterminal and sent a magic AT command AT+ZCDRUN=8 to permanently turn off the auto-mount function. It should reply Close autorun state result(0:FAIL 1:SUCCESS):1 This means that it will be detected as a different device under Linux in lsusb. It can be turned back on by AT+ZCDRUN=9.

Now I switched to Linux and checked this by lsusb. The important change is that it is now detected as ID 19d2:0063 rather than ID 19d2:2000. Different versions of ZTE modems used by Vodafone seem to have a different code to the 0063 - earlier versions seem to have 0031 and 0052 !

The device will have been mounted as a memory stick rather than an autostart CD and this can be found in Places as VMC Lite 9.3.6 and ejected.

It still does not show up as a modem if you do dmesg | grep tty so we have to force the loading of the usbserial driver after which it should be detected

sudo modprobe usbserial vendor=0X19d2 product=0x0063
after which you get

pcurtis@xxxxxxx-xxxxx:~$ dmesg | grep tty
[ 0.004000] console [tty0] enabled
[ 1131.722724] usb 1-3: generic converter now attached to ttyUSB0
[ 1131.722958] usb 1-3: generic converter now attached to ttyUSB1
[ 1131.723197] usb 1-3: generic converter now attached to ttyUSB2
[ 1131.723389] usb 1-3: generic converter now attached to ttyUSB3
[ 1131.723623] usb 1-3: generic converter now attached to ttyUSB4

I now used gnomePPP to connect and that autodetected a modem on /dev/ttyUSB3 which enabled me to connect to the internet using an APN of www.vodafone.net.nz as usual.

The above is a summary of my tests which took me an hour and a half and is just a proof that eventually the modem can be made to work.

If you do not want to inhibit the autostart facility then you should start looking for how to do it with usb_modeswitch and look at http://ubuntuforums.org/archive/index.php/t-1065934.html and https://lists.ubuntu.com/archives/ubuntu-za/2009-July/003718.html for more ideas. It s also reported to work with the latest software from betavine.

6 March 2010

Further Work on Vodafone K3565-Z (ZTE MF6xx series)

I have un-done some of the actions done during testing and made a few more perminent and I now have a system which will reliably mount the Vodem and connect using gnomePPP. The stages are:

Use Windows to turn off the autostart function. (This might be possible under Linux by ejecting the drive when it mounts, seeing if you get a change under lsusb and then doing a modprobe as above to get a serial link at which point you could use the Linux Serial Port Terminal on /dev/ttyUSB1 to make the change - NOT TESTED)

The AT command is:

AT+ZCDRUN=8

and the response is

Close autorun state result(0:FAIL 1:SUCCESS):1

This is reported to work with many ZTE dongles but try googling first.

[Optional - Install udev-extras using Synaptic Package Manager - This probaly has no benefit but at some point in development this should enable the Network Manager Applet to also detect the Vodem and remove the need to use gnomePPP]

Open /etc/modules by

gksudo gedit /etc/modules

and add the string

usbserial vendor=0X19d2 product=0x0063

Note that the vodem is being periodically changed so the product string may change - get it by lsusb after turning off the autostart function)

Use /dev/ttyUSB3 in gnomePPP setup otherwise set up as per GnomePPP connection utility for Ubuntu.

Telephone Utilities to support use of USB mobile broadband sticks

I have also been experimenting with the Linux telephone utilities to access this stick, for background see SMS Tools under Linux - knokii and friends above. I found using these that there seem to be two responsive serial USB ports for the ZTE modem which are /dev/ttyUSB1 and /dev/ttyUSB3 which can be interogated for device information etc by gnokii.

Tests using gnokii

gnokii --identify is the first test of any stick - the important part of the output from the K3565-Z was

Received message type 06
IMEI : 35651703397xxxx
Manufacturer : ZTE INCORPORATED
Model : K3565-Z
Product name : K3565-Z
Revision : BD_P673A2V1.0.0B09
Serial device: closing device

I have been using /dev/ttyUSB3 for and internet connection. I have been able to send and receive txts using /dev/ttyUSB1 on the ZTE stick and also on the original Hauwei Vodafone Z3565.

knokii can be used to read messages from the stick. The gnokii terminal command to read all the current SMS messages from the phone is:

gnokii --getsms SM 1 end -a Desktop/SMS_Messages.txt
This reads sms messages (gnokii -- getsms) from the Simcard (SM) from message 1 to the end and appends (-a) to a file Desktop/SMS_Messages.txt

You can delete a message by

gnokii --deletesms SM 4
Which deletes message a message gnokii -deletesms stored in SIM (SM) location 4 .

gnome-phone-manager Applet

The gnome-phone-manager applet is basic but easily installed by the Synaptic Package Manager. This allows one to send and receive SMS messages from a GUI interface accessed via an Applet which resides in the tool tray once it has been run from Applications. This is enough to enable me to interogate the NZ phone balance by BAL to 777 and MYADDONS to 756 as well as various purchase of bundles and top-ups. The SMS messages seem to only be displayed when the applet is running (and you have a signal) but this is fine for quick interogations of the balances and any other interactions where you expect a near instantaneous response. It means that one can do almost everything without a Vodafone Dashboard and Windows or use of the internet. A better SMS package is still needed for checking for 'old' SMS messages and cleaning up. I tried xgnokki which works to some extent but the display is odd and it does not access everything.

Wammu Telephone Manager

I finally found a package which does what it is advertised to do as far as sending and receiving SMS messages and claims to work with all AT command compatible phones including USB Mobile Broadband Dongles. Wammu is a GUI front end to Gammu which had its early origins in knokii. It can be installed by the Synaptic Package Manager and there is also a Launchpad PPA available so you can get the latest versions and have them automatically updated - I used the straight version from Jaunty for these tests.

When I ran it with the Vodafone K3565-Z stick and NZ SIM it took me to various set up screens where I used the manual option setting it to /dev/ttyUSB1 and for at communication. You first need to use the menus to connect to the phone (Phone -> Connect) and then you can use Retrieve -> Messages to access all the SMS messages that are still on the phone - it retrieves both those in the phone or the SIM memories.

You can send a single or multipart message by Create -> Message

If you right click a message you have options including delete.

You can Backup the messages in many ways including sending them to an IMAP server (only tested to files)

You can Retrieve Calls and Contacts (tested for preset Contacts and Outgoing calls)

You can set an option to automatically connect to a phone when you run the program (Wammu -> Settings -> Gammu tab and tick box) but not to Retrieve Info or Messages.

So far everything I have used has worked and it does everything I need to handle SMS messages on my Mobile Broadband USB sticks and it should be able to do much more via a Bluetooth to my phones as it also handles contacts and calanders. I have not tried it with Windows Mobile but do not expect that to work as Microshaft rarely implement any common standards as one would expect.

11 April 2010

Ubuntu Lucid Lynx 10.04

All of my machines are now running on versions with only short term support and the two MSI Wind U100 netbooks are using Jaunty Jacalope which runs out of support when Lucid Lynx is released. I have therefore been having a look at the Beta 2 release to see if it gets round the problems of Karmic Koala on the Winds so I can upgrade. I am also looking for out of the box support of the various new models Mobile Broadband USB sticks such as the Vodafone K3565-Z.

Lucid LiveCD on MSI Wind U100

I downloaded a LiveCD of beta1 before realising that beta 2 would be available the next day. I used an external USB CD on the Wind and it loaded and ran almost perfectly from the start.

Overall this is much better than Karmic Koala on everything I tested and with enough advantages to upgrade even if support was continuing. At this point I was not able to test Thunderbird and was not aware it had been upgraded to version 3, a big change.

Upgrade of HP Desktop to Lucid

My HP desktop has been running Kalmic Koala and has few programs loaded as it is used almost exclusively for Video editing at present. Karmic Koala had many innovations including the use of Grub2 which gave very slow boot times on my machine which has multiple hard drives.

I first ran using the LiveCD and that seemed fine so I decided to risk a distribution upgrade although it would be a Beta 2 as I wanted some more information before I risked upgrading any of the more critical machines. I followed the suggested procedure of using a terminal command to start the upgrade which took a couple of hours and downloaded about 850 Mbytes. The only interaction was about Grub2 and I was asked to tick or otherwise a window with about twenty check boxes to chose partitions where the Grub Boot loader would be installed - the advice seemed to be to choose all the root of each drive and not the individual partitions - I hope this is only a question when one is upgrading a machine with multiple hard drives as it will be difficult for a normal user unless the advice is improved and the defaults set up. I was very relieved when it rebooted successfully. Negative findings are:

Overall this looks like a typical video driver problem and there have been various indications the new ATI drivers are giving problems. Overall I am happy to continue to use it as it is not a critical machine and I rarely need to use Suspend or Switch, only Google Earth is a problem as that was my best machine for it.

Thunderbird 3 and Lucid

The next phase of testing was Thunderbird when I discovered it had been upgraded to version 3 which is a major step and a very recent upgrade which seemed to have some development problems. The problems are not fundamental to Ubuntu and it was probably inevitable that the bullet had to be bitten when producing a Long Term Support version with a 3 year life. The problems will be initially increased however as Ubuntu has integrated some of the Extensions such as Lightening into its own Update Centre.

Initial tests showed some problems with opening my existing profiles:

I uninstalled the version of Lightening which showed as installed in the Synaptic Package Manager which was version 0.9 and web searches shows to be incompatible with Thunderbird 3

I installed Lightening version 1.01b which is compatible but only a Beta - it can be found and loaded within Thunderbird and all my calendars and tasks reappeared. The extension is now installed into the profile and may conflict if/when Ubuntu puts it into the Update Centre but for now everything works in it.

I uninstalled the version of MoreFunctionsForAddressBook and reinstalled the one compatible with Thunderbird 3 - they have the same version number which is confusing and the only one that worked was from the authors site.

Installing Thunderbird 3 on Kalmic and Jaunty.

I found a repository which contains the latest released versions of Thunderbird and Firefox called Ubuntuzilla aand added that to my Third Party Software Sources lists used by the Synaptic package manager. The instructions are clear and it only involves copy/pasting three commands and running each in turn in a terminal to make Thunderbird 3 available to Install. I uninstalled Thunderbird 2, Installed Thunderbird 3 and used the profile manager to point to my old profile. I have searched the internet to find out if the profile is then backward compatible and it seems it is but I do not plan to try - instead I will upgrade all my machines to Thunderbird 3. If you have Thunderbird 3 already installed then you do not have to uninstall it, the changes to the new versions will be automatic

The commands are:

echo -e "\ndeb http://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all main" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C1289A29
sudo apt-get update

The first line may be wrapped round - if so make sure you copy all of it into the terminal.

The packages are named firefox-mozilla-build, thunderbird-mozilla-build, and seamonkey-mozilla-build.

Upon installation, the actual binaries are installed into /opt/(firefox|thunderbird|seamonkey), a link is placed into /usr/bin/(firefox|thunderbird|seamonkey), and the same link from the Ubuntu-repositories version of these packages is diverted to /usr/bin/(firefox|thunderbird|seamonkey).ubuntu.

A menu shortcut is also created, which places an item named Mozilla Build of (Firefox|Thunderbird|Seamonkey) into the Applications -> Internet menu.

There is a potential issue with a library package which the latest versions have as a later version is available do I not have so far seen any problems from it being missing. The workaround if you have a problem is to install the .deb from Jaunty and the URL to get the libstdc++.so.5 deb is:

http://packages.ubuntu.com/jaunty/i386/libstdc++5/download

Advantages of Thunderbird 3

I am far from convinced about all the changes being useful or improvements but in most cases you have the option of displaying/doing things the old way and there is compatibility manager which comes up immediately when you use an old Thunderbird 2 profile or upgrade.

The major obvious change is that the new interface makes extensive use of tabs by default and Messages, Calendars, Task lists etc all open in new tabs. I am not totally convinced about that approach for messages but it is growing on me and I have not used the option of switching back. The tabs are a very useful alternative to new windows or switching the display for everything else including search results. One just need to avoid have too many tabs open.

The other useful improvement is in search which gets better and better as you find out its capabilities. It is quite fast as everything is now indexed and the various ways of restricting the search are very easy and effective. The timeline is far more than a gimmick and as you hover over a potential constraint you can also see the timeline change - all very clever.

There is a one click Address book feature which allows you to add an address very quickly and also see from a 'star' whether any email is already in your book.

The three new features above are more than enough to make the change worthwhile andthere are many more which I have not explored.

2 May 2010

Installing Ubuntu 10.04 Lucid Lynx

My procedure for the upgrade to a new distribution is always to first make a Tar backup archive of the my home folders - they are all on sparate partitions which I recommend. If not this is the time to think about doing so.

Distribution Upgrade Kalmic - Lucid on homebuilt 'workhorse' Desktop

I used the Distribution Upgrade path for my workhorse machine and that was very slow (1 hour for a 1100 mbyte download and then about 2 hours for the upgrade and I had to be present as there are time when it asks questions on what you want to keep of configured files although some were automatically kept this time like the sudoers one which i modify for true crypt. The most difficult one is for Grub2 and I put the loaded on the root of every drive as they suggested. The only problem seems to be with the change to Firefox 3.6. Some work on configuration files I expected for example for Truecrypt did not materialise. I will report when I find out if any other files have been kept. I had to renable the repositories and make sure they were correct and also I had a problem with a change in fstab so one drive was being mounted twice in different ways but overall a good result. I think it was no faster than a fresh install even taking into account reloading repositories and programs.

Problems after upgrade with Firefox 3

The most time consuming problem I found was that I had reverted to an earlier version of the Adobe Flash player and however many games I played and different versions of Firefox I loaded and the ways I updated Flash it still showed a version 9 in Tools -> Addons -> Plugins. I finally found that my basic configuration must be very old and under /home/username/.mozilla/ there was a plugins folder which contained an early version rather than the new mechanism of a complex series of Links ending up in this case at /usr/lib/flashplugin-installer/libflashplayer.so - I first tested my hypothesis by replacing the copy of the file with the new one and that worked so I then made a link to /usr/lib/flashplugin-installer/libflashplayer.so which I home will be updated correctly. I believe that I could also have renamed /home/username/.firefox and let Firefox generate a new version and then set it to use my old profile.

 

Fresh Install on Toshiba L20 Pro Laptop and MSI Wind U100

Partitioning if you have a separate /home partition

I chose the custom setting - Specify partitions manually (advanced) and then edited four partitions to point to / /home /media/DATA and /windows. ONLY mark / for formatting. This leaves /home unchanged with all my configuration and mounts the DATA partition for me. The /windows is optional as a mount but the partitioner seems to want you to mount it as it notifies you and gives achance to backtrack. If you do not have a /home partition now is the time to create one by dividing your root ( / ) partition

Modifications to /etc/fstab

I used the partitioner to give a mount point to DATA but /etc/fstab still needs to be modified if you intend to use Unison to include a uid=yourusername

[Re-]Loading Programs available via apt

I have updated my script and it proved very effective. The Install from CD and loading the program suite from the script took 61 minutes on the MSI Wind U100 with external CD drive and Internet downloadsof programs.

Other Programs

The only high profile/urgent requirements were for Truecrypt where one downloads an install file common to all linux varients and Picasa which is a .deb file

Other repositories

Zygrib and Google (Picasa) have repositories and for the future ubutuzilla for major monzilla version updates.

Toshiba still needs MadWifi driver

The built in Wifi Driver still gives problems on the Toshiba L20 so the MadWifi drivers were installed

Common Problems and Configuration after Clean Install or Distribution Upgrade

Moving the Minimise, Maximise and Close buttons to the right.

Lucid has chosen to move the buttons to the left as in Apple rather than the right. To restore theusual placement then in a terminal do

gconf-editor

and follow apps -> metacity -> general and change the button_layout value to menu:minimize,maximize,close

Themes for Lucid

I do not like the very dark Ambience theme and prefer a blue one but I found many of the themes that were in previous versions had been lost. I found many can be loaded using the Snaptic Package Manager or apt and this terminal command will load a lot of useful ones at the expense of 50Mbytes of disk space

sudo apt-get install gnome-themes gnome-themes-extras gnome-themes-more humanity-icon-theme tango-icon-theme tango-icon-theme-extras human-theme tango-icon-theme-common tangerine-icon-theme

Note: The above is a single line when you come to cut and paste into a terminal

Display Timeout settings and request for passwords

The defaults seem to have been changed and the screen has been blanking after about 10 minutes idle time which is tedious but what is worse is that it needs a password to log back in again. These settings are controlled by several mechanisms and settings and are not easy to fathom out. Firstly one should try via System -> Preferences -> Screensaver and System -> Preferences -> Power Manager and one should be able to set the screensaver to blank the screen after 2 hours and not request a password and by clicking at the bottom you can also reach the power manager and set suitably long times there as well - this seems to have worked for me.

If this does not work there are more settings accessable via a terminal and gconf-editor -> apps - gnome-power-manager and gnome-screensaver. I assume some of these will be overwritten if you use the Preferences route. Note these settings as there is no undo or reset to defaults available. The sections of interest have names like lock and timeout. There is also a box to use the lock setting from the screensaver for other choices on presenting a login box. I will report when I am satisfied I have settings which work as one needs several hours before on knows that the settings are correct. If this does not work there is a can of worms called DPMS and X configuration files to open!

Changes in Wine

The Wine version has been changed to the beta version 1.1.42. If you want an earlier version for compatibility uninstall the higher version just called Wine using the Synaptic package Manager and instal version 1.0.1 which is available as Wine 1.1 . Search for Wine and they will all show up. You will need the matching Gecko. Even after that I could not get First Class Personal to work any more as it needs a different version of a library ld-2.11.1.so which is called by a link called ld-linux.so-2 - both are in /lib and in earlier versions of Ubuntu it was ld-2.9.so which was called. So far only FC personal has been affected.

Installing Sun Java on Lucid

The Java now used by default is the Open Source rather than Sun Version which is now only in the partner Repository which has to be enabled. The Open Source plugin is called IcedTea or something like that. I have installed the 'proper' Sun Java but had difficulty in making it the default as the proceedures I used earlier give lots of warnings but still seemed to work and the Sun java seemed to turn up. There is a test page at: http://www.java.com/en/download/help/testvm.xml to check.

First I have modified my script to load the Sun java before ubuntu-restricted-extras which loads the Open Source equivalent.

Having installed Sun Java 6 one must now make changes so it is used by default.

First check for which version you are using by opening a terminal and doing

java -version

Now see what others are present, 

update-java-alternatives -l

I found the correct one was loaded but not the default. So if you have a Sun Java loaded then select it by name, for example 

sudo update-java-alternatives -s java-6-sun

This gave a series of comments as not all the facilities could be replaced but it did seem to have changed the Firefox plugin correctly

I have since found a better option

sudo update-alternatives --config java

This provided the following output

Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode
* 2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode
Press enter to keep the current choice[*], or type selection number:

I have not used it for real yet

Fonts

After either Upgrade you may need to reinstall your extra fonts.

OpenOffice Grammar Checker

This will need to be be reconfigured.

It needs the machine you are using to have Java from Sun Microsystems installed, and a the Java runtime environment selected in Open Office before you install this extension. This is set by Tools -> Options -> Java in any OpenOffice program - you will have to wait a long time and you are likely to have several version 6s (1.60_xx ). Versions of Java less tha 1.50_xx may fail to work and in version 6 you need higher than 1.60_04. Current version is 1.60_20 .

If you are using Ubuntu then you must also add the java package to OpenOffice as it is not installed in Ubuntu by default. System -> Administration -> Synaptic Package Manager and Search for and Install openoffice.org-java-common before proceeding.

To Install, download the file from the site and Double click LanguageTool-1.0.0.oxt to install it. If that doesn't work, call Tools -> Extension Manager -> Add... to install it. Close OpenOffice.org and re-start it. Type some text with an error (e.g. "This is an test." - make sure the text language is set to English) and you should see a blue underline.

Power Mangement on the MSI Wind U100

I have had a problem with the Power Management - when one unplugs from the mains the battery indicator shows an incorrect low level and the machine immediately shuts down. I have fixed it by using an option to use the battery charge level rather than time to go which has hidden the problem.

gconf-editor

Then apps -> gnome-power-manager -> general and uncheck use_time_for_policy box.

This removes some of the useful information on the time left to run etc., but at least leaves the machine useable. I also set When Power is Critically Low to Hibernate in the Power Manager Window.

It looks as if some calibration curve has got screwed up as when I switch to battery the Indicator Applet Notification comes up saying two minutes to run regardless of the battery level. I have tried a new user but that made no diference so I need to find where the calibration curves are hiddden in the system or file a bug report.

I found a bug report Power manager mistakenly thinks my battery power is critically low, and hibernates -- MSI Wind U100 and made the following posting:

I can confirm I am also seeing the problem on an MSI Wind U100 (with original bios) and had found the fix using setting 'use_time_for_policy' to FALSE works. The problem occurs with two different batteries.

Looking at the various charts one can view using the gnome-power-manager gui there seems to be a lot of random large values after a unplugging and plugging in the adapter both in charge and discharge times.

Excerpt from upower --dump shortly after a change shows
.........
state: discharging
energy: 22.3998 Wh
energy-empty: 0 Wh
energy-full: 22.6218 Wh
energy-full-design: 24.42 Wh
energy-rate: 11.3775 W
voltage: 12.152 V
time to empty: 2.0 hours
percentage: 99.0186%
capacity: 92.0455%
History (charge):
1273505398 99.019 discharging
1273505367 99.460 discharging
1273505336 99.902 discharging
History (rate):
1273505398 11.377 discharging
1273505367 11.466 discharging
1273505336 11.400 discharging
1273505334 13.120 discharging
1273505332 727.438 discharging

Daemon:
daemon-version: 0.9.1

There seem to be two 'extra' anomalous readings in the rate history which do not match readings in the charge history. The idea of a delay seems a good one until real cause is found especially if it is Bios related.

I hope this can be fixed soon as such problems give Linux a bad name especially with owners of MSI machines after all the problems with Karmic. It took me 4 hours to find a fix and another hour before I came to this bug report hidden amongst many others for the gnome-power-manager. It wold have taken a lot longer if I did not know about and use gconf-editor. I am keeping our other Wind on Jaunty a bit longer which has behaved flawlessly for a year.
Add comment

Solution to MSI Wind U100 'Critical Power' Anomaly

The MSI Wind and many other netbooks and laptops have a very large power surge shown after unplugging and plugging in the power adapter. This is typically 700 watts and is enough to trip the 'critical power' shutdown if it is calculated on time remaining. The symptom can be reproduced if you unplug the power adapter with machine on - you will get a critical power message and the machine will then hibernate which is a triffle annoying if the battery is full.

The 'critical power' criteria can be set to use the battery charge remaining instead and there is a setting in the gnome-power-manager to do that but it is not accessible from the normal GUI. You need to use a terminal and run

gconf-editor

This can also be accessed by enabling it in Applications - it is very powerful and you can easily make a system unusable so it is hidden. To enable it Right Click on Applications -> Edit Menus -> System Tools and tick the box beside Configuration Editor. It will now be available under Applications -> Sstem Tools -> Configuration Editor.

In Configuration Editor -> apps -> gnome-power-manager -> general and untick use_time_for_policy

It seems that a settling time was used in Hardy and Jaunty which is not applied in Lucid but this is a permanent fix for each user - it may need to be reapplied for other users.

Problems with very slow error checking of Drives

This turned out to be a known problem which as been solved by an updated module and clears the last known problem that I have had with Lucid

19th May 2010

Unetbootin

Unetbootin now has a ppa repository which can be added by he following command.

sudo add-apt-repository ppa:gwibber-daily/ppa && sudo apt-get update

Pinnacle DVB-T stick.

This is partially recognised if one uses

sudo modprobe em28xx card=45
but it is still not recognised by Kaffein which I loaded to test it out. Same with Me-TV - seems to be a known problem and simpler to buy another stick from 7dayshop soI have an Artec - T14BR USB 2.0 Mini Digital TV Receiver (DVB-T) on order for £14.99. Both of programs of the programs I tried look as if they will do the job when it arrives although kaffein seems to be more used.

23rd May 2010

Wammu problems with Lucid

Wammu PPA and Lucid: I have started using the latest versions of Wammu, and Gammu which underpin it, from the Personal package Archive (PPA ) repository of the writer because I found that the versions in the standard repositories with Lucid throw an exception and crash when started (Gammu version 1.26.1-2). I tried a total uninstall and re-install without any effect.There was nothing shown on googling or bug reports butt it seems liikely it is a problem with the changes to the latest versions of libraries and backward compatibility. I therefore switched to the latest versions of Wammu/Gammu which take this into account by adding the Personal package Archive (PPA ) repository of the writer by running the following in a terminal:

sudo add-apt-repository ppa:nijel/ppa && sudo apt-get update

and then doing an update using System-> Administration -> Update Manager which finds the latest versions and updates everything.

It now works fine again and I assume that the latest versions (Gammu version 1.27.1-1) will eventually find their way into the Ubuntu repositories but until then I recommend using the PPA and have added it to my standard installation script.

1st June 2010

Identifying and dealing with hardware

The Linux Kernel has support for most common hardware built in but you are always going to find that you will have something which is either very old, very uncommon or very new which needs to have additional drivers. In most cases they will be available and somewhere on the internet there will be clear (or not so clear) instructions. But before you can look for thsoe instructions you need to know how to identify what you have and how much progress has been made in using your hardware. Here I am going to limit what I am covering to two sorts of hardware. Firstly hardware which is built in and on the internal PCI bus structure, more likely than not it will be integrated onto the motherboard - this can include video 'cards', sound systems, network 'cards', tracker pads, wifi, webcams and modems. Secondly USB devices which you just plug in and should be detected and set up for you and some sorts of internal hardware are also handled more like peripherals and are on the USB buses - an example is a bluetooth card may be a USB device although it is internal, some webcams and also multipurpose card readers.

Identifying USB Devices

The easy way to see what USB devices the system knows you have plugged in is to use the lsusb command in a terminal. The output for my MSI U100 Wind with every option turned off and nothing plugged in looks like:

lpcurtis@vortex-ubuntu:~$ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. Mass Storage Device
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pcurtis@vortex-ubuntu:~$

And with the Webcam turned on (Fn F6) Bluetooth turned on (Fn F11), a broadband dongle, a mouse and a Memory Stick plugged in looks like:

pcurtis@vortex-ubuntu:~$ lsusb
Bus 005 Device 002: ID 0db0:a97a Micro Star International Bluetooth EDR Device
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 05c7:0113 Qtronix Corp. PC Line Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 012: ID 090c:1000 Feiya Technology Corp. Flash Drive
Bus 001 Device 010: ID 19d2:0063 ONDA Communication S.p.A.
Bus 001 Device 004: ID 5986:0203 Acer, Inc
Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. Mass Storage Device
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pcurtis@vortex-ubuntu:~$

We can learn a lot from the output of lsusb. Perhaps the most important when we come to work with devices which, unlike these, have not been fully installed is the ID - the first part is a 4 figure hexadecimal number which is unique to the manufacturer and the second is the product from that manufacturer which is faily unique. The manufacturer's ID is often that of the underlying chip manufacturer which may be used in many hardware implementations. This code is much more useful that that on the box or label - for example the Vodafone K3565 mobile broadband dongle has many varients with different chips or microcode in the chips.

The next step is to have a look at the log file which has all the information on the loading of device drivers etc which can be seen by the terminal command dmesg which gives a huge output but the end will show what happens when you plug in a new device. The following is an example of plugging in a Mobile Broadband stick then a mouse and memory stick:

..........
[ 3153.756154] usb 1-2: new high speed USB device using ehci_hcd and address 13
[ 3153.899948] usb 1-2: configuration #1 chosen from 1 choice
[ 3153.901926] option 1-2:1.0: GSM modem (1-port) converter detected
[ 3153.902581] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[ 3153.903077] option 1-2:1.1: GSM modem (1-port) converter detected
[ 3153.903613] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[ 3153.905259] option 1-2:1.2: GSM modem (1-port) converter detected
[ 3153.905740] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
[ 3153.906275] option 1-2:1.3: GSM modem (1-port) converter detected
[ 3153.907237] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB3
[ 3153.908088] option 1-2:1.4: GSM modem (1-port) converter detected
[ 3153.909111] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB4
[ 3153.910123] scsi8 : SCSI emulation for USB Mass Storage devices
[ 3153.911149] usb-storage: device found at 13
[ 3153.911163] usb-storage: waiting for device to settle before scanning
[ 3158.911662] usb-storage: device scan complete
[ 3158.913694] scsi 8:0:0:0: Direct-Access ZTE MMC Storage 2.31 PQ: 0 ANSI: 2
[ 3158.929691] sd 8:0:0:0: Attached scsi generic sg2 type 0
[ 3158.935747] sd 8:0:0:0: [sdc] 3862528 512-byte logical blocks: (1.97 GB/1.84 GiB)
[ 3158.938747] sd 8:0:0:0: [sdc] Write Protect is off
[ 3158.938760] sd 8:0:0:0: [sdc] Mode Sense: 0f 0e 00 00
[ 3158.938768] sd 8:0:0:0: [sdc] Assuming drive cache: write through
[ 3158.950585] sd 8:0:0:0: [sdc] Assuming drive cache: write through
[ 3158.950606] sdc: sdc1
[ 3158.964244] sd 8:0:0:0: [sdc] Assuming drive cache: write through
[ 3158.964265] sd 8:0:0:0: [sdc] Attached SCSI removable disk
[ 3172.672111] usb 3-1: new low speed USB device using uhci_hcd and address 2
[ 3172.847517] usb 3-1: configuration #1 chosen from 1 choice


[ 3172.864295] input: Qtronix Corp USB MOUSE as /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input14
[ 3172.864676] generic-usb 0003:05C7:0113.0003: input,hidraw0: USB HID v1.10 Mouse [Qtronix Corp USB MOUSE] on usb-0000:00:1d.1-1/input0


[ 3182.920158] usb 1-1: new high speed USB device using ehci_hcd and address 15
[ 3183.851070] usb 1-1: configuration #1 chosen from 1 choice
[ 3183.852787] scsi9 : SCSI emulation for USB Mass Storage devices
[ 3183.853744] usb-storage: device found at 15
[ 3183.853759] usb-storage: waiting for device to settle before scanning[ 3188.852791] usb-storage: device scan complete
[ 3188.854247] scsi 9:0:0:0: Direct-Access USB DISK 2.0 0403 PQ: 0 ANSI: 0 CCS
[ 3188.859191] sd 9:0:0:0: Attached scsi generic sg3 type 0
[ 3188.876835] sd 9:0:0:0: [sdd] 7962624 512-byte logical blocks: (4.07 GB/3.79 GiB)
[ 3188.878111] sd 9:0:0:0: [sdd] Write Protect is off
[ 3188.878123] sd 9:0:0:0: [sdd] Mode Sense: 43 00 00 00
[ 3188.878132] sd 9:0:0:0: [sdd] Assuming drive cache: write through
[ 3188.886699] sd 9:0:0:0: [sdd] Assuming drive cache: write through
[ 3188.886713] sdd: sdd1
[ 3188.892339] sd 9:0:0:0: [sdd] Assuming drive cache: write through
[ 3188.892356] sd 9:0:0:0: [sdd] Attached SCSI removable disk
pcurtis@vortex-ubuntu:~$

You can see there is a lot of information here - I have added some blank lines to break out the three devices.

In the case of the USB Mobile broadband Stick it tells us that it has 5 USB serials ports (/dev/ttyUSB0 to /dev/ttyUSB4) and they have been associated with a GSM modem. Also the built in memory slot shows up with a 2 Gbyte microSD card plugged in which is mounted as sdc.

The Mouse is much simpler and is mounted as a generic mouse.

The memory stick is again identified as a 4.07 GB drive and mounted as a removable drive sdd.

You can get a lot more information about the drives you have mounted by System -> Administration -> Disk Utility which will tell you all the mount points for removable drives and all the partition information for fixed drives.

As you will have seen dmesg gives far too much information for easy interpretation and finding what has gone on during the initial mounting of devices rather than those you plug in latter which are at the end. There is a neat little utility called grep which can help here.

First we need to understand the concept of a pipe. When we run dmesg the output is sent to the terminal - instead we can send it to another program this is called 'piping'. If we put a | (vertical line usually at bottom left of keyboard) after dmesg the output is sent as the input to another program such as grep. in its simplest use grep followed by a string only sends to the terminal the lines containing that string so dmesg | grep tty will just print lines containing tty. This is very useful to find if a built in modem has been connected and to what port. This is an example:

pcurtis@vortex-ubuntu:~$ dmesg | grep tty
[ 0.000000] console [tty0] enabled
[ 15.457010] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[ 15.460537] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[ 15.464227] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
[ 15.465069] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB3
[ 15.465714] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB4
pcurtis@vortex-ubuntu:~$

I currently do not have any good examples of what these outputs look like when the devices have not been detected and installed correctly although there are plenty of examples in earlier days! What is more common is that the driver which is loaded is the wrong driver, does does not work or is not as good as other drivers. Examples here included wifi and webcam drivers for the MSI Wind U100 under Hardy Heron and Wifi Drivers for my Toshiba Satellite Pro L20 where the latest Open Source drivers do not work as reliably as the earlier MadWifi driver used in Hardy Heron.

Building your own drivers

The following description covers the most common situation but building a driver varies a little in many cases. Building a driver means that you take the source code for the driver and compile it in conjuction with information on it's 'links' into the particular kernel into what is called a module which is then loaded when required - this may be all the time for a built in peripheral or the module may only be loaded when a USB device is plugged in. The additional driver modules you build have to be rebuilt every time the kernel changes which is very inconvenient compaired to using modules built into the kernel. You also need to make sure the replacement module is the one loaded and you may have to delete some files belonging to any built in modules which are replaced every time the kernel changes. The place where the module is installed may differ between distributions so using a driver for a different distribution may need internal changes to some of its files. This all sounds difficult but in most cases it is all documented on the web site associated with the driver or in ubuntu conference postings and faqs. Once you have done the job the first time rebuilding is much simpler and may only be six or seven lines in a terminal or can be put into a simple script.

The basic proceedure the first time you ever build a driver is:

  1. Install the utilities you need to build drivers - at a minimum you need build-essentials but your particular driver may need additional utilities (sudo apt-get install build-esentials).
  2. Download the driver - this will almost certainly be in an tar archive which is a single file containing lots of compressed files in folders.
  3. Extract the archive to somewhere where you can work on it and keep it for the future (double click and drag the enclosed folder where you want it). The best place to keep the tar archive and the extracted folder structure is your home folder.
  4. The following need to be done after every kernel change using a terminal.
  5. Download the Linux Headers for your current kernel - this is where the build operation picks up the 'links' it needs to the kernel. Most Ubuntu distributions have this installed automatically every time the kernel is updated but it does no harm to ask for it a second time - you will just be told it already present. Or use the Synaptic Package Manager and search for linux-headers-generic. The latest version can be found by uname -r and a common trick is to use `uname -r` instead of an explicite name in terminal commands and scripts ie sudo apt-get install linux-headers-`uname -r` - Note these are back ticks from top left of keyboard
  6. Now change folder to the one containing the driver (where you extracted the archive) by cd extractedfoldername
  7. Carry out the instructions to create and install the driver module. These will vary a little but mostly the writers of drivers use a utility called make which uses a script file called makefile which has all the actions contained in it to create the driver structure within the folder you are using. Another call to sudo make install then copies everything to the correct place. There may first be a call to make clean which gets rid of the previous versions and/or some other script to unload the current driver. Some of these commands need a sudo in front as they need to be run as root to make changes in the root file structure.
  8. In some cases the hardware needs to have firmware loaded every time and this firmware will usually be in a file with an extension of .fw which is placed in a standard folder location of /lib/firmware
  9. You will need to remove the existing driver, make the system aware of the new one and load it if you want to try it out without rebooting - sudo modprobe -r old_module sudo depmod -ae and sudo modprobe new_module
  10. You may need to 'blacklist' the driver module prefered by the kernel so the new module is loaded and used by adding a module name to a 'blacklist' file.

A good example to look at to see all this in action is my write up of how to use the madwifi driver (module ath_pci) instead of the built in wifi driver (module ath5k) on my Toshiba Satellite Pro L20 which is at Using MadWifi drivers for the Atheros Wifi card under Karmic Koala and Lucid Lynx

3rd June 2010

Pinnacle PCTV DVB-T USB Stick for TV reception

My Pinnacle PCTV DVB-T USB Stick was bought to go with the Toshiba Laptop to give TV on our narrowboat before we first got involved with Linux so it must be over 4 years old. The software from Pinnacle was always flaky under Windows. I never really thought there would be any possibility under Linux so had made no serious effort to get it working until a few weeks ago when I had made sme progress but given up and ordered a replacement from 7dayshop - an Artec - T14BR USB 2.0 Mini Digital TV Receiver (DVB-T) for £14.99. I was however looking for an example of how to set about making an unusual piece of hardware work under Ubuntu so i had another go

The first thing to do was to plug in the device and see what showed up with lsusb:

pcurtis@vortex-ubuntu:~$ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID eb1a:2870 eMPIA Technology, Inc. Pinnacle PCTV Stick
Bus 001 Device 003: ID 0bda:0158 Realtek Semiconductor Corp. Mass Storage Device
Bus 001 Device 002: ID 19d2:0063 ONDA Communication S.p.A.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

So it has shown up as a USB device with ID eb1a:2870 which is what we will need to search for drivers and information on how other people have fared - it is promising that it also mentions Pinanacle PCTV Stick. So now we see what has shown up in the log files by looking at the end of the output from dmesg :


pcurtis@vortex-ubuntu:~$ dmesg
.......
[ 72.888113] usb 1-1: new high speed USB device using ehci_hcd and address 4
[ 73.024188] usb 1-1: configuration #1 chosen from 1 choice
[ 73.138063] Linux video capture interface: v2.00
[ 73.194338] em28xx: New device USB 2870 Device @ 480 Mbps (eb1a:2870, interface 0, class 0)
[ 73.195020] em28xx #0: chip ID is em2870
[ 73.275529] em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 70 28 c0 12 81 00 6a 22 00 00
[ 73.275579] em28xx #0: i2c eeprom 10: 00 00 04 57 02 0d 00 00 00 00 00 00 00 00 00 00
[ 73.275631] em28xx #0: i2c eeprom 20: 44 00 00 00 f0 10 02 00 00 00 00 00 5b 00 00 00
[ 73.275653] em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 13 71 08 48
[ 73.275674] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 73.275695] em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 73.275715] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00
[ 73.275736] em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 37 00 30 00 20 00 44 00
[ 73.275758] em28xx #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 00 00 00 00
[ 73.275779] em28xx #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 73.275799] em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 73.275820] em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 73.275841] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 73.275861] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 73.275882] em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 73.275902] em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 73.275926] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0x2f94b2c1
[ 73.275931] em28xx #0: EEPROM info:
[ 73.275935] em28xx #0: No audio on board.
[ 73.275939] em28xx #0: 500mA max power
[ 73.275944] em28xx #0: Table at 0x04, strings=0x226a, 0x0000, 0x0000
[ 73.280156] em28xx #0: Identified as Unknown EM2750/28xx video grabber (card=1)
[ 73.311890] em28xx #0: found i2c device @ 0xa0 [eeprom]
[ 73.318151] em28xx #0: found i2c device @ 0xc0 [tuner (analog)]
[ 73.330153] em28xx #0: Your board has no unique USB ID and thus need a hint to be detected.
[ 73.330170] em28xx #0: You may try to use card=<n> insmod option to workaround that.
[ 73.330182] em28xx #0: Please send an email with this log to:
[ 73.330191] em28xx #0: V4L Mailing List <linux-media@vger.kernel.org>
[ 73.330202] em28xx #0: Board eeprom hash is 0x2f94b2c1
[ 73.330212] em28xx #0: Board i2c devicelist hash is 0x4b800080
[ 73.330221] em28xx #0: Here is a list of valid choices for the card=<n> insmod option:
[ 73.330234] em28xx #0: card=0 -> Unknown EM2800 video grabber
[ 73.330245] em28xx #0: card=1 -> Unknown EM2750/28xx video grabber
[ 73.330256] em28xx #0: card=2 -> Terratec Cinergy 250 USB
[ 73.330267] em28xx #0: card=3 -> Pinnacle PCTV USB 2
[ 73.330277] em28xx #0: card=4 -> Hauppauge WinTV USB 2
[ 73.330287] em28xx #0: card=5 -> MSI VOX USB 2.0
[ 73.330297] em28xx #0: card=6 -> Terratec Cinergy 200 USB
[ 73.330308] em28xx #0: card=7 -> Leadtek Winfast USB II
[ 73.330318] em28xx #0: card=8 -> Kworld USB2800
[ 73.330329] em28xx #0: card=9 -> Pinnacle Dazzle DVC 90/100/101/107 / Kaiser Baas Video to DVD maker / Kworld DVD Maker 2
[ 73.330343] em28xx #0: card=10 -> Hauppauge WinTV HVR 900
[ 73.330353] em28xx #0: card=11 -> Terratec Hybrid XS
[ 73.330363] em28xx #0: card=12 -> Kworld PVR TV 2800 RF
[ 73.330373] em28xx #0: card=13 -> Terratec Prodigy XS
[ 73.330384] em28xx #0: card=14 -> SIIG AVTuner-PVR / Pixelview Prolink PlayTV USB 2.0
[ 73.330396] em28xx #0: card=15 -> V-Gear PocketTV
[ 73.330406] em28xx #0: card=16 -> Hauppauge WinTV HVR 950
[ 73.330416] em28xx #0: card=17 -> Pinnacle PCTV HD Pro Stick
[ 73.330427] em28xx #0: card=18 -> Hauppauge WinTV HVR 900 (R2)
[ 73.330438] em28xx #0: card=19 -> EM2860/SAA711X Reference Design
[ 73.330457] em28xx #0: card=20 -> AMD ATI TV Wonder HD 600
[ 73.330463] em28xx #0: card=21 -> eMPIA Technology, Inc. GrabBeeX+ Video Encoder
[ 73.330469] em28xx #0: card=22 -> EM2710/EM2750/EM2751 webcam grabber
[ 73.330474] em28xx #0: card=23 -> Huaqi DLCW-130
[ 73.330479] em28xx #0: card=24 -> D-Link DUB-T210 TV Tuner
[ 73.330484] em28xx #0: card=25 -> Gadmei UTV310
[ 73.330489] em28xx #0: card=26 -> Hercules Smart TV USB 2.0
[ 73.330495] em28xx #0: card=27 -> Pinnacle PCTV USB 2 (Philips FM1216ME)
[ 73.330500] em28xx #0: card=28 -> Leadtek Winfast USB II Deluxe
[ 73.330506] em28xx #0: card=29 -> <NULL>
[ 73.330511] em28xx #0: card=30 -> Videology 20K14XUSB USB2.0
[ 73.330516] em28xx #0: card=31 -> Usbgear VD204v9
[ 73.330521] em28xx #0: card=32 -> Supercomp USB 2.0 TV
[ 73.330526] em28xx #0: card=33 -> <NULL>
[ 73.330531] em28xx #0: card=34 -> Terratec Cinergy A Hybrid XS
[ 73.330536] em28xx #0: card=35 -> Typhoon DVD Maker
[ 73.330541] em28xx #0: card=36 -> NetGMBH Cam
[ 73.330546] em28xx #0: card=37 -> Gadmei UTV330
[ 73.330551] em28xx #0: card=38 -> Yakumo MovieMixer
[ 73.330556] em28xx #0: card=39 -> KWorld PVRTV 300U
[ 73.330561] em28xx #0: card=40 -> Plextor ConvertX PX-TV100U
[ 73.330566] em28xx #0: card=41 -> Kworld 350 U DVB-T
[ 73.330571] em28xx #0: card=42 -> Kworld 355 U DVB-T
[ 73.330576] em28xx #0: card=43 -> Terratec Cinergy T XS
[ 73.330581] em28xx #0: card=44 -> Terratec Cinergy T XS (MT2060)
[ 73.330587] em28xx #0: card=45 -> Pinnacle PCTV DVB-T
[ 73.330592] em28xx #0: card=46 -> Compro, VideoMate U3
[ 73.330597] em28xx #0: card=47 -> KWorld DVB-T 305U
[ 73.330602] em28xx #0: card=48 -> KWorld DVB-T 310U
[ 73.330607] em28xx #0: card=49 -> MSI DigiVox A/D
[ 73.330612] em28xx #0: card=50 -> MSI DigiVox A/D II
[ 73.330617] em28xx #0: card=51 -> Terratec Hybrid XS Secam
[ 73.330622] em28xx #0: card=52 -> DNT DA2 Hybrid
[ 73.330627] em28xx #0: card=53 -> Pinnacle Hybrid Pro
[ 73.330632] em28xx #0: card=54 -> Kworld VS-DVB-T 323UR
[ 73.330637] em28xx #0: card=55 -> Terratec Hybrid XS (em2882)
[ 73.330643] em28xx #0: card=56 -> Pinnacle Hybrid Pro (2)
[ 73.330648] em28xx #0: card=57 -> Kworld PlusTV HD Hybrid 330
[ 73.330653] em28xx #0: card=58 -> Compro VideoMate ForYou/Stereo
[ 73.330658] em28xx #0: card=59 -> <NULL>
[ 73.330663] em28xx #0: card=60 -> Hauppauge WinTV HVR 850
[ 73.330668] em28xx #0: card=61 -> Pixelview PlayTV Box 4 USB 2.0
[ 73.330674] em28xx #0: card=62 -> Gadmei TVR200
[ 73.330678] em28xx #0: card=63 -> Kaiomy TVnPC U2
[ 73.330683] em28xx #0: card=64 -> Easy Cap Capture DC-60
[ 73.330689] em28xx #0: card=65 -> IO-DATA GV-MVP/SZ
[ 73.330694] em28xx #0: card=66 -> Empire dual TV
[ 73.330698] em28xx #0: card=67 -> Terratec Grabby
[ 73.330703] em28xx #0: card=68 -> Terratec AV350
[ 73.330708] em28xx #0: card=69 -> KWorld ATSC 315U HDTV TV Box
[ 73.330714] em28xx #0: card=70 -> Evga inDtube
[ 73.330719] em28xx #0: card=71 -> Silvercrest Webcam 1.3mpix
[ 73.330724] em28xx #0: card=72 -> Gadmei UTV330+
[ 73.330729] em28xx #0: card=73 -> Reddo DVB-C USB TV Box
[ 73.330739] em28xx #0: v4l2 driver version 0.1.2
[ 73.340119] em28xx #0: V4L2 video device registered as /dev/video0
[ 73.340223] usbcore: registered new interface driver em28xx
[ 73.342224] em28xx driver loaded
..........

This is sort of progress as a driver has been identified but it has not been been set up fully and it suggests we provide 'confirmation' of the type of device which is using the underlying chip and offers 73 options! This will involve the use of modprobe which is the program to intelligently add or remove modules from the Linux Kernel. For details use man modprobe in a terminal.

So the first thing to do is unplug the device, unload the existing driver it ha s found and loaded by sudo modprobe -r em28xx then reload it agian with the card=45 option by sudo modprobe em28xx card=45 which seems to correspond to my stick, plug in the stick and then do another dmesg


pcurtis@vortex-ubuntu:~$ sudo modprobe -r em28xx
pcurtis@vortex-ubuntu:~$ sudo modprobe em28xx card=45
pcurtis@vortex-ubuntu:~$ dmesg
............
[ 324.532156] usb 1-1: new high speed USB device using ehci_hcd and address 5
[ 324.668290] usb 1-1: configuration #1 chosen from 1 choice
[ 324.669011] em28xx: New device USB 2870 Device @ 480 Mbps (eb1a:2870, interface 0, class 0)
[ 324.669191] em28xx #0: chip ID is em2870
[ 324.960934] em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 70 28 c0 12 81 00 6a 22 00 00
[ 324.960984] em28xx #0: i2c eeprom 10: 00 00 04 57 02 0d 00 00 00 00 00 00 00 00 00 00
[ 324.961027] em28xx #0: i2c eeprom 20: 44 00 00 00 f0 10 02 00 00 00 00 00 5b 00 00 00
[ 324.961069] em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 13 71 08 48
[ 324.961111] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 324.961153] em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 324.961194] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00
[ 324.961236] em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 37 00 30 00 20 00 44 00
[ 324.961278] em28xx #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 00 00 00 00
[ 324.961321] em28xx #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 324.961362] em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 324.961403] em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 324.961444] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 324.961485] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 324.961526] em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 324.961567] em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 324.961614] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0x2f94b2c1
[ 324.961624] em28xx #0: EEPROM info:
[ 324.961632] em28xx #0: No audio on board.
[ 324.961639] em28xx #0: 500mA max power
[ 324.961650] em28xx #0: Table at 0x04, strings=0x226a, 0x0000, 0x0000
[ 324.962426] em28xx #0: Identified as Pinnacle PCTV DVB-T (card=45)
[ 324.962437] em28xx #0:
[ 324.962441]
[ 324.962450] em28xx #0: The support for this board weren't valid yet.
[ 324.962460] em28xx #0: Please send a report of having this working
[ 324.962469] em28xx #0: not to V4L mailing list (and/or to other addresses)
[ 324.962475]
[ 324.962488] em28xx #0: v4l2 driver version 0.1.2
[ 324.971911] em28xx #0: V4L2 video device registered as /dev/video0
pcurtis@vortex-ubuntu:~$

This is not good as it has now done its best for a Pinnacle PCTV DVB- T but come back and said the support for this board were'nt valid yet ie the driver for that option has not been written or does not work.

Now is the time we start with google and the search terms and I tried eb1A:2700 ubuntu lucid Pinnacle dvb-t em28xx in various combinations. This revealed, after many dead ends, that there were drivers in the past, the new drivers do not work and that there are various developmental drivers which work and sources of old drivers which can possible be compiled (but the source link failed)

In the end I was left with a promising link to a wordpress blog in Italian http://quadrantegamma.wordpress.com/2009/12/01/pinnacle-pctv-usb-stick-dvb-t-con-karmic-koala which was very useful when google had done magic and produced a quaint translation at http://translate.google.co.uk/translate?hl=en&sl=it&u=http://quadrantegamma.wordpress.com/2009/12/01/pinnacle-pctv-usb-stick-dvb-t-con-karmic-koala/&ei=fVEHTKTUBsKz4Qbti5iQAQ&sa=X&oi=translate&ct=result&resnum=4&ved=0CCkQ7gEwAw&prev=/search%3Fq%3Dpinnacle%2Be70%2Bubuntu%2Bdvb-t%26hl%3Den and this linked on to new information for lucid at http://quadrantegamma.wordpress.com/2010/06/02/pinnacle-pctv-usb-stick-dvb-t-con-lucid-lynx/ and that had a link on to a source of pre-compiled drivers as .deb files for all the recent kernels at http://jiemeb.free.fr/pinnacle/

If you need to find out the kernel version you are running the easy way is by uname -r which produced:

pcurtis@vortex-ubuntu:~$ uname -r
2.6.32-22-generic
pcurtis@vortex-ubuntu:~$

By now I was getting fairly gungho so I downloaded the driver em28xx_32-22_i386.deb corresponding to the kernel version above and double clicked to install it, rebooted for luck and plugged in the Pinnacle stick again. This time dmesg looked like this:

[ 757.252108] usb 1-1: new high speed USB device using ehci_hcd and address 5
[ 757.392261] usb 1-1: configuration #1 chosen from 1 choice
[ 757.392754] em28xx: new video device (eb1a:2870): interface 0, class 255
[ 757.392770] em28xx: device is attached to a USB 2.0 bus
[ 757.392793] em28xx #0: Alternate settings: 8
[ 757.392808] em28xx #0: Alternate setting 0, max size= 0
[ 757.392823] em28xx #0: Alternate setting 1, max size= 0
[ 757.392837] em28xx #0: Alternate setting 2, max size= 1448
[ 757.392852] em28xx #0: Alternate setting 3, max size= 2048
[ 757.392866] em28xx #0: Alternate setting 4, max size= 2304
[ 757.392881] em28xx #0: Alternate setting 5, max size= 2580
[ 757.392896] em28xx #0: Alternate setting 6, max size= 2892
[ 757.392910] em28xx #0: Alternate setting 7, max size= 3072
[ 757.809283] em2880-dvb.c: DVB Init
[ 757.914545] MT2060: successfully identified (IF1 = 1220)
[ 758.378200] DVB: registering new adapter (em2880 DVB-T)
[ 758.378221] DVB: registering adapter 0 frontend 0 (Zarlink ZL10353 DVB-T)...
[ 758.381692] input: em2880/em2870 remote control as /devices/virtual/input/input12
[ 758.381960] em28xx-input.c: remote control handler attached
[ 758.381978] em28xx #0: Found Pinnacle PCTV DVB-T
pcurtis@vortex-ubuntu:~$

This looked very promising although it shows as a Zarlink ZL10353. Anyway I plugged in the TV aerial and I ran kaffeine which did nothing but I noted that the blog suggested using me-tv which I installed using the Synaptic Package Manager and to cut a long story short I told it me-tv in the initial configuration that I was near Bristol and left it to search for channles - it found lots of TV stations and once I found one with a reasonable strength I had a working TV with good picture and sound. I had also switched to the xv driver for the video in me-tv as suggested somewhere in the postings on the blog.

I noticed that the folder with all the drivers contained a script called cleanEm28xx.sh which I suspect removes all old and possibly conflicting versions of the em28xx driver but I have not needed to experiment yet.

Note - the driver will need to be re-installed every time one installs a new kernel and possibly after updating the same kernel.

I have also added the development ppa repository for me-tv by:

sudo add-apt-repository ppa:me-tv-development/ppa && sudo apt-get update

This will enable me to update to the latest version 1.2.4 when I choose by System - Administration -> Update Manager.

Kaffeine

Kaffeine is a general purpose media player oriented towards supporting TV playing and recording. It has a very clear Electronic Program Guide which allows you to schedule any program to be recorded in the future and provides a guard band of -5 and +10 minutes by default. It is easy to search for channels and chose the ones you want. It will use any DVB-T USB stick which is loaded by the kernel or custom drivers. Kaffeine is installed by the Synaptic Package Manager and searching for kaffeine - it is not in the Ubuntu Software Center as it is optimised for the KDE desktop but I prefer it to the simpler Me TV You should also install dvb-apps using the Synaptic Package Manager or you will not have a list of local transmitters available for you to scan. There are 100 Digital Transmitters in the UK. Kaffeine needs to have some configuration information before you can scan for channels and watch TV - you have to: You need to install dvb-apps using the Synaptic Package Manager if you do not have a list of transmitters as noted above. Kaffeine is reluctant to do another automatic scan if you change region often like we do on the boat. I have found you need to:

If you do not carry out the procedure you can only update channels corresponding to the transmitter you are using. There may be several transmitters in you list and you have to tune to each one.

Mostly you can control Kaffeine by keys as well as the drop down menus and control icons under the channel list. F is important as it toggles in and out of full screen. G gives the Onscreen Guide which also allows you to schedule recording with a guard band either end.

The best way to find the nearest transmitter and its direction from an OS map Reference is Wolfbane's UK digital TV reception predictor

You can also use a program called w-scan which can be installed by the Synaptic Package Manager to create a scan list suitable for Kaffeine - enough details to get one going are at http://hftom.free.fr/phpBB2/viewtopic.php?t=178

MythTV

MythTV turns your computer into a complex general purpose media centre and can be installed from a LiveCD or added onto an existing Ubuntu installation. A MythTV system consists of backends, for recording and storing TV, and frontends, for watching the TV. These can be on multiple computers or combined onto a single PC. You can use several DVB-T sticks and satellite receivers. It records TV from a tuner card onto the hard disk of a PC. It uses TV listings data to schedule recordings allowing it to automatically record whole series. I am not planning to use it but a lot off useful information is available from users including the definative MythTV Guide from Garry Parker This includes a description of how to get a remote control working which cound be modified to control kaffeine instead of MythTV.

5th June 2010

Problems

Just as I was thinking I had got the TV side cracked and I was finding out how to get the bestout of me-tv and kaffeine everything stopped and I discovered that by Pinnacle PCTV DVB-T stick had stopped working. Investigation showed that the USB id that identified it to the system had changed from eb1a:2870 to eb1a:2871. Googling showed that this sort of change has occured to at least two other people, one with a similar stick to mine and one with a completely different one which is written about by Thorsten Hirsh at https://bugs.launchpad.net/ubuntu/+bug/460636/comments/7 although you should read the whole thread. I can understand how it could happen on a stich which has its firmware loaded every time it is used but there seems to be no mechanism to do so on the Pinnacle stick.

Even if that is the only change I will need to make a new and edited driver rather than use the .deb file and that needs a source for em28xx-new patched for the Lucid kernel 2.6.32 and a change in the tables of usb codes so that the new id is recognised as needing an em28xx driver. Thorsten achieved that by modifying the driver code and then recompiling the whole kernel see https://bugs.launchpad.net/ubuntu/+bug/460636/comments/38. I hope I can fudge it by just changing the table which seems to be saved in /lib/modules/2.6.32-xx-generic/module.usbmap. I have yet to find a em28xx-new driver patched for the Lucid kernel.

In the end I found a source for Jaunty and built that - I found that it modified the look up tables and I could then load the drivers for stick after modifying the em28xx-cards.c file before building.

In more detail the version of em28xx-new I obtained had been patched for 2.6.30 and I had to first reverse the patch:

pcurtis@wind-ubuntu:~$ cd em28xx-new
pcurtis@wind-ubuntu:~/em28xx-new$ patch -p1 -R < fix-2.6.30.patch
patching file cx25843/em28xx-cx25843.c
patching file em28xx-audio.c
patching file em28xx-i2c.c
patching file em28xx-video.c
patching file tvp5150/tvp5150.c

Then I had to make the change in em28xx-cards.c and build the driver:

pcurtis@wind-ubuntu:~/em28xx-new$ sudo make unload
unloaded em28xx components

pcurtis@wind-ubuntu:~/em28xx-new$ sudo make
running ./build.sh build
make[1]: Entering directory `/home/pcurtis/em28xx-new'
rm -rf Module.symvers;
make -C /lib/modules/`if [ -d /lib/modules/2.6.21.4-eeepc ]; then echo 2.6.21.4-eeepc; else uname -r; fi`/build SUBDIRS=`pwd` modules
make[2]: Entering directory `/usr/src/linux-headers-2.6.28-16-generic'
CC [M] /home/pcurtis/em28xx-new/em2880-dvb.o
/home/pcurtis/em28xx-new/em2880-dvb.c:149: warning: missing initialiser
/home/pcurtis/em28xx-new/em2880-dvb.c:149: warning: (near initialisation for ‘DRX3973DData_g.currentChannel.frequency’)
/home/pcurtis/em28xx-new/em2880-dvb.c:159: warning: missing initialiser
/home/pcurtis/em28xx-new/em2880-dvb.c:159: warning: (near initialisation for ‘DRX3973DData_g.channelCache’)
/home/pcurtis/em28xx-new/em2880-dvb.c: In function ‘mt352_pinnacle_init’:
/home/pcurtis/em28xx-new/em2880-dvb.c:584: warning: missing initialiser
/home/pcurtis/em28xx-new/em2880-dvb.c:584: warning: (near initialisation for ‘zlconf[23].reg’)
CC [M] /home/pcurtis/em28xx-new/em28xx-video.o
CC [M] /home/pcurtis/em28xx-new/em28xx-i2c.o
/home/pcurtis/em28xx-new/em28xx-i2c.c:681: warning: ‘inc_use’ defined but not used
/home/pcurtis/em28xx-new/em28xx-i2c.c:688: warning: ‘dec_use’ defined but not used
CC [M] /home/pcurtis/em28xx-new/em28xx-cards.o
/home/pcurtis/em28xx-new/em28xx-cards.c:2842: warning: missing initialiser
/home/pcurtis/em28xx-new/em28xx-cards.c:2842: warning: (near initialisation for ‘em28xx_id_table[67].match_flags’)
CC [M] /home/pcurtis/em28xx-new/em28xx-core.o
CC [M] /home/pcurtis/em28xx-new/em28xx-input.o
CC [M] /home/pcurtis/em28xx-new/em28xx-webcam.o
CC [M] /home/pcurtis/em28xx-new/em28xx-keymaps.o
LD [M] /home/pcurtis/em28xx-new/em28xx.o
CC [M] /home/pcurtis/em28xx-new/em28xx-aad.o
/home/pcurtis/em28xx-new/em28xx-aad.c: In function ‘em28xx_aad_register’:
/home/pcurtis/em28xx-new/em28xx-aad.c:358: warning: format not a string literal and no format arguments
CC [M] /home/pcurtis/em28xx-new/em28xx-audio.o
CC [M] /home/pcurtis/em28xx-new/em28xx-audioep.o
/home/pcurtis/em28xx-new/em28xx-audioep.c:42: warning: missing initialiser
/home/pcurtis/em28xx-new/em28xx-audioep.c:42: warning: (near initialisation for ‘em28xx_audio_id_table[7].match_flags’)
LD [M] /home/pcurtis/em28xx-new/em28xx-dvb.o
CC [M] /home/pcurtis/em28xx-new/adimtv102/adimtv102.o
CC [M] /home/pcurtis/em28xx-new/cx25843/em28xx-cx25843.o
CC [M] /home/pcurtis/em28xx-new/drx3973d/drx3973d_demod.o
CC [M] /home/pcurtis/em28xx-new/drx3973d/drx3973d_core.o
/home/pcurtis/em28xx-new/drx3973d/drx3973d_core.c:6059:8: warning: "COMPILE_FOR_QT" is not defined
/home/pcurtis/em28xx-new/drx3973d/drx3973d_core.c:6068:7: warning: "COMPILE_FOR_QT" is not defined
/home/pcurtis/em28xx-new/drx3973d/drx3973d_core.c:6085:8: warning: "COMPILE_FOR_QT" is not defined
/home/pcurtis/em28xx-new/drx3973d/drx3973d_core.c:7726:8: warning: "COMPILE_FOR_QT" is not defined
/home/pcurtis/em28xx-new/drx3973d/drx3973d_core.c: In function ‘DRX3973D_Open’:
/home/pcurtis/em28xx-new/drx3973d/drx3973d_core.c:7799: warning: enumeration value ‘DRX3973D_SPIN_UNKNOWN’ not handled in switch
/home/pcurtis/em28xx-new/drx3973d/drx3973d_core.c:7915:8: warning: "COMPILE_FOR_QT" is not defined
/home/pcurtis/em28xx-new/drx3973d/drx3973d_core.c:7927:8: warning: "COMPILE_FOR_QT" is not defined
/home/pcurtis/em28xx-new/drx3973d/drx3973d_core.c:7933:8: warning: "COMPILE_FOR_QT" is not defined
CC [M] /home/pcurtis/em28xx-new/drx3973d/drx3973d_host.o
CC [M] /home/pcurtis/em28xx-new/drx3973d/drx_dap_wasi.o
CC [M] /home/pcurtis/em28xx-new/drx3973d/drx_driver.o
CC [M] /home/pcurtis/em28xx-new/drx3973d/drx3973d_i2c.o
LD [M] /home/pcurtis/em28xx-new/drx3973d/drx3973d.o
CC [M] /home/pcurtis/em28xx-new/lgdt3304/lgdt3304.o
CC [M] /home/pcurtis/em28xx-new/mt2060/mt2060.o
CC [M] /home/pcurtis/em28xx-new/mt352/mt352.o
CC [M] /home/pcurtis/em28xx-new/qt1010/qt1010.o
CC [M] /home/pcurtis/em28xx-new/sharp/s921_module.o
CC [M] /home/pcurtis/em28xx-new/sharp/s921_core.o
LD [M] /home/pcurtis/em28xx-new/sharp/s921.o
CC [M] /home/pcurtis/em28xx-new/tvp5150/tvp5150.o
CC [M] /home/pcurtis/em28xx-new/xc3028/xc3028_control.o
CC [M] /home/pcurtis/em28xx-new/xc3028/xc3028_module.o
LD [M] /home/pcurtis/em28xx-new/xc3028/tuner-xc3028.o
CC [M] /home/pcurtis/em28xx-new/xc5000/xc5000_control.o
CC [M] /home/pcurtis/em28xx-new/xc5000/xc5000_module.o
CC [M] /home/pcurtis/em28xx-new/xc5000/i2c_driver.o
LD [M] /home/pcurtis/em28xx-new/xc5000/tuner-xc5000.o
CC [M] /home/pcurtis/em28xx-new/zl10353/zl10353.o
Building modules, stage 2.
MODPOST 17 modules
CC /home/pcurtis/em28xx-new/adimtv102/adimtv102.mod.o
LD [M] /home/pcurtis/em28xx-new/adimtv102/adimtv102.ko
CC /home/pcurtis/em28xx-new/cx25843/em28xx-cx25843.mod.o
LD [M] /home/pcurtis/em28xx-new/cx25843/em28xx-cx25843.ko
CC /home/pcurtis/em28xx-new/drx3973d/drx3973d.mod.o
LD [M] /home/pcurtis/em28xx-new/drx3973d/drx3973d.ko
CC /home/pcurtis/em28xx-new/em28xx-aad.mod.o
LD [M] /home/pcurtis/em28xx-new/em28xx-aad.ko
CC /home/pcurtis/em28xx-new/em28xx-audio.mod.o
LD [M] /home/pcurtis/em28xx-new/em28xx-audio.ko
CC /home/pcurtis/em28xx-new/em28xx-audioep.mod.o
LD [M] /home/pcurtis/em28xx-new/em28xx-audioep.ko
CC /home/pcurtis/em28xx-new/em28xx-dvb.mod.o
LD [M] /home/pcurtis/em28xx-new/em28xx-dvb.ko
CC /home/pcurtis/em28xx-new/em28xx.mod.o
LD [M] /home/pcurtis/em28xx-new/em28xx.ko
CC /home/pcurtis/em28xx-new/lgdt3304/lgdt3304.mod.o
LD [M] /home/pcurtis/em28xx-new/lgdt3304/lgdt3304.ko
CC /home/pcurtis/em28xx-new/mt2060/mt2060.mod.o
LD [M] /home/pcurtis/em28xx-new/mt2060/mt2060.ko
CC /home/pcurtis/em28xx-new/mt352/mt352.mod.o
LD [M] /home/pcurtis/em28xx-new/mt352/mt352.ko
CC /home/pcurtis/em28xx-new/qt1010/qt1010.mod.o
LD [M] /home/pcurtis/em28xx-new/qt1010/qt1010.ko
CC /home/pcurtis/em28xx-new/sharp/s921.mod.o
LD [M] /home/pcurtis/em28xx-new/sharp/s921.ko
CC /home/pcurtis/em28xx-new/tvp5150/tvp5150.mod.o
LD [M] /home/pcurtis/em28xx-new/tvp5150/tvp5150.ko
CC /home/pcurtis/em28xx-new/xc3028/tuner-xc3028.mod.o
LD [M] /home/pcurtis/em28xx-new/xc3028/tuner-xc3028.ko
CC /home/pcurtis/em28xx-new/xc5000/tuner-xc5000.mod.o
LD [M] /home/pcurtis/em28xx-new/xc5000/tuner-xc5000.ko
CC /home/pcurtis/em28xx-new/zl10353/zl10353.mod.o
LD [M] /home/pcurtis/em28xx-new/zl10353/zl10353.ko
make[2]: Leaving directory `/usr/src/linux-headers-2.6.28-16-generic'
make[1]: Leaving directory `/home/pcurtis/em28xx-new'
pcurtis@wind-ubuntu:~/em28xx-new$ sudo make install
running ./build.sh install
./build.sh install
depmod -a

After the build and plugging in the pinnacle DVB-T USB Stick the end of dmesg shows:

.....
[ 74.452134] usb 1-1: new high speed USB device using ehci_hcd and address 4
[ 74.585298] usb 1-1: configuration #1 chosen from 1 choice
[ 74.733029] usbcore: registered new interface driver snd-usb-audio
[ 74.742177] Linux video capture interface: v2.00
[ 74.791295] em28xx v4l2 driver version 0.0.1 loaded
[ 74.833846] em28xx: new video device (eb1a:2871): interface 0, class 255
[ 74.833855] em28xx: device is attached to a USB 2.0 bus
[ 74.833864] em28xx #0: Alternate settings: 8
[ 74.833870] em28xx #0: Alternate setting 0, max size= 0
[ 74.833875] em28xx #0: Alternate setting 1, max size= 0
[ 74.833881] em28xx #0: Alternate setting 2, max size= 1448
[ 74.833887] em28xx #0: Alternate setting 3, max size= 2048
[ 74.833893] em28xx #0: Alternate setting 4, max size= 2304
[ 74.833899] em28xx #0: Alternate setting 5, max size= 2580
[ 74.833904] em28xx #0: Alternate setting 6, max size= 2892
[ 74.833910] em28xx #0: Alternate setting 7, max size= 3072
[ 75.304020] input: em2880/em2870 remote control as /devices/virtual/input/input11
[ 75.337231] em28xx-input.c: remote control handler attached
[ 75.337240] em28xx #0: Found Pinnacle PCTV DVB-T
[ 75.337298] usbcore: registered new interface driver em28xx
[ 75.457133] em2880-dvb.c: DVB Init
[ 75.704441] MT2060: successfully identified (IF1 = 1220)
[ 76.170140] DVB: registering new adapter (em2880 DVB-T)
[ 76.170155] DVB: registering adapter 0 frontend 0 (Zarlink ZL10353 DVB-T)...
[ 76.171129] Em28xx: Initialized (Em2880 DVB Extension) extension
pcurtis@wind-ubuntu:~$

Superficialy everything seemed to work and I could see channels being found and their s/n ratios but they never ended up being accessible so there is still a problem, maybe just with the driver or maybe more than the id has been changed.

10 June 2010

Artec - T14BR USB 2.0 Mini Digital TV Receiver (DVB-T)

Dmesg:

[37790.684173] usb 1-1: new high speed USB device using ehci_hcd and address 6
[37790.817295] usb 1-1: configuration #1 chosen from 1 choice
[37791.089076] dib0700: loaded with support for 13 different device-types
[37791.089508] dvb-usb: found a 'Artec T14BR DVB-T' in cold state, will try to load a firmware
[37791.089524] usb 1-1: firmware: requesting dvb-usb-dib0700-1.20.fw
[37791.143344] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
[37791.351908] dib0700: firmware started successfully.
[37791.852075] dvb-usb: found a 'Artec T14BR DVB-T' in warm state.
[37791.852304] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[37791.852976] DVB: registering new adapter (Artec T14BR DVB-T)
[37792.068654] DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)...
[37792.287302] DiB0070: successfully identified
[37792.287488] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-1/input/input12
[37792.287650] dvb-usb: schedule remote query interval to 50 msecs.
[37792.287662] dvb-usb: Artec T14BR DVB-T successfully initialized and connected.
[37792.287877] usbcore: registered new interface driver dvb_usb_dib0700

22 June 2010

Updating my Wordpress Blogs to Version 3

I set up two Wordpress Blogs some time ago, one as a potential replacement for this Diary and the other for a 'Club' I belong to which needed a discussion area. Unfortunately I never documented what I did very well and I am noe having to face up to updating from Wordpress version 2.5.1 to version 3.0 . The newer versions have an automated update systembut not going back far enough for me. Wordpress is actually very well documented but it is lengthy and it is often difficult to see the wood for the trees. I had spent some time customising my blog so I needed to get it right.

I followed their instructions on how to back up the databases on the server which use MySQL - they covered many of the common sorts of server software including Plesk which is used by freezone. I have no idea if it is a valid backup without reloading it but atleast I have a file.

I then backed up the rest of the files which reside in a single folder which, by default, is called wordpress. My own diary is all in a folder called diary. I renamed my local folder and used ftp to download a new copy with all my previous customisation carried out through Wordpress.

I now downloaded the new Wordpress version 3 as an archive and extracted it to replace the local folders (diary and wordpress).

You now need to replace parts of the new version before uploading otherwise you will lose everything you have done. This is all in the folder wp-content and the file wp-config.php so rename them in the new folder and copy in your old versions of the folder wp-content and the file wp-config.php. Unfortunately this also copies in some plugins which no longer work in the new version so you need to copy the new versions across now you know why you renamed the folder rather than deleted it! The folder you need to have the new version of is wp-content/plugins.

Before you upload the new version you need to log in as an administrator and remove all your existing plugins (in case they do not work) and I also went back to the default theme just in case. Standard widgets should be OK.

I deleted the on-line folder and uploaded the new one using gFTP and it all worked - the first time I logged in as an administrator it updated the MySQL database to a new format. I then changed back to my selected theme which was called Evanescence. I was lucky, some themes do not work under version 3 or need to be replaced by updated versions.

I then spent some time trying to find out how I had set up to use some of my existing css so the format matched my web site and found that I had added a lot of custom styles into the Evanescence Theme. You can edit the theme from within Wordpress 3 when logged in as an administrator by expanding the left hand menu on the dashboard to reach Appearance -> Themes -> Editor and then Right Menu -> Styles and editing styles.css and print.css. I have added custom styles at the end of both to give my blocks of terminal code, terminal output, script code etc. The idea of duplicating these styles from my web site was to allow interchange of blocks of html without losing formatting.

18th September 2010

SyncKolab - Bug Postings

Useful but undocumented feature/bug in SyncKolab Options

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.9) Gecko/20100915
Lightning/1.0b2 Thunderbird/3.1.4
Thunderbird IMAP synchronisation turned off
Nightly of 17 September 2010 and Nightly of 20 August 2010
Approx 950 Contacts, 40 Calendar Entries and 5 Tasks in XML/Kolab2 format

If you open the SyncKolab Options Window (Tools -> SyncKolab Options), select Contacts and just click OK without making any changes the next time you Synchronise and look in the Synchronisation Window the you will find that the status of every item is 'local update' and the local cards on your machine will have been overwritten by those from the server. This applies to Contacts, Calendar entries and Tasks.

This overwriting is slow but normally does not cause a problem as the cards on the server and locally will be the same if you have recently synchronised.

This can actually be a very useful feature as it can be used as a crude undo if you suddenly realise you have deleted an important entry on a card such as a telephone number and have not already synchronised. It can also be used to recover a card you have deleted.

It can also be used to recover from some of the bugs currently reported such as 23222 which stops the synchronisation when the local and remote cards have both been updated and conflicted.

If this behavior is deliberate it could be documented in the FAQ.

Test Procedures used to verify above

Back everything up just in case

Synchronise Tools -> SyncKolab Options -> Click Contacts (look but do not make a change) -> OK
Synchronise and note all the 'local updates' taking place

Create a new card with name, email and telephone number entries
Synchronise and note a New Card is created on the IMAP Server by an 'add to server'
Delete telephone number from your test card
Tools -> SyncKolab Options -> Contacts (look but do not make a change) -> OK
Synchronise again
Check telephone number has been restored

Delete the whole test contact card
Tools -> SyncKolab Options -> Contacts (look but do not make a change) -> OK
Synchronise again
Note in the Synchronisation Window that there has been a local add of the card
Check in the Address book the card has been restored.

------- Comment #1 From Niko Berger 2010-09-18 14:06:30 [reply] -------

This behaviour is "works as designed". I am not 100% sure how or where I should
document it.

What happens is, that when you change certain configuration options, syncklab discards the current sync database (which it uses to determine deletions - see http://www.gargan.org/en/Mozilla_Extensions/SyncKolab/FAQ/#How%20does%20Sync%20Kolab%20sync%20entries? ). This for the next sync, it will merge all entries from imap with the local ones and is unable to determine removed entries and so restores all of them.

Changed/new Contacts are 'updated on server' on every following Synchronisation for some TB profiles.

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.9) Gecko/20100915
Lightning/1.0b2 Thunderbird/3.1.4
Thunderbird IMAP synchronisation turned off
Nightly of 17 September 2010 and Nightly of 20 August 2010
Approx 950 Contacts, 40 Calendar Entries and 5 Tasks in XML/Kolab2 format

Any new Contact Card or modified card is uploaded to the IMAP server every subsequent synchronisation. There are no errors in the Error Console but the Synchronisation Window shows an 'Update on Server' status for every new and changed card.

The converse does not apply. A card which has been updated on the server is correctly downloaded once only during synchronisation to other machines unless the card is changed again on another machine. This means the bug can easily be missed unless the Synchronisation window is looked at carefully and everything appears to be working fine until a further change is made on another machine.

This may be the cause of several earlier bugs reported - the addition here is a procedure to duplicate the problem which I have tried on several machines with the basic specifications given at the top. They have all been running Linux and I have not been able to check under Windows.

There is a work-round to retrieve the situation by using the feature of feature/bug 23253 I have just submitted - namely to call the SyncKolab Options and do an OK without making changes which seems to force a download from the server regardless of the status of the cards and this stops the continual updating on the server.

The show stopping problem occurs when a change is made to such a card which is being continually updated on a different machine. This will ultimately lead to a conflict when the first machine is synchronised as it looks as if both have changed. This then stops the synchronisation with an error (bug 23222).

Test procedures to demonstrate the bug:

Note: You should Back-up everything just in case. A copy of the Thunderbird profile is a good start.

Create a new contact with name, email and telephone number entries Synchronise and note a new contact card is created on the IMAP Server with 'add to server' under status.
Synchronise a couple more times and look carefully at the Synchronisation
Window where you will see that there is an 'update on server' status for the
new card each time you synchronise which is obviously incorrect.

Go to the second machine and synchronise - the new contact card will be created on that machine with a 'local add' status shown in the Synchronisation Window Synchronise again and note that all the entries in the Synchronisation Window should show 'no change' which is correct

As a cross check - make a change to the contact on machine 1 (I added a comment on the Other tab) and synchronise
Go to machine 2 and synchronise and check that the change has been correctly propagated with a 'local update' status displayed as expected.

If you want to go further and investigate conflicts you should definitely back up your Thunderbird Profile!

Open the Error Console (Tools -> Error Console)
Make a change to the test contact on machine 2 and Synchronise
Now Synchronise on machine 1 - this will now create a conflict and the synchronisation will stop with an error showing in the Error Console as per Bug 23222

So far I have been able to retrieve the situation by the SyncKolab Options trick. If that fails forcing a download by COMPLETELY emptying the contact folder into a backup folder and then synchronising may work.

------- Comment #1 From P Curtis 2010-10-02 23:11:17 [reply] -------

I have been looking more closely at this problem as nobody else seems to be reporting it or commenting although it is reproducible for me on 5 machines.

1. A complete re-install of Synckolab has no effect
2. Removing all extensions other than Lightning - no change.
3. Running with the profile on different file systems seems to have no effect (I normally have dual booted machines with the profiles on a common FAT32 partitions)

I have therefore started looking at the Profile and started with a new profile created under TB3.1 and Ubuntu Linux 10.04 in the default location with only the Lightning Extension and this Does Not show the problem with the nightly.

1. Adding my normal extensions to the new profile - still no problems.

2. Changing the new profile location to my shared FAT drive - still no
problems.

3. Adding back my comprehensive set of Local Folders and extra accounts to the new profile - still no problems.

The profiles which cause problems were all initially created a long time ago and have been automatically upgraded from TB1.x to 2.x and then TB3.0 and 3.1. Inspection shows there are still many shadows of TB2 and perhaps earlier in the problem profiles and there are about 15 files and folders which do not appear in the new TB3.1 profiles.

Conclusions:

It is probably that the bug only occurs with profiles that have been automatically upgraded although it could be some parameter which has a different default in TB3 to earlier versions which is the problem - either way creating a new profile is worth trying.

If the problem is with upgraded profiles this could affect quite a few users and may result from incorrect checks on the TB version in SyncKolab which then then take one to an out of date or incorrect bit of code.

It is still worth understanding/fixing as setting up and transferring everything into a new profile can be very time consuming and not without risk.

The bug title should be changed to reflect that it does not occur on all TB Profiles.

4th October 2010

Re-building Thunderbird Profiles

The profiles I have been using have been progressively and automatically updated by various versions of Thunderbird and may go back to the Thunderbird version 1.5 used by Dapper and certainly version 2.0. The profiles have also been used with various extensions in the past which have not always been satisfactory and may not have been completely uninstalled. They have also been used on dual boot systems under Windows as well as Linux. The result is that the profiles I am using have a lot of shadows of the past still present taking up space and potentially causing problems with sophisticated extensions such as SyncKolab. The differences between Thunderbird 3 and earlier versions mean that extensions may have to detect the version and handle some features differently - this is, in particular, true of the Address book and access to the components of each card. It was time to start with some fresh profiles.

Before doing anything it is prudent to take a copy of your current profile and also compact your folders by File -> Compact Folders. This reduces their size as deleted entries are not actually removed and the space recovered. I have described earlier how to locate your profile and something of its contents but we now need a much more detailed understanding.

I first created a new profile and set up all the accounts from scratch as there seems to be no way of importing accounts from another Thunderbird Profile - they are stored in prefs.js along with a lot of other configuration which could be the source of problems. If possible, create them with the same names and in the same order as the profile you are rebuilding. You can start the Profile manager in a terminal by:

thunderbird -P

Or you can install the ProfileSwitcher Extension from the Kaosmos Nic-nac Project Website and this will give a new menu item: File -> Open Profile Manager -> Normal Mode gives the usual Profile Switcher window

Transferring ones stored Email is the main problem and there is some information at http://kb.mozillazine.org/Transferring_data_to_a_new_profile_-_Thunderbird which helps. I followed the simple approach at first and copied the whole Mail folder in the profile - this worked but is not the best way to proceed - the profile size had expanded greatly and I found all the emails on the server had to be downloaded a second time. The Mail folder contains subfolders for each mail account with names vaguely related to the server name and these were replaced by the new accounts with similar names and sometimes a -1 etc on the end when the accounts were used. I eventually tracked down all the old ones and deleted them.

I should have just replaced Local Folders which is within Mail by renaming the folder and copying in the one from the old Profile.

If you have separate accounts which do not share Local Folders (the Global Inbox) and have there own email filing structure one first needs to copy everything into a sub folder(s) of Local Folders using the old Thunderbird Profile before starting any of the above. You then copy them to the correct place after you have your new Thunderbird Profile fully up and running.

This http://kb.mozillazine.org/Moving_your_mail_storage_location_-_Thunderbird article also has some useful information and shows that just replacing Mail/Local Folders should work and gives a way of handling accounts not using the Global Inbox.

The next problem for me was that I keep messages on the server for several months so I had to let these download a second time having moved the current inbox to a subfolder. The file popstate.dat (in each POP account directory) keeps track of which messages have been downloaded from the POP server and, in theory, it should be possible to identify the new folders and match to the old folders and move this over. It was easier to just download them when I had Broadband.

There is a page on Profiles including how to find them at http://kb.mozillazine.org/Profile_folder_-_Thunderbird and a full list of all the files in a Profile at http://kb.mozillazine.org/Files_and_folders_in_the_profile_-_Thunderbird

The last major problem was with the new search routine which has an sqlite database which was holding old data after all these changes. You can force it to re-index by deleting the old database which is called global-messages-db.sqlite. Doing this periodically may also save a lot of space - I reduced the size of this file from 150 to 60 Mbytes.

The only outstanding anomoly is that the Account used for Replies is not always correct on emails from prior to the changes to the profile but only on the profile where I did not set up all the accounts before copying the Mail folder - keep an eye open for this. Recent emails are correct.

There is a useful extension which tells you the size of your folders and mailboxes and also how much you can save by compacting them - ShowFolderSize. In fact there are a lot of useful Extensions on the - I use more from there than all other sources put together.

Backing Up Thunderbird AdressBooks and Lightning Calendars and Tasks

I have had a lot of problems with SyncKolab and this has led me to look at ways of individually backing up Address Books, Calendars (Events) and Tasks.

The two main Address Books, the Personal Address Book and the Collected Address Book are held in the files abook.mab and history.mab and these can be saved and replaced easily and directly. In addition, any address book can be saved and reloaded by using the MoreFunctionsForAddressBook extension.

Calendar Entries (Events) and Tasks are held with your calendars and these are not so easy to save and restore directly as, by default, these are withing a shared database. They can also be held within an ICalendar (ICS) Calendar file (.ics file) on a network or web server - it is also possible to use a local file .ics which you can place in your profile which makes it easier to 'read' and backup/restore in case of problems. The way I did this was to:

You should be able to change SyncKolab to use the new Calendar easily as it will have identical information to the old one had so there should be no problems with duplicates. The alternative is to delete all the entries on the IMAP server for Tasks and Events to force those from the new calendar to be uploaded.

Valid HTML 4.01 Copyright © Peter & Pauline Curtis
Content revised: 2nd August, 2020