Sunday, January 23, 2011

Adventures with Debian on AMD64

LibreOffice in AMD64 DebianWell, folks, I figured it was time for a computer upgrade, since, I was, until yesterday, still working on a 3.2ghz Celeron CPU with 1.5gm ram that I purchased almost 4 years ago, now, from TigerDirect.com. Frankly, that machine was still doing a great job on 95% of stuff I do. I can't lie. But, being the geek that I am, I felt the need for more speed, and whole lot of putrid green envy over newer, shinier things. So, I went to my favorite source, again, TigerDirect, and ordered a 2.5ghz dual core, AMD64 barebones kit with 4gb of ram.

d00d...I have not been able to ramp up the CPU usage past like 18%, nor use more than about 20% of the ram. I know there are bigger, faster machines out there, but this is clearly plenty of machine for my needs.

Anyway, this machine is an AMD 64 bit CPU. I won't pretend, for even a second, to comprehend what the difference is between 64 bit and 32 bit computer, beyond that 64 is twice 32, and, in some cases, it means I need different software.

So, I got the machine in two boxes, with all these separate parts, a motherboard, a cpu, 2 ram sticks, a hard drive, and I had to put them together. I yanked the video card from my old machine and used it, too, since it has dvi, and this mobo in this kit did not (works best for my monitor). And, then, being completely ignorant, as I am, I installed from the same Debian/Lenny XFCE installation disk that I had used for every other machine in my office. It installed okay, but, for the life of me, I could not get DHCP to work so I could connect to the internet. So I got on #debian at freenode with my old computer (now using an older monitor, and the onboard mobo video) and raised my hand and after several rounds of the real hackers in there massaging me with the Socratic method, it became clear that I had simply installed the wrong system, and that I needed the (duh!) AMD64 version of Lenny. So, I downloaded that ISO file, burnt up a CDROM, and installed it. And that worked nicely, and the DHCP works fine, and I'm actually writing to you from this new machine. I like it. But I had a few other adventures between then and now, and thought I'd share them.

One of the first things we all do is tweak up our browsers and import our bookmarks and all the good stuff. Well, I prefer google chrome, which makes a lot of that really, really easy, since you can synch all that stuff right online, so, of course, I installed google-chrome, which I'm using now, and, surprise, I like it. But, flash was not working...which made me sad. I did a lot of googling around and digging around and trying to figure out why, and, along the way even tried iceweasel (debian for "firefox") and found that flash wasn't working there, either. Eventually I found Adobe Flash Square, the new 64 bit, beta, prerelease, Flash plugin. Now, getting that to work with iceweasel/firefox was simple enough; Simply a matter of downloading the tarball, unpacking that, and copying the libflashplayer.so to /usr/lib/mozilla/plugins. Did that, and I could watch a youtube video in iceweasel, no problem. But there is no plugins directory for google-chrome. More googling about revealed that the browser, supposedly, has Flash support built right in. Sure. But it wasn't working... A bit more googling about and I learned that I could see more information about my plugins in google chrome by pointing my browser to about:plugins, and, so, I did, and I learned that flash was, in fact, not really built into chrome, but that chrome was looking in /usr/lib/swfdec-mozilla/ for nswrapper_32_64.libflashplayer.so, which was, indeed, there, but not working. I learned that this nswrapper nonsense was an older trick, which, apparently, is not compatible with the NEW Flash 10, or something, because, well, I figured that out because it wasn't working...But the Flash Square libflashplayer.so WAS working...So, this is what I did: I removed the nswrapper_32_64.libflashplayer.so, just yanked it right out of /usr/lib/swfdec-mozilla/. Then, I made a link in that directory to the libflashplayer.so in /usr/mozilla/plugins, and renamed it to nswrapper_32_64.libflashplayer.so (since that's what chrome would be looking for), and restarted chrome, and, guess what. IT WORKED!
cd /usr/lib/swfdec-mozilla/
su
********
rm -f nswrapper_32_64.libflashplayer.so
ln -s /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/swfdec-mozilla/
mv libflashplayer.so nswrapper_32_64.libflashplayer.so
That did it.

Now, that's not the only issue I've had. I installed LibreOffice, for which there are 64 bit .deb files. But when I tried to run it, it kept puking and giving up. I looked at the error it was giving. I neglected to write it down, but, it comes down to the fact that it could not find libcairo.so.2. I dug around for that, and found it right in (big surprise) /usr./lib....so, what was the problem? I looked again at the error. For some reason unknown to me or anyone with whom I've communicated, libreoffice was looking for libcairo.so.2 in /opt/libreoffice/basis3.3/program, rather than in /usr/lib, where any normal program would expect to find such a lib. That was easy. I just copied the lib right in there (I don't know, I probably could have symlinked that, too...didn't even try that...).
cp /usr/lib/libcairo.so.2 /opt/libreoffice/basis3.3/program/
And that was that. LibreOffice is now working superbly. Since then, I've realized I could have also either, a) symlinked (ln -s) that library, or just yanked it, so LO would be forced to look in /usr/lib.

There have been a few other tweaks and adjustments along the way, but, at this juncture, I've got a blazing fast system (debian with openbox is light and efficient) on which to work. Good stuff. I feel like a got a great deal from TigerDirect, and, as always the best deal ever with Debian gnu/linux. The guys on #debian at freenode were extremely patient and graciously helpful, and I owe them a great debt of gratitude. Debian ROCKS! both the software and the community.


On a side note, stealing my old machine's video card (Celeron 32.g 1.5mb ram, x86 arch), and the 24 inch 1680x1050 monitor, seemed to have pissed it off, because, with the onboard video and 15 inch 1280x960 monitor (both of which it HAD used before I purchased the big screen) all text in gui windows, menus, panels, etc. was

HUGE

too huge to read, even, where windows were expanded off screen and even alt-click grabbing them and moving them around was useless, and menus were unreadable, and, basically, all graphical elements were rendered useless, regardless of whether I used openbox, lxde, xfce, or wmii...I wrestled with that for hours...running Xorg -configure, dpgk-reconfigure xserver-xorg, xrandr, changing screen resolution, refresh rates...sacrificing chickens, and my best goat...blah blah blah..all to no avail.

Eventually, I figure out that the problem had nothing to do with Xorg, screen resolution, or what type of sacrifice I offered...The culprit was gdm (still don't know why). I figured it, because, if I logged into single user as root and started X without the assistance of gdm, everything was perfect. So that seemed, correctly, to identify gdm as the culprit. Still, I could not figure out how to fix gdm, so, I just yanked gdm right off the machine (aptitude remove gdm). Using startx from the command line kept starting LXDE on that machine, however, which displeased me since, well, I prefer plain old openbox, without LXDE, and, besides, I also have XFCE and WMII on that machine, and would prefer to have a choice when logging in. So, for that, I just had to copy a .xinitrc into my /home. I removed the entry for LXDE (never use it), and added entries for openbox, xfce and wmii. Now, no DM...I log in via the console, then startx, which tosses up a dialog and asks which of the 3 window managers I want to use, and, good to go. It works nicely.


One more really cool thing. I back up my /home regularly onto an external usb hdd (at least monthly, but I did it before building the new machine and stealing the video card from the old one, I do :~# rsync -rvu /home/tony /media/disk/home), so, I was able to simply copy my whole home directory onto the new machines, and, this being the very same system (well, except being amd64 in stead of 32bitIntel, or whatever), all the programs have the same configs, saved passwords, blah blah blah that they had before. That makes moving to a new computer so much easier. Since I run rsync as root, I do have to chown everything (chown -R tony:tony) again after moving it back, but that's no big deal. Except, some program configs from the x86 machine CAN interfere with AMD64 programs (I had to remove the libreoffice configs from the x86 machine).

No comments: