bingshui.org

the Life of Zim

18th December
2017
written by dzimney

I’ve been running Linux on my main computer for the past three or four years now. I’ve also had a great set of Bose headphones for most of that time, but have never been able to get them to pair via bluetooth to the Linux machine. Recently, however, I ran into the following article that changed everything: Installing Bose QuietComfort 35 on Linux Mint 18. I’ve tried similar approaches, but nothing that ever worked… until now! I’m running Ubuntu 16.04 (although I’ve been thinking of switching to Mint for a while now — it’s just so much damn work to switch). In any case, this should work for most flavors of Linux.

First, create a new file: /etc/bluetooth/audio.conf with the following contents:

[General]
Disable=Socket
Disable=Headset
Enable=Media,Source,Sink,Gateway
AutoConnect=true
load-module module-switch-on-connect

Second, edit /etc/bluetooth/main.conf by un-commenting and changing the values of “ControllerMode” and “AutoEnable” so they look like the following:

# Restricts all controllers to the specified transport. Default value
# is "dual", i.e. both BR/EDR and LE enabled (when supported by the HW).
# Possible values: "dual", "bredr", "le"
ControllerMode = bredr

and…

# AutoEnable defines option to enable all controllers when they are found.
# This includes adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'false'.
AutoEnable=true

Third, reboot and pair!

7th February
2013
written by dzimney

THE ISSUE:
Last night I was messing around with SSH and X. Essentially attempting to use a Raspberry Pi as a client workstation to my Xubuntu 12.04 desktop. I played around a bit, shutdown my desktop remotely and went to bed. When I woke in the morning and attempted to log into desktop’s GUI. The screen would got blank, flash the following message and then go back to the login screen.

could not write bytes: Broken pipe
* Starting NFS kernel daemon
* Starting crash report submission daemon
speech-dispachter disabled: edit /etc/default/speach-dispatcher
* Stopping restore sound card(s') mixer state(s)
* Starting VirtualBox kernel modules
* Starting the Winbind daemon winbind
saned disabled: edit /etc/default/saned
* Starting NetBIOS name server

* Starting Mount network filesystems

* Stopping Mount network filesystems

* Checking battery state...

At some point last night, I believe that I also ran an update on Xubuntu. However, I can’t remember if I rebooted the system and had a successful login prior to messing around with SSH and X. That said, it’s possible that either could be the root of this problem.

THE TESTS:
In either case, in an attempt to figure out what was going wrong, I first switched to a terminal over the GUI login. To do this at the login screen press Crtl+Alt+F2. To switch back to the GUI from the terminal press Crtl+Alt+F7. From here I logged in with my normal user and password. I did not log in as root. Once logged in I attempted to start x from the terminal by issuing the following command: sudo startx

This produced the following output:

xauth: error in locking authority file ~/.Xauthority
xauth: error in locking authority file ~/.Xauthority

Fatal server error:
Server is already active for display 0
    If this server is no longer running, remove /tmp/.X0-lock and start again.

Please consult the The X.Org Foundation support at http://wiki.x.org for help.

ddxSigGiveUp: Closing log
No protocol specified
No protocol specified
xinit: giving up
xinit: unable to connect to X server: Resource temporarily unavailable
xinit: server error
xauth: error in locking authority file ~/.Xauthority

With this information my first action was to do what was suggested and “remove /tmp/.X0-lock and start again.” After doing so the problem persisted. I then attempted to start X from the terminal again to see what the output was. This time I got the following:

Fatal server error:
Server is already active for display 0
    If this sever is no longer running, remove /tmp/.X0-lock and start again.

Please consult the The X.Org Foundation support at http://wiki.x.org for help.

ddxSigGiveUp: Closing log
Invalid MIT-MAGIC-COOKIE-1 keyInvalid MIT-MAGIC-COOKIE-1 keyxinit: giving up
xinit: unable to connect to X server: Resource temporarily unavailable
xinit: server error

THE FIX:
Looking back at the orignal output from startx and spending a little time Googling the issue. I decided to try and remove the ~/.Xauthority file. And PRESTO! After a reboot, I was able to log in with no issue.

THOUGHTS:
Looking at the errors, it seems to me that I somehow locked up my display in X while doing so. It likely happened when I shutdown the system from SSH — the system shutdown will the SSH connection was active, resulting in the display remaining locked to the SSH session that would have been terminated by the shutdown. Admittedly, this could just be my failed interpretation of things.

I’m also not sure if I only needed to remove ~/.Xauthory or if it was also necessary that I removed /tmp/X0-lock. However, it seemed odd that the message to remove /tmp/X0-lock remained in the output from my second attempt at running startx, while the first and final errors regarding the .Xauthority file were missing. Curious… but not that curious.

NOTES:
Throughout this post, I’ve replaced terminal outputs containing the full path to my user directory with “~”.

2nd October
2012
written by dzimney

So I think this is my third post on setting display resolutions under Ubuntu. I’ve got this Dell P2311H 23″ monitor, which has really been great for what it cost me (around $200, I believe). However, the monitor resolutions don’t get picked up by Ubuntu and after a few restarts of my computer, I end up with 640×480 display, which is really a pain in the ass. The odd part is, that usually during installation and for a few restarts, everything runs fine. Eventually it always gets jacked. It has something to do with the monitor not putting out a EDID. I write a little about it here. Anyhow, I recently updated to Xubunut 12.04 (not a fan of Unity at all). And so of course, here I am dealing with the same issue. Things have changed since 10.10 however.

In Xubuntu 12.04 (which for the record is simply Ubuntu running Xfce rather than Unity), the xorg.conf files are handled a bit differently. Firstly, they’ve moved out of the /etc/X11 directory and into the /usr/share/X11 directory. Additionally, they have become they. In 12.04, and I believe since 11.04, the xorg.conf is now a directory called xorg.conf.d and contains various *.conf files. This is a very welcome change as it allows for the config files to be more organized. In the /usr/share/X11/xorg.conf.d directory, there should already be a number of files. One thing to not here is the that naming convention is to start with a two digit number then dash then the config file name, such as 10-monitor.conf, which is what we will be using. From what I understand the number at the beginning is used to sort which file gets loaded first. I believe there are also some conventions for the number ranges, such as numbers in the 40s are all for some type of config. I really don’t know, but in case you care, there is a rhyme or reason to it, which you can of course choose to ignore if you wish.


Step 1

Before we begin, there are a few pieces of information we need. Firstly, we need to know how to write our modeline. What’s a modeline? I don’t really know, but we’ll be generating one with the gtf command which takes three parameters, Horizontal Resolution, Vertical Resolution and Refresh Rate. In my case, I will be entering the command like this:

gtf 1920 1080 60.

This will provide a modeline for a screen resolution of 1920px width 1080px high and a refresh rate of 60hz. If you don’t know your refresh rate, you probably want to go with 60, especially if you’re using an LCD screen. Entering the command should output something like this:

# 1920×1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz
Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync

We want the “Modeline” which is including and everything after the word “Modeline”.

Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync

We also need the Mode Name. This is the first part in quotes: "1920x1080_60.00", including quotes.


Step 2

Next, we need to know the name of our display device. To retrieve this, enter xrandr into the terminal. This should output something similar to the following:

Screen 0: minimum 320 x 240, current 1920 x 1080, maximum 1920 x 1080
default connected 1020x1080+0+0 0mm x 0mm

What we’re looking for here is the name of the device. This should be whatever appears before the word “connected”. In my case the device name is “default”.


Step 3

Now it’s time to write the configuration file. As I mentioned earlier, we are going to create a 10-monitor.conf file. To do so sudo an editor of your choosing such as pico or leafpad. If you don’t like the terminal try the command sudo leafpad /usr/share/X11/xorg.conf.d/10-monitor.conf. Personally, I enjoy myself a little pico and will be entering sudo pico /usr/share/X11/xorg.conf.d/10-monitor.conf. Either will do.

Type up your config file to look like the following, where <MODELINE> and <MODENAME> are replaced with the modeline and modename you found in the Step 1 and <DEVICENAME> with the device name found in Step 2.

Section "Monitor"
Identifier "Monitor0"
<MODELINE>
EndSection
Section "Screen"
Identifier "Screen0"
Device "<DEVICENAME>"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes <MODENAME>
EndSubSection
EndSection

In my case, the final file looks like this:

Section "Monitor"
Identifier "Monitor0"
Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
EndSection
Section "Screen"
Identifier "Screen0"
Device "default"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080_60.00"
EndSubSection
EndSection

IMPORTANT! READ THE FULL NEXT PARAGRAPH
For the changes to take you’ll need to save the file and restart your computer. If everything was done correctly, your resolution should be set at 1920×1080 (or whatever resolution you’re using) and you shouldn’t need to touch this stuff again. HOWEVER, if you have a typo or anything wrong with the config file you’ve just created, it is possible for you to lose your display entirely. If this happens, wait for the computer to fully boot and press Ctrl+Alt+F1. This should bring up a terminal and allow you to remove the config file you’ve just created. Do so by running the following:

sudo rm /usr/share/X11/xorg.conf.d/10-monitor.conf

Once you’ve removed the file, restart the computer (this can also be done in the terminal by running sudo reboot). You can also edit the file the same as we did before, although leafpad won’t be an option any more, and attempt to decipher what is causing the problem. It is entirely possible that this solution simply won’t work for your configuration and monitor.

Good luck. And thanks to Samuel Martin for the original post on this.

2nd February
2012
written by dzimney

I’ve been running Ubuntu 10.10 for a year or so now and there have been a few times, after installing some updates I presume, where I’ve restarted my computer and suddenly my monitor resolution isn’t recognized. Normally I run the maximum resolution (1920×1010) of my monitor, a Dell P2311H. But on these restarts, my resolution is reduced to 640×480. Very annoying. Now, from what I understand, this is not an issue with Ubuntu per se, but rather the monitor’s failure to send the proper EDID or Extended Display Identification Data for the monitor. Essentially the EDID sends information of what display settings the monitor is capable of, such as refresh rates and resolutions. The basic remedy is to manually enter these settings.

Very recently I had this issue occur to me twice for two separate issues, which is really what’s prompting me to write this post. I don’t want to have to dig through the interwebs again to solve this. So, in my case there were two separate incidents with two different resolutions.

Round 1
The first time my screen resolution was all jacked up, it was because of the “Screen” settings in my xorg.conf, which is located at /etc/X11/xorg.conf.

NOTE: be sure to make a backup of xorg.conf before making edits. You don’t want to make matters worse, and there’s no guarantee that this solution is the solution to your problem.

At the bottom of xorg.conf you should see a section labeled “Screen” or something similar to this:

Section “Screen”
    Identifier    “Default Screen”
    Default Depth    24
EndSection

In this section you’ll want to add a subsection labeled “Display” that defines your available screen resolutions, or more importantly a Virtual resolution which appears to server as a setting for the maximum allowable resolution. Edit the “Screen” section to look something like this:

Section “Screen”
    Identifier    “Default Screen”
    Default Depth    24
    SubSection “Display”
        Virtual    1920 1080
        Depth    24
        Modes    “1920×1080 1680×1050 1344×840 1280×800″
    EndSubSection
EndSection

The resolutions you enter should obviously match to available resolutions for your monitor. More importantly the Virtual entry should match you monitor’s maximum resolution, or rather the maximum resolution you intend to use, whichever is smaller.

Now restart xerver. Depending on your default display manager, you can do this by running one of the following commands:

sudo restart lightdm
or
sudo restart gdm
or
sudo restart kdm

You can find out what your default display manager is by looking at the file default-display-manager in the /etc/X11 directory.

After the restart, maybe you’re good, maybe not. On to…

Round 2

The second time my resolution went all wonky on me it was due to the refresh rates. For this edit, we’ll still be working with the xorg.conf file, but we’ll be editing the “Monitor” section. In my case, this section looked like this:

Section “Monitor”
    Identifier    “Monitor0″
    VendorName    “Dell”
    ModelName    “P2311H”
    HorizSync    28.0 – 33.0
    VertRefresh    43.0 – 72.0
    DisplaySize    509.76 286.74
    Option    “DPMS”
EndSection

The two fields in question are the HorizSync and VertRefresh. You’ll want to change these to whatever your monitor’s refresh rates are. You’ll probably have to do a bit of Googling to figure it out. Of course you could probably just enter in these numbers I have below and see what happens. I believe the worst case scenario would be that Ubuntu would restart without any GUI in which case you’d be stuck in the terminal. So if you’re not comfortable with the Terminal it might not be worth the gamble. Also, in my case DisplaySize looked awfully suspicious and so I removed that line completely.

Again, in my case, the final section looked something like this:

Section “Monitor”
    Identifier    “Monitor0″
    VendorName    “Dell”
    ModelName    “P2311H”
    HorizSync    30.0 – 83.0
    VertRefresh    56.0 – 76.0
    Option    “DPMS”
EndSection

Again, restart your display manager as per the instructions from Round 1 and with any luck you should be in business.

30th March
2011
written by dzimney

So there are a ton of possible reasons why your .htaccess files might not be working. If the AllowOverride is set to None in a parent directory, that could be causing problems. If AccessFileName is not set correctly in your apache2.conf, that could be the source of your misery. In my case, it was the rewrite module. It appeared as though my .htaccess files weren’t being read by the server because rewrites is basically all then do on my sandbox. So, what’d I do? Spent the past six hours fighting with all the things that were working only to find that there’s a rewrite module that has to be enabled. Who knew.

So, enabling the module is pretty simple, assuming you’ve got it installed. Pretty sure it’s a default module though, it should be at least, but then again it should also be enabled by default in my opinion. Anway, you just need to make a symbolic link to the rewrite.load file from the mods-available directory to the mods-enabled directory (all found in your apache2 directory, usually found at /etc/apache2).

QUICK ANSWER:
Open a terminal and run the following:

$ cd /etc/apache2/mods-enabled
$ ln -s /etc/apache2/mods-available/rewrite.load rewrite.load

NOTES:
There are couple of things to note here. First, we are assuming that Apache is installed at /etc/apache2 on your system. We are also assuming that you have the rewrite module file rewrite.load in your /etc/apach2/mods-available directory. Finally it is important to note that when running the second line in the terminal, the one creating the symbolic link, you have to enter the full path to the file in the first parameter. You can’t shorthand it or enter it as a relative path.

Also, you can do a quick check of your mods-enabled directory. If there’s a link to the rewrite.load file already in there, this solution obviously isn’t going to work for you, so good luck.

Hope this saves someone else six hours of their life.

24th February
2011
written by dzimney

After getting Android Notifier working on my machine by installing OBEX, I installed Blueman on my Ubuntu 10.10 machine. I’m not sure why, but Blueman seems to work better with Android than Gnome Bluetooth. I like the interface of Gnome Bluetooth better than Blueman, but I could only get file transfers to run from Android to Ubuntu and not the other way around. Additionally, it’s fairly easy to change the download directory for Bluetooth file transfers to Ubuntu using Blueman. If anyone has a solution to either of these two issues, I’m all ears.

Anyway, back to Android Notifier. Once I installed Blueman, the notifier stopped working. Everything was still paired correctly and all that, but Notifier just wasn’t getting the messages. Turns out, Blueman seems to use an Indicator plugin that hijacks those notifications. Solution? Turn off the Indicator plugin. From what I can tell it doesn’t do much anyway… of course maybe I should retest sending/receiving files from my Nexus.

QUICK ANSWER:

Right click on the Blueman icon in your Notification Area. Select Plugins. And now un-check Indicator from the list on the left side. Done.

Again, I don’t know if there are any adverse effects to turning off Indicator. But I can’t imagine it’ll break anything.

19th February
2011
written by dzimney

I’ve been using the Android Notifier with my MacBook for some time. If you haven’t checked it out, please do. The application sends notifications to your desktop for everything from incoming texts to a low battery warning to third party notifications. It’s a great little app if you’re into that sort of thing. So when I made my switch to Ubuntu, naturally I wanted to get the Android Notifier working with my new machine.

I won’t get into how the application works or how to pair your phone with Ubuntu. There’s plenty of info on those out there. The issue that I was running into, was with my Nexus S paired and being able to send files to and from Ubuntu, I could not get Android Notifier to pick up on any of my test notifications. When setting up Bluetooth on my computer to allow for file transfers I’d discovered that Android uses OBEX to push and receive file transfers over Bluetooth. So, with this in mind, I decided to investigate how Android Notifier listens for notifications. After checking out the wiki on the project page for Notifier, I found this article regarding the protocols used by Android Notifier (thank you to the Notifier team for posting the documentation on this). Turns out for the Bluetooth connection, Notifier uses a UUID (Universally Unique Identifier) when sending notifications.

QUICK ANSWER:
While this may vary between distributions of Linux, on my Ubuntu 10.10 setup, I had to install the UUID command-line tool in order to get Android Notifier working. To do this, run the following command:


$ sudo apt-get install uuid

I hope this helps someone solve their issue using Android Notifier. I’d hate for someone to miss out such a sweet app.

9th February
2011
written by dzimney

Playing around with setting up my Linux box as a VNC client, I ran into an unexpected dilemma. Basically, when running Ubuntu 10.10 and connected through VNC using a Mac as a client, whenever you press the ‘D’ key, all windows collapse. Think it’s not a big deal? Start counting how often you press the ‘D’ key in normal typing. In fact, I initially tried running a Google search on the issue and couldn’t type the search without pressing the ‘D’ key. Anyway, really annoying problem with a really easy fix (assuming you have access to the server computer).

What’s going on.
In Ubuntu 10.10 there is a default Keyboard Shortcut for “Hide all normal windows and set focus to the desktop”. Seems like a useful shortcut. Unfortunately the default (as displayed by the Keyboard Shortcuts dialog) is set to Mod4+D. Now, I have no idea what Mod4 is. Presumably a modifier key like ‘control’ or ‘alt’. The interesting piece to this is that when logged in through VNC (using Chicken of the VNC as a client on my MacBook Pro) the modifier key must not be recognized and so is simply dropped off from the keyboard shortcut. Thus, every time you press the ‘D’ key, all of your windows collapse.

The solution.
Easy. Just open up the Keyboard Shortcuts dialog on the server machine by going to System -> Preferences -> Keyboard Shortcuts, toggle the Window Management group and disable the shortcut by selecting it and pressing ‘delete’. Or change it to whatever shortcut you’d like to use.

Hope this solution helps someone some headache.

Tags: , , ,