My GNU/Linux (debian) on Dell Studio 15

by andrea venturi a.venturi@avalpa.com


Here you can find my best tweaks to support all the goodies of this slick notebook.

Date

Description

Note

20 july 2008

Description of my first distro install and some note


27 july 2008

(off topic) Some added hardware..


5 august 2008
Audio card starts to work!
many things could be done to test all the codec features
6 august 2008
some info about bluetooth quirks (HID at boot time and then HCI) and max sound volume
sound volume is too low compared to the other OS.
8 august 2008
some info about Broadcom own linux driver, and some info about audio line input..

10 august 2008
this page is now advertised on tuxmobil!
TuxMobil


Introduction

The Dell Studio 15 is a recently introducted laptop packed with a lot of interesting features for the general user.
Dell studio

As of july 2008, Gnu/Linux can run on this laptop quite smoothly. Both amd64 (*) and i386 version (albeit with an amd64 linux you'll have to tweak the OS a lot to run "legacy" 32bit closed software like Skype, Acrobat Reader and Flash Macromedia that are quite popular..)
So, from now on, i'll speak about a i386 install of a Debian distro. I started with testing/lenny and i finished with an Unstable edition. You have to live on the bleeding edge if you the latest stuff.
Anyway, i'm not going to speak why i choose Debian (because it's clear, as it's the more controllable and free, as freedom, distribution..) and hot to install it for real (it's that easy nowadays!), but just as a case for the Dell laptop support. If you are a real man, you don't need the Ubuntu fancy features!)

(*) yes i know we are on a core 2 duo , but the 64 bit version of linux is nevertheless called amd64 because this kind of 64bit technology has been developed initially by Amd when Intel decided to scratch everything and start with their Itanium failure and a 64bit totally new architecture. now you see where we are! :-)

Short summary

There are some basic glitches that should be solved in some few months, as Dell happens to say that this Studio model should be selled with Ubuntu Linux preinstalled. Here my preferred one:

The internal audio card more or less work, usually this advanced codec need some quirks, but this time, is more or less supported. both for input (internal/external) and output (speaker and 1 headphone jack, the middle), but it has some minor issue. (max volume with resonance, no EQ actually, second headphone jack not working)
Of course, time is short so i have not yet tested some fancy features, like the HDMI port for both video and audio. I promise to do it as soon as possible and report.

Then there are some tough issues like blu ray disk playing that could/should need to deal someway with "digital right management" technologies. Let see how this script will develope.

Here my own configuration, and some quick linux advice



Note, Linux support..

 Processors

Intel®  CoreTM  2 Duo Processor T8100 (2.1GHz, 3MB L2 Cache, 800MHz FSB)

Working out of the box (both 32 & 64 bit kernel), virtalization not tested (but it was disabled in the bios, pay attention!)

Memory

4GB Dual Channel 667MHz DDR2 SDRAM

great! but you'll just use 3Gigs if you go 32bit kernel (both Linux or Windows!); need to get to 64bit for real stuff.

Chipset

Intel®  965PM Express Chipset

Working out of the box.. (at least for what i use..)

Graphics

Discrete Graphic Card: 256MB ATI®  Mobility Radeon HD 3450

The Ati open source driver is coming, i had some problem with Radeonhd X11 driver. It works with the old radeon module.
I have very high expectation about this component as ATI has improved greatly their open source commitment (docs for play)

 LCD Display

Glossy, widescreen 15.4 inch display (1280x800)

Working out of the box..

  Audio and Speakers

Intel High Definition Audio 2.0

NOW IT WORKS! Not working natively, maybe some quirks. see more notes at the bottom!

Hard drive

250GB configured with a 5400 RPM SATA 8MB hard drive. WDC WD2500BEVS-7

The Sata disk is unrecognized with Debian Etch netinst (kernel too old 2.6.18).
Had to use Debian Lenny beta2 netinst iso (2.6.24)!

Optical unit

Combo Optiarc DVDRW/BDROM BC-5600S

Fine for CD & DVD reading.. Need to test some CD burning, and what about blu ray disk playing? We want it running on linux too!

Power

6-cell 56WHr Li-Ion Battery


Wireless

Dell Wireless 1510 802.11n Half Mini-Card (Broadcom BCM4322!)

Not working natively. Hack with ndiswrapper could do something.. see more notes at the bottom.
There's an official Broadcom driver. "could work" who knows..

Bluetooth

Dell Wireless 370 Bluetooth Internal (2.0) mini-card

They seems these USB devices:
Bus 001 Device 004: ID 413c:8158 Dell Computer Corp. 
Bus 001 Device 003: ID 413c:8157 Dell Computer Corp. 


It's based on a broadcom BCM2046 chip too! It works on Debian/Linux if it is already on; if i get it down and up again, the Gnome desktop doesn't see it anymore.. is it a Gnome problem? i'll check.. see down at the kill switch paragraph

Webcam

SONiX Technology Inc. (Microdia) USB VID:PID 0c45:63fa

Seems workin with Linux-uvc! see more notes at the bottom

Ethernet

Broadcom Corporation NetLink BCM5784M

Working out of the box

Piezo (multimedia) keys nothing to see here.. HW related!
  • One (CD Eject) work always
  • Some keys (audio) works when radio kill-switch is off.
  • The others; no sign of life!
IR front port
is there a missing HW piece?
is this IR port also IRDA compliant (the legacy!)



Ports, Slots, Chassis

Externally Accessible

(4) USB 2.0 compliant 4-pin ports

HDMI connector

15-pin VGA video connector

Integrated network connector 10/100/1000 LAN (RJ45)

AC adapter connector

Audio jacks (1 line-in, 1-line out, 1 Mic-in)

4-pin IEEE 1394 port

54 mm ExpressCard slot

Consumer IR

Internal Card Slots

2 Mini-Card

1 Half Mini-Card


Dimensions & Weight

Width: 14.0" (355.6mm)

Height: 1.0" (25.3mm) front / 1.3" (33mm) back

Depth: 10.3" (261.5mm)

Weight: Starting weight of 6.11 lbs. (2.77 kg)6 (15.4" WXGA TL display, 6 cell battery, DVD +/- RW, integrated graphics). Weights will vary depending on configurations and manufacturing variability.

Some basic description files about the Dell Studio 15

Here i put a number of standard file, everyone can peruse to understand better what's going well or badl in this notebook:

Software tweaking to improve HW support

More often than not (but things are really improving) if you want to use the newest gears in your pc you can't just wait the cooked Linux distro as they can't cope with all the new hardware stuff going out on the market.

So you'll need to go out on the web, straight to the upstream hardware developers, understand if the geeks are already providing support for your bleeding edge stuff, and then get the latest package (a tar package if you are lucky.. otherwise you'll need to download straight from a concurrent versioning system.. ) and put it inside your system.

You should be aware, of course, that, acting this way, you are going outside the standard track, so you can't blame your distro packager if, later, after some upgrade cycle, things could break on you. Distro can't for sure prevent every single change from the standard upgrade management. Hey, they are already working for you for free. Please help them, for example, with Quality Assurance, Support and Evangelism.

Audio support

As the Changelog says that in 1.0.17 alsa-driver there's a greatly improved support for HDA-intel HW and various codec (like our 92HDXXX), i wanted to try it so i had to download the ALSA 1.0.17 driver and proceed with the good old way of patch a kernel:

wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.17.tar.bz2
tar tvfj alsa-driver-1.0.17.tar.bz2
cd alsa-driver-1.0.17
./configure
make
make install


the last step need to be done as root.

now, if everything is gone ok, you should download the old alsa driver and put in place the new one.
you can also reboot the system and things should go fine after.

And the audio card now plays very well! Hurrah (see at the bottom some more test and details)

I quickly tried to put all the usual model="" parameters during snd-hda-intel module load (dell, 3stack, 5stack, 6stack-digout) but they aren't needed.

By the way, there's already an entry for this "subdevice" (some pun intended?) 0x10280254  but it's just a fake entry and it works!

   hda_codec: model 'dell-m6' is selected for config 1028:254 (unknown Dell)

The chase is ended  only at the beginning! snd-hda-intel has a lot of potential configurations. it depends mainly on the codec; this one is a:

Codec: IDT 92HD73C1X5
Address: 0
Vendor Id: 0x111d7675
Subsystem Id: 0x10280254
Revision Id: 0x100202

Guess the link of these hda code is such a difficult task that there's a tool to render visually all the connections: codecgraph. I made my homework and sent the resultant svg but i didn't get an answer. It's for sure a tough task. If you know some more news, mail me at a dot venturi at avalpa dot com (please swap the dot with . and at with @)

[4.8.2008] How to debug the audio card!

Let's move along, on linux,  you are your better friend.
If you want debug messagges (remember to take back when we'll finish otherwise you'll clobber the disk!), you just need to add this parameter during alsa audio driver compilation:

       ./configure --with-debug=verbose

Then you'll find a lot of useful info abouth the auto-recognition of this card and how the codec play the streams when you launch your preferred mp3 player (with creative commons song of course!)
Now if only i could find a brief tutorial about this NID crazyness and the port/mixer mapping! Someone is looking to make it a user spacetools. There's a lot of speaking about how to move over fixed configuration.
Otherwise i'll need to dig in the Intel HDA specifications.. more than 170 pages of what?

[5.8.2008] The audio card start to play..

After some more test and trials, the audio internal speakers (IS) and headphones (HP) begin to play some sound. Hurrah!!

This is a known working amixer dump.

With standard 1.0.17 driver, with regard to mixer status, internal speakers (IS) and headphones (HP), this is what i can say (various test) from left to right in Alsamixer:
So much is still to be checked and worked on:
  1. works with the original debian kernel alsa driver? don't know. i zapped that stuff during alsa ugrade so don't have the time to come back. maybe some one can tell us.
  2. are the Mics (internal near webcam and Jack) working? it's easy to test, some day, when i'll try Skyp! :-)
  3. why the second HP (HP2) doesn't work? need to investigate
  4. can we (should we) have auto mute for IS when HP is inserted? maybe it can be done at an user preference level!

i found also the "other OS" configuration files from the Dell CAB driver.
Here we can see:

HDAUDIO\FUNC_01&VEN_111D&DEV_7675&SUBSYS_10280254=W92HDM61.ini

i.e. this Subsystem (10280254) is driven with this W92HDM61.ini file.

here it's an excerpt; seems interesting for people who have a clue:

...
[HKR\Settings\pin]
[HKR\Settings\Pin\0A]
CfgDflt = dword: 0x03211280
CfgCurr = dword: 0x0321121F
AltCfg = hex: 1F,12,21,03,80,12,21,03,1F,12,11,03
ExtAmpCtrl = hex: 00,05,02
[HKR\Settings\Pin\0B]
[HKR\Settings\Pin\0C]
CfgDflt = dword: 0x400003F0
[HKR\Settings\Pin\0D]
CfgDflt = dword: 0x90170310
[HKR\Settings\Pin\0E]
CfgCurr = dword: 0x03811230
CfgDflt = dword: 0x03111212
AltCfg = hex: 12,12,11,03,30,12,81,03,30,12,A1,03
Pathnode =  hex: 29
Action = hex: 0A,0E
Bias = hex: FF,04,02
[HKR\Settings\Pin\0F]
CfgDflt = dword: 0x0321121F
...


I really don't know how useful and realiable are the info included in this file (i believe they mix HW setup and software presets, so there's some cruft in it) Maybe are helpful. Let me know..
For now, for me, it's enough! Now some good time with my preferred audio apps!

[6.8.2008] After one day of movies and songs, i feel another problem. the max volume is too low compared to the Other OS driver. We need to do something, maybe a problem with external amp not correctly light up? who knows..


Luckily Mario Limonciello gave me the winning hint again; revert back this commit!
It's really  one-liner in the patch_sigmatel.c file; we need to let our subsystem 0x10280254 use the standard init struct dell_m6_core_init[] and not the soften dell_eq_core_init[]

This is the relevant change around line 3567:

// pay attention, potential distortion here..
case 0x10280254:
      spec->init = dell_m6_core_init;
      /* fall-through */
// case 0x10280254:

Lastly, there's support from the codec vendor, too! here you can find a huge pdf with all the magic about this codec.,
Is there something more we can do with this codec ? Maybe some default on the .ini files in the windows driver can help too. Let's find brighter ideas!

[7.8.2008] Today, i've been struggling a bit to have both (one at a time..) the internal and my external mic working through the line in jack input port. Let's se how we can do it.

This is an image of my working minimal alsamixer config input-wise (Capture would be the right word..) :
Alsamixer config for proper line in

This is the three relevant amixer entry:

Simple mixer control 'Mic Mixer',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 31
  Front Left: Capture 24 [77%] [1.50dB] [on]
  Front Right: Capture 24 [77%] [1.50dB] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 15
  Front Left: Capture 12 [80%] [18.00dB] [on]
  Front Right: Capture 12 [80%] [18.00dB] [on]
Simple mixer control 'Digital',0
  Capabilities: cvolume
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 120
  Front Left: Capture 86 [72%] [13.00dB]
  Front Right: Capture 86 [72%] [13.00dB]

You can get the right result with these three easy amixer lines:

amixer sset 'Mic Mixer' 80% cap
amixer sset 'Capture' 80% cap
amixer sset 'Digital' 80%

Now, there's a switch to change from internal mic (the ones on the bezel next to the webcam) to the external Mic JACK (you need more hardware, like an external mike for that to work!), it's called 'Digital Input Source' (index=0)

andrea@nb-andrea:~/progetti/dell/studio15$ amixer sget  'Digital Input Source'
Simple mixer control 'Digital Input Source',0
  Capabilities: enum
  Items: 'Analog Inputs' 'CD' 'Digital Mic 1' 'Digital Mic 2'
  Item0: 'Digital Mic 1'

If you want to get the input from the embedded internal Mic next to webcam, you'll give:

amixer sset 'Digital Input Source' 'Digital Mic 1'

If you want to get the input from the External Mic Jack, you'll give:

amixer sset 'Digital Input Source'  'Analog Inputs'

Conclusion!

That's all for now. We finally have:
Just a complain. There's should be really a better way to clearly label these controls or, at least, to abstract this stuff on a decent GUI (all the gnome & kde GUI are already great..) with a correlation between Official Names and Real Features for the end user.
There's some work for an usability designer or engineer!

Webcam support

The webcam is not supported out of the box, but neither it's too diffcult to find the solution.

This web camera is a standard linux-uvc compatible camera. Debian already support the module but outside the packaged kernel.
So you need to installa a source package called linux-uvc-source and compile it on the fly.

 apt-get install linux-uvc-source
 module-assistant auto-install linux-uvc
 modprobe uvcvideo

Of course you do need a bunch of development tools, like compilers, kernel header and so on.

It should be all installed when you install module assistant:  apt-get install module-assistant

When the linux module uvcvideo is compiled, you should see some succesful message here in dmesg:

[10457.275897] uvcvideo: Found UVC 1.00 device Laptop_Integrated_Webcam_2M (0c45:63fa)
[10500.755024] input: Laptop_Integrated_Webcam_2M as /class/input/input12
[10500.765802] usbcore: registered new interface driver uvcvideo
[10500.765812] USB Video Class driver (v0.1.0)

If you want to test it, use the software called uvccapture (apt-get install uvccapture) and you should see your face (simley or hangry, i don't know!) on the screen.

Bluetooth Adapter and something about Multimedia keys and "kill switch" for wireless adapters (some glitches)

In this laptop there are two standard features which present some mixed interference. I'm writing here about it as a note, maybe we can find later if we can decouple the effects. For now it's acceptable.
Now, the problem is that if i kill radio sliding down the button on the left, i lose a number of devices from the USB stack (like the piezo keys). This is what i get on dmesg, positively, when i light on the kill-switch:

...
[17001.409224] hub 6-0:1.0: unable to enumerate USB device on port 1
[17001.654609] usb 1-1: new full speed USB device using uhci_hcd and address 2
[16495.458310] usb 1-1: configuration #1 chosen from 1 choice
[16495.462556] hub 1-1:1.0: USB hub found
[16495.464393] hub 1-1:1.0: 3 ports detected
[16495.570421] usb 1-1: New USB device found, idVendor=0a5c, idProduct=4500
[16495.570433] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[16495.570435] usb 1-1: Product: BCM2046B1
[16495.570436] usb 1-1: Manufacturer: Broadcom
[16495.770175] usb 1-1.1: new full speed USB device using uhci_hcd and address 3
[17002.260273] usb 1-1.1: configuration #1 chosen from 1 choice
[17002.267470] input: HID 413c:8157 as /class/input/input12
[17002.312131] input,hidraw1: USB HID v1.11 Keyboard [HID 413c:8157] on usb-0000:00:1a.0-1.1
[17002.312196] usb 1-1.1: New USB device found, idVendor=413c, idProduct=8157
[17002.312199] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[16496.142215] usb 1-1.2: new full speed USB device using uhci_hcd and address 4
[17002.643604] usb 1-1.2: configuration #1 chosen from 1 choice
[17002.650066] input: HID 413c:8158 as /class/input/input13
[17002.675731] input,hidraw2: USB HID v1.11 Mouse [HID 413c:8158] on usb-0000:00:1a.0-1.2
[17002.675838] usb 1-1.2: New USB device found, idVendor=413c, idProduct=8158
[17002.675842] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
...

as you can see, there's the bluetooth adapter, but there are too two "input adapters" (a keyboard and  a mouse !)
[6.8.2008] I had a thread in the linux-desktop (it's a bit misleading as a title) mailing list with Dell's Mario Limonciello (many thanks to him) about this HID devices and i've been told an interesting story. This devices are "fake" devices from the BT adapter so, if you have a BT mouse and keyboard, you can use them also at boot/bios time without OS knowledge and management. This is a renowned Apple feature too.
As you can see now with:

andrea@nb-andrea:~/progetti/dell/studio15$ hcitool scan
Device is not available: No such device

the BT adapter can't be seen by Linux.

If you want to use the BT adapter as HCI, you'll need to give a magic commandas root: hid2hci

andrea@nb-andrea:~/progetti/dell/studio15$ sudo hid2hci
Switching device 413c:8158 to HCI mode was successful
andrea@nb-andrea:~/progetti/dell/studio15$ hcitool dev
Devices:
    hci0    00:1F:3A:D5:54:94


If the switch is onWith regard to piezo keys, i already can raise, reduce and mute the volume with the piezo keyboard (and it's supported by gnome with a fancy animation on the screen)
And i get some unsupported keycodes, pressing the Wi.fi catcher on the left side of the hinge:

[18091.421474] atkbd.c: Unknown key pressed (translated set 2, code 0x91 on isa0060/serio0).
[18091.421474] atkbd.c: Use 'setkeycodes e011 <keycode>' to make it known.
[17566.606013] atkbd.c: Unknown key released (translated set 2, code 0x91 on isa0060/serio0).
[17566.606021] atkbd.c: Use 'setkeycodes e011 <keycode>' to make it known.

and pressing the "Fn-Right Arrow"  combinatin (that's should raise the keyboard night light, in my laptop it doesn't work! :-| ) i get:

[18683.853412] atkbd.c: Unknown key pressed (translated set 2, code 0x8c on isa0060/serio0).
[18683.853420] atkbd.c: Use 'setkeycodes e00c <keycode>' to make it known.

BTW there's no "release event" for this key!

The other piezo keys don't send any relevant event on the /var/log/messages file.. maybe they are already supported? But there's no app coming out saying "let's play".  Need to dig further..

Another little glitch from a software point of view: when the bluetooth adapter return to life, Gnome doesn't switch on the bluetooth stack software. If i raise the BT application manually, it still says it does not see any adapter on board!
If you want to use the BT adapter with your Phone in HCI mode you have to give the hid2hci command as super-user!

Wifi: the Broadcom BCM4322 nitghmare

This is the only nasty tale.

We Free&Open source customers (like linux users) are really tired of "dragging-their-feets" hardware producers.
I'm going to complain to Dell about it every day, so Dell will push better this concept in the head of these picky producers (or change totally their HW choice )



Today i happily use a linksys/cisco WUSB54GC 802.11g USB external adapter (USB) (using ralink module)

Usb wiki adapter

As of 30 july 2008, i refuse to "try" to have my broadcom chip work halfway with crappy solutions like ndiswrapper and make my system totally unreliable.
If you want to try it, i'll write soon or later my two advice from my experience.


I've been told of a linux driver straight from Broadcom! I'll try when i'll have some very very spare time.. If someone has tried it please give some hint!

Broadcom Forbidden



External hardware supported (not plug and play..)

We all say that hardware support in linux is getting better, but sometime there's still some glitch.

Here i speak about the worst things i'm trying to use under linux. Some time i win, sometime i'm still losing but there's always hope!

Usb serial port HL-340

As this notebook doesn't have any legacy port (no serial RS232, no parallel port AKA ieee1294, no more PSTN modem) i have to find alternatives as sometime i need such stuff.

A usb serial cableThe first piece i had to tweak a bit is an USB-serial converter called HL-340:

It seems an easy task, as we believe RS232 to be a standard module in linux usb-core. Not at all!

If you plug the cable in an USB port, you get ti recognized as a Prolific PL-2303 cable. It seems right out of the box, but it does not work.

You get always bad character in the serial line program like minicom. Don't know way.

If you want to use this cable, you need to blacklist this preferred driver in the kernel linux. I.e. Put a blacklist pl2303 line at the bottom of /etc/modprobe.d/blacklist and you'll find, next time you link the cable, that it gets a more friendly ch341 module. This works! I spent so much time and i found the solution here.

Lifeview animation flytv_express_m5_mst_t2a2

Express card DVB-t tuner

As i work in digital television, and as this laptop has a huge express card bay (the 56mm and not the 36mm..) i purchased the top of the line of the combo card from animation: the flytv express_m5 mst t2a2. (local pdf)
It should be the top, as it has dual dvb-tuner and dual analog (composite and s-video) line in.
Is it supported by linux? Not now.. :-|
Anyway, things as usual are progressing.
It's based on a PCI express bridge called Saa7162 (now already discontinued!), so it's not a fake USB adapter in an Express Card case, as other DVB-T combo adapters are! (with obvious bandwidth bottleneck, for example for analog PAL framebuffer acquisition!)
The driver is slowly developing from this web site (Thanx to Manu Abraham).

I just downloaded and compiled succesfully but i didn't tried to run it. I'll tell later how it goes. I believe it's a bit early, anyway.


Things to be done..

Many things could be improved, of course, and tested too.

So much things to do. But all reasonable and in a short term too.

Things are changed a lot in linux camp since the early days.

Kudos to all the hardcore people who made it possible. You are great!

Andrea Venturi (a dot venturi at avalpa dot com)

Tell me for any thing should be uncorrect or changed since 6.8.2008 (sunny august and the holidays are here!)