installs
I guess I should have known better
Really, I should have known better than to buy myself a rather 'bleeding-edge' laptop. I suppose I've been lucky with my last couple of laptops and was thinking that pretty much everything works on Linux. Or maybe I'm being picky, because in fact pretty much everything does work on my new Dell Studio.
I bought this laptop mainly because it has a 1920x1080 screen, without being a 17" monster. I had such a monster about four laptops ago (an enormous Sony Vaio weighing in at around 5kg and with a 1hr battery life) and it was an disaster: lots of weird proprietary stuff that never worked, like the external speakers in the docking station. But I loved that screen right up until the day Fraser threw a pair of scissors into it.
With the advent of mass-market 1920x1080 screens I've been waiting for them to arrive in laptops at a reasonable price, and the availability of this screen in a few possible laptops seemed to me to be that point.
It's a Dell Studio 15, and as well as the nice screen, it comes with a new Intel i7 Quad Core CPU, 6G RAM, 640G hard drive and a Blu-ray drive. While there are a few similar models around this one seemed to have the best mix of features-for-weight-and-price, so I bought my first Dell.
I built a USB key with the latest Debian Installer from Squeeze and installed that and everything came up pretty well. I had to use the broadcom-sta driver for the wireless, since the BCM 43224 is not (yet) supported by the free b43 driver (though from looking the mailing list people seem to be working on it, and it looks like it might not be too far away).
Everything seemed good. X came up on the (georgeous) screen. I don't care too much about 3D performance, but it was nice to note that the ATI 5000 series is expected to have full support as soon as it's integrated into the right places - it seems the code is written, and public, it just isn't incorporated into the 'radeon' driver quite yet. The fact that ATI is nowadays a free-software friendly company was one of the reasons for choosing this, in preference to an NVidia-based laptop.
But it seems that it isn't all roses. The fan in the laptop seems permanently on, and not on, in a quiet-just-barely-audible way, but ON, in an 'IN UR LAPTOPZ KOOLIN UR P0RCESSAZ' kind of a way. Too damn noisy for me to concentrate in a quiet room.
I've investigated what's going on, and it seems likely there are some ACPI misunderstandings happening. Some googling and some pecking around in /sys makes me wonder if the laptop expects some kind of configuration choice between favouring Active cooling and Passive cooling, and it's defaulted to the first one. Perhaps you get better benchmarks that way.
Linux ACPI also seems to only half understand it, it has two thermal zones, and one of them always appears with 0 temperature. I can see set points for the fans, but have no control over them. In particular this got me out reading the ACPI 4.0 specification, and it explicitly mentions this choice of favouring 'Active' vs 'Passive' as being done by configuring the passive trip point setting to a higher value than the low & high active trip points.
In the ACPI 4 spec (page 409) it says:
To implement a preference towards performance or energy conservation, OSPM can request that the platform change the priority of active cooling (performance) versus passive cooling (energy conservation/silence) by evaluating the _SCP (Set Cooling Policy) object for the thermal zone or a corresponding OS-specific interface to individual devices within a thermal zone.
This laptop is showing 'passive' at 95000 millidegrees celsius, and 'active' at 55000 / 75000 so right in line with the suggestion.
However I don't see any way in Linux to change these trip point values, and in any case I'm not convinced the laptop is actually obeying them at all. It should be that if I do nothing on the laptop for a while the temperature would surely drop below 55 degrees celsius. Surely a modern laptop will sit at under 40 degrees when it's quiescent, and the temperature sensor that does show me something sits at around 30 degrees in this too, 26.8, to be overprecise. That one doesn't budge either.
Looking in /sys/ I can't for the life of me find a way to set that cooling policy, and when I disassemble the DSDT it looks like a noop...
Thinking that perhaps there was a newer BIOS, I looked at the Dell site and found there was one. Great! Investigating even further, it seems Dell hardware has some interesting capability via libsmbios and some utilities which will let me install my BIOS from a Linux system... even better!
Linux is a second-class citizen though, and when I look for the Dell BIOS Hdr file I need there is no version of the file for this laptop - let alone the current BIOS version. And when I download the BIOS from Dell's website and unzip the first layer of packaging I find that both of the files inside will only run on Windows.
I added a FreeDOS boot stanza to Grub 2 in order to discover this, also discovering in the process that this is not well explained, and I could not find how to do it on the FreeDOS or Grub2 websites, so in passing, here is what I added into /etc/grub/40_custom :
menuentry 'BIOS Flash 1558 A09' --class os {
set root='(hd0,msdos1)'
linux16 /boot/memdisk
initrd16 /boot/1558_A09.img
}
Which certainly does boot FreeDOS from Grub2, into the image built from the 8M FreeDOS base image, and which I called '1558_A09.img' because that seems to be one of Dell's reference numbers for this model / BIOS version.
So still no BIOS update for Andrew, it seems, and the laptop is probably going to continue to be noisy for some time. Possibly forever.
Suspend/Resume works though. Kernel mode-setting for the ATI Radeon Mobility HD 5450 (or whatever it is) seems to work. Building kernels seems to work. The Blu-ray drive seems to work, at least as far as reading CDs - just because I got a laptop with a "Full HD" screen doesn't mean I watch movies on it: those pixels are for programming on! In any case, after reading the literature of pain about playing Blu-ray disks on Linux I'm convinced that we won't be shelling out to buy one any any time soon.
After a bit more frustration I did manage to get the BIOS installed, using the hack I found here of running the Windows BIOS update under Wine and copying the BIOS file out of the temp directory while the error message is displayed. I could then download a random DOS-installable Phoenix BIOS to get copy of phlash16.exe and put those two files on the FreeDOS image I created earlier. Finally I was able to put that learning about how to boot FreeDOS from Grub2 to good use!
Unfortunately, having jumped through all of those hoops (including the frustration of trying to build and use Dell's firmware-extract tools on a Debian system), the fan continues to grind away at annoying volume, with no way that I have been able to find to control it, and the temperature sensors also seem wrong, since one doesn't budge from 0 and the other doesn't budge from 26800.
During boot I get a bunch of error messages, like:
[ 1.049936] \_SB_.PCI0:_OSC invalid UUID
[ 1.052202] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 1.052210] pci 0000:00:1c.0: PME# disabled
[ 1.065228] pci 0000:07:00.2: PME# supported from D0 D1 D2 D3hot D3cold
[ 1.065237] pci 0000:07:00.2: PME# disabled
[ 1.079086] Unable to assume PCIe control: Disabling ASPM
[ 1.086412] HEST: Table is not found!
[ 1.249906] ACPI: Fan [FAN0] (off)
[ 1.249959] ACPI: Fan [FAN1] (off)
[ 1.250093] [Firmware Bug]: ACPI: ACPI brightness control misses _BQC function
[ 1.259118] acpi device:02: registered as cooling_device2
[ 1.262132] thermal LNXTHERM:01: registered as thermal_zone0
[ 1.262139] ACPI: Thermal Zone [TZ00] (27 C)
[ 1.262561] thermal LNXTHERM:02: registered as thermal_zone1
[ 1.262571] ACPI: Thermal Zone [TZ01] (0 C)
[ 1.262598] ERST: Table is not found!
[ 2.769664] i801_smbus 0000:00:1f.3: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[ 2.769670] ACPI: resource 0000:00:1f.3 [io 0x1840-0x185f] conflicts with ACPI
region SMBI [bus 1840-184f pref window disabled]
[ 2.769672] ACPI: If an ACPI driver is available for this device, you should use it
instead of the native driver
I don't yet know what this all means, so I guess I'll be signing up for the linux-acpi mailing list to see if there's anything I can do to get things working better. Any pointers will be gratefully received :-)
Right about now I wonder if maybe I should have gone for the HP or the Asus, even if they were a little heavier and a bit more expensive and next time I get a new laptop I must remember not to spend more than $900 (USD$600) on it.
[Updated: 2010-09-08... Noise Problems Solved
Finally I buy a mini-Netbook...
For several years I've wanted to join the Calendaring and Scheduling Consortium and go to one of their events to get a chance to meet face-to-face with some of the luminaries in the calendaring world, but every time there is an event it seems to conflict with either linux.conf.au or my brother's wedding or something. Finally I've decided I can make the next meeting, so I've paid over the money to join the organisation and I'm travelling to the US next month for 'CalConnect XVI'. With that on my mind when I saw an HP 110 mini netbook on sale for NZD$588 from Harvey Normans I finally flipped over the 'shall I get one' threshold, hoping it will make a good 'travel laptop' for the upcoming trip.
Shiny New Laptop
After a few years of only buying laptops with Intel hardware, today I bought something totally different. It's not really what I wanted (which was an HP HDX 16t) but I get the feeling that none of these 16" HD 1080 laptops will make it to New Zealand for a while yet, and the NZ dollar has done such a nosedive recently that it's better not to wait any longer.
In the places that hold stock there seem to be some good specials around at the moment, and as the owner of a new free, open-source consulting business (i.e: a cheap bastard) I went shopping for the cheapest dual-core I could find with a half-decent screen, and I found the Asus X53K for $999 (USD$589) at Dick Smith, including a 2G ram upgrade to take it to 3G. It's entirely non-intel, with a 2GHz Turion dual-core, ATI Radeon X2300 with 1440x900 panel, Atheros AR2425 wifi and 160G HD. I'd bought a replacement 320G hard drive even before I got the laptop, so now I have a pristine, unbooted 160G hard drive with the install files for some other OS on it - no doubt I'll find a use for the disk, at least!
Since AMD got ATI to release all their chip documentation earlier this year I felt able to shell out for this, rather than the extra $100 for the model next to it, and it was nice too to get home and find that Atheros have recently released the HAL for their a/b/g chips. Which presumably means that they haven't done so for their 'n' chipsets, and I should continue to steer clear of that technology for a while yet...
I'm running Debian GNU/Linux 'Sid' on the Asus X53K and, everything pretty much just works out of the box. My installation process was to rsync the old laptop onto a new disk, and boot the new laptop from that - after compiling a new kernel more appropriate to the changed hardware.
After overcoming my own stupidity in not syncing the /dev/ underneath udev, which I easily googled my way out of, the only problem I've found so far is that the free radeon driver doesn't do 3d for me. Presumably the non-free ones would, but they won't compile against my 2.6.27 kernel so I don't know for sure. Fortunately I don't use 3d for anything so it's not a huge inconvenience to me. With 3G RAM and a fast 320G hard drive the laptop actually is an upgrade for me, too, and it has a webcam too, which I expect I'll look at in much the same way as I did the fingerprint reader on the old laptop. It will be good to finally hand that old one back to Catalyst, too, who have given me the flexibility to take my time on this.
Now to try and peel off all these stickers without damaging anything!
Using NZ Open GPS Maps from Linux
A GPS is one of those toys that I have wanted for a very long time. So last year I finally marshalled enough excuses in one place, lined them up and plunked down some money for a Garmin GPSmap 60CSx in the vague belief that there's enough Linux software out there which understands GPS, and the Garmin is a brand that seems to have mature Linux support. And besides, I'd been told it was a good model that would do what I wanted and then some.
Once I got it I naturally wanted to do stuff with it, and in particular I wanted to connect it up to my laptop which (of course) is running Linux and I found that it wasn't nearly as trivial as I had thought.
This prompted me to run around finding software to use with it, so here's my capsule review of my journey from "extremely naive" to "very naive". Perhaps I'll also learn something from the comments of people who are further down the track.
My first resort was "apt-cache search gps", of course, which immediately brings up such fine sounding programs as "gpsman", described as "A GPS manager" (I haven't managed to get it to do anything yet), "gpstrans" which since it specifically mentions Garmin GPS sounded like just the ticket (it appears to be quite old and superseded). There was some useful stuff as well.
| gpsd | Connects to your GPS and relays that in a format that all of the other software understands. This seems to have a fairly active development community. A bug I discovered was fixed quite quickly in a new release. |
|---|---|
| gpsdrive | This software seems quite functional, though most of what it is trying to do is done by my GPS already. It can talk directly to many GPSs but I used gpsd for the actual communication, which provides broader support and multiplexes the GPS data so it isn't locked by a single applications. |
| gpsbabel | This very powerful comannd-line tool will inter-convert many GPS data formats. |
Getting Maps on the GPS
Since the Garmin GPSMap series will display maps, I wanted to be able to get some mapping data on there. There are two map sources I was interested in:
- Map data from NZ Open GPS Maps which gives comprehensive coverage of New Zealand, and is free and community maintained, albeit with some annoying uncertainties about the licensing of the data, and it's being tied to Garmin GPSs.
- Map data from OpenStreetMap.org which gives excellent coverage of many areas of the world, and is free for use under a creative commons license.
Using the NZ Open GPS Maps
The NZ Open GPS Maps are built specifically for the Garmin GPS, so getting them onto my GPS was relatively simple once I found out the exact command line was remarkably hard.
The program that I needed to find to be able to get the maps onto my GPS was sendmap20 which is a free (as in beer) download from the cGPSMapper Website.
I downloaded the maps from the NZ Open GPS Maps hosted on the cGPSMapper site. I needed the files identified as 'binary' files - the installer is a Windows program and no use on Linux. They all have filenames like 64000012.img.
The command-line I first used to install the maps onto the GPS was:
sendmap20 -t/dev/ttyUSB0 640000??.img
That works fine, but if you have even a moderately sized micro SD card in the GPS there are much faster ways. As I found more free maps I found much better ways to do it.
An alternative approach
In the GPS (well, in my one anyway) there is a micro-SD card which is FAT formatted and all of the installed maps are in one humungous combined image of all of the uploaded maps. This means that there is no way to straightforwardly add/remove maps without creating that image, and re-uploading the whole thing. The image file is called 'gmapsupp.img' and is in the 'garmin' subdirectory on the SD card.
This means that you can create the file (or even several different files, with different maps on them) and move them directly on there much quicker, either by taking the SD card out and using it in a USB2 reader (for really big files) or switching the GPS to operate in USB Storage mode (which is USB1, but OK for smaller files).
You can create the IMG file to copy in as gmapsupp.img with sendmap20 also, with a command-line like:
sendmap20 -lNZOpenGPSMaps.img 640000??.img
and then, if you mount the GPS as /media/GPS, you can copy that file on directly
cp NZOpenGPSMaps.img /media/GPS/garmin/gmapsupp.img
QLandKarte
Another program I found useful specifically for dealing with the Garmin GPS Map format is QLandKarte, which understands the native Garmin format and will display the maps in a graphical window.
You can also point and click to select maps, building up a specific set that you can then upload to the device from within QLandKarte itself. This seems to operate a lot faster than sendmap20, presumably because it's driving the USB directly, rather than through usb_serial. To get it to work I seem to have to (a) sudo rmmod garmin_gps and (b) sudo QLandKarte, however, which is definitely not ideal.
For the moment I will continue to use sendmap20 to create files which are sets of the maps I want, and will put them on the device in USB storage mode.
QLandKarte is still very useful, however, for looking at maps and deciding if they are worth bothering with. I used it in this way to select the Australian maps I took with me when I went to Linux.Conf.AU recently. There are more free Garmin GPS maps.
OpenStreetMap.org
Those Australian maps came from OpenStreetMap.org and ultimately I expect that it will become the best source of data for creating maps for my GPS. OpenStreetMap.org is an attempt to provide community-maintained maps for the whole world and which seems to have made significant progress in UK, Europe, America and Australia as well as many other parts of the world.
The data from OpenStreetMap.org does not have the same licensing restrictions as are present even in the NZ Open GPS Maps data (which is relatively free, but has problems similar to the old-style BSD license).
There are also some good mapping interfaces to the OpenStreetMap data although the searching currently still leaves something to be desired. Interfaces are also available for extracting subsets of the data, which is in a fairly straightforward XML format, or you can download the whole lot, but at nearly 3GB for the bzip2 compressed version you won't do it every day.
I gave a brief overview talk about OpenStreetMap.org while I was at Linux.Conf.AU and it seemed to go down quite well (I gave it several times, in fact). You don't need a GPS to contribute to the project, and of course the maps which are being created are usable for many purposes beyond their usefulness on GPS. Some people apparently even print them out, but that just seems weird!
Moved to a new (old) server
I've now moved lots of things to a new (old) server which should be noticeably faster than the old (old) 500MHz PIII-based server. Of course since Etch was released I'm now running on Etch. This also meant an upgrade to PHP 5.2, so I spent some time getting bitten by this bug with Drupal 4.7.4 and PHP 5.2 and had to upgrade to 4.7.6. Consequently there has been a wee bit of bouncing up and down today...
In the process I have also upgraded my packages for eAccelerator so that they would work with Etch. Since Andrew Hutchings had taken them off me and played a bit further I have now taken his packages and built some newer ones, including a patch for 0.9.5 to work with PHP 5.2, and an additional build dependency. My new (old) server is still 32-bit, so these packages are only built for 32-bit as yet. I'm currently trying to find a 64-bit Etch box I can build them on as well, but everyone at work seems to have gone home.
You should be able to fetch them from my package repository by adding it to your sources.list with:
deb http://debian.mcmillan.net.nz/debian etch awm
Naturally that repository is signed with my public key (8f068012), which is in turn signed by lots of people in the Debian community and should be readily identifiable - not that that implies trust, of course :-).
Also, since my new (old) server is in a different location (and to ease the transfer) everything is on a new IP address (and a new IPv6 address). Hopefully the system's accessibility over IPv6 on http://ipv6.geek.nz/ will be slowly improving as we incrementally improve our IPv6 connectivity with the rest of the world.
Seamless Monitor Hotplugging with X Windows
There are times when you want to track the bleeding edge of a particular project, and having a new laptop is often one of those moments... I've recently bought an HP Compaq nx6320 and while most of it is working, one of the reasons I got it was because of Keith Packard's work on the RandR extensions for X.
Well, I was definitely seeing this bug but with a small patch I can get the latest (experimental) packages for xserver-xorg-video-intel to work, and now with a few magic tweaks to my xorg.conf I can make my desktop expand to another monitor when I unsuspend at work, and contract back to just the laptop screen when I resume somewhere else.
The Magic Expanding X Config
First of all, when I got the driver to actually work, xrandr explained to me that my maximum resolution was 1400x1400:
Screen 0: minimum 320 x 200, current 1400 x 1050, maximum 1400 x 1400 VGA disconnected (normal left inverted right) LVDS connected 1400x1050+0+0 (normal left inverted right) 305mm x 228mm 1400x1050 60.0*+ 1280x800 60.0 1280x768 60.0 1024x768 60.0 800x600 60.3 640x480 59.9 TV disconnected (normal left inverted right)
Using a few clues from Ross Burton I managed to get that "maximum 1400x1400" to increase. The trick is to add a "Virtual" setting for screen size into your "Screen" Section, like so:
Section "Screen"
Identifier "Default Screen"
Device "Intel 945GM/GMS/940GML"
Monitor "Laptop Panel"
DefaultDepth 24
SubSection "Display"
Depth 24
Virtual 2680 1050
EndSubSection
EndSection
The downside of this is that if you set the width greater than 2048 (as I have here) then DRI won't work, so you won't get 3d stuff. I guess I can manage without ice-cream, just so long as I get my cake!
Once I have the "Virtual" setting, when I resume at the office I can:
xrandr --output VGA --mode 1280x1024 --pos 1400x0
And then when I resume somewhere without the external monitor, I can:
xrandr --output VGA --off
Quibbles
All of these features are kind of under development, but Xorg 7.3 will support this stuff, and then Gnome and suchlike will have to start thinking about how to deal with it. The dynamic screen changing is not something these environments are completely ready for.
One example is that while I know that monitor is always on the RHS of my docking station, X wants it to be the primary monitor and Gnome moves both panels onto that screen. Perhaps that's not a choice that can be made automatically. Someone who had an external keyboard plugged into their docking station might want the opposite behaviour, and there is certainly no way the environment can magically know whether that monitor is left or right of my laptop screen. Eventually I expect that Gnome will recognise this monitor, and will make the panels and location automatically set the RandR environment to match the way I set it last time.
It is also somewhat annoying that I have to actually choose the virtual size. No doubt this configuration will disappear in due course and it is not really surprising to see it for something which is admittedly quite bleeding edge!
I noticed at LCA that Keith had his own screen set for a Virtual size of 2048x2048, and now I know why: that's the maximum size that is supported for DRI, so if I expand my desktop onto a 1280x1024 screen I'm going to have some overlap. In fact I could almost configure my external monitor to be above my normal screen and use it that way, but it would feel pretty weird I think. In the meantime I've gone back to "blank screen" for my screen saver which admittedly is currently the only application for 3d acceleration on my desktop.
Remaining Problems with this Laptop
The only outstanding issues for me with this laptop are:
- Suspend/Resume to RAM does not work (I use suspend to disk)
- Fingerprint Sensor does not work (AuthenTec say Linux support will be available later this year)
That's about the best Linux compatibility I have had for any of my last five laptops within a month of buying it. Most of them have had much more significant stuff less supported even after three years of use!
Telecom New Zealand 3G CDMA card under Linux
Once upon a time I bought a Telecom New Zealand "3G" CDMA card (Sierra Aircard 580) so I could be better connected in those places where broadband doesn't reach. When I bought it I needed to do a lot of investigation and playing around to get it going, so I wrote it all up.
Times have changed now, but I'm still using the same 3G card... For comparison purposes, and so people don't think it's still that hard, I thought I would write up here what it took to get this going on my new laptop.
First Step
It is likely that you still need to follow the first step listed in my old document: i.e., to ensure that the device is actually activated with the Telco!
Second Step
Plug the card in.
Having plugged the card in it was automatically detected and all the appropriate magic was done to create the necessary /dev/ttyUSB0 device node so we can use it for dialout. This was with Linux 2.6.20 kernel and 0.105 of udev but I think it's been all workingness for some time.
Third Step
Configure PPP.
I run pppconfig (as root) to configure the card, but I'm sure you could use "gnome-ppp", "wvdial", "kppp" or something else that takes your fancy. The critical points are:
- The number to dial is "#777"
- You need to use PAP authentication
- The username is "mobile@jamamobile" (for Telecom New Zealand, at least)
- The password is "telecom" (ditto)
- Other default PPP settings will hopefully work (create a default route, use supplied DNS, ...)
Hopefully, at this point, everything will be working for you.
Troubleshooting
Well, really, all of this (and much, much more) applied to my earlier information, and I'm sure there are better pages out there on "HOW TO CONFIGURE PPP", but here's the basics of troubleshooting it anyway.
So if, for some reason, you have problems with the above then check:
1. Did you actually connect?
You might have connected, but your default route or DNS might not have been set up. You can use the /sbin/ifconfig command to see if there is a ppp0 device, /sbin/route to see if you have a 'default' route and ping www.bbc.co.uk (or some any website you have not visited recently) to see if ping replies with:
PING www.bbc.net.uk (212.58.240.32) 56(84) bytes of data
as it's first line (then press [CTRL c]. Some websites don't respond to the ping itself, but as long as the first line displays the IP address next to the name then DNS resolution is working.
If all three of those things are working, but you still can't see any web pages, then you may need to change your browser configuration to disable any proxy you may use when you are connected to your LAN or wireless LAN.
2. No Default Route
Something has gone wrong with the PPP connection if it didn't create a default route, but if you only have a single route in your /sbin/route output, and no line saying "default" at the bottom then you can add one manually.
In the output of the 'route' command you will see a line that ends in 'ppp0' and starts with a number, something like this:
aaa.bbb.ccc.d * 255.255.255.0 U 0 0 0 ppp0
Using that number, type in the following command (as root, or using sudo):
/sbin/route add default gw aaa.bbb.ccc.d
Where 'aaa.bbb.ccc.d' is the number from the earlier '/sbin/route' command, of course.
My Own Configuration
I used pppconfig to set this up, and I call my connection 't3g', which translates to some of the filenames, so that name might be different for you.
/etc/ppp/peers/t3g
You probably will want to comment out 'debug' when you get it going, and you may also want to change 'nodetach' to 'detach' to put it in the background once it's connected. I just leave it up in the terminal when it's running, however, so I can see if the connection has dropped.
nodetach ttyUSB0 # 115200 460800 debug noauth defaultroute usepeerdns user mobile@jamamobile # show-password crtscts lock connect '/usr/sbin/chat -v -t3 -f /etc/chatscripts/t3g' # Possibly these pppoe options also should be included... # RFC 2516, paragraph 7 mandates that the following options MUST NOT be # requested and MUST be rejected if requested by the peer: # Address-and-Control-Field-Compression (ACFC) noaccomp # Asynchronous-Control-Character-Map (ACCM) # default-asyncmap # Do not try to negotiate other kinds of compression. nopcomp noccp novj nobsdcomp nodeflate nopredictor1 lcp-max-configure 90
/etc/chatscripts/t3g
This is a fairly standard set of modem configuration options, and then the phone number gets dialled at the end:
'' 'AT' 'OK' 'ATE0V1&F&D2&C1&C2S0=0' 'OK' 'ATE0V1' 'OK' 'ATS7=90' 'OK' 'ATDT#777'
/etc/ppp/pap-secrets
Will need to have a line for the password, like this (it won't be the only line though):
mobile@jamamobile * telecom
If it still isn't working
If you can't get it working from this point, then you probably have a different whatever-it-is than me, and I probably can't help you. Maybe it is device driver debugging that you need (/dev/ttyUSB0 is not created, perhaps) or maybe it is ppp debugging (if it is). Google Is Your Friend
Debian GNU/Linux on a HP Compaq nx6320
Opening the box, we find...
Inside the box was a computer, a power adapter and a battery. There was a bunch of other stuff, but none of that applied to me!
I booted from an Etch pre-release CD I had floating around, most things were detected and most things worked in a basic manner. I don't run Etch though, so I was upgrading to the truly bleeding edge fairly rapidly.
Normally I run Debian Unstable, so I upgraded to that immediately and that was all fine, but with Etch being released soon many developers are putting interesting stuff into Experimental, and I wanted X.org 7.2 and Gnome 2.16 which are in there...
Packages you will want to install
To get the 1400x1050 screen resolution you will need to install '915resolution'. This seems to still be the case with the packages of X.org 7.2. I have seen some interesting sounding options in the i810 man page that might be alternative ways, but the hack that 915resolution uses is a much simpler solution since it is already packaged.
To get the wireless working you will need to install 'ipw3945d' and 'ipw3945-modules-2.6.18-4-686' (or some other package of the modules - I installed the source package and used module-assistant to build the modules because I like to build my own kernel).
What is mostly working
A Tour on the PCI Bus
| 00:00.0 | Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03) | Supported |
| 00:02.0 | VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) | Supported, with 915resolution |
| 00:02.1 | Display controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) | Supported, with 915resolution |
| 00:1b.0 | Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01) | Supported, using Alsa |
| 00:1c.0 | PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01) | Supported |
| 00:1c.2 | PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 01) | Supported |
| 00:1c.3 | PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01) | Supported |
| 00:1d.0 | USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01) | Supported |
| 00:1d.1 | USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01) | Supported |
| 00:1d.2 | USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01) | Supported |
| 00:1d.3 | USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01) | Supported |
| 00:1d.7 | USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01) | Supported |
| 00:1e.0 | PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1) | Supported |
| 00:1f.0 | ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01) | Supported |
| 00:1f.1 | IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01) | Supported |
| 00:1f.2 | SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI (rev 01) | Supported. Your kernel needs to specify the SATA AHCI, as all recent distro kernels will. |
| 02:06.0 | CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller | Supported. |
| 02:06.1 | FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller | Not tested. |
| 02:06.2 | Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) | Update: 2007-02-23 Using the driver from http://developer.berlios.de/projects/tifmxx this is now working with a 2.6.20 kernel. |
| 02:06.3 | Generic system peripheral [0805]: Texas Instruments PCIxx12 SDA Standard Compliant SD Host Controller | Update: 2007-02-23 Using the driver from http://developer.berlios.de/projects/tifmxx this is now working with a 2.6.20 kernel. |
| 02:06.4 | Communication controller: Texas Instruments PCIxx12 GemCore based SmartCard controller | What is this? |
| 02:0e.0 | Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit Ethernet (rev 03) | Supported with "tg3" driver (standard kernel) |
| 08:00.0 | Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02) | Supported with ipw3945 driver (ipw3945.sf.net, but commonly packaged) |
Display
Once I installed 915resolution the display just works under X.org 7.1 and X.org 7.2. After a suspend to disk I have to run 915resolution again otherwise X will be shown in 1024x768. I think I could then run xrandr to switch back to 1400x1050 at that point (to be confirmed).
Touchpad
The touchpad has a scrolling area at the right of it, which works as designed, and it also seems to handle a two-finger tap as equivalent to a two-button click (i.e. what would normally be a middle button click). It seems nice, and I will probably get used to it.
PCMCIA
I pulled out my 3G card and plugged it in and it just works.
There is also one of these new fandangled PCMCIA^WCardBus replacement whatsits, but I don't anticipate having anything that actually uses that any time soon.
USB
All USB ports seem to work as expected. I seem to get pretty high speed transfers out of my camera too.
SD * MS/Pro * MMC * SM * XD
This was something that I was hopeful would actually work, since I have a few devices that use SD cards now and it definitely seems to be the format that is taking over from Compact Flash, except for in irrelevant stuff like Sony and Olympus equipment.
Unfortunately, though I compiled all of the MMC kernel stuff into my kernel (as well as the core under "Device Drivers -> MMC in the kernel configuration there are chipset drivers under "Device Drivers -> Misc devices" - go figure ). Those drivers seem to be for a "TI PCI74xx compatible" reader, and mine seems to be a "PCIxx12" something, so perhaps there just isn't a driver Right Now and I just have to wait a few months.
Update: 2007-02-23
Using the driver from http://developer.berlios.de/projects/tifmxx this is now working with a 2.6.20 kernel.
What Ain't Tested
Bluetooth
I can see the bluetooth is there with 'lsusb', and I expect that it will all work just fine, but I don't have anything that does bluetooth, so I can't say for sure.
Modem
I don't have a poorband account anywhere, so I can't test it. It isn't something I expect to ever want to use, but it looks like an AC97 modem so I expect it will work just fine.
TV Out
Since I don't have a television.
Parallel Port
Didn't these things get replaced by network printers and USB printers a bunch of years ago?
Serial Port
Yep. It has one. Weird. I wish that they had put two USB ports there instead - it would have been a much better location for stuff like my wireless mouse to plug into.
Firewire
I must pull one of my firewire HDs out and see if this works...
What Ain't Working
Suspend / Resume
Suspend to ram sometimes works for me, but on most occasions resume has left me with a working system but no keyboard input. Some googling suggests there are ways around this, but I am not sure if it is fully reliable at this stage. I have tried with the 'irqpoll' option included on the kernel boot line, which is purported to help with other laptops, but this (a) doesn't help, and (b) lots of other stuff seems to work badly with it.
Somewhere I read a suggestion to use the 'noapic' boot option, but this won't boot. I have a vague memory that the APIC is actually required for SMP systems.
Suspend to disk works, except that X comes back without the BIOS manipulations that have been done by 915resolution, so it manages to end up in a 1024x768 screen rather than 1400x1050. This can probably be fixed by also running 'xrandr' to set the resolution back after '915resolution' has been run, or by 'chvt 1' prior to suspend, then '915resolution' on resume before 'chvt 7' to bring the X screen back. I will see... Update: 2007-02-23 Suspend to disk works reliably for me now that I "chvt 1" ... suspend to disk ... "/etc/init.d/915resolution start; chvt 7".
If the keyboard is not working after a resume from ram I can plug in a USB keyboard and that does work, but unloading and reloading the atkbd, psmouse and libps2 does not help (as I had hoped it would).
This is really important to me, so I'll keep working on it until I can either workaround the problems, or it gets to be supported by 2.6.21 or so... Hopefully sooner rather than later!
Fingerprint Reader
Well, I honestly wasn't expecting to have much luck with the fingerprint reader, and I haven't. A bit of googling did throw up Michael Crusoe's Bio API implementation which I have been unable to get to build so far, as well as the proprietary driver for the UPEK fingerprint reader, which refuses to install, probably because the Bio API isn't installed...
Looking at the output of 'lsusb' it seems that it may well not be a UPEK device, since I am told "Bus 001 Device 004: ID 08ff:2580 AuthenTec, Inc.". More investigation is clearly required.
That is all more than I expected to be there, to be honest, but unfortunately not enough to get me going. Oh well, I will have to take some heart from the fact that these devices are cute, rather than fully trustable.
If I do eventually get it working, I now know that I need to revisit this setting up the fingerprint reader page, which seems comprehensive.
Overall Impressions
Background
My main complaints with my old laptop (a very large Sony Vaio) were it's utter crap battery life (around 50 minutes when new, dropping to 35 or so now), it's poor performance relative to current dual-core CPU systems, and it's weight. I did love the screen on the Vaio, but it's docking station was becoming unreliable and various "Sony-isms" had never worked. My son was throwing some scissors around one morning and managed to spear a chunk out of the screen which also made it less appealing.
So while I was at LCA this year I took the opportunity to ask Keith Packard what laptop he would recommend. He clearly wants one of the new Panasonic Toughbooks, but they are not in my price range. He did also recommend some HP notebooks however and that is what I have gone for in the end though a slightly different model.
... and so?
I have to say that the "out of box experience" is very good. All of the important stuff "just worked" from what was on a four-month old Etch install CD. The hardware is pretty much Intel all down the line, which is the best way to go for a Linux laptop at present. The only proprietary code seems to be some firmware for the wireless, and that doesn't come with complexly encumbered distribution, so it is easily installed.
The only outstanding problems right now are keyboard failure on resume (the laptop actually works because I have managed to cut and paste commands from other bits and pieces on the screen using the mouse!).
While a few pieces of hardware are untested so far (I don't have any bluetooth devices, for example), the two that don't work are really irrelevant luxuries. The bottom line for me is that I now have 2 CPUs, 2G RAM, 100G HD, Wifi, LAN, a reasonably good screen working well with X, a decent battery life (and it also takes an additional battery, which I will get before I next leave the country).
It is a bit of a shame to not have a higher resolution screen, but it seems that Intel don't produce graphics cards beyond 1400x1050 and I'm seriously sick of the endless fiddling that has seemed to be necessary for me to use the ATI and NVidia drivers.
Overall a "B+".
Updated 2007-03-22
It seems that 915resolution is no longer needed with Xorg 7.3 (as I expected, to be honest). Using a small patch to the latest Xorg -video-intel drivers everything works and I am able to nicely expand my desktop across to another monitor when I resume at work, and contract it back when I am only using the laptop panel. Nice. Worth another blog post, so I'll write that in a minute.
Meanwhile, this bug will be fixed before Xorg 7.3 is released, I am sure, and things will work brilliantly after that!
Recent comments
1 day 4 hours ago
1 week 2 days ago
9 weeks 3 days ago
14 weeks 1 day ago
14 weeks 2 days ago
15 weeks 3 days ago
15 weeks 3 days ago
15 weeks 4 days ago
15 weeks 6 days ago
15 weeks 6 days ago