Tuesday, November 6

Configuring Beryl

Beryl in real life!
Warning: Beryl is not completely stable as it is a beta. It is prone to breaking. Do not expect it to work perfectly from these instructions. This guide was also produced using techno wizah's blog as a reference (among many other pages).

Beryl was surprisingly difficult to setup. I mentioned earlier that I would try to compile from source but I just did not have the patience to see if there is a speed difference between the two. However, once Beryl was up and running, I was impressed by all of the neat features and widgets available in the standard GUI. While using Windows, I had purchased Window blinds to make the desktop look a little nicer. Beryl far exceeded what Window blinds could achieve and was also less resource hungry (10% vs. 30% cpu power).

To get Beryl to load, I had to adjust my xorg.conf to allow it to run Xcomposite as well as rgbl visuals (I honestly don't know what an rgbl visual is, but it seemed to be necessary for it to run). First I made a backup copy of my xorg.conf to recover my system once I crashed the graphics drivers (Playing around with options in here will often break xorg so you need a baseline to go back to):

>sudo cp /etc/X11/xorg.conf ~/Desktop

Now that I had a backup, it was time to set this thing up to support some extra video modes. To do this, I had to manually go into the xorg.conf and add the following (Note: Adding these has been verified to work with the nVidia 8600M GT. No other card was tested during this install so YMMV):

>sudo vim /etc/X11/xorg.conf

Under the Section "Devices", I added the following lines:

>Option "XAANoOffscreenPixmaps" "True"
>Option "TripleBuffer" "True"
>Option "AddARGBGLXVisuals" "True"

Under the Section "ServerLayout", I added this:

>Option "AIGLX" "True"

Under the Sections "Module", I added this:

>Load "dbe"

Under the Section "Screen", I added these line (Note: AllowGLXWithComposite will be in here already if you followed the guide for setting up Steam):

>DefaultDepth 24
>Option "AllowGLXWithComposite" "True"

Then at the very bottom, I added this Section:

>Section "Extensions"
> Option "Composite" "Enable"

I saved and quit and restart GDM by using the age old CTRL+ALT+Backspace trick. Now my video should support Beryl when it is installed.

The next thing to do was to actually install Beryl. Again, I decided not to build from source because I have better things to do with my time rather then search for dependencies and wait for each section to compile. If you have that time (or you enjoy doing those things), you can grab the tarballs here. In my case, I opened up my repository sources:

>sudo vim /etc/apt/sources.list

Then added the following (Note: The sources are for Debian Etch, not Lenny or sid. This could potentially cause some conflicts but I have not seen any since I just installed it):

>deb http://debian.beryl-project.org/ etch main
>deb-src http://debian.beryl-project.org/ etch main

I added it to the trusted repository list by entering the following:

>wget http://debian.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add -

Then I updated them:

>sudo apt-get update

Then I grabbed beryl and some themes:

>sudo apt-get install beryl emerald-themes

This should get Beryl and all of it's dependencies from the repository. Now I launched Beryl:


That did it. I adjusted the settings in GDM by going into Applications>System Tools>Beryl Manager or Beryl Settings Manager.

Installing Beryl with the binary nVidia drivers proved to be a pain in the ass. While this tutorial may seem simple and trivial, it took a lot of research to find out how to add the extension to the xorg.conf. When I didn't add it, Beryl failed to load citing Xcomposite could not be found. If you are still having trouble setting up Beryl, there are a variety of tutorials available from the Ubuntu people. If you are looking for other xorg.conf hacks or a more in depth tutorial, check out techno wizah's post about setting up Beryl. Not all of it is necessary, but he explains what is going on far more in depth then I went.

Sunday, November 4

Upcoming guide (11/5 - 11/12)

Surfs up DUDE!
Another week gone by, another Michigan State Spartan loss. As an avid Detroit sports fan, I am proud to say all of the current sports teams are doing well (except for the Spartans). The Lions are 5-2 going into today, the Red Wings are 11-2, and the Tigers just picked up Renteria at shortstop! Because of the fine play (and off season pickups) of the sports teams, this next week should get into some of the finer software available on Linux.
  • Beryl - Beryl is a Windows-aero esque application for viewing desktop items in 3D. You can do all of your favorite things such as spinning around through Windows to cool drag and drop effects. I am going to compile from source and grab a Debian package and see if there is a difference in speed.
  • Civilization 4 - I have read that the early versions of this game do not run on Wine while the newer patched versions do. I'm going to take a stab at both and see what I can come up with. If you can't wait, you can always visit the Wine App Database and try for yourself.
  • Ad Hoc Networking - This week I will also attempt to take a stab at doing some ad hoc networking between two laptops. Because this can be intensive and problematic to setup, the final tutorial may end up carrying over to next week.

Ripping and Burning DVD movies under Linux

Arrrr….Video pirates spotted captain!

Foreword: This guide has been created by using this guide as a reference. You may want to do the same if you have trouble setting up the software.

DVD Decrypter and DVD Shrink are incredible ripping and burning programs. Not only are they user friendly, but they are extremely powerful. Their ability to rip and encode huge video segments in a reasonable amount of time is unparalleled. Unfortunately, DVD Decrypter and DVD Shrink have since been discontinued due to litigation (and superseded by ImgBurn). While ImgBurn is an updated application of DVD Decrypter, this guide will not go into it's installation procedure as it is most likely identical to this one. That being said, lets burn some movies!

Note: It is unlawful to copy DVDs without expressed written consent from the owner. Make sure you have this permission before you attempt anything in this guide.

First I had to check if the DVD drive is DMA enabled (for DVD Decrypter). So I commanded:

>hdparm /dev/cdrom (or whatever your cdrom device is named)

It should say 'using_dma = 1 (on)' as mine did. If it doesn't, you need to edit the hdparm configuration file to manually turn it on:

sudo vim /etc/hdparm.conf

Where it says /dev/cdrom (or whatever your cdrom is named), change dma = off to dma = on. Now save it and reboot. After rebooting, retry the steps above to verify that DMA is enabled.

I have written several guides on using Wine for games so I had it setup the way I wanted. If you don't have Wine, grab it:

>sudo apt-get install wine

Now I had to grab DVD Decrypter. After a quick google search I saw that mrbass had a link hosted. So I downloaded it:


After downloading it, I navigated to my download directory and ran Wine to install it:

>wine SetupDVDDecrypter_3.5.4.0.exe

I went through the steps and finished the install. In order to get DVD Decrypter to recognize the disk drive, I had to set it to use Windows NT in the winecfg:


Then I clicked "Add an Application" in the Applications tab. I navigated to ~/.wine/drive_c/Program Files/DVD Decrypter/ and selected 'DVDDecrypter.exe'. Once it was added to the applications list, I clicked on it then changed it's Windows Version (the drop down bar at the bottom) to 'Windows NT 4.0'. I clicked OK and that did it. Now I had to install DVD Shrink to compress that video and reauthor it for replication.

Note: If DVD Decrypter did not detect your DVD drive right away, make sure that you are using STPI. To do this, go to (in DVD Decrypter) Tools>Settings>I/O and Click 'STPI - Microsoft'. STPI is the only known interface to work with Linux.

To begin the install of DVD Shrink, I had to download a copy. Mrbass is hosting the software here:


So I unzipped and installed the file:

>unzip dvdshrink32setup.zip

>wine dvdshrink32setup.exe

I went through the install steps and that was it! Now I had a DVD ripping and encoding combo to backup all of my movies.

Note: The newer versions of Wine includes all of the DLL's that DVD Shrink was missing. If you get some error that you are missing these files, you can download them here. To install them, copy the files into the system32 directory of wine:

>cp foo.dll ~/.wine/drive_c/windows/system32/

For a guide to using DVD Decrypter, go here.

For a guide to using DVD Shrink, go here.

Setting up Battlefield 2

No, this is not a screen capture from me.

Note: Adjusting the winecfg settings will alter your game play with other games through Wine. Please be aware of the changed settings so you can revert back to normal when attempting to play other games. This guide was compiled using Wine version 0.9.44.

I typically wouldn't post a guide to installing a game that doesn't completely work, but this has been a sort of 'side-project' for me and I believe the information can be useful to others.

Battlefield 2 does run on Linux. However, there are some texture, resolution, and other miscellaneous issues that have proven a bit more difficult to tackle than they were for Steam. My current configuration runs the game in single player at nearly maximum video settings in 800x600 windowed resolution. The textures show some jaggies, but the problem from Off Screen Rendering has been solved (no fps slowdown on goz when enabled). There are several other things that need to be tested (online multiplayer, patching, etc), but I have not gotten around to it. Knowing this, here's a guide to get to the point where I am:

To start the install, I inserted my original Battlefield 2 disk into my cd drive. The disk was automatically detected but didn't run the autoplay.exe. I double clicked on it and the game began to install. When I was prompted to insert another disk, I clicked on an open terminal and typed in:

>wine eject

This ejects the CD via Wine so the installer knows the disk has been removed. I used this method to finish installing the rest of the disks. At the end of the install, the session actually froze up. I ended up using ps aux to find and kill the installation. The game had already been installed so killing it did not make a difference.

Next I grabbed some Windows libraries for Direct 3d. The drivers I need were d3dx9_24.dll and d3dx9_25.dll. After a quick google search, I downloaded them from here and here. I navigated to my download directory and promptly unzipped and moved the files to the correct directory for Wine:

>unzip d3dx9_24.zip

>unzip d3dx9_25.zip

>mv d3dx9_24.dll d3dx9_25.dll ~/.wine/drive_c/windows/system32

Now the game would load, but I ran into several problems. The game would only load if I opened it with a Virtual Desktop in Wine. Also, the in game graphics would reflect the sky on the ground. This gave me a very disorienting experience and made it pretty difficult to play. To address some of these problems, I looked over the wine app database . Eventually I found that there is a quick fix for the sky problem. In a nutshell, Battlefield 2 uses both on screen and off screen rendering modes that are incapable of being emulated by Wine. To overcome this,I had to tell Wine to do both at the same time (At least this is my understanding of the problem). To do this, I had to edit the registry:


Then I navigated to HKEY_CurrentUser>Software>Wine>Direct3D. Now I had to add a new string to enable Off screen rendering. I right clicked New>String and entered:


To set the value, I right clicked on OffscreenRenderingMode and clicked Modify. For Value Data, I put in:


I clicked OK and exited the registry editor. Next I had to tell Wine that I wanted it to emulate a Virtual Desktop. I went pulled up a terminal and went to my wine config:


Next I selected the tab Graphics and clicked on "Emulate a virtual desktop". I have tried many different resolutions, but what seems to work the best (because of cropping from toolbar at the top and bottom of GNOME) was 800x600. This is probably something you will need to play around with to get your settings to work properly. I clicked OK and closed the configuration.

After running the game for a bit it was very apparent that there is an issue with the mouse. Now it was a problem at first but , after looking at the solution to the problem, I decided I could just live with it for now.

The graphical issues in Battlefield 2 were somewhat similar to setting up Steam. The game would not let me change any of the video settings in game so I had to manually change them in the configuration:

>cd ~/Battlefield\ 2/Profiles

I had already setup my user name and password so I went changed to the settings for my username (If you have not setup your user name, you will have to change the video settings in the Default directory):

>cd 0001

Now I had to change the video settings so the graphics would look more like they should from an nVidia 8600GT:

>vim Video.con

I changed every "quality" setting to 3. I also changed the resolution to 800x600 to reflect my resolution in virtual desktop.

Now I had all the settings adjusted to where they seemed to work best. I created a new Launcher on my Desktop. For the launch command, I used:

>env WINEPREFIX="/home/foo/.wine" wine "C:\Program Files\EA GAMES\Battlefield 2\BF2.exe" +menu 1 +restart +fullscreen 1 +szx 800 +szy 600

Where 'foo' is the name of the directory I used for Wine (In most cases, this is your login name). The setting +restart skips the long intro and goes directly to the game while +fullscreen 1 sets the game to be opened in full screen mode. The option +menu 1 seems to be a necessary launch option even though it doesn't seem to do anything useful for the game.

This is as far as I went in playing around with settings. There are tons of resources on glitches here as well as the graphics problem. If you happen to come up with an alternative to this setup that works better or corrects errors, please post them. I will update this as the game configuration becomes cleaner/more efficient.

Upcoming guides (10/29 - 11/4)

Regional jets be damned! I want an Airplane! that is tied in a knot.

Howdy folks! I've been working on some guides I believe you will all find (somewhat) useful. Right now they're about half done and should be up sometime next week. I just flew out to Tennessee to celebrate the wedding of my step brother (Congrats Jeremy) while frantically trying to get some work done. I have been studying for a Calc III exam on exciting phenomena such as Lagrange multipliers and the second partials tests () while dealing with airports and delayed flights. Any who, here's what I've been working on:

  • Setting up Battlefield 2 via Wine - The game works, but it has some major bugs. I thought I would post it as a project for some of the readers and I to work on.
  • DVD ripping/burning with DVD Shrink and DVD Decryptor - This is just a variation of the tutorial posted by mrbass.org (or just click here if you can't wait). It will cover what specifically needs to be done on the Vostro to get it to work correctly.

That's it for now. If you have any software tutorial requests (within reason), I would be happy to work on it and post a guide up here. Until next time, I bid thee adieu!

Embedded Video in Iceweasel

Quicktime. No frills here folks.

One of the most difficult problems I ran into while configuring 'goz' was getting embedded video to work correctly in Iceweasel. There are a variety of plugins for a variety of media players that are suppose to natively run video in a browser. For me, none worked. I tried installing mozplugger, then mozilla-mplayer, then xine-plugin, then removing them all, then installing totem-mozilla, etc. This cycle of useless plugins (the xine player actually showed video but promptly crashed Iceweasel as it began to play) was mind numbing at best.

However, after many hours of reading and searching, I figured out what was bugging Iceweasel. There are several conflicts that seem to arise with plugins from totem or xine that are natively installed with Debian. The trick is to boot them all out and leave room for the most stable of them all; mozilla-mplayer. To check for plugins already available in Iceweasel, I opened a new tab and entered the url:


This revealed a list of all plugins that are available to Iceweasel. There were many different plugins available in my plugins directory. I decided the easiest thing to try would be to remove all of the media plugins (For Real Player, MPG, WMV, etc.) and to just leave the essentials (such as Flash and Shockwave). To do this, I opened a shell and navigated to my plugins directory:

>cd /usr/lib/iceweasel/plugins

Then I used the 'ls' command to view all of the files. Taking note of the important files from the 'about:plugins' url in Iceweasel, I deleted all of the video plugins that I did not want. In my case, I had a bunch of totem plugins that I did not want so I removed them:

>sudo rm totem*

Now all I had left was libflashplayer.so (for flash) and libunixprintplugin.so (for my printer). Now I wanted to make a clean install of mplayer and mozilla-mplayer. I made sure I did not have any extraneous files hanging around:

>sudo apt-get remove mplayer mozilla-mplayer

Next I added the following repositories to my /etc/apt/sources.list:

# mplayer
deb http://www.debian-multimedia.org sarge main
deb http://www.debian-multimedia.org etch main
deb http://www.debian-multimedia.org sid main
deb http://www.debian-multimedia.org experimental main

Then I updated my repository lists:

>sudo apt-get update

I grabbed Windows codecs so I could play embedded wmv:

>sudo apt-get install w32codecs

I installed the mozplugger to tell Iceweasel what to do with embedded video:

>sudo apt-get install mozplugger

And then I reinstalled mplayer and mozilla-mplayer :

>sudo apt-get install mplayer mozilla-mplayer

After going through it's install sequence, I reopened Iceweasel and went to the trailer section of Apple's website to test out the embedded video (http://www.apple.com/trailers). The video played fine, but there was no sound. I right clicked on the video and went to "Configure". I changed my default video settings to "gl" and my sound settings to "alsa". I closed and reopened Iceweasel and I had streaming video and sound for the first time.

One of the problems with using Linux is that it does not support embedded video from proprietary codecs very well (WMV for example). I really enjoy watching free streaming video on websites such as http://www.channelsurfing.net. Unfortunately, they only run embedded video with WMV10 (which is not supported by Linux to my knowledge). I am still haphazardly looking for a work-around, but I have yet to find any that play embedded in Iceweasel.

If you still have problems running embedded video, you may want to try this Firefox (Iceweasel as well) plugin. What it does is dump any embedded video to play in a media player of your choice (mplayer, vlc, totem, etc). It works very well at what it does and can be used as a supplement if you are having trouble and need embedded video. If you are still having problems, try searching google. There are many tutorials that have in depth explanations for installations for media players other than mplayer.

Wireless Printing with Samba

Ancient printer (Possibly from Cretaceous Period)

Note: This guide assumes that you have setup a printer to work correctly on Windows XP and are running a wireless LAN.

In the past I have had some issues with print drivers with Debian. It's no secret that Linux print drivers are far inferior to their Windows counterparts (It's not their fault print drivers are typically released for Windows and not Linux). When I began to look into setting up a networked wireless printer, I was prepared for a disaster. Jumping from one OS to another with incompatible drivers is all too familiar. To my delight however, the setup for a networked printing almost went without a hitch!

The first thing I had to do here was demand my printer to share it's printing services to other computers on the network. I navigated to Control Panel>Printers and Faxes>View Installed Printers. Now I right clicked on my printer (An Epson Stylus CX4800. I know you're jealous) and selected "Properties". Clicking the "Sharing" tab revealed the network sharing option I had been looking for. I selected "Share this printer" and named it "epson_cx4800" (You can name your printer whatever you like. I had my Epson Stylus CX4800 so I named it accordingly). After clicking OK, I demand Windows XP to share it's printing services with computers on my network.

Again, I went into Control Panel but this time selected Network and Internet Connections>Setup or Change your home or small office network. I hit next the first few steps until I was prompted for a connection method. Here I selected the option that my computer connected to the internet through a gateway and proceeded. This next step asked me the name I wanted to call my computer and it's description. Since this was, for all intentional purposes, my main desktop computer, I decided to call it "MAIN". The description does not matter, but I called it "OFFICE" anyways. For the name of my network (or Workgroup name), I left it as a default "MSHOME" (The name of your network doesn't matter as long as you remember what it is). The step afterwards was what I was looking for. Windows asked if I wanted to turn on file and printer sharing. I selected to turn it on and finished the rest of the setup.

Now on goz (my vostro 1500), I navigated to System>Administration>Printing to check out the state of the network. When I selected Windows Printer (SMB), I received a nice prompt asking me for a password to connect to the Workgroup I had setup a minute ago in Windows. It suggested that I put in a password, but I left the options blank and hit connect. For hosts, I hit the down arrow and was pleased to find "MAIN" was in there as well as my laptop "GOZ". Unfortunately, when I hit the down arrow for printer, nothing showed up. I figured that since the network seemed to be talking to both computers, I might as well try to input my printer's name. So I casually typed in "epson_cx4800" expecting the whole application crash. When it didn't, I gladly selected my printer from the vast list of supported drivers (If you are looking for an obscure driver that is not supported, try looking here for a supporting driver). I clicked apply and....nothing happened. Nothing bad I suppose, but nothing good either.

Then, it hit me. I probably didn't install Samba in the first place. After a breif facepalm, I grabbed it from the repository:

>sudo apt-get install samba

I also grabbed a few utilities as well to diagnose the problem from a terminal:

>sudo apt-get install smbclient smbfs

After they installed, I was prompted to give the Workgroup name of my network. I type in "MSHOME" and clicked "No" for the next step (DHCP for WINS wasn't necessary for my network). Next, I ran smbclient to list the shared devices on "MAIN", my desktop:

>sudo smbclient -L MAIN

It took a minute, but eventually spat out what I wanted to see:

>Domain=[MAIN] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
> Sharename Type Comment
> --------- ---- -------
> epson_cx4800 Printer EPSON Stylus CX4800 Series

Cool. So I tried to add a printer again. I went through the exact same steps as before, added my printer driver, clicked apply and it worked! A printer appeared and said it was ready to print. I sent a test print through and everything seemed to work smoothly.

While this install went smoothly, I am sure not everyone will have it as easy as I did. I have read that some HP printers aren't even supported for wireless networked printing! I can try to address some common issues, though. If smbclient has trouble finding your shared devices, make sure they are correctly setup through Windows and aren't being blocked by a personal firewall. If you do have a firewall, check through the preferences to enable shared networking. There are far too many possible issues that can arise from this kind of install so I suggest trying my method first (since it is a quite simple approach) and diagnosing problems/errors that arise from it by posting here or by searching google for help.

Setting up Steam (HL2/CS:S/DOD:S) under Linux

Day of Defeat Source in game shot

Installing Steam can be a pain in the ass (Mainly because it was built for Windows and running games via Wine are never perfect). However, once the game is setup it does work pretty well. In order to install Steam, the first thing I grabbed from the repositories was Wine (You may need to add the wine repository to your sources.list. Goto www.winehq.org to check it out). I commanded:

>sudo apt-get install wine

Now I had to set some options in Wine so that Steam would run. To get to this configuration, I typed:


Immediately I changed the default settings to Windows 2000 (I have tried both XP and 98. XP tends to be slow while 98 wont allow steam to work because Valve dropped support for anything less than Windows 2k). I also went into the Graphics section and checked the box "Allow Pixel Shader" (Without a Pixel Shader, changing any of the advanced video settings in Steam will make it crash). Next I needed to fix my binary nVidia drivers so I could use steam (I ran into issues where steam could not download games citing: glx driver not found). To do this, I figured the easiest way would be to grab nvidia-xconfig from the repository to rebuild my xorg.conf. So to rebuild it I ran:

>sudo apt-get install nvidia-xconfig

>sudo nvidia-xconfig --allow-glx-with-composite

By adding the --allow-glx-with-composite, the video driver allows glx to work with Steam. Unfortunately, after doing this I ran into some resolution issues. I fixed them by running nvidia-settings as a sudoer and writing the configuration with the resolution I wanted to the newly configured xorg.conf. To do this I commanded:

>sudo nvidia-settings

First I selected “X server display configuration”. Next, I changed the resolution to “1280x800”, hit Apply and selected “Save to X configuration file”. Now I have a fixed xorg.conf file that supports glx with Steam and keeps my crispy 1280x800 resolution.

For the actual installation of steam, I went to http://www.steampowered.com and downloaded Steam. While I would love to give an in depth analysis of my exact steps after this, this page here does it far better than I ever could.

Some suggestions I have are running the installation as a normal user and NOT as a sudo user. I ran into some permission problems when I installed Steam as a sudoer. Also, when I was using launch options, Steam kept erroring when I used “-width 1280 -height 800”. After some research, I found that using “-w 1280 -h 800” works just fine as an alternative. I personally disabled the intro video to Steam with "-novid" because it ran extremely slow. Even though the nVidia 8600M GT is DirectX 10 capable, I had to use DirectX 8.1 (Using DirectX 9.0 would not work and it would default to DirectX 7.0). To enable DirectX 8.1, I used the launch option "-dxlevel 81". Finally, I tried to play around with the options "-gl" and "-d3d" (For OpenGL and Direct3D, respectively). There seemed to be an increased frame rate with OpenGL while playing DOD:S, but a decreased frame rate while playing CS:S. I'm not quite sure why...

Setting up internal HDA (High Def Audio)

Big speaker sound from little laptop speakers

In Windows, the computer had surprisingly good sound. Maybe I was just use to the speakers of my previous laptop (Dell Inspiron 300m), but these speakers really kicked ass. Thankfully, they weren't that difficult to setup under Linux. After the initial install, I had some issues with sound (It could have been me playing around with the mixers or the lack of alsa sound drivers). I fixed the sound by installing an alsa driver. First I needed to grab the driver:

>wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.9b.tar.bz2

Next I had to extract the drivers:

> tar xvf alsa-driver-1.0.9b.tar.bz2

Change to the directory:

> cd alsa-driver-1.0.9b

Now I configured and installed the module:

> sudo ./configure

> sudo make

> sudo make install

I rebooted and everything worked great.

Note: The mixer is muted by default so you will need to play around with the control to get it to output sound.

Setting up Bluetooth

Bluetooth logo

Note: Bluetooth had issues with Kernel 2.6.18. With Kernel 2.6.22, the issues went away. For Kernels above 2.6.18, use this to troubleshoot if you are having similar issues. Otherwise, disregard this as Bluetooth should work out of the box.

The Bluetooth on this machine is finicky. To start, I downloaded gnome-bluetooth and its dependencies from the repository.

>sudo apt-get install gnome-bluetooth

In an anticlimatic frustration, the Bluetooth just didn't work. After scouring around google again, I found that I had to edit the configuration file to enable hidd. To do this I commanded:

> sudo vim /etc/default/bluetooth

Now I changed HIDD_ENABLED = 0 to HIDD_ENABLED = 1

To confirm that Bluetooth can see other items, I tried:

>hidd –search

This auto connects to Bluetooth devices without a prompt. While that is handy, I wanted the ability to scan for devices, aswell. So I tried:

>hcitool scan

I worked! Now to connect to discovered items I tried:

>hidd –connect XX:XX:XX:XX:XX:XX

Where XX:XX:XX:XX:XX:XX is the Bluetooth hardware address of discovered device.

It didn't seem to work perfectly and I had some problems where I had to turn off the Bluetooth interface (hci0) and restart Bluetooth in order to get it to recognize my Bluetooth mouse. To do this, I commanded:

>sudo hciconfig hci0 down

>sudo hciconfig hci0 up

>sudo /etc/init.d/bluetooth restart

After that it seems to work fine.

Setting up bcm43xx (Dell Wireless 1390)

Internal Wireless Card

Warning: It is a well known bug that binary nVidia drivers (the ones I installed earlier) and ndiswrapper have conflicts. In this case, using both drivers creates an IRQ 177 error that freezes the computer when using the wireless card. Fortunately, kernels over 2.6.20 r3 should resolve this issue because it supports the BCM4311 card natively (Dell Wireless 1390).

Wireless natively

Call me picky, but I wanted to use both my wireless card AND my video drivers at the same time. To do this, I had to upgrade my kernel above 2.6.20 r3 (as stated above, the module is natively supported in kernels above 2.6.20 r3). While the driver may work, the default firmware does not. After upgrading my kernel I could detect wireless signals and turn the interface on and off but I could not connect to any access points ( I have tried using bcm43xx-fwcutter to create firmware from the windows driver). Researching a bit, I found that all I needed was some hacked, working firmware. Thankfully, the blogger at linux-geek came up with some hacked firmware that works pretty good. For the in depth tutorial and troubleshooting, go here:

In short, I downloaded his .deb package with the firmware and copied the firmware into the correct directory (It's not perfect, but it works). Here's how:

>wget http://ubuntu.cafuego.net/pool/feisty-cafuego/bcm43xx/

> sudo dpkg -i bcm43xx-firmware_1.3-1ubuntu2_all.deb

Now when I installed the package I ran into this error:

Unpacking replacement bcm43xx-firmware …
Setting up bcm43xx-firmware (1.3-1ubuntu2) …
Note that you need to DISABLE ndiswrapper and wifi-radar for this driver
to work properly! You can do this by removing the ndiswrapper driver.
Use `sudo ndiswrapper -l’ to identify the driver.
Then run `sudo ndiswrapper -e ‘ to remove it. You may also need
to remove the file /etc/modprobe.d/ndiswrapper

The error message is prompted because of a scripting error according to the author. The author said it should extract the firmware regardless of the error. To check if I had firmware, do commanded:

>ls -l /lib/firmware

Immediately it spat this out:

> -rw-r--r-- 1 root root 3504 2006-10-28 21:14 bcm43xx_initval01.fw

> -rw-r--r-- 1 root root 16 2006-10-28 21:14 bcm43xx_initval02.fw

> -rw-r--r-- 1 root root 3504 2006-10-28 21:14 bcm43xx_initval03.fw

> -rw-r--r-- 1 root root 16 2006-10-28 21:14 bcm43xx_initval04.fw

> -rw-r--r-- 1 root root 2536 2006-10-28 21:14 bcm43xx_initval05.fw

> -rw-r--r-- 1 root root 248 2006-10-28 21:14 bcm43xx_initval06.fw

> -rw-r--r-- 1 root root 2536 2006-10-28 21:14 bcm43xx_initval07.fw

> -rw-r--r-- 1 root root 2536 2006-10-28 21:14 bcm43xx_initval08.fw

> -rw-r--r-- 1 root root 248 2006-10-28 21:14 bcm43xx_initval09.fw

> -rw-r--r-- 1 root root 248 2006-10-28 21:14 bcm43xx_initval10.fw

> -rw-r--r-- 1 root root 2872 2007-10-18 20:43 bcm43xx_initval17.fw

> -rw-r--r-- 1 root root 248 2007-10-18 20:43 bcm43xx_initval18.fw

> -rw-r--r-- 1 root root 248 2007-10-18 20:43 bcm43xx_initval19.fw

> -rw-r--r-- 1 root root 2816 2007-10-18 20:43 bcm43xx_initval20.fw

> -rw-r--r-- 1 root root 248 2007-10-18 20:43 bcm43xx_initval21.fw

> -rw-r--r-- 1 root root 2824 2007-10-18 20:43 bcm43xx_initval22.fw

> -rw-r--r-- 1 root root 248 2007-10-18 20:43 bcm43xx_initval23.fw

> -rw-r--r-- 1 root root 2824 2007-10-18 20:43 bcm43xx_initval24.fw

> -rw-r--r-- 1 root root 248 2007-10-18 20:43 bcm43xx_initval25.fw

> -rw-r--r-- 1 root root 27360 2007-10-18 20:43 bcm43xx_microcode11.fw

> -rw-r--r-- 1 root root 26432 2007-10-18 20:43 bcm43xx_microcode13.fw

> -rw-r--r-- 1 root root 16200 2006-10-28 21:14 bcm43xx_microcode2.fw

> -rw-r--r-- 1 root root 19952 2006-10-28 21:14 bcm43xx_microcode4.fw

> -rw-r--r-- 1 root root 22496 2006-10-28 21:14 bcm43xx_microcode5.fw

> -rw-r--r-- 1 root root 1312 2006-10-28 21:14 bcm43xx_pcm4.fw

> -rw-r--r-- 1 root root 1312 2006-10-28 21:14 bcm43xx_pcm5.fw

Great. So I had the hacked firmware, but it's in the wrong directory. Now I simply copied it into the correct one. So:

> sudo mkdir /lib/hotplug/firmware

> sudo cp /lib/firmware/*.fw /lib/hotplug/firmware

That's it! Now I rebooted my computer.

Note: You may notice that the wireless is still detected but will not connect. You may need to manually remove then add the bcm43xx module to modprobe for it to connect. To do this:

> sudo rmmod bcm43xx

> sudo modprobe bcm43xx

Now try to connect. If it doesn't work, you may want to take a look back on that website I gave to troubleshoot. If this isn't your idea of fun, you can try the ndiswrapper method. It takes far less effort to setup and it seems to run faster.

Wireless with ndiswrapper

Installing the drivers is relatively painless with ndiswrapper. There is a comprehensive guide to how install ndiswrapper along with how to install the drivers here: Follow all of the steps and the wireless card should be assigned the interface 'wlan0'.

Setting up video drivers (nVidia 8600M GT)

nVidia Logo

Update 2/25/08: Udi has again brought to my attention that there is a fix to force the nVidia 169.09 to work with the 8600GT. An entire thread has been dedicated to the topic here. I have not personally tested this method, but when I do I will write a new post on how to update to the newest driver.

Update: It has been brought to my attention by Udi that the nVidia 169.09 linux driver has trouble displaying images on Dell laptops. Make sure that you use the older, more stable 100.14.19 driver.

One of the first problems I ran into after the initial install was the video. I hadn't installed xserver yet so I grabbed it from the debian repositories (note: Make sure you disable your cd repositories if you used a net install cd):

> sudo apt-get install xserver-xorg

For a temporary fix to get the video running immediately (I wanted to check other issues such as bluetooth and wifi), I configured the driver to use 'vesa' (note: You do not need to use the 'vesa' drivers. You can install the kernel headers from bash and wget the binary nVidia drivers. Again, I did this because I wanted to test other things on the system before I started messing around with video drivers). While vesa is great because of its compatibility, it offers no hardware acceleration. Now I had to reconfigure the xorg.conf with the settings I wanted:

>dpkg-reconfigure xserver-xorg

To change to vesa, I switched my driver from 'nv' to 'vesa'. All of the other options work on default. To get gnome to restart, I commanded:

> sudo/etc/init.d/gdm restart

Vesa works (at 1024x768), but again, it does not provide any sort of graphics acceleration or crisp visuals I would expect from a high end video there. After fiddling around with GUI, I decided the binary nVidia drivers were probably the best way to go (You can download it here). The only other dependency I needed to get my nVidia drivers working were the kernel headers. To check my kernel version, I typed:

> uname -a

It then spat out:

> Linux goz 2.6.22-2-686 #1 SMP Wed Oct 3 00:12:50 UTC 2007 i686 GNU/Linux

Now I had to grab the kernel headers for my kernel from the repositories. I prompty entered:

> sudo apt-get install linux-headers-2.6.22-2-686

Now I navigated to folder that nVidia drivers are in and typed:

> sh NVIDIA-Linux-x86-100.14.19-pkg1.run

After promising I would not sue them for destroying my computer with their drivers, the drivers compiled against my kernel. Now I needed to reconfigure the xorg.conf to work with the nVidia drivers. I went back to a clean shell with ctrl+alt+f1, logged in and typed:

> sudo dpkg-reconfigure xserver-xorg

Now with working nVidia drivers, I changed the 'vesa' driver to 'nvidia' . I made sure all options were on default and when I was prompted for screen resolutions, I checked '1200x800'. Finally, I restarted gdm:

> sudo /etc/init.d/gdm restart

The nice nVidia logo popped up (It is possible to turn this off from nvidia-settings) and I was off to use gnome with hardware accelerated 1280x800 resolution.


Dell Vostro 1500

This blog addresses several issues that arise from installing Debian Linux (sid) on the Dell Vostro 1500. The Dell Vostro is a new widescreen laptop that is targeted towards small business/students that are looking for a sleek design matched with a powerful mix of peripherals, an impressive graphics card and a dual core processor. Here are the specs of my machine:

  • Wifi: Dell Wireless 1390 WLAN Mini-PCI Card - Works with light-moderate modification

  • NIC: Broadcom BCM4401-B0 - Works out the box

  • Sound: Intel 82801H – Works with light modification

  • CD-R/DVD-R - Works (including cd/dvd burning)

  • Video: 256MB nVidia 8600M GT – Works with light modification

  • Integrated Mic: Intel Audio Device 82801H - Does not work

  • Ram: 2GB DDR

  • CPU: T7100 Core 2 Duo (1.8Ghz)

  • Disk Drive: 120 GB SATA