Random notes from mg
Fri, 15 May 2009
Update: The story continues, but solution is not in sight yet.
I upgraded a buildbot slave to Ubuntu 8.04 (Hardy) recently and now I'm getting a strange intermittent failure: sometimes cp -r /local/dir /nfs/mounted/dir fails ("process killed by signal 1", i.e. SIGHUP).
I wonder if NFS is relevant or incidental to the issue?
Google finds an old thread from 2005, with a workaround (usepty=False), but I'd like to understand the problem before applying random fixes.
So far three different build steps doing cp -r have failed during 10 days. I've now changed them all to cp -rv, so I can at least see if the failure is in the middle of the copy or at the end, if it fails again.
Update: so far 4 build steps have failed on 6 separate occasions:
May 5 02:31: cp -r local-dir1 nfs-mounted-dir1
May 6 02:31: cp -r local-dir1 nfs-mounted-dir1
May 6 04:33: cp -r local-dir2 nfs-mounted-dir2
May 15 02:00: cp -r local-dir3 nfs-mounted-dir3
May 17 04:32: rm -rf nfs-mounted-dir4
May 20 04:31: rm -rf nfs-mounted-dir4
I see no particular correlation between step duration and results, e.g. the rm -rf step usually takes between 2.2 and 4.6 seconds. The two SIGHUPs happened after 2.4 seconds.
They all make no output. When I changed the cp steps and added a -v, they stopped failing, but that could be just a coincidence.
We're having an email conversation with Jean-Paul Calderone ("exarkun") about the possibility of this being PTY-related, with no clear resolution so far.
And, hey, now this blog supports comments ;)
Thu, 09 Apr 2009
Ubuntu people want users to use apport to report bugs. There's a command-line tool called 'ubuntu-bug' that you can use if you know the name of the package or at least the name of executable. There's a "Report a problem" menu item in many, but not all GUI apps.
Here's what you can do if the GUI app in question doesn't have that menu item, and you don't remember what it's called, and you're the same sort of a crazy command-line person that I am:
$ xprop|grep PID
Click on the app's window. Watch that shell command return a line that looks like
_NET_WM_PID(CARDINAL) = 807
Now run
$ ps 807 # substitute the real number
You'll see the command name, e.g.
PID TTY STAT TIME COMMAND
807 ? S 0:02 /usr/lib/indicator-applet/indicator-applet --oaf-acti
Now you can run
$ ubuntu-bug /usr/lib/indicator-applet/indicator-applet
If you're not running Jaunty, you'll need to do one more step to find the name of the Ubuntu package:
$ dpkg -S /usr/lib/indicator-applet/indicator-applet
indicator-applet: /usr/lib/indicator-applet/indicator-applet
You can use that with apport-cli or on the Launchpad online bug reporting form.
For some (many?) programs you can short-circuit this trail by looking at the WM_CLASS property instead of the _NET_WM_PID property:
$ xprop|grep CLASS
WM_CLASS(STRING) = "indicator-applet", "Indicator-applet"
While there is no requirement for the window class name to match the name of the Ubuntu package or the name of the executable, it may give you a reasonable guess.
Mon, 06 Apr 2009
Ubuntu 9.04 is going to be released in around three weeks. As usual I couldn't wait (and saw that some bugs that were irritating me every day were fixed in Jaunty), so I upgraded to the current beta.
After a little hiccough at the beginning, the upgrade was the smoothest Ubuntu upgrade I've ever had: I spent those two and a half hours browsing the web, watching screencasts and chatting on IRC, while update-manager worked in the background. Firefox was mostly very responsive, only stuttering when update-manager got around to unpacking openoffice.org-common. There were few debconf or conffile questions (one from sysstat 2 minutes into the upgrade, then a conffile question after 1 hour and 20 minutes, then two more after 15 minutes, and one more 5 minutes later. And the last one 10 minutes later). There were no ugly theme changes or failing GNOME applet error messages during the upgrade. Near the end X-Chat automatically started showing new-style notifications (beautiful!) and Firefoxes nicely asked to be restarted with a fold-down notification bar.
Nice. Now, after a reboot things were not so nice: I couldn't login. After typing in my password and a couple of mode changes I was kicked back to the GDM prompt. I panicked and started logging into the text consoles and trying to run startx, quite in vain, since when I just tried gdm again it worked fine.
The intel video driver feels slower, as promised by the release notes, but it's acceptable as long as you don't try to rotate the external screen. Then it's horrible and unusable—a regression since Intrepid. I'll have to retry with UXA.
Compiz failed to enable a plugin (GNOME Compatibility), so a couple of key bindings didn't work (Alt+F1 to get the menu, Alt+F2 to get the run dialog, my custom keybinding to open a terminal) until someone on FreeNode told me what to enable.
The Flash plugin is now swfdec, and it is unable to cope with Youtube music videos—the sound is all choppy. I'm wondering if this is swfdec's fault, pulseaudio's fault (it's common knowledge that all audio problems stem from pulseaudio, right? ;) or X.org's fault (top shows it's X that's eating 90% CPU when swfdec is trying to play a video).
A lot of very irritating bugs are gone. I don't need to restart Compiz after playing with xrandr. X doesn't crash after I play with xrandr. Two-finger scrolling with the Synaptics touchpad doesn't produce phantom scroll-down-17-pages events when I take my fingers off the touchpad. The GNOME panels don't migrate to the external screen when I play with xrandr (but one of them jumps from the bottom to the top when I play some more). The new splash screen has a pretty gradient for its progress bar (but is displayed off-center, maybe because I added vga=872 to my GRUB kernel options list to avoid ugly stretching of text consoles). X.org no longer distorts the aspect ratio of 1024x768 when stretching it to fit the 1280x800 screen—now I get sensible black bars on the sides. The new notification bubbles are beautiful!. I could stare at them all day. (But the new indicator applet is ugly.)
Overall I'm happy. A bunch of very irritating bugs were replaced with a smaller bunch of somewhat less irritating bugs. The intel video slowdown scares me a bit, though, but the prettiness of the notification bubbles outweigh everything else. What can I say, I like pretty things—Ooh, shiny!
Today I happened to read about lazr.enum in a mailing list. I went to the PyPI page and saw raw ReStructuredText markup instead of a nicely formatted page. Now I know from prior experience that this happens when the package's description has an error in the markup. I thought I'd report a bug and provide a patch.
Leap of knowledge: since I know lazr.enum was created by the Launchpad.net team I could safely assume they were keeping the sources in Launchpad. Therefore I was pretty sure I could get them with
$ bzr branch lp:lazr.enum
so I ran that command and it worked.
Next I looked at setup.py to see how it produces the long_description field. It was reading the contents of a couple of text files, one of them being src/lazr/enum/README.txt. I looked at that and saw a .. toc-tree: directive that does not exists in plain docutils (it's a Sphinx extension).
I added up a couple of lines to setup.py to strip that out, tested it (with setup.py --long-description > test.rst; restview test.rst) committed to my local branch, and created a bug report in Launchpad. Then I was a bit lost, since I didn't know how to make my fix available. Attach a patch? Maybe, but I wanted to see if this distributed version control thing is good for anything else.
I thought that first I'd make that branch public, and then see if there was a way to link it to the bug report. I ran
$ bzr push lp:~mgedmin/lazr.enum/pypi-fix
which took a few seconds to create a new public branch on Launchpad with my fix in it (it would be nice if I didn't have to explicitly specify my Launchpad username and the project name—both of which bzr already knows—and just specify the name of the branch). Then I went back to my bug report and saw an option to link it to a branch. There was a search field in the popup that found my "~mgedmin/lazr.enum/pypi-fix" easily enough when I pasted it into the search box.
After clicking on the branch, I saw a "propose a merge" option. I did that and Launchpad sent an email to the developers asking them to merge my fix.
I made one mistake, I think: I should've created the bug report first, and then mentioned the bug number in my commit message (with bzr commit --fixes=NNN, although here I'm suddenly not sure if the bug number should be left bare, or prefixed with something like "lp" to indicate it was a Launchpad bug number?).
Other than that it was a pretty smooth experience. When will I be able to do that for Ubuntu packages?
Fri, 03 Apr 2009
I think I'm going to blog about Ubuntu bugs I encounter during my day. Don't get me wrong—I love Ubuntu and haven't seen a better OS yet. But it has bugs.
Why blog and not report them to Launchpad? Many reasons: producing good bug reports is hard work; bugs rarely show up alone, and if I start filing one, I'll forget details about the others; sometimes it's unclear whether something is or is not a bug until you've written it down and looked at it; Launchpad is slow while previewing a blog post on the local machine is fast.
This is one of those long and rambling posts that you can skip without feeling guilty. ;-)
Things I did today:
I enabled my dual-head screen and had to restart compiz to avoid bug 317431. After work I tried to switch to single-screen mode again and X promptly crashed—bug 298226. When X restarted it picked a fugly stretched 1024x768 mode that looks very bad on my 1280x800 widescreen panel—because this was the only common mode between the internal panel and the external 1280x1024 LCD. I used Ctrl+Alt+Backspace after pulling the VGA cable as a quick way to restart GDM with a saner resolution. I wonder what I'll do in Jaunty where Ctrl+Alt+Backspace is disabled by default. (BTW I agree with that decision, having accidentally pressed Ctrl+Alt+Backspace on several painful occasions.) I suspended my laptop and put it in my backpack, then went home. At home I tried to resume. The laptop suspended again immediately after waking up. When I woke it up again, it did not accept my fingerprint (this often happens, I don't particularly mind—it's difficult to swipe the finger precisely). I then typed my password, pressed Enter—and then gnome-screensaver spent an unreasonably long time verifying my password (this I do mind). While it was verifying the password suddenly the GNOME panel showed up on top of the gnome-screensaver, with two new notification bubbles: one was the usual post-upgrade reboot required, and the other was a typical post-upgrade informational notice (one about refreshing ALSA configuration presets—I haven't seen it before). The interesting thing is that I don't remember running apt-get upgrade today, and /var/log/dpkg.log confirms I last upgraded things yesterday at noon. I could not take a screenshot of the bizarreness described in step 3, but that's reasonable—the desktop was still locked. So I took a (crappy) picture with my cell phone (and now I'm too lazy to upload it—but I have proof! proof!). After 30 seconds or so gnome-screensaver finally timed out, the GNOME panel disappeared, and I got a new fresh screensaver unlock dialog. This time it worked. Just after unlocking the screen I saw a GNOME keyring prompting for my keyring password to enable Network Manager to get the WPA passphrase needed to log in. It's the same as my login password. Shouldn't some PAM magic I recently read about in Ubuntu mailing lists unlock that keyring for me automatically on login? Oh, right, I log in using my fingerprint, not my password. Darn.
Now I feel like I should report item #3 (and #13) as a wishlist, item #6 as a bug (there's probably one open, with a bunch of duplicates, already), #8 as a bug (but that would be useless—I've no recipe for replicating that), #9 as a bug (again, how can I replicate?)—or, rather two bugs (why did the informational notices got delayed by a day?). Maybe three bugs: the untitled (four bugs!) window with the update information says
Refresh Advanced Linux Sound Architecture (ALSA) configuration presets
New Advanced Linux Sound Architecture (ALSA) configuration presets have been added. Please execute the asoundconf(1) set-default-card macro in a Terminal now to refresh your user's configuration presets. You may accomplish this task by executing the following command in a Terminal: asoundconf set-default-card
which reads like gibberish to any nontechnical person (and many technical persons too, I think).
Let's talk more about this notification: the first thought that comes into the mind of a technical person is: if you know what command I should run in a terminal, why don't you run it yourself, you stupid machine? The answer is “because that's not the complete command that you need to run”:
$ asoundconf set-default-card
You have omitted a necessary parameter. Please see the
output from `asoundconf list`, and use one of those sound
card(s) as the parameter.
Okay, I'll bite
$ asoundconf list
Names of available sound cards:
Intel
There's only one card. Why isn't it selected as default automatically, without forcing me to jump through hoops in a terminal? Think of the children (or, better, your mother)!
But now I remember that Pulseaudio is supposed to be the default ALSA card. What will happen if I select Intel here? Will it break Pulseaudio? Oh dear, I've no idea. I'm afraid to do anything now.
I think I will put on my regular-user-glasses and look at that dialog again:
Okay, I hit the only button available—close. I'm done here. Sound appears to continue to work fine without me doing anything. Why was that dialog necessary? Just get rid of it.
I'm sorry. I did not intend this to become a rant. I wanted to make a list of reportable bugs that I could review later and file properly (or have helpful people look up and send me via email—this has happened before, and I was surprised and grateful).
Fri, 06 Mar 2009
Last night I thought it would be fun to try to suspend my laptop with the 3G USB modem still plugged in and connected. This morning when I woke it up I had no keyboard.
Ctrl+Alt+F1 worked to switch to a text console (when I pressed it twice). The text console wasn't garbled, which was nice. killall gnome-settings-daemon or gnome-screensaver didn't fix anything. Suspending and resuming again didn't fix things either (not that there's any reason why it should). When I noticed that Ctrl+Alt+Backspace didn't work in X, I realized this wasn't an X grab issue.
/var/log/Xorg.0.log has a series of errors like this:
(EE) AT Translated Set 2 keyboard: Device has changed - disabling.
(WW) AT Translated Set 2 keyboard: Release failed (Invalid argument)
Sadly, there are no timestamps. I think this was printed once on resume, and then once on every VT switch.
xinput still lists "AT Translated Set 2 Keyboard" among its devices.
I remember now -- before suspending I had used sudo showkeys -s in an xterm (trying to see the scan code of the ThinkVantage button). Could've mucked up the keyboard mode?
Alt+SysRq+R (raw mode) didn't help, even when followed by more VT switches. I think I'm gonna restart the X server. Or reboot the whole PC, Ubuntu notifier is showing its reboot icon again...
Meta: I wrote this post on March 6, and then decided it wasn't interesting enough to post. And then posted it accidentally on March 20.
Update: looks like bug 327175.
Fri, 27 Feb 2009
Warning: this is going to be a long story with a semi-happy ending. Skip it unless you enjoy tales of woe and debugging.
So, I open up my laptop, plug in a USB keyboard and mouse, start up Inkscape and start fooling around. Suddenly I notice strange behaviour:
I cannot select two objects in Inkscape by holding down ctrl or shift and clicking -- only the last object I clicked on becomes selected. Menus don't pull down, although the highlighted bar follows my mouse I cannot type any text into text boxes Moving the mouse into a screen corner doesn't trigger the Expose-like effect I cannot drag windows around by grabbing the title-bar I cannot drag windows around by alt+dragging Dragging the mouse inside an xterm creates a vertical selection
That last hint seems to indicate that the Ctrl key could be stuck. I try pressing it and releasing, then the other one, then both Ctrl keys on the USB keyboard. Surely, if X sees a press and a release event for each Ctrl it will realize none of them are still down? No such luck. I try to unplug the USB keyboard and mouse next. No results.
This is not the first time this has happened to me. Previously I found no exit out of this state other than killing X.org with (great pleasure and) Ctrl+Alt+Backspace. Surely there must be a better way?
I ssh in and start xev. MotionNotify events have state 0x4, which is control, I think. By the way, I only see mouse events in xev, keyboard events don't make it. The keyboard itself is alive at some level, as Caps Lock turns on its LED, and Ctrl+Alt+F1 gives me a (garbled and unusable) text console. Holding down Alt or Shift doesn't change the state of events seen by xev, though.
Did my keyboard map get lost? Is some X client grabbing all the keys? how do I recover?
I use x2x to connect to the laptop from my desktop. I now can use my desktop's mouse and keyboard to control the laptop. x2x works by injecting X events via XTest. I see mouse events x2x injects, but xev again shows nothing on the keyboard front.
I try to guess which X client might have the keyboard grab (if there is one). I killall compiz. I'm surprised that gnome-session doesn't restart it (or spawn a different window manager in its place). I start metacity manually. The problem is not gone. I kill metacity and start Compiz again.
I have a VNC server running (vino), but I've forgotten its password.
I notice a weird message in my xev log:
KeymapNotify event, serial 40, synthetic NO, window 0x0,
keys: 4294967195 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Huh? 4294967195 keys? That looks like an unsigned 32-bit int underflow. I scroll back and find the first KeymapNotify event seen by xev:
KeymapNotify event, serial 25, synthetic NO, window 0x0,
keys: 0 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Looks normal. Then I notice this at the end of the xev log:
FocusOut event, serial 40, synthetic NO, window 0x3e00001,
mode NotifyWhileGrabbed, detail NotifyNonlinear
What's "NotifyWhileGrabbed" mean? How do I find the rogue app and kill it? xrestop shows me 35 X clients, do I just kill them one-by-one until the problem disappears? Some of those clients are <unknown> and show no PID.
I suspend the laptop (which is a very stupid idea when your other machine's mouse and keyboard are redirected to it via x2x) and resume it, hoping that gnome-screensaver will somehow overpower the existing application's lock with its own. Gnome-screensaver is nowhere in sight. At least my x2x connection becomes alive again and I have my keyboard & mouse back on the desktop.
I notice that I can no longer make any kinds of selections in gnome-terminal. Why? Window focus no longer follows mouse. xev no longer sees mouse motion events. It sees a couple of MappingNotify events when I plug in a (different) USB keyboard, though.
I killall gnome-screensaver (which was invisible, remember?) and can now again see motion events in xev and select windows with the mouse.
I start randomly killing applications. gnome-power-manager. nautilus. inkscape. firefox. gtk-window-decorator. gnome-panel. notification-daemon. gnome-terminal. pulseaudio (no reason). vino-server. update-notifier. seahorse-agent. gnome-keyring-daemon. bluetooth-applet. fast-user-switch-applet. multiload-applet-2. mixer_applet2. system-config-printer. gnome-settings-daemon.
And the system becomes ugly (no GNOME theme) but alive. I get a second xev window from an earlier attempt to type 'xev' in a terminal that was unable to receive key events.
Of course, since I killed all the actual applications and half of the necessary support programs my session is now useless, so I'll have to log out and log back in again. But at least in the future I'll know: when something like this goes wrong, killall gnome-settings-daemon.
Now I'd like to report a bug (the thought of hurling a brick through the responsible developer's window never crossed my mind, honest!), but without a reliable way of reproducing the problem will it be of any use?
I restart gnome-settings-daemon and it promptly invokes xrandr to set up a dual-head mode that confuses compiz. By "confuses" I mean displays a rotating cube in the top-left 1280x700 area of my 2560x1024 extended desktop, filling the rest with whatever was in the video memory last time I had a dual-head mode.
I try to start up Firefox on my desktop and put a link to the relevant bug, but Firefox quietly refuses to start up. Well, 'Segmentation fault' at the end of ~/.xsession-errors is quiet, isn't it? Thankfully, 'firefox http://someurl' for some reason works and opens a window. I cannot find the Compiz bug I remember (could it have been #135418?), but this looks like a better fit anyway: #317431 (and #206998 might be a duplicate). And here's my gnome-settings-daemon bug: #335201.
This is all on Ubuntu 8.10 (Intrepid Ibex).
Some days I just hate Linux. Then I remember that it's worse on other systems...
Sun, 22 Feb 2009
I recently posted some data about applications taking up the most RAM on my laptop. That was after 9 days of uptime, while this is after 12 hours:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16033 root 20 0 527m 109m 11m S 3 5.5 6:52.82 Xorg
17834 mg 20 0 244m 105m 24m S 6 5.3 3:26.49 firefox
26425 mg 20 0 96872 58m 12m S 0 2.9 0:01.71 evince
16747 mg 20 0 90704 54m 19m S 0 2.8 0:10.70 tomboy
27169 mg 20 0 166m 53m 23m S 0 2.7 0:07.05 banshee-1
27167 mg 20 0 77392 31m 17m S 0 1.6 0:01.16 pidgin
16706 mg 20 0 86508 27m 18m S 0 1.4 0:35.35 gnome-panel
16708 mg 20 0 75196 20m 14m S 0 1.0 0:02.80 nautilus
20092 mg 20 0 61880 19m 11m S 1 1.0 0:07.08 gnome-terminal
16614 mg 20 0 58456 15m 9836 S 0 0.8 0:09.82 gnome-settings-
I don't have GNOME Do any more, and I've only one of the two PDFs open in Evince. I don't see multiload-applet on the first page of top output, which seems to indicate a slow leak. Evince has the same two documents. That concept doesn't quite apply to Banshee or Pidgin, but Pidgin's numbers are quite striking anyway (from 70 megs VIRT to 1.6 gigs VIRT in 9 days; thankfully RES only grows 2x during that time).
OS: Ubuntu 8.10, up-to-date with all the updates from -security, -updates, -proposed-updates and -backports.
Incidentally, I have 12 hours of uptime because my battery died while the laptops was suspended during my flight back home (either that, or it work up in the backpack, which is a scary thought). Apparently Ubuntu tried to hibernate when the battery was very low, which was a nice gesture. This didn't work out so well when resuming, since the kernels didn't match -- I had installed a kernel update, but hadn't rebooted. I don't think I ever used hibernation successfully in Linux.
Wed, 18 Feb 2009
After reading Alexander Larsson's post on de-bloating nautilus I thought it would be interesting/useful to see what apps are eating my RAM, as a statistical data point if nothing else.
OS: Ubuntu 8.10. Uptime: 9 days, 20:45 (desktop session also started 9 days ago; I suspend and never log out). Top ten apps, according to top:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29594 mg 20 0 472m 269m 32m S 3 13.6 23:14.38 firefox
7383 root 20 0 591m 182m 14m S 4 9.2 557:37.73 Xorg
5199 mg 20 0 114m 67m 13m S 0 3.4 0:35.71 evince
17256 mg 20 0 230m 64m 24m S 0 3.3 4:10.93 banshee-1
29306 mg 20 0 1652m 62m 19m S 0 3.1 7:38.97 pidgin
8060 mg 20 0 105m 59m 17m S 0 3.0 1:23.20 tomboy
8015 mg 20 0 137m 42m 20m S 0 2.2 41:55.95 gnome-panel
8017 mg 20 0 138m 41m 16m S 0 2.1 2:26.75 nautilus
8063 mg 20 0 45876 30m 8788 S 0 1.6 33:22.14 multiload-apple
8087 mg 20 0 80708 28m 15m S 0 1.4 4:45.49 gnome-do
Update: compare these numbers with what I get just 12 hours uptime.
Firefox started leaking memory quite rapidly lately, possibly after I upgraded to 3.0.6+nobinonly-0ubuntu0.8.10.1 exactly a week ago. I have to restart it once a day if I don't want my 2 gigs of RAM to fill up completely. I hadn't needed to do that before, memory usage stayed pretty constant.
I cannot explain the X.org numbers. pmap doesn't show me RSS numbers, but 150 megs of VIRT are attributed to the heap (an anonymous read-write mapping), while 256 megs look like the frame buffer ("resource2"). xrestop sees a total of 21027K of resources (pixmaps etc.) attributed to all the clients. I have a vague suspicion that this number doesn't include OpenGL textures used by Compiz, but I'm pretty clueless about those things. compiz --replace reduces Xorg's RSS down by 9 megabytes and increases VIRT by 5 megabytes. The increase is mirrored by xrestop, which now shows 25652K in total.
I have two PDFs open in the background since I intend to read them within the next couple of days, this explains the evince data.
I'm not happy about the Banshee memory usage. I wouldn't mind that much if it didn't insist on minimizing to the system tray.
I'm even less happy about Pidgin. Banshee at least has the excuse that it is built on top of Mono, which adds a whole new runtime & virtual machine. And why on Earth does a chat program need 1.6 gigs of virtual memory?
Tomboy: Mono again. But Tomboy is a killer application and I need it.
GNOME Panel: self-explanatory. The multitude of applets that I think that I need fill up both panels and slow down login times as well.
Nautilus: pretty consistent with Alexander's numbers, looks like I can expect improvements in Ubuntu 9.04 or at least 9.10.
Multiload applet: looks like I shouldn't have blamed GNOME Panel's memory usage on applets. 30 megs RSS for four ticking graphs seems a bit biggish, but maybe memory fragmentation is at fault.
GNOME do: people keep blogging about its coolness, then I install it, try it out twice, and forget it. The default GNOME Run dialog does what I need/am used to better.
Thu, 05 Feb 2009
Almost works out of the box on Ubuntu. Will work out of the box in the forthcoming 9.04 release.
One curious little detail: according to the manual, a blinking green light means it's trying to find the GSM network (if it's blinking twice every 2.7 seconds) or that it's successfully found a GSM network (if it's blinking twice every 2.9 seconds). I'd like to have been on the meeting when this was decided. "I know! Let's make it blink 0.2 seconds faster to indicate it hasn't found a network yet! Brilliant!"
Update: given its shape and position next to my right-hand USB ports, it should double as a USB mouse.
On an unrelated note, Sweden is a very nice country.
Mon, 10 Nov 2008
Does anybody else think it's retarded that volume control keys do not work if you have a menu open in Ubuntu?
I'm sure people can claim there are good technical reasons for that (the toolkit has to grab the X server to implement popup menus, and then gnome-settings-daemon doesn't see the XF86VolumeUp/Down key events or whatever), but if you take a step back and look at this from the user's perspective, it makes no sense.
Sun, 24 Aug 2008
Netspeed is a GNOME panel applet that shows your current upload/download speed in bytes (or bits) per second. I love it. Except... you have to manually say which network device to monitor. If you're switching between wireless and wired, this gets old really quickly. There's an option, Always monitor a connected device, but it is buggy and usually gets stuck monitoring some stupid network interface like wmaster0 or vmnet8.
Today I spent a couple of hours fiddling with netspeed's source code and fixed the bug! Patches attached to the bug report and tested with netspeed-0.14 on Ubuntu Hardy.
While doing this I created a local Bazaar branch for playing with the source code. Sadly, Bazaar decided to hurt me again: bzr viz, instead of letting me look at my commits in a nice GUI window, barfs AttributeError: 'KnitPackRepository' object has no attribute 'get_revision_graph' and stops. Apparently the latest version of bzr-gtk (trunk from launchpad) is not compatible with the latest version of bzr (1.6rc2 from the Hardy PPA).
It's becoming a pattern: every couple of months I give Bazaar a try, and I hit a new bug that prevents me from doing whatever I wanted to do. Why do I even keep trying?
Fri, 25 Jul 2008
So, you hear that your media player supports remote control over D-Bus. That's great, isn't it?
So, you're lying on a couch, listening to music and reading a book on your N810. Suddenly a song you don't like starts playing. Do you
A. Stand up, walk to the PC, click the "Next song" button with your mouse,
or
B. Open Terminal on your N810, ssh into your desktop and run banshee-1 --next?
If you chose option B, you lose:
mg@mg-desktop:~$ banshee-1 --next
[Warn 00:43:59.080] DBus support could not be started. Disabling for this session.
[Info 00:43:59.101] Running Banshee 1.0.0
(Nereid:9174): Gtk-WARNING **: Locale not supported by C library.
Using the fallback 'C' locale.
(Nereid:9174): Gtk-WARNING **: cannot open display:
You can't access your D-Bus session from a different login session. This means, among other things, that I cannot ask gnome-power-manager to suspend my laptop that I left at work if I'm trying to run gnome-power-cmd.sh suspend over an SSH session.
Dear lazyweb, what's the fix?
P.S. I apologise for the impertinence of asking dear lazyweb a question on a blog that has no comments facility, but I somehow cannot bring myself to trust Pyblosxom's comment plugins in today's spam-filled world without an in-depth evaluation for which I don't have the time and energy. At least there's a mailto link clearly labeled "send feedback" below each blog entry.
Update: Steve Holden suggested using screen, which works, but only if I have the foresight to start a screen session on the desktop before I walk away. I can then reattach to the running screen session with screen -x and run banshee-1 --next inside.
Ross Burton says that setting DISPLAY=:0 ought to help D-Bus find the existing session, but only if I have the very latest and greatest D-Bus (1.2.1), which I don't have. With D-Bus 1.1.20 in Hardy, all I get by setting $DISPLAY is Banshee opening a second player instance.
Update #2: Lee Harr suggests fishing out the DBUS_SESSION_BUS_ADDRESS environment variable from ~/.dbus/session-bus/*.
Update #3: Kees Cook also has a solution.
Thu, 26 Jun 2008
Mango Lassi is a GNOME program that lets you painlessly share keyboard & mouse (& clipboard too!) between computers. It's not packaged for Ubuntu yet so you have to build it from sources.
Big fat warning: Mango Lassi has no authentication and does no encryption, so use it with extreme care. Don't type any passwords over your unsecured WiFi network!
Here's how to get it working on Ubuntu Hardy:
$ sudo apt-get install git-core curl build-essential intltool \
automake-1.9 libdbus-glib-1-dev libgtk2.0-dev libxtst-dev \
libavahi-glib-dev libavahi-client-dev libavahi-ui-dev \
libnotify-dev libglade2-dev
$ git clone http://git.0pointer.de/repos/mango-lassi.git/
$ cd mango-lassi
$ ./bootstrap.sh
Press Enter once at the prompt.
$ make
$ sudo make install
Now you can run it with
$ mango-lassi
When you're tired of it, go back to the source tree and type $ sudo make uninstall
If it only used an SSH tunnel for encryption & authentication, it would be perfect.
Porting it to Maemo would be an interesting project. Imagine copying and pasting URLs from your laptop browser to your N8x0 tablet browser. Is Avahi available for Maemo?
Sat, 21 Jun 2008
I unexpectedly acquired an Asus EeePC 900 last weekend. Lovely piece of hardware.
The Xandros distro was okay at first (IceWM brought me fond memories of the year 2000, when I used it). Then I started longing for Firefox 3 and the aesthetics of GNOME applications. Finally, when apt-cache search told me there was no SSH server package available, I gave up and installed Ubuntu Eee from a SD card. The software selection is incomparable (Asus/Xandros: 870 packages available, according to apt-cache stats. Ubuntu: over 30,000 packages.) Also, yay rotating cube desktop!
Things I like about the Eee:
Small! Lightweight! Beautiful white colour! Small pixels are pretty! 1024x600 at 8.9" is 133 dpi. Not quite the 225 dpi of a Nokia N810, but nicer than the 100 dpi of my T61W or the 85 dpi of my 19" external LCD. The keyboard is much better than I expected. I hate those laptops that squeeze Home/End/PgUp/PgDn in an extra column on the right. Asus didn't. Web browsing is much more pleasant than on a N810. It's faster for AJAXy sites such as Google Reader. Also, Firefox 3. Video watching is much more pleasant than on a N810: no need to convert anything.
Things that are bad:
It gets hot. Either the hardware is not power-efficient, or the software isn't doing a good job. Only 2 hours of battery life (plus an extra 40 minute safety warning with the blinking red battery low light). This is during normal usage (WiFi on, Compiz, Firefox, no CPU-intensive Flash plugins). No integrated Bluetooth. Therefore you have to lug a dongle around if you want to use GPRS/EDGE/3G when there are no WiFi access points around. I hate dongles. Doesn't come with Ubuntu preinstalled. Not all hardware works in Ubuntu:
Even after using the Eee version of Ubuntu I had to manually tweak config files and compile kernel modules to get volume hot keys working. No webcam or mic for me, though others report those working. Touchpad is not configurable and doesn't do wheel emulation on the right edge, although most other gestures work. Sound needs a module reload after suspend/resume, which causes an irritating error dialog from the volume control applet). Video playback sometimes shows a blank black screen until you move a window to overlap part of the picture. Firefox scrolling/redrawing under Compiz is noticeably slow sometimes (I don't know if it's because I enabled CPU frequency scaling, or if this is a problem with the Intel graphics driver problem.). When I unplug a Bluetooth USB dongle, a btdelconn process starts eating 100% CPU time in the kernel and cannot be killed. Did I mention my hate for dongles?
My workhorse, a 14" Lenovo T61W, now seems huge by comparison:
I'm not going to stop using my N810 (which fits in a pocket, has a much longer battery life, and is more convenient for e-books or NumptyPhysics). I'll stop lugging my T61W around instead and start leaving it at work. The EeePC is an almost-perfect travelling laptop.
The upcoming Asus EeePC 901 is going to fix the lack of internal Bluetooth and the battery life. I wonder when it will become available in Lithuania. (The 900 is displayed in almost every electronics shop here. Yay Asus. Boo Nokia for not doing this with its Internet Tablets.)
Fri, 06 Jun 2008
Dear lazyweb,
Where's the GNOME applet that can show me my laptop's power usage in Watt? I cannot believe that nobody has written one yet.
Thu, 20 Dec 2007
Andrew Dalke writes about his painful attempts to install Ubuntu Feisty on a Thinkpad T23. I've had a T23 and ran various versions of Ubuntu on it happily. When it works, Ubuntu (and Linux in general) is great; when it doesn't work, it is painful (but at least I can fix it, unlike, say, Windows).
One thing, though: the T23 doesn't support USB2. Using an external hard disk over USB1 is very slow and uncomfortable. Also, I wonder what sort of an install disk Andrew used. It sounds like a server or alternate install CD -- the regular desktop CD installs X and everything else for you.
Thu, 08 Nov 2007
I want to be able to install small and simple Python packages from Cheeseshop by typing 'easy_install packagename'. This does not work out of the box on Ubuntu Gutsy (even after installing python-setuptools): easy_install tries to install stuff into /usr, which (a) requires root permissions and (b) is just Not Done on Linux, where /usr belongs to the distribution's package manager.
So, here's a quick HOWTO distilled from the easy_install documentation and improved by a suggestion from Audrius Kažukauskas to use aliases instead of ~/.pydistutils.conf:
sudo apt-get install python-setuptools mkdir ~/bin ~/py-lib Add the following near the top of your ~/.bashrc:
export PYTHONPATH=~/py-lib
alias easy_install="easy_install -s ~/bin -d ~/py-lib"
Make sure your ~/.bash_profile contains
PATH=~/bin:"${PATH}"
. ~/.bashrc
Remove ~/.pydistutils.cfg if you created one by following an earlier version of this HOWTO
This is not the recommended method of installation, but it is certainly the simplest one (from my point of view), and appears to work with the sort of simple pure-Python packages that I installed. I guess I'll stick with it until it breaks.
Update: the custom ~/.pydistutils.cfg file breaks virtualenv.
Update 2: Audrius Kažukauskas suggested using an alias instead of the custom ~/.pydistutils.cfg file.
Update 3: I should've mentioned before that you need to apt-get install python-setuptools.
Sat, 18 Aug 2007
A week and a half ago I bought a new laptop: a Lenovo T61 (the 15" widescreen version). It's big and not very pretty (but the large screen is very nice), and was a big pain to install. After several days of fiddling I've got Ubuntu Gutsy running on it quite well, with nearly all hardware working.
Installation: I used Gutsy Tribe 3 Alternate CD (because the desktop CD either wouldn't boot, or would give me a blank screen). I had to finish the installation by touch (by pressing Enter whenever the CD spun down), because in the middle of installing packages, after installing xresprobe, the screen went blank and never came back. I think I could've used the regular CD if I thought to set SATA to Compatibility in the BIOS earlier.
Video (Intel 965GM, 1280x800): worked out of the box (with the 'intel' driver) with all xrandr 1.2 and 3D Compiz goodness. One minor bug, already fixed upstream: GDM and gnome panels were limited to upper-left 1024x768 area because X thought it had a TV connected. I added xrandr --output TV --off into /etc/gdm/Init/Default as a workaround. There are some minor problems (text consoles sometimes work and sometimes show a blank screen; xv doesn't work with XAA; enabling EXA in xorg.conf makes the server segfault; you have to specify a virtual desktop size in xorg.conf if you want to use xrandr to get dual-head modes; compiz on a dual-head screen 1280x800+1280x1024 mode doesn't work well).
Sound (Intel HDA): didn't work out of the box. I was unable to build ALSA from CVS (some error with kernel headers). In the end I used alsa-source from Ubuntu, with three extra patches. Sound now works, but is pretty quiet even at maximum volume, especially when watching movies.
Wireless (Intel 3945ABG): worked out of the box, after I realized I had to enable one cryptically named BIOS setting ("Internal Wireless Radio Frequency"). NetworkManager doesn't work. Sometimes the userspace daemon (/sbin/ipw3945d-kernelversion) dies and I have to restart it manually. This, by the way, is the only non-free driver I have; I haven't tried iwlwifi yet.
Suspend to RAM: worked after I upgraded my kernel to Gutsy's 2.6.22-9.26 (which is not released yet, I built a snapshot from git) and added acpi_sleep=s3_bios to the kernel command line. I've heard that a newer version of the X 'intel' driver will make the acpi_sleep setting unnecessary.
Fingerprint reader: worked once I installed thinkfinger from sources (it's not packaged for Ubuntu yet). It works in GDM and in terminals only; gksu breaks it (and then you have to open a terminal and killall gksu, or you won't be able to use fingerprints any more in this session), and gnome-screensaver doesn't even try to use it.
Bluetooth: works, after I added thinkpad-acpi into /etc/modules (it wasn't loaded by default). The LED doesn't work well: it stays off even if Bluetooth is enabled. Strangely, if I reboot with Bluetooth on, the LED shines until I log in, then turns off. I haven't figured it out yet. By the way, install bluez-gnome if you want to be able to pair your laptop to other Bluetooth devices. I'm surprised that it isn't installed by default.
Screen brightness: the Fn-PgUp/Fn-PgDn keys don't work well (they go into a weird feedback loop and ramp the brigtness all the way to the maximum/minimum). I can adjust the brightness manually with xbacklight.
CD/DVD: works only if you go to the BIOS and set the SATA setting to Compatibility instead of AHCI. I haven't tried burning any CDs/DVDs, but wodim -prcap says it could.
4-in-1 card reader: doesn't work, apparently.
USB: 10-15 minutes after a reboot the kernel gets an unhandled interrupt 21 (or sometimes 23) and disables it. Once that happens, the two USB ports on the right partially stop functioning (you plug in devices and nothing happens, but if you had a mouse plugged in before, it continues to work).
High-pitched noise when on battery power happens when the CPU enters low-power states. echo 2 > /sys/module/processor/parameters/max_cstate gets rid of the annoying noise at the expense of battery life (which, incidentally, appears to be about 2.5-3 hours with the standard 6-cell 53 Wh battery).
The rest: wired Ethernet works (out of the box), keyboard works (naturally), trackpoint works, touchpad works, ThinkLight works, CardBus works. I haven't tried the microphone, the modem, the ExpressCard slot, or Firewire.
Overall I'm pretty happy with my T61. If you plan to buy one, and don't want to spend a week patching kernels and compiling stuff from source, I'd recommend waiting until October, when Ubuntu 7.10 will be released. I expect all the bugs to get ironed out by then. Most of the problems have been reported in Launchpad and/or upstream repositories, but I ran out of steam before I checked all of them. The bugs I know about are listed on this del.icio.us page.
Mon, 23 Apr 2007
Last Saturday I upgraded my laptop from Ubuntu Edgy (6.10) to Feisty (7.04). The upgrade broke down a bit (like every other Ubuntu upgrade before it, but in a different way): I left the update manager running, and when I came back several hours later, it was gone. Apt in a terminal complained about the upgrade being interrupted and prompted me to run dpkg --configure -a. I did that, answered a bunch of questions about which config files I wanted to override, rebooted, and that was it. I'm now running Feisty.
Good things after the upgrade:
Note pinning and bulleted lists in Tomboy I can click on links in the channel topic in xchat-gnome again
Broken things after the upgrade:
bitlbee stopped working ctrl-arrow keys stopped working in vim (and mutt) inside gnome-terminal (which now sends ESC O 1; 5 D where it used to send ESC O 5 D) The laptop still crashes when resuming ever now and then
You are viewing a mobilized version of this site...
View original page here