Linux on the Sony Vaio VGN-S260


X Windows and 3D acceleration

The S260 has a very nice 13.3 inch LCD which displays a native widescreen resolution of 1280x800. 3D support can be enabled for our Radeon Mobility 9200 with either the open source, kernel-included 'radeon' module, or with ATI's proprietary binary drivers. First, let's get X setup to work with the touchpad and widescreen resolution.

We should start with a pretty bare xorg.conf file. Running the command xorgcfg should provide us with just what we need: a simple, working xorg.conf on which to base ourselves. First, take a look under the InputDevice section for the mouse:

		Section "InputDevice"
			Identifier	"Mouse0"
			Driver		"mouse"
			Option		"Protocol" "auto"
			Option		"Device" "/dev/mouse"
		EndSection
			

This will work fine for our touchpad. On later 2.6.x series kernels, however, the synaptics touchpad driver has been added. For some strange reason, this driver will recognize our pointer device as an ALPS touchpad (which it is), but then it will disable hardware tapping. The way I prefer to have the touchpad setup is with hardware-tapping enabled. It seems to provide a more natural feel for tapping to drag or click. As a work-around for this behavior, we can add a setting to lilo.conf or grub to pass an option to the kernel on boot. My entry in lilo.conf is this:

append = "psmouse.proto=imps"

This tells the built-in Alps driver to "forget it", basically, and we achieve the same functionality as we did in previous kernel versions. (NOTE: If you're looking to enable the scroll wheel function on the touchpad, you won't want to add this. Instead, we'll use the synaptics driver and add some custom definitions in xorg.conf. I prefer the more basic functionality, however.)

Next, let's take a look at our "Monitor" section. Nothing special required here, either:

		Section "Monitor"
			Identifier	"Monitor0"
			VendorName	"Monitor Vendor"
			ModelName	"Monitor Model"
			Option		"dpms"
		EndSection

VendorName and ModelName are probably not important, but I've always seen them listed, even as something generic like above. You'll notice that there are no ModeLines or refresh settings. Xorg is intelligent enough to figure those out on the fly.

Now, to check out the "Device" listing for our Radeon.

		Section "Device"
			Identifier	"Card0"
			Driver		"radeon"
			VendorName	"ATI Technologies Inc"
			BoardName	"Unknown Board"
			BusID		"PCI:1:0:0"
		EndSection

After using xorgcfg, it had selected the 'ati' driver instead of 'radeon'. I made that simple change to enable 3D support. If you'd like to try the proprietary ATI fglrx driver, there are some important things to note:

The next section to look at is the "Screen" portion of our xorg.conf. Again, with newer versions of X, not much needs to be done here. This bare minimum should be all that's needed:

		Section "Screen"
			Identifier	"Screen0"
			Device		"Card0"
			Monitor		"Monitor0"
			DefaultDepth	24
			SubSection	"Display"
				Viewport	0 0
				Depth		24
			EndSubSection
		EndSection

Lastly, let's make sure users are able to access our 3D hardware:

		Section "dri"
			mode 0666
		EndSection

Type startx and try it out. I think you'll like what you see.

TROUBLESHOOTING:
I ran into a little bit of a snag with 3D capabilities. I'd run glxgears, or glxinfo, and X would revert to indirect rendering. Hint -- not what you want. I used xhost + to disable access control momentarily and ran the commands again. They ran fine; direct rendering: yes. Knowing I already had the "dri" section in the xorg.conf, I wasn't sure what the issue was. Turned out that /dev/dri/card0 was set with 660 permissions, owner root, group video. This meant that my user, mike, was unable to access it without being added to the 'video' group or chmod'ing /dev/dri/card0 to 666. I chose the former route and ran usermod -g users -G wheel,audio,video mike to rectify the situation.

Also note that tmpfs should be mounted on /dev/shm as POSIX shared memory access is required for some 3D apps (ATI fglrx driver is one of these situations.) Check fstab and if that's not present, add this:

		tmpfs		/dev/shm	tmpfs	defaults	0 0

And that should be that.


Index---S260 Main---mshade main