Ubuntu 12.04 (Precise) – Could not apply the stored configuration for monitors

ubuntu-logo

Booting in to a clean installation of Ubuntu 12.04 (Precise) with VMWare Tools installed I get a Could not apply the stored configuration for monitors error:

Could not apply the stored configuration for monitors.
Could not apply the stored configuration for monitors.

The solution is to remove monitors.xml from /home/<username>/.config.

To do this I opened a Terminal and changed the directory to .config:

cd .config

I backed-up and then deleted monitors.xml:

cp monitors.xml monitors.bak
rm monitors.xml

I rebooted for good measure – now VMWare Tools adjusts my resolution without errors.

Source:  http://askubuntu.com/questions/67337/how-do-i-get-rid-of-this-monitor-error

Ubuntu – Teamviewer 8 – lsb_release crashed with IOError in getstatusoutput(): [Errno 10] No child processes

ubuntu-logo

I installed Teamviewer 8 on Ubuntu 12.04 (Precise) today and started getting frequent random internal error messages.

ubuntu-internal-error
Sorry, Ubuntu 12.04 has experienced an internal error.

I did not capture all of the details but this portion led me to a solution when I searched for it:

lsb_release crashed with IOError in getstatusoutput(): [Errno 10] No child processes

To fix the error first open the Terminal.

Next change directory to /opt/teamviewer8/tv_bin/script:

cd /opt/teamviewer8/tv_bin/script

Make a backup copy of tvw_main:

sudo cp tvw_main tvw_main.bak

Open tvw_main in the nano text editor:

sudo nano tvw_main

Edit the file as per the screenshot below:

teamviewer-tvw_main

  • comment out lsb_release -a
  • comment out lsb_release -ds > “$WINEPREFIX/drive_c/distrelease”

After make_path “$WINEPREFIX/drive_c” make a new line and paste the following:

cat /etc/lsb-release | grep DESCRIPTION | cut -f2 -d= | sed 's/\"//g' >     "$WINEPREFIX/drive_c/distrelease"

Save tvw_main and exit nano – Ctrl + O, Enter, Ctrl +X.

Source: https://bugs.launchpad.net/ubuntu/+source/lsb/+bug/1094218

Notepad ++ Unix Shell Scripts and the ‘No such file or directory’ error on Ubuntu Server

ubuntu-server-logo

I first encountered this issue a long time ago and forgot to document it – so now I had to resolve it again.

I’m running Notepad ++ on Windows and using WinSCP to transfer bash scripts to Ubuntu Server. My script is saved as an Unix script file (*.sh, *.bsh) in Notepad++ and WinSCP is set to transfer files in binary mode.

When I run the script on Ubuntu Server I get the following error:

: No such file or directory

I could see the problem in Notepad++ and in nano on Ubuntu Server when I wanted to save the file – the file was formatted for Dos\Windows.

dos-windows
Notepad ++ document format set to Dos\Windows
dos-format
Nano saving .sh as Dos Format

The fix is to change the formatting to UNIX. In Notepad ++ click Edit, EOL Conversion and UNIX and save the file.

Easy when you remember how!

Ubuntu Server – Installing Tiny Tiny RSS

ubuntu-server-logo

I have been using Gregarius as my web-based RSS aggregator for quite some time now but have wanted to try Tiny Tiny RSS for a while.

Now that WebUpd8 have created a PPA (Personal Package Archives) for Tiny Tiny RSS I really had no excuse for not installing it.

Note: I am installing Tiny Tiny RSS on Ubuntu Server 12.04. PPAs have been available for Ubuntu since Ubuntu 9.10 – so this will not work on prior editions of Ubuntu Server.

The first step is to update our repositories and install Apache and MySQL:

sudo apt-get update
sudo apt-get install mysql-server mysql-client apache2 libapache2-mod-php5

When prompted enter a password for your MySQL root user:

MySQL Password

Confirm your MySQL password:

Confirm MySQL Password

Now that we have our prerequisites installed we can add the Tiny Tiny RSS PPA.

Note: On a minimal virtual machine installation of Ubuntu Server we need to install the  python-software-properties package to be able to add a PPA:

sudo apt-get install python-software-properties

Add the Tiny Tiny RSS PPA:

sudo add-apt-repository ppa:webupd8team/tt-rss
sudo apt-get update
sudo apt-get install tt-rss

Set Apache as the Tiny Tiny RSS web server:

tt-rss apache

Set the URL for the Tiny Tiny RSS installation – for a local install on my LAN i used http://localhost/tt-rss/:

tt-rss url

Select Yes for database configuration:

tt-rss database config

Confirm MySQL as the database for Tiny Tiny RSS:

tt-rss database mysql

Enter your root MySQL password:

tt-rss root mysql password

Enter a password for Tiny Tiny RSS to register with MySQL – a random password will be generated if left blank:

tt-rss application password

Confirm your application password:

tt-rss confirm application password

Next we need to use nano to edit some configuration files.

First we need to edit our server address in /etc/tt-rss/config.php:

sudo nano /etc/tt-rss/config.php

Find the line  define('SELF_URL_PATH', 'http://yourserver/tt-rss/'); and change it to  define('SELF_URL_PATH', 'http://localhost/tt-rss/'); (as per the server address that we set previously):

tt-rss config.php

Press Ctrl + O then Enter to save the changes to config.php and then Ctrl +X to exit nano.

To get Tiny Tiny RSS to update feeds we need to edit /etc/default/tt-rss:

sudo nano /etc/default/tt-rss

Change DISABLED=1 to DISABLED=0 to allow the Tiny Tiny RSS daemon to be started:

tt-rss tt-rss

Press Ctrl + O then Enter to save the changes to config.php and then Ctrl +X to exit nano.

Start the Tiny Tiny RSS service:

sudo service tt-rss start

Obtain the IP address of your Ubuntu Server installation:

ipconfig

tt-rss ifconfig

Open a browser on another machine and navigate to your Tiny Tiny RSS URL:

tt-rss login

Login with the username: admin and the password: password.

Click Actions, Preferences and Users to change your admin password and add users. You can import feeds under the Feeds tab or click Exit Preferences and then Actions, Subscribe to feed to add feeds manually.

Source: http://www.webupd8.org/2013/05/tiny-tiny-rss-ubuntu-ppa-google-reader.html

Ubuntu – Change Hostname Permanently Using the Command Line

ubuntu-logo

On Ubuntu the hostname is stored in both the /etc/hosts and /etc/hostname files. There are several ways that we can change the hostname in these files.

1. Manually Edit the hostname

We can manually edit these files using a basic text editor like nano:

sudo nano /etc/hosts
sudo nano /etc/hostname

In /etc/hostname simply overwrite the existing hostname with a new one. In /etc/hosts you will find the hostname on the line beginning 127.0.0.1 – overwrite only the hostname with the new one, and then reboot.

Editing /etc/hosts using nano
Editing /etc/hosts using nano
sudo reboot

2. Use sed to change the hostname

Another way to achieve the same goal is to use the sed command to replace the existing hostname with a new one.

For example, my Ubuntu Server has the default hostname of ‘ubuntu’.

Use the hostname command to check what your hostname is.

With sed we can look for our hostname (in /etc/hosts and /etc/hostname) and then replace it with the desired new-hostname:

sudo sed -i 's/ubuntu/new-hostname/g' /etc/hosts
sudo sed -i 's/ubuntu/new-hostname/g' /etc/hostname

Reboot:

sudo reboot

3. Write a Bash Script

It’s always handy to have a script to do things – so here is a quick bash script that I put together that uses sed to change the hostname and then reboot:

#!/bin/bash
#Assign existing hostname to $hostn
hostn=$(cat /etc/hostname)

#Display existing hostname
echo "Existing hostname is $hostn"

#Ask for new hostname $newhost
echo "Enter new hostname: "
read newhost

#change hostname in /etc/hosts & /etc/hostname
sudo sed -i "s/$hostn/$newhost/g" /etc/hosts
sudo sed -i "s/$hostn/$newhost/g" /etc/hostname

#display new hostname
echo "Your new hostname is $newhost"

#Press a key to reboot
read -s -n 1 -p "Press any key to reboot"
sudo reboot

Ubuntu Server – Apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

ubuntu-server-logo

Restarting the Apache Web Server on Ubuntu Server (12.04 at the time of writing) gives me the following error:

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

To fix this error add ServerName localhost to /etc/apache2/httpd.conf, as follows:

echo 'ServerName localhost' | sudo tee -a /etc/apache2/httpd.conf

Restart Apache to make sure that the issue is resolved:

sudo /etc/init.d/apache2 restart

Ubuntu Server – Unattended Installation (Custom CD)

ubuntu-server-logo

I’ve lost count of the number of times that I have installed Ubuntu Server on my VMware vSphere box – so I finally looked in to performing an unattended install.

I could have setup DHCP and TFTP servers and done PXE boot from images over the network – but I wanted to work on something quicker than that (and I don’t have that much spare RAM on my vSphere box as it is).

So I settled on re-mastering an Ubuntu Server .iso image. The result is an unattended install, except for the initial boot screen (where I need to select a minimal virtual machine installation anyway).

The following steps were performed on Ubuntu Desktop.

Download Ubuntu Server – I am using the 32 bit version of Ubuntu 12.04.

Open a Terminal and create a directory to mount the Ubuntu Server iso to.

sudo mkdir -p /mnt/iso

The -p switch is very useful as it allows you to create a directory structure which does not already exist (as opposed to creating a single directory).

Change directory to Downloads:

cd Downloads

I renamed my download UbuntuServer.iso.

Mount UbuntuServer.iso to /mnt/iso:

sudo mount -o loop UbuntuServer.iso /mnt/iso

Create a directory and copy the mounted Ubuntu Server files:

sudo mkdir -p /opt/serveriso
sudo cp -rT /mnt/iso /opt/serveriso

The -r switch copies directories recursively and -T specifies no (singular) target directory.

Now we have a copy of our Ubuntu .iso to work on in /opt/serveriso – but we need to make these files writable:

sudo chmod -R 777 /opt/serveriso/

With this preparation done we can start customizing things.

If we look at the isolinux/langlist file we see all the supported languages listed that Ubuntu supports (in an abbreviated format):

am
ar
ast
be
bg ...

I am only interested in an English install so I am going to overwrite the contents of isolinux/langlist with the single abbreviation for English, which is “en”.

cd /opt/serveriso
echo en >isolinux/langlist

This stops the language selection menu from appearing during installation.

The next step of the process is to create a kickstart file – this will provide the server install with the answers to the various questions asked during installation, such as timezone, username, password, partition structure and so on.

Install Kickstart Configurator:

sudo apt-get install system-config-kickstart

Click the Dash button and type kickstart and then click on the kickstart application.

kickstart

Obviously you should customize your settings as you see fit – I have provided mine for reference.

Basic Configuration
Basic Configuration: Set Timezone
Installation Method
Installation Method: Choose the CD-ROM installation method

Boot Loader Options

Partition Options: Add an ext4 partition to the root file system that fills all unused space on the disk
Partition Options: Add an ext4 partition to the root file system that fills all unused space on the disk
Partition Options: Add a swap file system that uses the recommended swap size
Partition Options: Add a swap file system that uses the recommended swap size
Network Configuration: Add network device eth0 and set to DHCP
Network Configuration: Add network device eth0 and set to DHCP
User Configuration: Provide username and password
User Configuration: Provide username and password

Click File, Save File and save the kickstart file ks.cfg to /opt/serveriso.

While using the Kickstart Configurator you may have noticed that the Package Selection screen did not work. Fortunately we can manually edit the ks.cfg file so that the packages that we want are installed during Ubuntu Server installation.

At the end of ks.cfg add %packages and then list the packages that you want installed. I chose to install nano, openssh-server and open-vm-tools:

%packages
nano
openssh-server
open-vm-tools --no-install-recommends

–no-install-recommends installs open-vm-tools in headless mode.

Now we need to configure the CD boot command line to use the kickstart ks.cfg file.

Browse to and open /opt/serveriso/isolinux/txt.cfg.

We need to edit the append line of the default install section at the top of the file.

default install

At the end of the append line add ks=cdrom:/ks.cfg. You can remove quiet — and vga=788.

My append line is as follows:

append  file=/cdrom/preseed/ubuntuserver.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg

The final step is to create a new Ubuntu Server .iso using this command:

sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/serveriso

The finished .iso is /opt/autoinstall.iso.

Test your .iso in a virtual machine to make sure that everything works as it should.

The minimal interaction that I need to set my Ubuntu Server install going is documented below:

1. Press the Enter key to confirm the English language selection
Press the Enter key to confirm the English language selection
Press F4, select Install a minimal virtual machine, and then press Enter
Press F4, select Install a minimal virtual machine, and then press Enter
Press Enter to install Ubuntu Server
Press Enter to install Ubuntu Server

From here installation continues without any further input being required.

Sources: http://askubuntu.com/questions/122505/how-do-i-create-completely-unattended-install-for-ubuntu

Ubuntu Server – Very Quick FTP Setup

ubuntu-server-logo

To get an FTP daemon running on Ubuntu Server we will install vsftpd (Very Secure FTP Daemon) as follows:

sudo apt-get update
sudo apt-get install vsftpd

The next step is to configure vsftpd by editing the /etc/vsftpd.conf file. Issue the following commands to install the nano editor (if you haven’t installed it before) and edit the file:

sudo apt-get install nano
sudo nano /etc/vsftpd.conf

The basic configuration of vsftpd.conf involves simple editing and un-commenting of the existing parameters:

Un-commenting is the removal of the # sign from the start of a line. For example changing #local_enable=YES to local_enable=YES (which we will do later).

  • To disable anonymous access change anonymous_enable=YES to anonymous_enable=NO.
  • Un-comment #local_enable=YES to allow local users to login to the FTP server.
  • Un-comment #write_enable=YES if you want users to be able to upload to the FTP server.

Vsftp.conf contains an explanation of its parameters – so it should be relatively self-explanatory if you wish to configure other options.

The final step is to restart the vsftp daemon. On older Ubuntu servers you will probably use sudo /etc/init.d/vsftpd restart but a more recent installation will prefer:

sudo service vsftpd restart

Enjoy!

Ubuntu 12.04 – Dell Vostro 3750 – No Sound When Headphones are Plugged in (Fixed)

Since installing Ubuntu 12.04 on my Dell Vostro 3750 I have had issues with no sound coming through my headphones.

I thought that I had resolved the issue in a previous blog post but recently the problem has resurfaced. I tired reverting to my original /usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf file but this did not work.

It might have some bearing on the issue that I am dual booting with Windows 7 – but I am not sure that this is necessarily the problem.

When I run alsamixer (from the terminal) my speaker volume becomes muted when I plug in my headphones.

The headphone column state does not change at all.

My first stop when looking at this issue again was the Ubuntu Sound Troubleshooting Page. I looked at a few items after step 9 but I tried evrything up to step 9 to no avail. I mention this as I do not know if these steps impacted the current fix that I am using.

This bug report contains the fix that currently works for me. Open a Terminal and issue the following commands:

sudo nano /usr/share/pulseaudio/alsa-mixer/paths/analog-output-
headphones.conf

Comment out the following line as shown:

[Jack_InputDevice]
#required-any = any

Save the file and then issue this command to restart pulseaudio:

pulseaudio -k

So far I have had no issues with this fix and I have rebooted and plugged and un-plugged my headphones – sound switches between the headphones and speaker just fine again.

Ubuntu 12.04 – Dell Vostro 3750 – No Sound When Headphones are Plugged in

** This workaround did work for me for a while – I have now had to implement a new workaround to fix the issue now that it had resurfaced again. See this post for details. **

Having just installed Ubuntu 12.04 (Precise Pangolin) on my Dell Vostro 3750 I noticed that there was no sound when I plugged in my headphones.

The workaround was to edit /usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf.

Update: Since implementing this workaround I have found that updates have reverted the changes that I made to analog-output-headphones.conf. So I recommend making a backup of the original file, then making changes to analog-output-headphones.conf and then backing up the changed file.

Open the terminal and enter the following commands:

cd /usr/share/pulseaudio/alsa-mixer/paths/
sudo cp analog-output-headphones.conf analog-output-headphones.bak
sudo nano analog-output-headphones.conf

Look for the section called [Element Speaker] and change it so that it looks like this:

[Element Speaker]
switch = on
volume = ignore

Create a backup of the corrected analog-output-headphones.conf:

sudo cp analog-output-headphones.conf analog-output-headphones.fixed

Save the changes and then reboot.

After rebooting I found that I needed to remove my headphones and then insert the jack again to get them to work. Once they were working I could remove and insert the headphones jack and the behaviour was as expected.

With my configuration files backed up I can now easily revert to the original settings should I need to in the future or copy the fixed settings back if the settings are lost.

Source: bugs.launchpad.net

Credit to Ryan (bovorasr) for the workaround.