|Home||Uniquely NZ||Travel||Howto||Pauline||Small Firms|
Diary of System and Website Development
Part 21 (April 2012 - July 2012) )
This is a bug which originates from the upgrade process and manifests itself in the Recent Documents list not being populated which we have observed. The same bug is also reported to lead to messages of “Error creating new document: templates already exists”.
LO 3.5 (under Linux) has changed to keep its config files in ~/.config/libreoffice/3/user rather than ~/.libreoffice/3/user and the migration of data from the previous profile did not properly generated the registrymodifications.xcu file. Deleting or renaming the file forces LO3.5 to regererate the file and the recent documents list will be populated in the future - there is no way to retrieve 'lost' items although I wonder if one could try copying the pervious version from ~/.libreoffice/3/user. Some users have also found deleting the old ~/.libreoffice folder helps avoid anomolies.
Note: The problem has been reported as also occurring on Windows and Apple installations.
There is a very good guide on tweaking Ubuntu 12.04 Precise Pangolin on Webupd8 and I have drawn on that as well as my own earlier notes in this quick update
Unison has changed to version 2.40 will not syncronise with machines with earlier version 2.32 which is on on 11.04 and 11.10. I downloaded the deb files from http://www.ubuntuupdates.org/package/core/precise/universe/base/unison and http://www.ubuntuupdates.org/package/core/precise/universe/base/unison-gtk and installed them on the older machines by right clicking and using
My scripts to load standard programs no longer run - cause seems to be stricter checks on layout - so I had to reinstall programs using the terminal and cut and paste from the script - I have now modified the script and it runs fine - the new version will be uploaded shortly when all changes are tested.
The Synaptic Package Manager and the Gdebi are no longer loaded as the Ubuntu Software Centre is now used to install software and deb files by default and not synaptic and gdebi. I do not like using the clumsy and sales oriented Ubuntu Software Centre for this. You can easily reinstall them by using the following commands:
sudo apt-get install gdebi synaptic
If you want to make Gdebi default, right click a .deb file, select "Properties", go to the "Open With" tab and select "GDebi Package Installer" instead of "Ubuntu Software Centre". Click "Close" and double click the .deb file - it should now open with GDebi and not Ubuntu Software Centre.
The procedures for changing the editor have not worked for a while and one has to use the very idiosyncratic default editor to remove the requirement for an extra admin password when mounting a vault.
The ppa has not been updated and I had to download and run the deb for Oneiric which seems to work fine.
The new User Accounts window under system settings does not allow one to set up any detailed priviledges - just a choice of Standard or Administrator and has no access to membership of groups - looks like back to the command line! However the new Administrator settings do seem to cover mounting FUSE filesystems but other groups one needs to join have not yet been checked - ie using modems with Gnomeppp
The original GUI is available by users-admin in the command line but it depends on gnome-system-tools, neither of which are installed by default but may be present after an upgrade
sudo apt-get install users-admin gnome-system-tools
I found an alternative called grub customiser at https://launchpad.net/grub-customizer it does make some significant modifications to the system which makes me a bit apprehensive but I am using it on one machine at present.
Lubuntu is now much more sensitive to the contents of .desktop files and some of the defaults I had picked up from earlier launchers did not work - I think the problem was a line with path= without a value was the problem but I removed everything which was not the same as a newly created launcher under 12.04 by a desktop right click.
I found that hostname.local no longer worked in scripts and I had to use just the hostname under 12.04 . I had problems full stop on one machine even with all the set up for wins which I have think I have resolved after a lot of testing and reloading Lubuntu completely on one machine which was upgraded from Xubuntu. The change seems minor and the rewriten section is belowis below
Problems with some networks giving slow response especially after wins modification for ssh: There is a problem with some ISPs who use DNS redirection for advertising purposes which is accentuated when the above modification is made. It is a known bug see https://bugs.launchpad.net/hundredpapercuts/+bug/389909 and the effect is that the ability to click on Places > Network and browse the local network has essentially been unusable. It takes over a minute and a half to just display the gui and then it fails to display the network properly, if at all. Network places that are displayed often return error messages if clicked on. Sometimes running the Network browse gui several times in a row returns normal function, sometimes it does not. The fix is very simple. Edit
sudo gedit /etc/samba/smb.conf
In the file you need to change the resolve order and remove the leading semicolon so that bcast comes before host - in 12.04 bcast should be first
# What naming service and in what order should we use to resolve host names
# to IP addresses
; name resolve order = lmhosts host wins bcast
# What naming service and in what order should we use to resolve host names
# to IP addresses
name resolve order = bcast lmhosts wins host
Notice that this is a change in 12.04, earlier it was sufficient to just move host from 2nd place to 4th place.
Restart and network browsing returns to normal and hostname resolution works better.
I do not recall having to explicitely install the Openjava JDK in the past and LibreOffice would not open documents without error messages until various java programs were installed.
sudo apt-get install openjdk-6-jre openoffice.org-java-common
Install Unsettings by:
sudo add-apt-repository ppa:diesch/testing
sudo apt-get update
sudo apt-get install unsettings
Unsettings (and MyUnity) are nice for Unity 3D, but they lack proper support for Unity 2D so you need to install Ubuntu Tweak, which lets you enable / disable HUD, set Dash to full screen, change the launcher autohide (this is also available in System Settings, under Appearance) and multi-monitor behaviour. The latest version in the following ppa also allows you to edit quicklists
To install Ubuntu Tweak, use the commands below:
sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak
The Unity 3D launcher icon size can easily be changed through System Settings (under Appearance), but that's not available for Unity 2D. But there is a way to change the Unity 2D launcher icon size: through a script thanks to Webupd8.
To change the Unity 2D icon size, run the following commands in a terminal:
chmod +x script.py
sudo ./script.py SIZE
In the last command above, replace "SIZE" with the desired size for the launcher icons, for example 32 . Then log out and log back in to Unity 2D.
I had a series of installer failures on my old triton motherboard based AMD machine - in the end I loaded an 11.10 version and upgraded!
HardInfo is a small application that displays information about your hardware and operating system. Currently it knows about PCI, ISA PnP, USB, IDE, SCSI, Serial and parallel port devices. It provides some simple benchmarks of mainly processor performance which I used to see how the Amilo with an old Pentium 4 3.06 Ghz processor compared to my various other machines. It turned out to be second only to my HP desktop with a 5000+ dual AMD processor and much faster than the MSI Winds and the AMD 2500+ single processor in the 'blowfish encryption' test. Smaller is quicker
I have spent some time chasing down problems in using the latest version of Synckolab in the form of the latest 'nightly' of 29 April 2012
The new version gets round a number of old problems with the status line displays and has a better display window and improved checking and handling conflicts but I found that I was suffering a number of strange hang ups and errors displayed in the error console. Many of these problems seem to be the result of the improved error checking which is showing up anomolies in some of my older data. I have draft posting which follows:
I have finally got TB12 and the nightly of 29-04-2012 playing together.
Firstly I should note this is an update from Synckolab 1.5xx to 2.0 and many of my Contacts in the Personal Address Book (1011), Calendar items (121) and Tasks (13) go back many years and some seem to contain errors which were not found by version 1.5xx. It has been a long chase involving several machines and a number of profiles (including a new empty one) but the important steps in sorting it out were:
1. I made sure that the version on the server was up to date and backed up my profiles on all machines I was using.
2. I forced a complete local update (by changing the Options which forces a local update) - this got round the initial hang up and errors in the console and allowed the Synchronisation of my contacts to proceed. Two contacts had repeated conflicts whatever I did and finally had to be replaced.
3. I created a new local calendar which again forced a complete download when I changed the Synckolab Options to use it. A number of calendar items (6) had to be deleted on the server because they locked the system - three were complex repeated items and a couple contained strange code on inspecting the attaached .xml file. One I never found a cause but just got deleted. They were all old items so their loss was of no consequence.
4. None of the Tasks without a start date would synchronise until I created a start date. NOTE: Any finish dates I set were deleted after a couple of synchronisations which may be a bug.
It is now a considerable improvement on earlier versions - I must give many thanks to you for all the hard work put in by Nico Berger.
I hope these notes may also be of use to others with old and big address books and calendars when they come to change version. I wonder if I should have also followed the instructions for a complete removal and reinstall.
In sorting out the change to version 2.0 I discovered some limitations in tasks and events but almost everything has now been sorted out.
By 'Round Trip' I mean that I create or edit, say, a simple event on machine 1, Synchronise twice to make sure that there are no problems of alternating changes. Synchronise on machine 2, again twice for luck, make a minor change in the comment field to force the change to be propagated back to the first machine and check that everything is what one expects.
I have done that test progressively adding and changing each major field in turn for both Events (Calendar Items) and Tasks with no significant problems observed.
The tests above only confirmed that the fields are correctly transfered between machines. I have not checked that a change every one of the more obscure fields is detected. I advise any user who is dependent on a field to check themselves or make a habit of making a small change in the Notes: field - I try to add the date of each update to that field which also makes certain the change is identified.
So far I have explictly checked that changes are detected in the following less commonly used fields
The only field I have found where a field is transfer but a change is not detected is Categories, a useful field which is imported from Outlook into Thunderbird but is only visible in extensions such as MoreFunctionsForAddressBook
I use the MoreFunctionsForAddressBook extension for Thunderbird which allows one to use some additional fields which are either specified for future use but currently not visible in the Thunderbird Address Book or are non-standard. The most important is Catagories which is supported within Thunderbird and imported from Outlook but can only be seen by using an extension. For the information of those of you who use MoreFunctionsForAddressBook, the following fields are supported:
The other additional MoreFunctionsForAddressBook fields are not supported and will be lost during synchronisation. These are:
After reading the WebUp8 article on using zRam - a compressed virtual swap in Memory I have started to use it on some of my machines. You can learn about Swap in general at https://help.ubuntu.com/community/SwapFaq and using zRam at http://www.webupd8.org/2011/10/increased-performance-in-linux-with.html with some test results at http://firstname.lastname@example.org/msg13173.html
The zRam device is already built into the linux kernel dynamically allocates RAM to store a block device in compressed blocks. The device has a fixed size, but zram only allocates RAM when it needs it. When the kernel frees swap, it now informs the underlying device; thus zram releases that RAM back to the system. Similarly, when a file system frees a block, it now also informs the underlying device zram supports.
Because of all this, you can feasibly actually have a swap device on RAM the size of your entire RAM and nothing will happen until you start swapping--you can have 2GB of RAMand activate a 2GB zram block Nothing will happen until it is time to start swapping anyway, in which case it'll work. That means zram swap devices should not ever have a negative impact but the potential for a significant gain. In effect you increase the size of memory by progressively compressing it, but only when required before you start to use disk for swapping.
There are some tradeoffs and Sergei Davidoff has written a script which he has put into a PPA which enable the optimum size and number of zRam swap files depending on memory, and scales for the number of processors etc in a system. This is then set up to be automatically be run as an upstart job (ie when the machine starts) and you need do no more. The gains should be greatest on older systems with limited RAM and Netbooks. It should reduce the periods of freezing when the system runs out of RAM.
This is all covered on WbUP8 and I decided to give it a try and installed by:
sudo add-apt-repository ppa:shnatsel/zram
sudo apt-get update
sudo apt-get install zramswap-enabler
You can see what it has added on your system by
I will report further when I have more experience, so far no negative effects.
It seems that the battery life of many laptops and netbooks has shortened because of a power issue starting with version 2.6.38 which hasn't been fixed yet in the 3.0.x kernels. I don't know if the kernel power bug effects the MSI Wind U100, but there are reports that a program called Jupiter significantly increases laptop and netbook battery life. It can be used to switch between maximum, high performance and power saving modes, change the screen resolution and orientation, enable or disable bluetooth, touchpad, WiFi (if available) and so on. Install Jupiter using the following commands:
sudo add-apt-repository ppa:webupd8team/jupiter
sudo apt-get update
sudo apt-get install jupiter
When it is installed run it once and from then a control will appear in the Application Indicator area allowing you to select power saving modes etc - I have used it for a year and it does seem to make a real difference in battery lifetime - perhaps 10% or more in Power on Demand.
dpkg --get-selections "*" > ~/Desktop/application_list.txt
Lists all the "packages" on computer.
dpkg --get-selections "*" | grep -iv "lib" | grep -iv "deinstall" > ~/Desktop/application_list.txt
Gets rid of those containing lib and deinstall
dpkg -l > ~/Desktop/application_list.txt
Much more pleasing output with package description. any line starting with "ii" means it's installed and working.
dpkg -l | grep -iv "lib" | grep ii > ~/Desktop/application_list.txt
Only installed applications rather than libraries which are working.
Lubuntu (LXDE) has a menu editor and Desktop files creator called lxmed which is not in the repositories or a PPA see http://lxmed.sourceforge.net/help.html
The Lubuntu page shows how to use lxshortcut to create a new launcher on the desktop or as a menu item.
Doug has an excellent page on tuning LXDE which has a first class introduction to desktop files at http://douwil7.100webspace.net/linux/Tuning.html#11 which is applicable to many distributions.
Have you ever wondered how the 'launchers' for programs and interent links which are in menus and on the desktop work and how you make your own? Making your own has become increasngly difficult with Ubuntu - it is almost as if Ubuntu is trying to discourage the use of the desktop with Unity and there is not even an easy way to add launchers for existing programs one can find with the dash to the desktop. Lubuntu is better in many ways and you can easily add any program which is in the main menus to the desktop straight from those menus.
I have bought several tiny Wifi USB adapter from Edimax, the EW-7811Un which is claimed to be the smallest Wifi adapter and covers 802.11b/g/n giving up to 150 Mbps with my Edimax router. I bought the first to add Wifi to a legacy laptop where it is so small that it can just live all the time in a USB prt and sticks a few mm - just enough to see the led but not enough to put it at risk. I then bought a few more as they were only £8.86 for my various desktops to save cables. The sensitivity seems very good when combined with my Edimax nLite Wifi router.
Unfortunately the built in driver in the kernel (called rtl8192cu) does not work very well and various web sites such as http://www.r-statistics.com/2011/11/edimax-ew-7811un-usb-wireless-connecting-to-a-network-on-ubuntu-11-10/ and http://forums.linuxmint.com/viewtopic.php?t=94495&f=53 all seem to come to the conclusion that the best way forwards is to install the latest driver (called just 8192cu) from Realtek and found here http://www.realtek.com.tw/downloads/searchView.aspx?keyword=RTL8192cu
This has to be compiled and installed and the latest linux- headers and some utilities have to be installed prior to running the simple script file in the downloaded zip file. All versions to date of Ubuntu have the current Linux Headers installed so the header install should be redundant however build-essential is not installed by default. So firstly:
sudo apt-get install linux-headers-`uname -r` build-essential
Now download the latest driver file from the Realtek website (Mine are version 3.4.2_3727 uploaded 7 May 2012 and were tested with Kernel 3.2.0-26-generic ). The driver is available via http://www.realtek.com.tw/downloads/searchView.aspx?keyword=RTL8192cu . Extract the contents into a folder in your home folder say ~/rtl8192cu so we can remember what it is rather than use RTL8188C_8192C_8192D_USB_linux_v3.4.2_3727.20120404 and this also means that any updates will not need changes in any scripts etc.!
Now change to that folder and run the install script
sudo bash install.sh
You will be asked which driver you want from a list of two - there will be a lot more churning and what looks like an error but it is actually a series of comments and you should now have a new module called 8192cu available. This will cause confusion as the kernel still has its own module rtl8192cu so that needs to be "blacklisted" so it is not used.
so unload the existing module in case it is in the way by
sudo modprobe -r rtl8192cu
and then edit /etc/modprobe.d/blacklist.conf by:
sudo gedit /etc/modprobe.d/blacklist.conf
and add blacklist rtl8192cu on a separate line at the end. This prevents the old driver ever being used without going as far as to actually remove it permanently
Now when you plug in the adapter or reboot etc it should just find the new module and you are away.
You will need to repeat the compile and install with the new linux-headers if there is a significant change in the linux version. I will not be sure until a kernel update appears.
The proceedure is sufficiently simple that I am not worried on my own machine but when it is another matter on a machine used by others. My wife does not appreciate complete lose of internet after an update! I have been investigating automatically running the install.sh program every time the kernel changes but the script requires interaction to choose the driver required. Inspecting install.sh it calls another script in the driver subfolder called make_drv and it looks as if it should be possible to modify it to comment out the test and substitute the correct choice but parts still need to be run with root permissions (ie using sudo) so at the moment I have settled for identifying kernel changes and automatically starting the script in a terminal after providing simple instructions.
The end result is two scripts and a file to act as a memory of the kernel version - they are all in the home folder:
The split into two scripts makes it easy to adapt to different drivers, some machines may also need other drivers updated. It also allows the second script to be run from a desktop launcher, a unity launcher or a terminal for test or if you do not want to go as far as automatic detection
# Script to check if kernel has changed since last restart - run at login
# Last updated 29th June 2012
# check that .kernelversion exist - if not create a file containing string null
if [ ! -f ~/.kernelversion ]
echo 'null' | tee ~/.kernelversion
# Read the first line of file .kernelversion and compare to the the current kernel version
if [ `sed -n 1p ~/.kernelversion` != `uname -r` ]
# Use Zenity to provide a Warning box with information before running rtl8192cu.sh in a terminal. Zenity needs to be installed
zenity --warning --text 'The last update has changed the kernel version. This means YOU MUST update the Wifi Drivers to restore your internet connection. You will now be taken to a Terminal Window to Update your RTL8192cu Wifi Driver". Please follow the simple instructions in the window that will be opened when you click OK'
# echo `uname -r` | tee ~/.kernelversion
# Ubuntu uses gnome-terminal and Lubuntu lxterminal
gnome-terminal -e "$HOME/rtl8192cu.sh"
# lxterminal -e "$HOME/rtl8192cu.sh"
All the scripts are in the home folder as is the file used to hold the version number. .kernelversion is best updated by the script which is run - the command line is present but commented out. This basic script can be simply changed to run any script(s) in a terminal such as gnome-terminal or lxterminal in the case of Lubuntu.
# Script to Run the Realtek Driver Install script
# Last updated 29th June 2012
echo 'This script will update the Realtek Wi-Fi driver '
echo 'after a kernel update. You will need to enter '
echo 'the password used at login when requested'
echo 'and enter 1 when it pauses to request you to '
echo 'select the card type which is a RTL8192cu'
echo 'It can take several minutes to complete'
echo 'Hit any key to start or Ctrl C to abort'
sudo bash install.sh
echo ' '
echo 'Will now update stored kernel version to:'
echo `uname -r` | tee ~/.kernelversion
echo 'Done - Hit any key to exit'
This can be run from a terminal for testing or a launcher as well as from script run at login which identifies a kernel change. It ends by creating/updating the file containing the saved kernel version.
It has become much more difficult to create a launcher in Ubuntu Unity so I have included an example launcher file which should end in .desktop say updatewifidriver.desktop and can be copied to the desktop.
It is much easier to add the script to the list of Startup Applications which is found on the dropdown 'system' menu (top left icon on task bar). The Name and Comments are not important but the Command should be in full ie bash /home/yourusername/kernelcheck.sh The bash is required and ~/ instead of /home/yourusername sometimes does not work. See below for my entry.
The proceedure is different in Lubuntu where any shortcut files in the folder at /home/username/.config/autostart will be run during the login sequence so you just need to create a .desktop file for kernelchange.sh of a similar form to that above using lxshortcut in ~/.config/autostart by
lxshortcut -o ~/.config/autostart/kernelchange_shorcut.desktop
This has been an interesting exercise and one which would not be worthwhile for a single driver on ones own machine but essential for machines used by other people. There will always be a need to use drivers which are not in the kernel with very new or very old hardware and many need updating after a kernel change. I was surprised that I could not even find any write ups of how to detect a kernel change. There are probably more elegant solutions but mine was easy to check and 'if it aint broke dont fix it' is a good principle. I am using it on two machines with Ubuntu 12.04 (Unity and 2d) and one using Lubuntu 12.04. I am also using a slight variation to use the madwifi driver on another laptop running Lubuntu. It should be possible to keep other problem drivers such as modems up-to-date.
PCManFM's features include:
Full gvfs support with seamless access to remote filesystems (Able to handle sftp://, webdav://, smb://, ...etc when related backends of gvfs are installed.)
Thumbnails for pictures (default is only for local pictures)
Desktop management - shows wallpaper and desktop icons which can be positioned but does not support drag and drop onto icons.
Bookmarks - saved places. You can see them in the left panel of PCManFM.
Multilingual (translated in several languages)
Very fast start up and quick loading of directories
Tabbed windows (similar to Firefox tabs)
Volume management (mount/umount/eject, requires appropriate gvfs backends)
Drag & Drop support
Files can be dragged among tabs
File association support (default application)
Provides icon view, compact view, detailed list view and thumbnail view.
Complies with the FreeDesktop.org guidelines
Clean and user-friendly interface (GTK+ 2)
Trash can support
The list above is based on the lxde wiki with a few additional clarifications
PCManFM now uses a GVFS backend so you can use the ssh://user@server/path/to/directory to remotely access files on other computers from within PCManFM using SSH (Basically, it's sshfs). This feature does not show up in Go or Places but having set up a connection you can add it to your Bookmarks. There is a minor problem about this though - there is no apparent way to eject the volume. The best you can do, from what I can tell, is kill the ssh process. For background GVFS is the virtual filesystem for the GNOME desktop, which allows users easy access to remote data via SFTP, FTP, WebDAV, SMB, SSH and local data via HAL integration, OBEX and others. The list of special addresses that I have discovered so far comprises
Two useful features in PCManFM are Tools -> Open Current Folder in Terminal and Tools -> Open Current Folder as Root, these tools save a lot of clicks and typing. The permissions tab of the File Properties Window allows one to change file permissions. PCManFM will display a small warning icon in the toolbar while you are running it as root to remind you to be careful. Picture thumbnails are supported, but you may need to increase the maximum file size from 1024 KB in the Preferences dialog to view high resolution photos.
sudo netstat -ltunpnslookup amilo.local
nmap -vAPN 192.168.2.106 -p 1-1000
sudo gedit /etc/nsswitch.conf
sudo gedit /etc/samba/smb.conf
gksudo gedit /etc/avahi/avahi-daemon.conf
gnome-desktop-item-edit ~/Desktop --create-new