August 27, 2004

Installing FC2 on a T40 from scratch; Bluetooth, v710, FC2

IBM was scary fast with repairing the broken ATI video in my T40. I called it in on Saturday or Sunday, they shipped an empty box to me on Tuesday, I shipped it back to them on Wednesday. They then received it, fixed it, and shipped it back out all on Thursday, and I had my laptop by Friday (today). They replaced my mainboard, in the process upgrading my video card from a Radeon 7500 to (I think) a Radeon 9000. Very nice. The only thing they didn’t fix is the 3mm scratch on my display, which I don’t really care about most of the time (LCD not under warranty).

So now I’m reinstalling FC2 from scratch. Install went fine, and now that I have a fixed video card graphical boot works fine. First thing I do is disable UTF-8 in /etc/sysconfig/i18n as usual. I also turn off sub-pixel hinting which doesn’t look right on my LCD. To do this, edit /etc/fonts/local.conf to look like mine. You may need to service xfs restart; I did it preemptively, and then I restarted X.

Now copy in my yum.conf pointing to my favorite mirror, as well as my /etc/yum.conf.install which has a whole bunch of repositories, and which I only use (with yum -c /etc/yum.conf.install) for installing/updating packages. yum -y update and all the rest of the usual stuff. No Sawfish by default, so I installed that.

Installed my slmodem package (see an entry or two ago on it) and ipw2100 from ATrpms. Installed tpb from fedora.us (I think).

I was going to use ACPI, which seemed to kind of work (echo 3 > /proc/acpi/sleep tried to do something, but you have to remove the USB modules before it’ll go to sleep; I think acpid can be made to do this). I had heard that, though in S3 (which I think is suspend to ram) it used more battery than suspend under APM, the C3 processor mode greatly increased running time on the battery. ACPI on my T40, however, doesn’t seem to support what’s called “S4bios” by the kernel. This is a variant on the S4 (a.k.a. hibernate, suspend to disk) mode where the BIOS handles suspending to disk. There are two software suspend implementations in the 2.6 kernel called “pmdisk” and “swsusp.” (There’s a third “swsusp2″ which isn’t included in the kernel yet AFAIK). However, both of these are disabled in the FC2 kernel. See the RFE bug for ACPI software suspend in RH Bugzilla, I guess. Due to the lack of these, I boot with acpi=off. APM works fine for my needs. I note that I have done a hibernate/resume several times now and it has worked every time. I should try lid close, which never worked before.

An explanation of my Bluetooth setup. My T40 doesn’t have Bluetooth built in. I just got a Motorola v710 which does have Bluetooth. My provider is Verizon. I went out to CompUSA and bought a store brand USB Bluetooth dongle which turned out to have a CSR chipset that was supported in FC2. My suggestion is to install every package beginning with bluez pretty much, since I don’t know exactly what does what and what’s really needed yet. I suspect bluez-utils, bluez-hcidump, and bluez-pin are particularly important. I also installed the gnome-bluetooth package which doesn’t do all that much, but is still useful. After installing all this stuff, you should be able to service bluetooth start before you connect your Bluetooth USB dongle. (I recommend chkconfig bluetooth on too, since everything seems to work fine with connect/disconnect of the USB dongle, and the service starts fine with the dongle disconnected; i.e., safe to boot with.)

Next I ran gnome-bluetooth-config (I think) as root. I then opened my v710 and hit the “Find Me” under Bluetooth Link->Setup (IIRC). It told me it was discoverable for 60 seconds. I hit the “Scan” (or was it “Search”) button in gnome-bluetooth-config, waited a bit, and it popped up a window asking me for a PIN for my phone. At the same time, my v710 popped up a message asking if I wanted to bond with my laptop. I said yes and the phone then asked for a PIN. I made up a PIN and hit “OK.” Then I typed that same PIN into gnome-bluetooth-config and hit “OK.” Now my phone showed up in gnome-bluetooth-config and my phone said it had successfully paired.

Next I edited /etc/bluetooth/rfcomm.conf and put in something like this at the bottom:

rfcomm0 {
	bind yes;
	device 00:11:22:33:44:55;
	channel 8;
	comment "v710";
}

Note that the channel 8 bit was determined by some command which basically asked for a verbose display of the features of the profiles (?) of the phone and the channels associated with them. Unfortunately, I’ve forgotten this command. I suspect channel 8 is correct for at least Verizon’s v710, but with other phones I think it might well be different. I suspect you can find the command to discover this information from your phone/other device by digging with Google or maybe in Bluez (and specifically rfcomm) documentation.

I think next I did a service bluetooth start but I think a rfcomm bind 0 would work too. Then I was able to fire up Minicom, point it at /dev/ttyUB0, and issue AT commands and the like.

Now, I have this weird unlimited access plan with Verizon that was carried over from Bell Atlantic Mobile when they merged. Verizon hasn’t decided to kick me off this plan yet and I haven’t really been eager to leave it. This plan has the side-effect that sometimes people don’t let me do things other customers can. For example, apparently their systems won’t let me add picture messaging into my account. Also, I apparently can’t get Mobile Web 2.0. One important feature I want for data access is called National Access (maybe there’s not a space in there) by the tech that added it for me at the Verizon corporate store. This feature is sometimes also called NA MOU, 1xRTT, or 1XPP1 (the feature code it is/was supposedly given in Verizon computers). This is the 130kbps service or something like that. You generally need this feature for picture messaging, probably Mobile Web 2.0, and possibly Get It Now (or at least it helps since it makes things faster). Over the phone they said they couldn’t add this feature for me; it isn’t usually something people request, except when they want Internet access at which point Verizon wants you to buy a National Access plan where you pay them more money. I went to the store and complained that my picture messaging wasn’t working (it wasn’t) and the really, really awesome tech added NA to my account for me.

Once I had that on my account, I ran system-network-config to configure a dial-up connection. I set up a modem with the max baud rate on /dev/ttyUB0. Then I set up a new connection. This part is Verizon specific! More specifically, it’s for National Access, the 1xRTT (faster) data service. If you want the old, slower data service, read the next paragraph. I set the phone number to just #777. This is the magic Verizon Internet service number. Set your user name to NNNNNNNNNN@vzw3g.com where NNNNNNNNNN is your mobile phone’s area code and phone number. Set your password to vzw. Previously I had set my modem init string to AT$QCMDR=3, but I have also left this out and everything continued to work. You can accept the defaults on everything else, and voila: you’re done. Just bring the connection up. It should automatically find your phone (assuming it’s in range and Bluetooth is on, all that good stuff), dial out, and get an IP from Verizon. I was seeing anywhere from 600ms to 2000ms latency, which still isn’t super usable. I may have seen as low as 400ms before, which is getting there.

The older, 14.4kbps data access which I called CDPD and Verizon calls Quick Net Connect (QNC, but maybe Quick 2 Net — Q2N — as well; memory… fuzzy…) is still available. I had to use it before I got NA on my account. Instructions are the same as above with the following exceptions: set the baud rate to 19200, user name to qnc, password to qnc, and if you used an init string for NA try changing it to AT$QCMDR=2 for QNC.

Keywords: fedora core 2, bluetooth, v710, fc2, t40, install