As a common 'fashion' it is possible to upgrade an existing installation of Ubuntu or one of its derivates every six months. Of course, you might opt-in for the adventure and directly keep your system always on the latest version (including alphas and betas), or you might like to play safe and stay on the long-term support (LTS) versions which are updated every two years only. As for me, I'd like to jump from release to release on my main desktop machine. And since 17th October Saucy Salamander or also known as Ubuntu 13.10 has been released for general use.
The following paragraphs document the steps I went in order to upgrade my system to the recent version. Don't worry about the fact that I'm actually using Xubuntu. It's mainly a flavoured version of Ubuntu running Xfce 4.10 as default X Window manager. Well, I have Gnome and LXDE on the same system... just out of couriosity.
Before you think about upgrading you have to ensure that your current system is running on the latest packages. This can be done easily via a terminal like so:
$ sudo apt-get update && sudo apt-get -y dist-upgrade --fix-missing
Next, we are going to initiate the upgrade itself:
$ sudo update-manager
As a result the graphical Software Updater should inform you that a newer version of Ubuntu is available for installation.
Ubuntu's Software Updater informs you whether an upgrade is available
After clicking 'Upgrade...' you will be presented with information about the new version.
Details about Ubuntu 13.10 (Saucy Salamander)
Simply continue with the procedure and your system will be analysed for the next steps.
Analysing the existing system and preparing the actual upgrade to 13.10
Next, we are at the point of no return. Last confirmation dialog before having a coffee break while your machine is occupied to download the necessary packages. Not the best bandwidth at hand after all... yours might be faster.
Are you really sure that you want to start the upgrade? Let's go and have fun!
Anyway, bye bye Raring Ringtail and Welcome Saucy Salamander!
In case that you added any additional repositories like Medibuntu or PPAs you will be informed that they are going to be disabled during the upgrade and they might require some manual intervention after completion.
Ubuntu is playing safe and third party repositories are disabled during the upgrade
Well, depending on your internet bandwidth this might take something between a couple of minutes and some hours to download all the packages and then trigger the actual installation process. In my case I left my PC unattended during the night.
Finally, it's time to restart your system and see what's going to happen... In my case absolutely nothing unexpected. The system booted the new kernel 3.11.0 as usual and I was greeted by a new login screen.
Honestly, 'same' system as before - which is good and I love that fact of consistency - and I can continue to work productively. And also Software Updater confirms that we just had a painless upgrade:
System is running Ubuntu 13.10 - Saucy Salamander - and up to date
See you in six months again... ;-)
In case that you would to upgrade to the latest development version of Ubuntu, run the following command in a console:
$ sudo update-manager -d
And repeat all steps as described above.
It’s been a hectic Saturday … started pretty early with a intervention (work) which I carried from home. I was hoping to finish before noon but those slow RDP connections messed up my plans. Oh yeah, intervention on WinServers.
During the week Pritvi created a facebook event for Linuxfest brainstorming. By this morning, the event page had 8 RSVPs, but more people showed up :) I reached 2 hours late. Folks were already there having some geek chat. Hmm … except for the ladies.
I reached Bagatelle Mall at 15h00. Pritvi, Nirvan, Avinash Seetaram, Nitin J Mutkawoa, Pawan and Avinash Mayaram were inside Mugg & Bean. Neha, Darshini & another friend of theirs were gossiping outside. When I arrived I pinged the ladies & they joined in. I first presented my apologies for being late & then took out the WinServers frustration. I shared the daunting experience regarding today’s intervention (slow RDP connection … grrr!). Nayar came a while later.
We started with a quick chat about Linkbynet Openday 2013. Nitin & Nayar had already registered on the website. Avinash Mayaram also wanted to know about the event. I explained him briefly the process of setting up applications on one’s own PC and how Linkbynet will validate the well-functioning of the same. Neha & Darshini had pinged me earlier on facebook to know more about the event. So, I pulled Pawan’s netbook & showed a quick Apache installation, accessed the default page on Nitin’s netbook and modified the page to show them that it’s not as difficult as they had imagined. Yup, being a sysadmin is more than just installing Apache. However, this did give them an idea of what to expect ahead. Pawan on the other hand was more curious to know about SSH. We then installed OpenSSH on his netbook & connected using Nitin’s. I then asked Pawan to get an SSH client on his Android phone & do the same. All three of them, Neha, Darshini & Pawan, found this SSH connection thing amazing. I could see it in their smiles.
Geek talk was ON
Photo credit goes to Nirvan
Well, Linkbynet Openday, Apache and SSH talks had been long. At the same time others were continuing the geek chat. I adore this whole community. Everybody had something to share & discuss. From time to time Avinash S & me, we made some Windows or Mac reference to make fun. We usually do that in office too. Pawan & Neha took a copy of Ubuntu 13.10 to try at home. After the Apache & SSH fun we all moved to join the Linuxfest 2013 talk with Pritvi and Nirvan. I made a quick recap of last week’s points. More ideas were tossed on the table today. We laughed … We laughed a lot. Indeed the team’s made up of creative minded people :) Drop in our Linuxfest 2013 on November 25 at Octave Wiehe Auditorium, Réduit and you’ll understand why.
Having access to a little bit of IT hardware extravaganza isn't that easy here in Mauritius for exactly two reasons - either it is simply not available or it is expensive like nowhere. Well, by chance I came across an advert by a local hardware supplier and their offer of the week caught my attention - a portable USB monitor. Sounds cool, and the specs are okay as well. It's completely driven via USB 2.0, has a light weight, the dimensions would fit into my laptop bag and the resolution of 1366 x 768 pixels is okay for a second screen. Long story, short ending: I called them and only got to understand that they are out of stock - how convenient! Well, as usual I left some contact details and got the regular 'We call you back' answer. Surprisingly, I didn't receive a phone call as promised and after starting to complain via social media networks they finally came back to me with new units available - and *drum-roll* still the same price tag as promoted (and free delivery on top as one of their employees lives in Flic en Flac). Guess, it was a no-brainer to get at least one unit to fool around with. In worst case it might end up as image frame on the shelf or so...
Of course, the packing mentions only Windows or Mac OS as supported operating systems and without hesitation at all, I hooked up the device on my main machine running on Ubuntu 13.04. Result: Blackout...
Hm, actually not the situation I was looking for but okay can't be too difficult to get this piece of hardware up and running. Following the output of syslogd (or dmesg if you prefer) the device has been recognised successfully but we got stuck in the initialisation phase.
Oct 12 08:17:23 iospc2 kernel: [69818.689137] usb 2-4: new high-speed USB device number 5 using ehci-pci
Oct 12 08:17:23 iospc2 kernel: [69818.800306] usb 2-4: device descriptor read/64, error -32
Oct 12 08:17:24 iospc2 kernel: [69819.043620] usb 2-4: New USB device found, idVendor=17e9, idProduct=4107
Oct 12 08:17:24 iospc2 kernel: [69819.043630] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 12 08:17:24 iospc2 kernel: [69819.043636] usb 2-4: Product: e1649Fwu
Oct 12 08:17:24 iospc2 kernel: [69819.043642] usb 2-4: Manufacturer: DisplayLink
Oct 12 08:17:24 iospc2 kernel: [69819.043647] usb 2-4: SerialNumber: FJBD7HA000778
Oct 12 08:17:24 iospc2 kernel: [69819.046073] hid-generic 0003:17E9:4107.0008: hiddev0,hidraw5: USB HID v1.10 Device [DisplayLink e1649Fwu] on usb-0000:00:1d.7-4/input1
Oct 12 08:17:24 iospc2 mtp-probe: checking bus 2, device 5: "/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-4"
Oct 12 08:17:24 iospc2 mtp-probe: bus: 2, device: 5 was not an MTP device
Oct 12 08:17:30 iospc2 kernel: [69825.411220] [drm] vendor descriptor length:17 data:17 5f 01 00 15 05 00 01 03 00 04
Oct 12 08:17:30 iospc2 kernel: [69825.498778] udl 2-4:1.0: fb1: udldrmfb frame buffer device
Oct 12 08:17:30 iospc2 kernel: [69825.498786] [drm] Initialized udl 0.0.1 20120220 on minor 1
Oct 12 08:17:30 iospc2 kernel: [69825.498909] usbcore: registered new interface driver udl
The device has been recognised as USB device without any question and it is listed properly:
Bus 002 Device 005: ID 17e9:4107 DisplayLink
A quick and dirty research on the net gave me some hints towards the udlfb framebuffer device for USB DisplayLink devices. By default this kernel module is blacklisted
grep udl /etc/modprobe.d/blacklist-framebuffer.conf
and it is recommended to load it manually. So, unloading the whole udl stack and giving udlfb a shot:
Oct 12 08:22:31 iospc2 kernel: [70126.642809] usbcore: registered new interface driver udlfb
But still no reaction on the external display which supposedly should have been on and green.
Just to be on the safe side and to exclude any hardware related defects or whatsoever - you never know what happened during delivery. I moved the display to a new position on the opposite side of my laptop, installed the display drivers first in Windows Vista (I know, I know...) as recommended in the manual, and then finally hooked it up on that machine. Tada! Display has been recognised correctly and I have a proper choice between cloning and extending my desktop.
Testing whether the display is working properly - using Windows Vista
Okay, good to know that there is nothing wrong on the hardware side just software...
Some more research on Google and various hits recommend that the original displaylink driver has been merged into the recent kernel development and one should manually upgrade the kernel image (and both header) packages for Ubuntu. At least kernel 3.9 or higher would be necessary, and so I went out to this URL:
and I downloaded all the good stuff from the v3.9-raring directory. The installation itself is easy going via dpkg:
$ sudo dpkg -i linux-*-3.9.0-030900-*.deb
As with any kernel upgrades it is necessary to restart the system in order to use the new one. Said and done:
$ uname -r
And now connecting the external display gives me the following output in /var/log/syslog:
Oct 12 17:51:36 iospc2 kernel: [ 2314.984293] usb 2-4: new high-speed USB device number 6 using ehci-pci
Oct 12 17:51:36 iospc2 kernel: [ 2315.096257] usb 2-4: device descriptor read/64, error -32
Oct 12 17:51:36 iospc2 kernel: [ 2315.337105] usb 2-4: New USB device found, idVendor=17e9, idProduct=4107
Oct 12 17:51:36 iospc2 kernel: [ 2315.337115] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 12 17:51:36 iospc2 kernel: [ 2315.337122] usb 2-4: Product: e1649Fwu
Oct 12 17:51:36 iospc2 kernel: [ 2315.337127] usb 2-4: Manufacturer: DisplayLink
Oct 12 17:51:36 iospc2 kernel: [ 2315.337132] usb 2-4: SerialNumber: FJBD7HA000778
Oct 12 17:51:36 iospc2 kernel: [ 2315.338292] udlfb: DisplayLink e1649Fwu - serial #FJBD7HA000778
Oct 12 17:51:36 iospc2 kernel: [ 2315.338299] udlfb: vid_17e9&pid_4107&rev_0129 driver's dlfb_data struct at ffff880117e59000
Oct 12 17:51:36 iospc2 kernel: [ 2315.338303] udlfb: console enable=1
Oct 12 17:51:36 iospc2 kernel: [ 2315.338306] udlfb: fb_defio enable=1
Oct 12 17:51:36 iospc2 kernel: [ 2315.338309] udlfb: shadow enable=1
Oct 12 17:51:36 iospc2 kernel: [ 2315.338468] udlfb: vendor descriptor length:17 data:17 5f 01 0015 05 00 01 03 00 04
Oct 12 17:51:36 iospc2 kernel: [ 2315.338473] udlfb: DL chip limited to 1500000 pixel modes
Oct 12 17:51:36 iospc2 kernel: [ 2315.338565] udlfb: allocated 4 65024 byte urbs
Oct 12 17:51:36 iospc2 kernel: [ 2315.343592] hid-generic 0003:17E9:4107.0009: hiddev0,hidraw5: USB HID v1.10 Device [DisplayLink e1649Fwu] on usb-0000:00:1d.7-4/input1
Oct 12 17:51:36 iospc2 mtp-probe: checking bus 2, device 6: "/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-4"
Oct 12 17:51:36 iospc2 mtp-probe: bus: 2, device: 6 was not an MTP device
Oct 12 17:51:36 iospc2 kernel: [ 2315.426583] udlfb: 1366x768 @ 59 Hz valid mode
Oct 12 17:51:36 iospc2 kernel: [ 2315.426589] udlfb: Reallocating framebuffer. Addresses will change!
Oct 12 17:51:36 iospc2 kernel: [ 2315.428338] udlfb: 1366x768 @ 59 Hz valid mode
Oct 12 17:51:36 iospc2 kernel: [ 2315.428343] udlfb: set_par mode 1366x768
Oct 12 17:51:36 iospc2 kernel: [ 2315.430620] udlfb: DisplayLink USB device /dev/fb1 attached. 1366x768 resolution. Using 4104K framebuffer memory
Okay, that's looks more promising but still only blackout on the external screen... And yes, due to my previous modifications I swapped the blacklisted kernel modules:
grep udl /etc/modprobe.d/blacklist-framebuffer.conf
Okay, back to the original situation in which udl is allowed and udlfb blacklisted. Now, the logging looks similar to this and the screen shows those maroon-brown and azure-blue horizontal bars as described on other online resources.
Oct 15 21:27:23 iospc2 kernel: [80934.308238] usb 2-4: new high-speed USB device number 5 using ehci-pci
Oct 15 21:27:23 iospc2 kernel: [80934.420244] usb 2-4: device descriptor read/64, error -32
Oct 15 21:27:24 iospc2 kernel: [80934.660822] usb 2-4: New USB device found, idVendor=17e9, idProduct=4107
Oct 15 21:27:24 iospc2 kernel: [80934.660832] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 15 21:27:24 iospc2 kernel: [80934.660838] usb 2-4: Product: e1649Fwu
Oct 15 21:27:24 iospc2 kernel: [80934.660844] usb 2-4: Manufacturer: DisplayLink
Oct 15 21:27:24 iospc2 kernel: [80934.660850] usb 2-4: SerialNumber: FJBD7HA000778
Oct 15 21:27:24 iospc2 kernel: [80934.663391] hid-generic 0003:17E9:4107.0008: hiddev0,hidraw5: USB HID v1.10 Device [DisplayLink e1649Fwu] on usb-0000:00:1d.7-4/input1
Oct 15 21:27:24 iospc2 mtp-probe: checking bus 2, device 5: "/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-4"
Oct 15 21:27:24 iospc2 mtp-probe: bus: 2, device: 5 was not an MTP device
Oct 15 21:27:25 iospc2 kernel: [80935.742407] [drm] vendor descriptor length:17 data:17 5f 01 00 15 05 00 01 03 00 04
Oct 15 21:27:25 iospc2 kernel: [80935.834403] udl 2-4:1.0: fb1: udldrmfb frame buffer device
Oct 15 21:27:25 iospc2 kernel: [80935.834416] [drm] Initialized udl 0.0.1 20120220 on minor 1
Oct 15 21:27:25 iospc2 kernel: [80935.836389] usbcore: registered new interface driver udl
Oct 15 21:27:25 iospc2 kernel: [80936.021458] [drm] write mode info 153
Next, it's time to enable the display for our needs... This can be done either via UI or console, just as you'd prefer it.
Adding the external USB display under Linux isn't an issue after all... Settings Manager => Display
Personally, I like the console. With the help of xrandr we get the screen identifier first
Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 32767 x 32767
LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
DVI-0 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
and then give it the usual shot with auto-configuration. Let the system decide what's best for your hardware...
$ xrandr --output DVI-0 --off
$ xrandr --output DVI-0 --auto
And there we go... Cloned output of main display:
New kernel, new display... The external USB display works out-of-the-box with a Linux kernel > 3.9.0.
Despite of a good number of resources it is absolutely not necessary to create a Device or Screen section in one of Xorg.conf files. This information belongs to the past and is not valid on kernel 3.9 or higher.
Of course, I wanted to know how the latest incarnation from Redmond would handle the new hardware... Flawless!
Most interesting aspect here: I did not use the driver installation medium on purpose. And I was right... not too long afterwards a dialog with the EULA of DisplayLink appeared on the main screen. And after confirmation of same it took some more seconds and the external USB monitor was ready to rumble. Well, and not only that one... but see for yourself.
This time Windows 8 was the easiest solution after all.
I can highly recommend this type of hardware to anyone asking me.
Although, it's dimensions are 15.6" it is actually lighter than my Samsung Galaxy Tab 10.1 and it still fits into my laptop bag without any issues. From now on... no more single screen while developing software on the road!
Meanwhile I upgraded my system to Saucy Salamander (Ubuntu 13.10) and the newer kernel 3.11.0 or better said the udl module doesn't activate the screen anymore. Although the hardware is correctly identified it won't display anything.
After some additional searching I came across a bug report on Launchpad: Regression: DisplayLink DL-195 fails with EAGAIN after upgrade from 3.11.0-031100 to 3.11.0-11 which shedded some light on my issue, too. As described above, I went from the default kernel (3.8.x) in Ubuntu 13.04 to an upstream kernel 3.9.0. Due to the recent upgrade to Saucy Salamander my system went back to an Ubuntu specific kernel 3.11.0-12-generic and the 'broken' display. Currently, I'm back to a vanilla kernel and thinks are working as expected.
$ uname -r
This kernel has a proper device detection and I can activate / configure the USB monitor with xrandr:
$ xrandr -q
Screen 0: minimum 320 x 200, current 4566 x 1080, maximum 32767 x 32767
LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
VGA1 connected 1920x1080+1280+0 (normal left inverted right x axis y axis) 521mm x 293mm
DVI-0 connected 1366x768+3200+0 (normal left inverted right x axis y axis) 344mm x 193mm
It's the little things that make a difference...
Last week I was contacted by the UoM Computer Club folks telling me they have a slot for the Linuxfest 2013. That was indeed a great news. I didn’t waste any more time & announced the same on LUGM’s mailing list. Secondly, I created a facebook event for LUGM mini-meetup and set the main topic as Linuxfest 2013.
By yesterday afternoon I had some 24 RSVPs on the event page. Yet I guessed not everybody would be able to make it today. So, I sent en email to Pizza Perfect to reserve a table for 15 people. If others show up, we would adjust accordingly. Seems like my guess was kinda right. 16 penguins (including me) showed up. Wohooo! That made a great meetup indeed. So, who were today’s penguins? Yuram (Kurtish), Nitin Mutkawoa, Nirvan, Pawan, Avinash Mayaram, Ajay, Selven, Tisha, Ashley, Nuvin, Adarsh, Neha, Darshini, Nayar, Toshan & me.
I reached Pizza Perfect exactly @ noon (while meetup time was set to 13h00). A few minutes later Yuram, Nirvan, Nitin & Pawan came. Everyone was kinda hungry, so we ordered one large pizza, chips & Nitin asked for a burger. The fun was ON!
Initially we had Internet connection issues. Nirvan & Yuram volunteered to help the Pizza Perfect folks to troubleshoot the same :)
Little by little others showed up. When Selven & Ajay came we started a full discussion about the upcoming Linuxfest 2013. Well, I won’t post the details to spoil the surprise but ideas that popped were awesome. We discussed & assigned who would share certain responsibilities. We also made a draft list of the kinds of presentations that should be happening. Everybody showed enthusiasm. The ladies Neha & Darshini; they got some nice roles as well :) Nirvan helped me by taking notes while the discussion remained ON (along with pizza munching).
Oh! Thinking about where are the ladies? Here they are … but for some weird reason the photo blacked-out (while one of the ladies, Tisha, was left out; couldn’t find her in any of the photos).
Around 16h00 Ajay tossed the topic on Apache configuration. I had completely forgotten about this one, which was in today’s technical discussion. I thought with all the fun talking on Linuxfest everyone would be tired but the penguins were not. In fact, all of them were so eager to have the technical fun on Apache.
Ajay described us a scenario where Apache does not load the PHP module leaving the content of PHP files view-able via the browser. This can expose database related credentials (username, password, hostname etc). To prevent such mishap he advised us to include a condition in httpd.conf that instructs Apache not to give access to files with certain extensions (like .inc) if mod_php isn’t loaded. We could therefore put the sensitive data in .inc files & they won’t be exposed when PHP module fails. Here’s how it goes into the Apache configuration :
<IfModule !mod_php5.c> <Filesmatch "\.inc$> Order allow,deny Deny from all Allow from none </Filesmatch> </IfModule>
We also talked a bit about mod_deflate. In case you have it enabled, put the following for older/buggy browsers :
BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0 no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Next, Ajay pointed the vulnerabilities when using open_basedir in PHP (more reading here).
Finally, if the meetups gonna be like today’s, I’ll have to remove the word mini from the title :)
Me, having evil ideas brewing in the mind...
While rushing to the bus-stop I missed the Port-Louis bus. That’s how I got late for today’s LUGM mini-meetup. Well, I reached Bagatelle at 13h25. Pawan & Nitin Mutkawoa called me earlier informing they had reached. I saw Nitin sitting opposite to Talking Drums & we went to Mugg & Bean. I called Pawan and told him we’re on the upper floor. It was our lucky day since the table near the power socket was free :) I also called Nirvan since he pinged me earlier after his university class but he was in P. Louis by then.
We ordered some mocha javas and I took a cheese & tomato sandwich. Pawan brought his Acer netbook for a Linux Mint installation. I got a Live pendrive ready and we installed all while having some general chit-chat. Topic then came about blogging and Nitin told us about the issues he was having with his Apache config. He logged on his VPS and I guided him through the WordPress installation.
Photo, courtesy of Yuram
Edited in GIMP :)
Yuram arrived with a power extender which I asked for earlier on facebook. Conversation was full fledged by that time. Jochen joined us through facebook ( yup, I know I should have set up the G+ hangout session :P ). He pointed out several security loopholes in Nitin’s website & the PHP configuration. To see the fun check out Pawan’s status on facebook.
At some point Nitin asked about Binutils & Coreutils. We briefly talked about those. Nitin & Yuram then shared some LPIC preparation tips. I was on the other hand teaching Pawan some basic Linux commands. It was the first time he had hands on a Linux terminal and he was enjoying playing around. In fact, he was so mesmerized with the ease of getting things done through command-line that he installed a shell emulator on his Sony Xperia phone. Everything else was working on his netbook except the WIFI. He has a Broadcomm BCM4312 network adaptor. We needed a wired connection to install the firmware. I gave Pawan the instructions from a previous blog post. He applied the same at home & confirmed me his WIFI is fine now.
Since the beginning of LUGM mini-meetups I told Yuram to get on IRC when needing help. Today I showed them how to connect to IRC servers and join a channel. We connected to the openSUSE channel on freenode and had a quick chat among ourselves. I then helped him signing up to the openSUSE mailing lists.
We had a lot of sporadic topics but we concentrated in helping Pawan getting comfortable with Linux. At the same time we could see Nitin’s head on fire with Jochen’s comments bombarding him on facebook. That was fun & we let him handle those alone :)
Nitin was too busy solving Jochen's puzzles
We finished at 17h00. Everyone smiling & saying that was an epic meetup!
Yuram’s article : http://yuram07blog.wordpress.com/2013/10/05/superb-saturday
Pawan’s post : http://yodhunjay.wordpress.com/2013/10/05/linux-meetup
Jochen’s behind-screen-story : http://jochen.kirstaetter.name/blog/community/not-attending-the-lugm-mini-meetup.html