Archive for the 'Linux' Category

AJAX and PHP WebMail Clients (and other ramblings about apt-get dist-upgrade)

There was recently an article I saw online (Slashdot or Lifehacker, I can’t remember) about 10 AJAX and PHP webmail clients. The article is here. I check them all out one night and I ended up liking RoundCube the best. Since I started trying out IlohaMail for a webmail client with my IMAP server, which was very plain and not very user-friendly at the time, I figured it would be a good opportunity to give it a try.

I installed it on my laptop, just to test it out, and it worked great. I immediately brought it to my server to set up and start using. There is a good installer built-in to help with any initial configuring, but it’s only really 2 config files and some permission setting, so I just copied it over from my laptop and edited the configs. Unfortunately, I found that it uses a command (mb_check_encoding) that requires a higher version of PHP than what I was running. Since I update every night, I found out that my installation of Ubuntu Dapper was getting pretty old. I figured this would be as good a time as any to upgrade…

I ended up upgrading from Ubuntu Dapper to Ubuntu Hardy, which led to problems with php5-mysqli (it became a part of php5-mysql, but I hadn’t done a complete upgrade yet). After I finally got everything settled, I attempted a reboot to get the new kernel. Of course, this led to more problems with Evms. My /etc/fstab was changed to include those stupid “UUID” entries instead of the actual devices (ie, /dev/hda1). After booting into the old kernel, editing the fstab, and removing evms (I noticed the problem originally because it spit out a kernel message like “dm-linear device lookup failed” every half a second), I was back in business. Plus, as a nice bonus, IVTV is now built in to the kernel, so I don’t have to worry about adding it as a module anymore.

So, to get back to my original topic, RoundCube is a very nice webmail client, which I found out when writing this uses IlohaMail code for handling IMAP. It uses AJAX in a way that makes it easier to use the application, but doesn’t go overboard. It very simply handles your IMAP mail and folders, and has an additional address book. It’s perfect for getting to your e-mail quickly when you’re at someone else’s computer.

Installing Google Gears on Ubuntu 64-bit

As an avid user of Remember the Milk, I recently noticed that my offline support wasn’t installed on my Linux laptop (Ubuntu 8.04, 64-bit). I went to install Google Gears for this, but realized that it was only available for 32-bit at the time. A little bit of Googling and I found this site. This guy put together the .xpi files for a patched version, which I have found to work completely normally.

Just in case it becomes unavailable at that site, here is the latest version I downloaded from there. Note that he says it is current as of February 2, 2009, so it could become outdated pretty soon, but at least it’s here until there is an official version out for 64-bit.

Ubuntu Wireless Manual Setup on Dell D610 with Active Directory Authentication

Setting Up Ursinus Wireless in Ubuntu Dapper on Latitude D610

In order to get the wireless working on the Ursinus Dell Latitude D610 laptops under Ubuntu Dapper, two mains steps are required. First, ndiswrapper must be installed to get the laptop to recognize the wireless card. Second, wpa_supplicant must be installed and configured to allow connection to the Ursinus wireless network.


To install ndiswrapper:

sudo apt-get install ndiswrapper-utils

*It is possible that ndiswrapper is already installed.

Update: I have found that the version of ndiswrapper in the repositories (1.8 as of 3/6/07) does not work properly. The solution has been to install a newer version (1.31 is what I got to work) from the current version of theĀ code. Follow the INSTALL instructions found with the source code. If you encounter problems, an error with “modpost” or something similar, you probably need to install the kernel headers. This should be enough to install them:

sudo apt-get install linux-headers-`uname -r`

Next, we need to make sure that Ubuntu isn’t trying to use a driver of its own:

sudo gedit /etc/modprobe.d/blacklist

Check this file to see if you can find “blacklist bcm43xx”. If you don’t see it, add it to the bottom of that file, save it, then close gedit. Now make sure that the kernel isn’t using any driver currently with:

modprobe -r bcm43xx
modprobe -r ndiswrapper

Now we need to set up ndiswrapper. You’ll need to get the driver files for the card for Windows. You can try to find them in your Windows partition if it’s mounted by `locate bcmwl5.inf`. Otherwise, you can just download it fromĀ Dell. Once you have this downloaded, you can extract the driver with `unzip R115320.EXE`. Now you’ll need to find bcmwl5.inf in the files that were just extracted. Once you find it, this will install it and set ndiswrapper up with it:

ndiswrapper -i bcmwl5.inf
ndiswrapper -m

You can use `ndiswrapper -l` to make sure it installed correctly.

Now restart your computer. When it starts back up do the following:

dmesg | grep ndiswrapper

You should see lines similar to:

[89.36] ndiswrapper version 1.8 loaded (preempt=yes,smp=no)
[189.40] ndiswrapper: driver bcmwl5 (Broadcom,12/22/2004, loaded
[19.46] ndiswrapper: using irq 209
[10.66] wlan0: ndiswrapper ethernet device 00:00:00:00:00:00 using driver
bcmwl5, 14E4:4318.5.conf

If you don’t, try `modprobe ndiswrapper` and then try the dmesg again. If this fixes the problem, you may need to add “ndiswrapper” to the bottom of /etc/modules.
[4363141.967000] bcm43xx: Error: Microcode “bcm43xx_microcode5.fw” not available or load failed. You can check to make sure that the card is working properly with the kernel with:


You should notice an interface possibly named “wlan0,” but it could also be an “eth” interface. Either way, it should be obvious that it is there, primarily from the top line that should be something like:

IEEE 802.11g  ESSID:off/any

If you have this, then you should now be ready to connect to a wireless signal. You can scan to see what is around with:

iwlist scan

If you have a router, or some other security-disabled network around, you can connect to it by doing:

iwconfig wlan0 essid "ssid"
sudo ifup wlan0

You’ll need to replace wlan0 if your interface is different and ssid with the appropriate site ID.


To install wpa_supplicant

sudo apt-get install wpa_supplicant

After this is installed, you’ll need to configure it:

sudo gedit /etc/wpa_supplicant.conf

The setup for UC should be:


Add this to the bottom of that file, substituting username and password for your Ursinus username and password. To make sure that your password is better protected, run:

sudo chmod 700 /etc/wpa_supplicant.conf
sudo chown root:root /etc/wpa_supplicant.conf

This will make sure that only root can read this file.

In order to start wpa_supplicant, run:

wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -D wext -B

Replace “wlan0” as necessary. You can set this up to run at boot by:

sudo gedit /etc/init.d/wpa_supplicant


wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -D wext -B

Then run:

sudo chmod +x /etc/init.d/wpa_supplicant
sudo update-rc.d wpa_supplicant defaults

Now you should be able to connect to the “ursinus” network in the same method as above:

iwconfig wlan0 essid "ursinus"
sudo ifup wlan0


Extra modifications:

Keeping the Interface Names the Same

If the interface name “wlan0”, “eth0”, etc., changes often after rebooting, causing problems with wpa_supplicant, you can change a few things to help make sure it stays the same.

sudo gedit /etc/network/interfaces

Edit this file by removing the interfaces you don’t want the wireless to use if it’s there, and add the following lines using the interface name you want to use:

auto wlan0
iface wlan0 inet dhcp

Also, you can edit /etc/iftab and make sure that the interface name for the wireless is what you want it to be.

Additional Configuring for wpa_supplicant

You can use `man wpa_supplicant` or search Google for more information about configuring wpa_supplicant to suit your needs, but a common one is using WPA-PSK, or WPA security with a passphrase. wpa_supplicant comes with a program to do this work for you. Run the following command to add the settings to the configuration file, replacing ssid and the passphrase:

sudo wpa_passphrase ssid passphrase >> /etc/wpa_supplicant.conf



Tuesday, March 6, 2007

  • Version of ndiswrapper doesn’t seem to work, need to compile from source with newer version
  • The “microcode” error message relates to the bcmwxx module, not a problem when using ndiswrapper. Taken out of howto because the driver is not ready to be used in place of ndiswrapper.
  • There seems to be some error when running wpa_supplicant with the driver specified to be ndiswrapper. If wpa_supplicant gives you problems with ndiswrapper, use wext. If wext gives you problems, try ndiswrapper.