Mandriva Linux 2008.0 on DELL Inspiron 1521

After receiving any new hardware, its setup on Linux is often painful because of new driver, new tools and their configuration files. Even if you are comfortable with Linux as a simple user, the hardware support may require you to spend time in trial-and-failure process and searches on internet. So here is the result of my work on my brand new DELL Inspiron 1521 laptop, dedicated to Mandriva Linux 2008.0 distribution. To sum up, this hardware is really well supported by Linux now.

As Vista installation and setup is not a job I am interested in, I have preferred to resize the system delivered by DELL – you may follow these instructions. I have decided to remove DELL MediaDirect partition and replace DELL specific bootloader by GRUB. So I have first set up a classical dual-boot system, with the hope to use the MediaDirect button to boot or resume Linux.

Installation

After partioning, the installation process goes normally. SATA disk is detected and I install GRUB directly on /dev/sda. For video, I advise you to use the generic vesa driver first, before configuring ATI driver manually.

Sound

The first contact with Linux on DELL Inspiron is really noisy. After installation, disk activity seems to be converted into sound signal. I advise you to connect something in the headset output to let you open any mixer application (alsamixer on console or gnome mixer) and switch the analog loopback off to restore silence.

Video

Mandriva drakx11 tool is not yet able to configure ATI fglrx driver properly, the generated xorg.conf file results in the well-known black screen.

  • First take care to have the kernel-laptop-devel-latest package installed before installing the ATI proprietary driver x11-driver-video-fglrx.
  • Use drakx11 to generate a configuration file for generic VESA driver.
  • Then use aticonfig --initial to have the fglrx driver setup.

This initial setup should work. To go further, DRI should be enabled for performance. Check your xorg.conf:

Section "Extensions"
    # DRI with fglrx
    Option "Composite" "Disable"
EndSection

Section "DRI"
    Mode 0666
EndSection
  • Install and run driconf tool to create a configuration file ~/.drirc and copy it as /etc/drirc.
  • Control DRI is really available with LIBGL_DEBUG=verbose fglrxinfo.
  • To test, you may run LinDVD which displays nothing if DRI is disabled.

Wireless network

At installation, the Broadcom BCM94311MCG wireless card is configured as eth0 with the Linux kernel module bcm43xx and the Broadcom BCM4401-B0 ethernet card eth1 with the b44 module.

As the module bcm43xx does not support this card model yet, it is necessary to use the windows XP driver with NDISwrapper.

  • Download sp33008.exe and use cabextract to get the bcmwl5.inf to use with ndiswrapper.
  • Replace alias eth0 bcm43xx by alias eth0 ndiswrapper in /etc/modprobe.conf.
  • Add a file /etc/modprobe.d/blacklist-bcm43xx with content blacklist bcm43xx to prevent the Linux module to be loaded.

According to Mandriva 2008 Errata, the ssb module may conflict with ndiswrapper Broadcom driver. On the other hand, this module is required by the b44 module for the ethernet card. I think the condition to get both working at the same time is to load and configure wireless before ethernet in the Linux kernel.

At startup or after hibernation resume, it happens (often) that the wireless network is broken. To get it back again, apply the following sequence:

  • Run as root ifdown eth0
  • Kill ifplugd or wpa_supplicant associated with eth0
  • rmmod b44 ssb ndiswrapper
  • Run ifup eth0 and it should work again.

Storage

SATA disk is detected as sda and works properly. On battery, it goes often to sleep state.
The DVD reader/writer is detected as hda and works out of the box.

Hibernation

For a laptop, this is a must-have feature. The Mandriva installer may not include the required resume=/dev/sdaX parameter with swap device if the swap size is considered too small compared to the installed RAM.
So check for this kernel option in the GRUB configuration file /boot/grub/menu.lst. The suspend/resume process is not fast but it works.

Multimedia keys

You can use the Mandriva control center to change the keyboard model to DELL inspiron. The Xorg configuration is then updated with Option "XkbModel" "inspiron".
The volume keys are working in any environment that supports the specific XF86 events. Other control keys may work depending on the specific application support. For instance, Amarok handles properly these keys, as long as the application has the focus.

Webcam

Mandriva packages the uvcvideo driver in version 0.1.0 as third party sources in Linux kernel. This driver detects the OmniVision integrated Webcam but fails to initialize it, according to dmesg:

uvcvideo: Found UVC 1.00 device Laptop Integrated Webcam (05a9:2640)
uvcvideo: Failed to query (135) UVC control 1 (unit 0) : -32 (exp. 26).
uvcvideo: Failed to initialize the device (-5).

Information about the webcam are returned by lsusb -v:

Bus 005 Device 004: ID 05a9:2640 OmniVision Technologies, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 Common Class
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x05a9 OmniVision Technologies, Inc.
  idProduct          0x2640
  bcdDevice            1.00
  iManufacturer           1 OmniVision Technologies, Inc. -2640-07.07.20.3
  iProduct                2 Laptop Integrated Webcam

That is really a bad point that a webcam cannot be declared in the uvcvideo module without patching and compiling. So here are the detailed steps to get it work, a simple copy of what I have found on internet:

  • First install the kernel devel package corresponding to your running kernel version returned by uname -a, at the moment of writing: kernel-laptop-devel-2.6.22.12-1mdv-1-1mdv2008.0 or else kernel-laptop-devel-latest-2.6.22.12-1mdv2008.0 and also subversion and gcc if not already installed.
  • Then get latest UVC driver sources with svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk uvcvideo-src
  • Edit the uvc_driver.c file and add a section to declare the OminiVision integrated webcam support around lines 1700:
            /* OmniVision OEM Dell Notebook */
            { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
                                    | USB_DEVICE_ID_MATCH_INT_INFO,
              .idVendor             = 0x05a9,
              .idProduct            = 0x2640,
              .bInterfaceClass      = USB_CLASS_VIDEO,
              .bInterfaceSubClass   = 1,
              .bInterfaceProtocol   = 0,
              .driver_info          = UVC_QUIRK_PROBE_MINMAX
            },
  • Run make to compile and replace the module in /lib/modules/KernelVersion/kernel/3rdparty/uvc/
  • Run the following commands to load the modified version of the driver:
    rmmod uvcvideo
    depmod -ae
    modprobe uvcvideo
  • When loading the module, the webcam flashs. You can now use your favorite video conferencing application supporting V4L2 devices.

Connectivity

  • No problem with USB,
  • The multi-card reader works well (sdhci and mmc0 supports Ricoh R5C822 hardware), tested with a SD card,
  • Firewire ieee1394 detected (ohci1394 supports Ricoh R5C832 hardware) but not tested yet,
  • Bluetooth card seems detected but not tested yet.
  • Forget the Connexant WinModem. It is even invisible in lspsi.

Improvements to do

  • Use hotkeys to handle multimedia keys, for any application even without focus.
  • Handle the wireless switch button, with keycodes e008 and e011.
  • Handle the LCD brightness events, with keycodes e005 and e006.
  • Handle specific keys, MediaDirect e012, Sleep e00a, Battery e007, Screen switch e00b.
  • Configure properly suspension to ram. When on battery and panel closed, it often hangs and do not resume.
  • Configure Xorg to support different layouts: single screen with another output, dual-head, TV output.
  • Use s2disk for hibernation to take benefits from image compression.
  • Configure Linux framebuffer console with a 1440×900 resolution instead of 800×600.

Un commentaire

  1. Pingback: Chroniques d’un éco-libriste » Blog Archive » Mandriva Linux 2009.0 on DELL Inspiron 1521

Laisser un commentaire