Category Archives: Linux

Let’s make an Amazon Alexa device!

Wow, it’s been a while since I posted on here. I’ve been really busy working on programming projects with some of my friends and just haven’t had anything super interesting to blog about.

Enough with that though, let’s get on to what this is actually about! I recently saw a video done by the Youtuber Novaspirit Tech where he takes a Raspberry Pi 2 and implements the Amazon Alexa system!

I’ve had a Pi Model B since a few months after they initially launched and more recently received a Pi 2 from Element14 (you can watch my video reviews of them over on my, admittedly also recently neglected, Youtube channel AEVES Tech) and have been looking for interesting projects to do with them.

This hit the spot perfectly, and so I started out setting up my Pi Model B! Now, most of the tutorials use the Pi 2 as the base device, but my Pi 2 is currently serving as a code server for me, and I didn’t really want to go through the trouble of transferring everything over. Plus, I figured it might make the process a bit more interesting, in case I had to tweak some values.


Setting up the Pi

Obviously, the first thing needed here is to get the Raspberry Pi up and running.

The process of installing Raspbian differs a bit between whatever OS you’re using (Linux, Mac OS X, Windows) so I’m just going to give you a link to the official Raspberry Pi foundation’s page on how to do it.

Once you’ve got the SD card flashed, go ahead and stick it in the Pi. The next part depends on whether or not you want to have the Pi connected over WiFi or not. If you’re planning to just connect over Ethernet then you can skip over this section and move on.

I’ve always used the Edimax EW-7811UN and never had any problems with it on Raspbian, so if you need to buy an WiFi dongle I can definitely recommend this one.

I set up WiFi via the Terminal over SSH, which can be a little bit complicated, so I’m going to go over that here. If you’ve got your Pi connected up to screen and are using the GUI it’s easier.

Once you have terminal access (via SSH over Ethernet or via a Serial to USB cable) you’re going to need to find the SSID for your network. To do this, go ahead and run sudo iwlist wlan0 scan.

This is going to spit out a whole bunch of information, most of which we’re not going to need. Look out for these two lines:

  • ESSID:"networkNameHere"

    This is the network name that you want to connect to. Make sure it’s your network, we’re going to use this value later on.

  • IE: IEEE 802.11i/WPA2 Version 1

    This is the security type. Most modern routers are set up to use WPA2 Personal, and this tutorial will work with both that and WPA, but it may have issues with WPA2 Enterprise or WEP. If your network is set up with WEP, then you’ll have to adjust the setup a bit later on, and you really should think about changing to WPA2.

Now that we have that information, go ahead and run sudo nano /etc/wpa_supplicant/wpa_supplicant.conf and enter the following text:

network={
    ssid="networkNameFromEarlier"
    psk="yourWiFiNetworkPassword"
}

If you’ve got a WEP network, then you’ll need to change out the psk line for wepkey0=your104BitWEPkey. Make sure you don’t put quotes around that key.

To save the file, press Ctrl-X then Y and then Enter. This will save the file. Go ahead and reboot the Pi via sudo reboot.

Once you’ve rebooted, you can check if you’re connected or not via running ifconfig wlan0 and seeing if there is an IP address next to the inet addr field:

$ ifconfig wlan0
    wlan0 Link encap:Ethernet HWaddr 80:1f:02:bf:04:ec 
     inet addr:192.168.0.12 <-- there is a number here Bcast:192.168.0.255 Mask:255.255.255.0
     inet6 addr: fe80::8ec:9767:b412:4a91/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:20891 errors:0 dropped:209 overruns:0 frame:0
     TX packets:7167 errors:0 dropped:4 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:22347220 (21.3 MiB) TX bytes:996632 (973.2 KiB)

If you have an IP address, then we can move on. Otherwise, make sure you typed the network password correctly in that file and try again.


Setting up Alexa

Hooray! You got the Pi set up, now we get to get started on the fun part, setting up Alexa!

You’re going to need to sign up for an Amazon Developer account, which you can do here. You’ll need to sign in to your Amazon account, and then go to this address: developer.amazon.com/edw/home.html. Once you’re there, click on the Get Started> button for Alexa Voice Service:

Selection_019

From there, you’re going to click on Register a Product and in the drop-down, select Device:

Selection_020

Now, you’re going to proceed through the four parts of the setup process. They’re personal choice for the most part, and the site does a good job of guiding you through, so there’s nothing I really need to explain other than the Web settings part.

This is important because of how you get permission to use Alexa (via OAuth), you have to set up origins and return URLs, otherwise you won’t be allowed to connect to the Alexa voice service. So, you’re going to need your local IP address for the Pi. This is pretty simple to get, just run ifconfig wlan0 | grep "inet addr" (swap wlan0 for eth0 if you’re connecting over Ethernet.). You’re going to want to take the value right after the red text:

Selection_021

In my case, it’s 192.168.0.106.

Take that value and under the Web Settings tab on the Security Profile page:

Selection_024

put that value in like this:

Selection_023

swapping out 192.168.0.106 for whatever IP address you got. Finish up the rest of the setup, and you’re ready to get on to the rest of the setup. Make sure to write down the Device Type ID, Security Profile Description, Security Profile ID, Client ID, and Client Secret – you’ll need them for the setup script later.

I’m using the code from sammachin’s AlexaPi repository, but it’s going to require a few tweaks to actually work. For now, just run git clone https://github.com/sammachin/AlexaPi and it should get the code right off Github!

If you get an error about git not being installed, just run

sudo apt-get update && sudo apt-get install git

and then try again.

Once you get the code, go ahead and type cd AlexaPi and then sudo ./setup.sh. This is going to install a few different required libraries and set up the Python code. You’re going to need the credentials you got from Amazon earlier, so put those in as requested.

Now, the setup script doesn’t work correctly, it doesn’t actually create the required creds.py file, so we’re going to have to manually do that ourselves.

Run mv example_creds.py creds.py and then nano creds.py. You’ll get a file that looks something like this:

# RENAME THIS FILE TO creds.py before use!
import os

#Alexa Settings
ProductID = ""
Security_Profile_Description =""
Security_Profile_ID  = ""
Client_ID = ""
Client_Secret = ""

# Alexa Refresh Token
refresh_token = ''

and put in the information from Amazon where it belongs in the file. Don’t worry about refresh_token still being blank, that gets taken care of in a bit.

If you are logged into your Pi as root, then you’re ready to go, go ahead and skip down to the hardware setup section. If not, read on.

The original code was written to be run as root, but this isn’t exactly good practice, so we’re going to have make a few changes to make it run correctly.

First you’re going to need to edit the startup script in /etc/init.d/alexa, run sudo nano /etc/init.d/alexa and look for the line

python /root/AlexaPi/main.py &

and change out /root for /home/pi. Once you do that, save and exit via Ctrl-X, Y, Enter.


Setting up the hardware

Since the Pi doesn’t have a built-in Microphone port, you’re going to have to use a USB device. It can be a USB microphone or a USB soundcard that has a microphone port. Plug that in, as well as connecting a speaker, either via the Pi’s 3.5mm jack, or via USB.

I’m using my CAD U1 USB microphone, and connecting a speaker up via the 3.5mm jack and it works just fine.

You’re also going to need to hook up a push-button connected to GPIO pin 18 and GND. Part of the terms & conditions of using the Alexa voice service is you can’t have it be voice activated, so we have to manually activate the listening via pressing a button.

Here’s a diagram to show you how to connect it up, if you don’t already know:

pi_alexa


Final Setup

Now that we have the microphone, speaker, and button connected, we can go ahead and finish everything up!

You’re going to need to run sudo python auth_web.py and then go in a webbrowser to yourPisLocalIPAddress:5000. This will redirect you to an Amazon page asking you to log in and then confirm that you want this device to have access to parts of your account. Go ahead and continue through the login process.

After you log in, it should show a page letting you know that it succeeded and you can now reboot your Pi. Go ahead and do that via sudo reboot and wait for it to reboot.

You should now be able to boot your Pi and hear a female voice say “Hello”. Once you hear this, you can press and hold the button and ask Alexa a question!

If you don’t hear this after a while, you may have to SSH in and manually run the script. Just ssh in to the Pi and run

cd AlexaPi && sudo python main.py &

You should hear the “Hello” voice in a bit, and you can go ahead and ask away.

Congratulations, you’ve just created your own Raspberry Pi-based Alexa device!


Conclusion

Is this really useful? I suppose it depends on how you define that.

It’s a bit cheaper to build this than buy the $129 Amazon Tap, especially if you already have all the parts on hand. However, it looks far less pretty and isn’t officially supported by Amazon, so they could decide to end the AVS (Alexa Voice Service) at any time, leaving you with a Raspberry Pi connected to a speaker and microphone.

For the time being, it’s a fun little way to put your Raspberry Pi to use, and, if you really wanted an Amazon Echo and don’t mind a little bit of open circuitry, it’s saves you a little bit of money.

 

Advertisements
Tagged , , , , , ,

Ubuntu Tech Snippet #13 – Get your public IP in terminal

Sometimes when you’re working on a project or are SSHed into a remote server, you need to find out the public IP of the device, without using a GUI web-browser.

I had to do this while working on setting up a script on my server, and came across this neat little command that will grab your public IP and print it nicely out for you to use!

All you have to do is run echo $(curl -s https://api.ipify.org) and you’re good to go!

Output from echo $(curl -c https://api.ipify.org)

Output from echo $(curl -c https://api.ipify.org)

You can also do this programatically. In python you can run this code to get the result as a JSON object:

import requests
session = requests.Session()
ret = session.get('https://api.ipify.org',
                   params={"format":"json"})
print ("Public IP Address:",ret.json()['ip'])

You’ll need to install the Python Requests module. This can be done either via pip. Just run sudo pip install requests. You can technically install it using easy_install, but please, please don’t. Just use pip.

And that’s it!

Thanks for reading! If you have any tips of your own, leave them as a comment down below and I’ll be sure to take a look at them!

Tagged , , , ,

Fixing GPG ERROR NO_PUBKEY on Ubuntu 14.04

I recently was working on installing pipelight-plugin so I could get the Unity3D plugin working on my Ubuntu desktop. Getting that working is another subject, but part way through the installation process I ran into an issue.

Part of what I had to do to install the Pipelight plugin was add a PPA; ppa:pipelight/stable to be exact. Normally, this would be totally fine. After I ran sudo add-apt-repository ppa:pipelight/stable, I ran the usual sudo apt-get update so I would have up to date software lists.

However, at the end of the output from the apt-get update command I noticed that there were a whole bunch of

GPG ERROR NO_PUBKEY : WARNING: The following packages cannot be authenticated!

errors!

This had been happening previously, but it was only the Virtualbox PPA, so I figured that their GPG public key had expired or been removed for whatever reason, and so didn’t give it any more thought. But now there were at least 5, if not 10 of these errors, including for various PPAs that I was fairly certain wouldn’t let their key expire.

Again, I continued working, thinking it strange, but not dangerous. However, then I started seeing

WARNING: The following packages cannot be authenticated!

when I was attempting to install new software or update via apt-get upgrade.

Now I knew something was up. So, I started researching via our ever-present and usually quite useful overlord, Google. While I did come across several Ask Ubuntu answers, it finally took a combination of four different answers (here, here, here, and here) and a Launchpad bug report to come up with the solution.

Basically, there is/was a bug in apt-get where it will return GPG ERROR NO_PUBKEY : WARNING: The following packages cannot be authenticated! for PPAs, even when the key is present on your system.

This leads to the WARNING: The following packages cannot be authenticated! error. From what I have seen, it doesn’t actually cause any issues initially, but it’s still good to resolve issues like these if possible.

So, I tried just running sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys x x x x x replacing the x with the public key number for the various “missing” keys, as recommended by this Q/A.

However, I still got the NO_PUBKEY error, along with a bunch of new ones that all said gpg: keyblock resource '/etc/apt/trusted.gpg.d/X.gpg.gpg': resource limit (replacing X with the various GPG files.)

So, I tried the solution suggested here, running sudo apt-key update followed by sudo apt-get update.

Again, I received the NO_PUBKEY error. So, I moved on to the final Q/A I found. The answer pointed me to Launchpad Bug #1263540, which had two solutions.

The first was to run this series of commands:

  1. sudo apt-get clean
  2. sudo mv /var/lib/apt/lists /var/apt/lists.old
  3. mkdir -p /var/lib/apt/lists/partial
  4. sudo apt-get update

However, this returned the same error. Again.

So, I scrolled down a bit further, and found this comment. This solution is what ultimately resolved the issue for me.

I went into /etc/apt/trusted.gpg.d/ and manually deleted a few of the .gpg files for PPAs I had removed/didn’t use anymore and voilà! running apt-get update worked and apt-get upgrade no longer complained of un-authenticated packages.

As for what was causing this, it turns out that GnuPG has a limit of 40 keys GPG keys. Beyond that, it won’t accept any more.

Because apt-get/add-apt-repository don’t remove old and unused PGP/GPG keys, I had met the 40 key limit. When I removed the few un-used keys it brought the count under 40 and the issue was resolved.

Although there was a fix released for this in October of 2014, it has, for whatever reason, not been back-ported to Ubuntu 14.04, thus causing the issue I was having. According to this Debian bug report the package that contains the fix (libapt-pkg4.12) has not yet been back-ported to 14.04 as of June 2015, so anyone who runs into this issue is going to have to use this workaround in the meantime.

TL;DR: If this happens, then go into /etc/apt/trusted.gpg.d/ as root and delete any .gpg files for PPAs you have disabled. Then, run sudo apt-get update and everything should work again!

Thanks for reading, let me know if you run into any issues down in the comments section and I’ll if I can help!

Tagged , , , , ,

Ubuntu Tech Snippet #12 – Fix the NVIDIA screen flicker bug in Ubuntu

NVIDIA. Oh how we love to hate thee.

NVIDIA and its proprietary graphics drivers have long been a bane of users on Ubuntu. If you needed performance, then you had to use the proprietary drivers, as Nouveau just couldn’t keep up. However, the NVIDIA drivers can be fickle to install and keep up to date, and often cause graphical issues like black screens or, as this post talks about, screen flickering.

This bug has been around since Ubuntu 8.04 Hardy Heron, and is still present in Ubuntu 14.04.1 – this bug refuses to die. This issue cropped up for me and some other users after a recent kernel upgrade.

There have been numerous attempts to fix it, including going so far as to patch Compiz to attempt to fix this. However, I’m going to be showing you a far simpler method.


Solution:

I originally found this solution over on the Ubuntu forums, you can read that post here and the bug (started way back in September of 2008) on Launchpad.

To fix this you’re going to need the CompizConfig Settings Manager software. If you don’t already have it installed, press Ctrl+Alt+T to open a Terminal:

Screenshot from 2015-01-31 10:34:36

Once that terminal is open, enter sudo apt-get install compizconfig-settings-manager and hit enter. You’ll probably need to enter your password, but once you do it will install. Don’t close the terminal.

Once installed, go ahead and enter sudo ccsm. This will launch CompizConfig Settings Manager. It will show you a warning about the program being very powerful, probably say something along the lines of “With Great Power comes Great Responsibility”. Just click okay:

Screenshot from 2015-01-31 10:35:40

Once it comes up, search for workarounds and select the only option that comes up:

CompizConfig Settings Manager_001

Then, scroll down and select the Force full screen redraws (buffer swap) on repaint option:

CompizConfig Settings Manager_002

Once you’ve done that, you can close Settings Manager, and you’re done! This should have helped if not resolved the screen flicker issue for you!

Obviously, this isn’t an actual solution or bug fix, but it’s a workaround that does its job – stops the dreadful NVIDIA redraw bug from doing it’s horrible deed.

 

Tagged , , , , , ,

How to install Ubuntu MATE Remix on a PowerPC Computer

PowerPC (actually an acronym for Performance Optimization With Enhanced RISC – Performance Computing) is an old CPU architecture that isn’t really used much any more.

Originally created in 1991 by Apple, IBM, and Motorola, the PowerPC architecture was originally created for personal computers and was/is best known for powering Apple computers from 1994 to 2006, before Apple transitioned entirely to using Intel processors.

I could go into more detail about the whole history of PowerPC CPUs and their uses, but that’s not what this post is about.


Mac OS? Nah, let’s go full-Linux

I originally recieved the mid-2005 iBook G4 from a relative as a Christmas present, Christmas 2013. The person who sent it actually hadn’t used it in a long time and had forgotten their password – so I was left with a bootable – but unusable iBook. Oh noes!

Luckily, I had read a post by Lifehacker from their “Evil Week” regarding breaking into Macs. Please note, this is not something I condone, unless you are breaking into your own Mac. Please hack responsibly.

So, I was able to get in, add a new user (my own) and continue using the iBook. Now, as you can probably tell from many of the posts on here, I’m a huge Linux/Ubuntu fan. As such, I wanted to install Lubuntu on the iBook – both because I prefer Linux, and because I wanted better performance. So I tried to dual-boot Lubuntu and OS X Tiger (what was on it when I got it.)

That didn’t go well.

I managed to accidentally erase the OS X partition, and then without realizing I had done so, completely overwrote it with Lubuntu. Hooray me.It really wasn’t that big of a deal, because I, like I said, prefer Linux/Ubuntu over any other OS out there.

So, to cut a long story short, I used Lubuntu 12.04 LTS for a long time, then tried upgrading to Lubuntu 14.04 LTS – and managed to break the system. It still booted and everything, and I could log in and use it, but the GUI, icons, and background were all messed up.

I then built my desktop, and had no need for the iBook any more – so away into storage it went. That is, until I read this post on OMG! Ubuntu! about someone porting the Ubuntu 14.04 MATE Remix to PowerPC. I knew that I had to try this out.


Initial Research

To start this whole project off I, obviously, read that post on OMG! Ubuntu! that I linked to above. I then downloaded the ISO from the G+ post linked on the OMG! Ubuntu! post.

Now, this is where the fun stuff starts happening. I knew that the iBook G4 that I had didn’t support USB booting by default – but I had read a while back that you could work your way through OpenFirmware and “hack” a USB boot.

So, I went a-searching on the internets, and came across this post from 2010 on Ben Collins’ blog describing exactly what I wanted to accomplish – booting an iBook G4 from USB.

In order to gain access to Open Firmware (which is what I would have to do to boot from USB) I had to press Command+Option+O+F and hold that while the iBook booted – until the Open Firmware screen came up.

Now, I originally ran into some trouble with the USB stick/LiveUSB-creator-software I was using in that it wasn’t actually installing the bootloader (a known bug in Startup Disk Creator.)

Screenshot from 2015-01-17 21:11:57

I ran the boot ud:,\\:tbxi command in Open Firmware, and was spat back

can't OPEN: ud:,\\:tbxi
Can't open device or file
  ok

Uh oh. Something’s not right here  – it should have booted.

The blog post by Ben Collins listed another method, so I tried that. Same thing – no USB boot and an error message. Strange stuff.

Anyways, I figured that it had to do with the bootloader error I was getting from Startup Disk Creator, and decided to try putting the ISO onto the USB stick via unetbootin. Flashed the ISO to the USB stick, booted the iBook into Open Firmware, and got the same error:

can't OPEN: ud:,\\:tbxi
Can't open device or file
  ok

Now, I’m not sure if this is a bug in both the Startup Disk Creator and Unetbootin software on Ubuntu 14.04 – but I do certainly find it strange that they both failed.

So, I turned to the ever-potent, ever-renowned, Disk Destroyer. That’s right – I used dd. (Crosses self and mouths 20 Hail Linus’).

It really wasn’t that bad, I was just extremely careful about what I was reading/writing to/from. I ran a simple sudo dd if=./ISO-FILE.ISO of=/dev/sdg command (dd is a very powerful tool – be extremely careful when using it. Double, triple, even quadruple check what you’re reading/writing to/from.) Your USB device will probably be different from mine (mine being /dev/sdg) – make dang sure you know what device you’re writing to.

This flashed the ISO to the USB stick, and I pulled up Open Firmware again. Again, same error.

However, since this was the last idea I had to get this working, I was determined to get it working. I read through all the comments on the Ben Collins blog post, trying all the solutions – nothing worked.

I was giving it one last go and decided to switch USB ports on the iBook. Up until now, I had been plugging the USB stick into the port closest to me – so I switched it to the other USB port, closest to the screen – and it booted! I got a yaboot prompt and was able to boot the iBook – albeit with a lot of graphical issues.


The Installation

There’s a common issue with running Ubuntu (and it’s offspring) on many old PPC Apple laptops – the ATI Rage 128 Graphics.

This chip causes many issues, from graphical corruption, to general slowness, to entire failure to show anything at all on the screen! Fortunately, the fix is relatively simple from yaboot (Yaboot being the Linux bootloader on PowerPC systems.)

Normally, when you get to the Yaboot prompt you would just hit enter and it would, by default, boot the LiveUSB. However, to fix the graphics issue enter live video=offb:off video=radeonfb:off video=1024x768-32 radeon.agpmode=-1 and press Enter. This disables the radeonfb framebuffer, sets the video parameter 1024x768-32 (resolution?), and finally forces PCI mode (a work-around necessary for 3D acceleration.)

If this doesn’t resolve the graphics issue try reading the page on the wiki – PowerPCKnownIssues. Even if this solution works for you, I suggest you at least skim that page – it will help you with a plethora of issues.

While you’re booting, you may notice an error message regarding Firmware file"b43/ucode5.fw" not found:

Sorry about the potato quality - This was taken after dark and the light wasn't the best

Sorry about the potato quality – This was taken after dark and the light wasn’t the best

This is simply the airport card complaining about not having the firmware – not something that is going to cause any problems with the installation.

Go ahead and continue on with the installation, the system should continue booting just fine.

Note! When booting other versions of Ubuntu (vanilla, Lubuntu, etc.) you may run into this error and have it actually halt the boot. If this happens, change the yaboot parameters to include b43.blacklist=yes as part of the yaboot command. The full solution to this issue is beyond the scope of this post, but feel free to comment and I’ll try to help!

When presented with the Preparing to install Ubuntu screen, you’ll notice that the Download updates while installing option is greyed out. That’s fine, it’s something you can really only fix after you install.

mate-installer2

Once you’ve got the system booted from USB & running without crazy graphic weirdness there is pretty much nothing left. Once I had booted from the USB stick & set the yaboot flags I was able to install just fine – no more hackery required.

Just set up your system the way you want it as prompted, and let the installer run! Once installed, reboot. I was able to just reboot, and it pulled right up.


Fixing the WiFi

When you reboot you should see the yaboot prompt and then be able to boot. Just let the system boot, you shouldn’t have to interact with the system until you get to the login screen.

Log in, and when possible, pull up a terminal (Ctrl+Alt+T).

Now, you’re going to need an Ethernet connection for this next step. You can technically download everything you’d need on another Ubuntu/Debian machine – but it would be more pain than it’s worth.

Just connect the iBook to your router/network hub for a quick sudo apt-get update and then sudo apt-get install b43-firmware-installer.

This will download and install all of the necessary drivers for the Airport Extreme WiFi card in the iBook G4. Once the drivers are downloaded & installed, you can reboot again, and you should be able to use your WiFi!


Conclusion

Once you finish installing the drivers you can continue on setting up your system as you wish.

The instructions I wrote here are my personal experiences with the iBook G4. The issues and solutions may vary between devices.

Now, keep in mind that although Ubuntu MATE is not a Beta piece of software, PowerPC support still is. There is an Ubuntu Forums thread regarding installing Ubuntu MATE Remix on PowerPC which is pretty active and should help you with any issues that may arise.

I have noticed a few bugs – the most major being that when I suspend the laptop by closing the lid and resume – I’ve lost WiFi capabilities and the ability to run sudo! This, and the Mesa issuing false colors in games cropped up in Pinta (as noted here) bug are ones that I’m working on figuring out a solution/work-around to. If I do find (a) solution(s), I’ll post about it here.

Hope you found this post useful! Please feel free to leave a comment down below with your experience & any questions/solutions you may have!

Tagged , , , , , , , ,

Fixing the infamous wallpaper and mouse Ubuntu 14.04 bug

I recently blogged about the trial and tribulations of installing the NVIDIA graphics drivers on my Ubuntu 14.04 system. And, although I had much better performance, my ventures into the underground world of drivers and bugs was far from over.

I had been happily using my deskop with my newly installed NVIDIA drivers – no problems whatsoever. I shut down after a while because I was done with what I was doing and left my PC.

I came back a while later, started up the system, logged in, and it just sat there. I waited about 5 minutes and was becoming really worried, because this computer definitely should not take more the 20 seconds tops to log in. All that was showing up was the wallpaper and the mouse – no Unity menus or anything. I rebooted several times, same thing – wallpaper and mouse, but no GUI.

By this time I was freaking out. The last I thing I wanted to deal with was having to reinstall and lose all the time and effort I had spent getting this system where I wanted it. I booted up the LiveUSB stick I always have with me and started looking at solutions online – all of which required terminal access – something I didn’t have.

I tried everything from installing GRUB Repair to the LiveUSB and using that to add the nomodeset flag to GRUB, to using chroot to attempt to run commands off the LiveUSB to affect my system – neither of which worked.

By that point I actually had to go somewhere, so I had to shutdown the computer and leave it be for ~30 minutes. After I came back I started up the computer and, for whatever strange reason, now had access to the TTYs. I had no clue why waiting half an hour changed something – but it did.

This was quite calming because I knew that once I had access to a TTY I could fix basically anything. I started trying out solutions again. I looked at tons of different posts on various sites, namely Ask Ubuntu, but also the Ubuntu Forums and Launchpad.

I ended up coming across this question, here, and worked my way through those solutions.

I tried resetting the desktop as per the first, second, and sixth fixes listed – none of those work.

I then the third solution, purging and reinstalling ubuntu-desktop, compizconfig-settings-manager, upstart, and unity. I did this via sudo apt-get install --reinstall ubuntu-desktop unity compizconfig-settings-manager upstart – but nothing happened.

I then tried the fifth fix, clearing Unity, and that brought some improvement. I rebooted after running those commands and I had desktop icons back! Yay!

However, it still wasn’t totally fixed, and the only solution left was the fourth one.

I had held off on the fourth fix, because the Xorg-edgers PPA is a bleeding edge repository and so it can be dangerous to system stability. I was trying to fix a problem, not make it worse. However, after working through all of the other solutions, and having no results, I was left with the only choice of adding the repository.

So, I added the repository, ran sudo apt-get update and then ran sudo apt-get install nvidia-340. I rebooted, and had a working system. Because of the fact that I had removed all the configuration files previously, I had lost my background and icons that I had pinned to the dash, but that wasn’t an issue.

I removed the Xorg-Edgers PPA via sudo add-apt-repository --remove ppa:xorg-edgers/ppa -y, just to make sure that I didn’t have any updates in the future to break my PC. Hopefully, this is the last of driver derping I’ll have to do for a while.

Make sure to leave a comment saying what you thought of this post, and tell any experiences you’ve had with drivers and NVIDIA with Ubuntu!

Tagged , , , , , ,

Installation of proprietary NVIDIA drivers on Ubuntu 14.04.1

I recently built a brand new PC – which was awesome – with an i5-4690k, 8GB RAM, and a EVGA GeForce GTX 750 Ti GPU.

Now, for basic work, the open source Nouveau drivers work just fine. However, this system was made to be a high performance video editing & graphics rig – so I wanted to have the best performance possible; and NVIDIA’s proprietary drivers provide the best performance.


Normally, one could simply open up the Additional Drivers tab in Software & Updates, but my system, strangely, said there were no drivers available:

Screenshot from 2014-12-16 17:50:06

This was very strange, as I knew that there should be something listed there.

So, I took to Stack Exchange. The Stack Exchange network, in this case specifically Ask Ubuntu, is an amazing tool and has helped me countless times. I was talking with a couple of more advanced Ubuntu users (if you’re on Ask Ubuntu – Seth & Mateo) and we managed to find a solution – though it was rather hacky to say the least.


Tricks, Traps, and Hackery

When I say the solution was hacky, it’s not hacky in the form that I was piecing together drivers and compiling my own kernel – it’s that it was hacky because of the amount of steps it took to complete what should have been relatively simple.

First off, I tried running updates. That should be the first thing you do when debugging an issue, unless of course there is a known issue with an update that’s even worse. Then you might want to skip the update. That didn’t help any, still nothing was shown.

Next up, I looked around at other solutions to the same problem. As I soon found out, this is actually a fairly common bug in 14.04, with the NVIDIA drivers not showing up. Most of the solutions involved enabling the Xorg-Edgers PPA – something I wasn’t totally comfortable with, since the Xorg-Edgers PPA is a bit bleeding edge and I didn’t want to mess with the black screen bugs it has been known to cause.

So, I went on and decided just to go with the drivers straight from NVIDIA. Granted, they aren’t as community tested as the ones from Ubuntu, but they’d do the trick. So, I downloaded the newest stable .run file from NVIDIA for my GPU (you can access it here, if you need to – I believe this is the page with the newest drivers.)

Once the driver installer had downloaded I tried to run it from a terminal (Ctrl+Alt+T), but got this:

Screenshot from 2014-12-21 13:36:18

Obviously, I had to run the command when an X server wasn’t running. Pretty simple stuff – just pull up a TTY, kill lightdm, and you’re golden! Right? Wrong.

For whatever reason, there was/is a bug with the Nouveau drivers I had that meant I couldn’t access a TTY (nothing displayed), unless I booted with the GRUB flag nomodeset. Again, big deal. Just add the flag and reboot. Well, it’s not that simple. Turns out that when I added nomodeset I did get the TTYs…but my GUI was all messed up. So, I removed the GRUB flag nomodeset and rebooted. No TTYs but a working GUI. I guess it was choose your own poison day at Canonical.

This is where the awesome guys on Ask Ubuntu come in. I popped on over there and we started working together to figure it out.

The first solution that was suggested was running the command sudo init 1 command, which was supposed to take me into single user mode with just a command line – nothing else. However, for reasons unbeknownst to me and the other users trying to help me, I was simply being shown the Ubuntu boot splash and nothing else. Yet another issue.

So, that theory went out the window.

Now, you’re probably wondering – why didn’t you just boot with the nomodeset GRUB flag, install the drivers, and the remove the nomodeset flag? Honestly, I don’t know why I didn’t do that. After trying a few other things with init I booted with that flag, killed lightdm via sudo killall lightdm, and ran the installer. There was actually a warning that came up saying that a script had failed – but I ignored that (one of the other users said they’d had the same thing & just ignored it – no problems).

I removed the nomodeset flag, rebooted, and had a working desktop with decent FPS. Actually, quite awesome FPS – especially compared to my old laptop. Just to give you an idea of the performance increase it gave me – remember that I had said I wasn’t getting more than 20 FPS in Minecraft? Well, a picture is worth a thousand words:

fps

That’s with the render distance set to 14 and the graphics cranked all the way up. I had just barely loaded up the world and so was having lots of chunk updates. Once the world had fully loaded I could get well over 150 FPS stable on render distance 25 & everything fancy.

Now, I know that Minecraft isn’t exactly the crown gem of gaming prowess – far from it actually – but it’s what I had. I don’t game much, so my library is very limited and I don’t have any intensive games.

But yeah, that’s my experience/process with/that I took installing NVIDIA graphic drivers on Ubuntu 14.04.1. Not sure if it’ll help anyone much, but it’s what I had to do and I figured I’d blog about it!

Now, this didn’t actually fix the bug with the Additional Drivers not showing up correctly – I actually had another issue occur later on with Unity not loading correctly (I think I must have rebooted at an…inopportune time) and the solution for that (which I’m also going to be writing about) actually fixed it.

Make sure to comment below with any experiences you’ve had with graphic drivers and tell me what you thought about the post!

Tagged , , , , , ,

Ubuntu Tech Snippet #11 – Speed up your Ubuntu installation with Preload

One of the great time & space conundrums is the need for speed. Everyone wants things, especially their computers, to be fast. And while Ubuntu can be much lighter on system resources than Windows or OS X, any extra speed is awesome and probably accepted by most people.

And so, I present to you Preload. Preload is, according to the manpage (man preload):

“an adaptive readahead daemon that prefetches files mapped by applications from the disk to reduce application startup time.”

Basically, this means that it keeps files loaded that are accessed by applications you commonly use, thus speeding up application startup time.

Note, if you’ve got a smaller amount of RAM (4GB or less) this may not be the best idea for you, as it stores all of the data in RAM – which may lead to slower overall system responsiveness.

However, if you’ve got more than 4GB of RAM or want to try it regardless, here’s the steps:

Tech Tip:

  1. Open Terminal (Ctrl+Alt+T)
  2. Enter sudo apt-get install preload
  3. Hit Enter.
  4. There is no step four

Yeah, it’s that simple.

Of course, if you really want to tweak it, there is a config file stored at /etc/preload.conf.

Conclusion:

What’s this good for? Well, it depends on what you do.

If you’re a developer, video editor, music maker, basically any content creator and are constantly launching a few key programs, then Preload is great. It speeds up launch times for those apps you use all the time and may only launch for a few minutes or seconds at a time.

If you’re just using your system for general work, like writing papers, checking stocks, or balancing a spreadsheet, this may not be as useful and may in fact harm performance, as you’re using up RAM to save a few seconds off the launch of an application that you’re going to leave open for quite a while.

This should work on basically any supported desktop and server Ubuntu release (at the time of writing, this is Desktop: Ubuntu 12.04.5, Ubuntu 14.04, and Ubuntu 14.10 and Server: 10.04.4)

Leave a comment down below telling me what you thought of this article, tell me something you want me to write about, and feel free to share any tech tips of your own!

Tagged , , , , , ,

Ubuntu Tech Snippet #10 – Remove Extra Music Players from the Ubuntu Sound Menu

Tired of pesky music players swarming your sound menu? Sick of all those silly video players making your sound menu take up half your desktop? Well, wait no longer. This Ubuntu Tech Snippet is going to show you how to, in über-l33t fashion, remove the programs that you don’t want hijacking that menu.

Problem:

The Ubuntu Sound Menu is a stupendous idea. Don’t get me wrong – I love this feature and think it should be standard everywhere. It just makes so much sense and make listening to music so much easier, all without the need to keep the music player open.

But there is one key issue, and that’s the fact that basically any music or video player that even sneezes at playing audio can technically plop itself down in this menu. Obviously, if you’re like me and like testing out new software, you are going to end up with a lot of programs filling up the menu, making the menu more of hastle than usual:

ubuntu sound menu - messy

Ubuntu Sound Menu – Look at all those media players…

Solution 1:

Fixing this is a pretty simple solution – uninstall those pesky buggers. Just uninstall the software that’s giving you trouble and you’re good to go – they’ll be removed automatically. Now, this isn’t that great of a solution – read on for the real solution.

Solution 2:

This solution is just a bit harder, involving modifying dconf settings. However, with the help of our trusty tool, dconf-editor, we can fix it! Now, Ubuntu should come with dconf-editor pre-installed – if it is, skip this next step. However, if it isn’t, you can just run the following commands in terminal:

sudo apt-get update 
sudo apt-get install dconf-editor

Once it’s installed go ahead and start it. It’ll look similar to this, though not exactly the same, since I have the Numix GTK3 theme installed:

dconf Editor

dconf Editor

Once it’s open, expand com, then canonical, then indicator, then click on sound. The image below highlights each one:

All the steps, highlighted and numbered. See, it's not that bad!

All the steps, highlighted and numbered. See, it’s not that bad!

Once you’ve got the sound option selected go ahead and double-click on the text next to the label interested-media-players:

interested-media-players

interested-media-players is currently selected

You may have to scroll to the right a bit to see all of the media players that have plunked themselves into your Sound Menu’s digital lap.

You’ll want to locate all of the players you want to keep and not select those. Or, vice-versa, find all the players you don’t want to keep and select just those. Removing the select the entire entry, so select from the first single quote to the comma following the menu item you want to remove.
Don’t remove any of the square brackets anywhere or any of the single quotes and commas on the media players you want to keep.
In my case, I want to get rid of the Rythmbox and Clementine media players, so I’m going to select those and cut (Ctrl + X) them:
 dconf-selected-remove
And there you go! This will take place immediately after you remove the entries and click outside of the text box, no reboot required!
However, there is a caveat. This only removes them so long as you don’t launch those programs ever again, which is extremely unlikely.

Solution for the caveat:

This is pretty simple, again, and it explains why you should have cut the text instead of just flat out deleting it. You’ll need to blacklist the programs, and hey! Guess what! Canonical thought this out and included another entry, just for that!

blacklisted-media-players option - Yay Canonical!

blacklisted-media-players option – Yay Canonical!

Double-click on the text box next to blacklisted-media-players and go to the end of the text entry box and enter a comma (,). Then, just paste in the media players you cut from interested-media-players:

Paste in what you cut previously and you're good to go!

Paste in what you cut previously and you’re good to go!

Again, click outside the text box and the changes will be made automatically. You won’t see any change to the menu at that point, but those players listed won’t ever be allowed to put themselves into the Sound Menu again!

The result of this menu slimming:

Much better - I may even be removing more later

Much better – I may even be removing more later

Conclusion

Not everyone is going to use this, but when I read about it (originally on OMG! Ubuntu!) it was a fix for something that had been bugging me for a while and I figured I’d do a write-up while I fixed it myself!

Leave a comment down below telling me what you thought of this post and/or about any things that have been bugging you about Ubuntu/Unity that you’d like me to post about!

Tagged , , , , , , ,

Ubuntu 14.10 has been Released!

That’s right everyone, it’s that time of year again. When the internet is humming and servers are busy serving downloads, a new Ubuntu version is released. And this time… Unicorns!

Yup, the curiously named Utopic Unicorn release, 14.10, is live on the Ubuntu servers and upgrade notices should be sent out to everyone who is set to get them. If you’re curious about how to upgrade, I’ll be doing another post later, explaining how to do it and what to do after upgrading/installing Ubuntu 14.10. You can read it here (post coming soon!)

What’s New?

This release is a bit, well, underwhelming. It’s more of an update, stability, security release, with no major changes to user experience or included software. Kinda sad for a release occurring over the same week as Ubuntu’s 10th birthday.

And this may not be bad, as it, hopefully, means that Ubuntu 15.04 Versatile Vervet will have plenty of features and new stuff!

Obviously, the usual changes occurred; new community backgrounds – though no new default one and the change of the release number and code name through-out the system.

But, beyond that, there isn’t much. For the developers a very useful addition is the inclusion of the Ubuntu Developers Center. This is very useful, as it simplifies the process of installing the Android SDK and all the dependencies and addons and whatnot, with a single command.

There are a few major software release upgrades, namely the upgrades for the default software to:

  • LibreOffice 4.3.2.2
  • Firefox 33
  • Thunderbird 33
  • Nautilus 3.10
  • Evince 3.14
  • Rhythmbox 3.0.3
  • Unity 7.3.1

Also, the Linux kernel has been updated to Linux Kernel 3.16, which offers support for the latest Intel CPUs (Haswell and the upcoming Broadwell architectures, better support for NVIDIA and AMD graphics, and improved audio via the Radeon H.264 video decoder.

Consensus time

All in all, Ubuntu 14.10, in my opinion, is a solid OS that could probably serve as an LTS release. For users worried about stability, 14.10 would be a fine, although the nine month support cycle may be a hastle that users might not want.

There are very few major changes, and, if for no other reason, upgrade because of the wallpapers. This set is probably my favorite yet.


Upgrade anyone?

You can simply upgrade via Update Manager, though you may have to enable upgrade notifications for non-LTS releases. Here’s how you can do that:

Open the Unity dash by pressing the Super button (Windows button for all you non-l33t Ubuntu users). You can also click on it, just so long as you can open the Unity dash.

Once open, search for Software & Updates and select the first option that comes up. This is what it looks like on my system, with the Numix Circle icon set – it will probably look different on your system unless you have the same icon set:

Selection_091

Once the application opens up, click on the Updates tab:

Software & Updates_093

As you can see, on my system the option Notify me of a new Ubuntu version is set to For any new version. If you want to receive a notification when a non-LTS version is released you need to make sure that you have it set the same as I do, For any new version.

Simple Version:

  • Search for and open Software & Updates
  • Click on the Updates tab
  • Find option with the label Notify me of a new Ubuntu version
  • Change the selection in the drop-down menu from For long-term support versions to For any new version

Fresh Install

Of course, you can download the ISO file for Ubuntu 14.10. There are all the usual options available on the Ubuntu site. Here are the links to the Ubuntu 14.10 Desktop (64 bit) Torrent and Ubuntu 14.10 Desktop (32 bit) Torrent

Comment down below with what you think of the Utopic Unicorn and whether or not you’ve upgraded yet, plan to upgrade, or are just going to jump from the current LTS release (14.04 Trusty Tahr) to another future release or the next LTS release (16.04).

Tagged , , , , , ,
%d bloggers like this: