Radeon HD 7xxx, Intel 4000, BCM43142 (Dell 15R 5520 laptop)

Questions about hardware and drivers
Forum rules
Before you post please read how to get help

Radeon HD 7xxx, Intel 4000, BCM43142 (Dell 15R 5520 laptop)

Postby jasmineaura on Tue Sep 11, 2012 2:02 am

Ok Hell, dunno where to start

This is a Dell Inspiron 15R 5520 Laptop, HM77 express chipset (ivy bridge) with 3rd generation core i5 3210M, Radeon HD 7670M, and Dell's wifi/bluetooth based on new BCM43142 chip (14e4:4365)

Wifi/Bluetooth -- Unreleased driver (ubuntu debs) form Dell:

Got Wifi/bluetooth working (with the LMDE-standard 3.2.0-2-amd64 kernel) using custom deb's that dell preinstalled on Ubuntu 11.10 that shipped factory-installed on this laptop. See the following post for details on that, and other, relevant proprietary dell packages I took note of: http://ubuntuforums.org/showthread.php? ... st12229363
To get the same wifi dkms driver to compile on a 3.4.x (liquorix) kernel, see my note in the post right after it: http://ubuntuforums.org/showthread.php? ... st12230953

Apparently this also applies to the Dell Vostro 3460, as noted by the kind person who uploaded the deb's from Dell's ubuntu install

Intel / ATI graphics

i915 module & wrong x-offsetting of the Console/X Screen(s)

Out of the box, either post-install or when running from LMDE 201204 livedvd, both console and X screens are offset considerably to the right, causing the screen to wrap around the left side. The wrong xoffset-ing (to the right) happens as soon as i915 module takes over, and so the problem appears soon as the framebuffer kicks in, so definitely before X kicks in.
It looks like this: http://www.politreco.com/files/IMG_20110610_090045.jpg
I didn't take that picture. I got it from this, over-a-year-old thread: http://us.generation-nt.com/answer/i915 ... 91202.html

Editing /etc/modprobe.d/i915-kms.conf and changing modeset=1 to modeset=0 and rebooting fixes this issue, and then the console, followed by the display-manager shows properly (centered) on the screen. But the virtual consoles are gone!! Meaning, if I try to switch to consoles with Shift+F# keys (1 to 6), I am stuck at a greyish background, kind of like the color of the background of the display-manager (mdm in the case of LMDE).

For that, I had to upgrade to liquorix kernel 3.4.0-10, and the wrong x-offsetting issue with the i915 module loaded was resolved, and I no longer had to disable modeset.

Note: As LMDE only provides fglrx 12-2, I couldn't get my card (HD 7670M) to work with that driver, as support for HD 7600M series was only added recently (in fglrx 12.4). See this

Installing latest fglrx driver from AMD's site, which happens to be 12.8 as of date, obviously didn't work with either the LMDE 3.2.x kernel nor the Liquorix 3.4.x, as I later realize, it requires kernel 3.5, and of course more recent xserver version. I did get it to compile on 3.4.x iirc, but X would segfault when trying to start it with fglrx module.

Getting FGLRX working with liquorix 3.4.x kernel (didn't bother anymore with 3.2.x):

1. Adding debian unstable to /etc/apt/sources.list
Code: Select all
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free

`sudo apt-get update`

2. `sudo apt-get install fglrx-driver fglrx-control `
this, as of date, gives working Catalyst driver 12.6.
and optionally update X from 1.11.x to 1.12.x -> `apt-get install xserver-xorg xserver-xorg-core`

3. `sudo aticonfig --initial`

4. reboot, and optinally -> `sudo amdcccle` for Catalyst control center

And when done, of course you need to uncomment the debian unstable line and re `apt-get update`


Remaining Issues: power consumption and inability to switch properly between Intel<->Radeon

If i try to switch to the intel card , whether with `amdcccle` (catalyst control center -- gui), or from cli via "aticonfig --px-igpu", xserver fails to start upon restarting it, complaining it couldn't find fglrx module. Go figure! Only way to get it working again with intel card is by `rm /etc/X11/xorg.conf` and restarting X
Still, the intel, even in idle, generates noticeably more heat and drains my battery a lot faster than the Radeon (with fglrx), despite enabling all i915 power-saving features (rc6 / fbc / lvd_downclock) via module options (/etc/modprobe.d/i915-kms.conf). I did also added "pcie_aspm=force" to kernel linux in /etc/default/grub, but doesn't seem to make much of a difference.

So I guess I'm asking is it normal that AMD's proprietary driver for the DISCRETE chip offers better power-conserving than the opensource intel driver for the INTEGRATED chip? It's not making sense to me.

It also seems that the fan is always running high, which is something I have yet to figure out, as this is another obvious hit to battery power (in comparison to Win7 operation).

If it matters, here's the VGA stuff:
$ lspci -nn | grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation Ivy Bridge Graphics Controller [8086:0166] (rev 09)
01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Thames XT/GL [Radeon HD 7600M Series] [1002:6840]


Any help, suggestions or explanations on the last 2 issues (switching & power) would be greatly appreciated.
User avatar
jasmineaura
Level 2
Level 2
 
Posts: 60
Joined: Thu Mar 08, 2012 3:38 am
Location: Cairo, Egypt

Linux Mint is funded by ads and donations.
 

Re: Radeon HD 7xxx, Intel 4000, BCM43142 (Dell 15R 5520 lapt

Postby jasmineaura on Thu Sep 13, 2012 3:53 am

Now using kernel 3.2.0-3-amd64 (3.2.23-1) from mint's "incoming" repo, which fixes the aforementioned wrong x-offsetting issue with the i915 driver from kernel 3.2.0-2 (3.2.9-1), and seems a little better at power-management on this laptop than liquori 3.4 or 3.5 kernels :)

I have also updated the bcm43142 driver package, with the following changes:

1. One-line change of the call ndo_set_multicast_list to ndo_set_rx_mode as described here , so that it compiles on Kernels 3.2.x. This seems more proper than commenting out the line that uses the said call as others have done!
2. Incorporated my minimal change so that it compiles on kernels 3.4.x (Might need a few more changes to compile on 3.5.x?)
3. Updated md5sum of the modified wl_linux.c file (per 1 & 2 above)
4. Removed "oneiric" (which is reference to Ubuntu 11.10) from package name, and all directory & path-names everywhere in the package contents, as it is no longer ubuntu/oneiric -specific.

Get the updated deb: http://jas.gemnetworks.com/debian/wirel ... _amd64.deb

As of date, the bug report on ubuntu (#923809) to add the said driver/version is confirmed but still unresolved.
User avatar
jasmineaura
Level 2
Level 2
 
Posts: 60
Joined: Thu Mar 08, 2012 3:38 am
Location: Cairo, Egypt

Re: Radeon HD 7xxx, Intel 4000, BCM43142 (Dell 15R 5520 lapt

Postby jasmineaura on Sat Sep 22, 2012 2:40 pm

Have confirmed the (updated) driver deb package -- mentioned above -- compiles on kernel 3.5.x as well. Hopefully this will solve the freezes I've been having with 3.2.x :)

Issue: Fan always running in Linux (LMDE, the factory-installed Ubuntu Oneiric, and reportedly SUSE)
Have confirmed the fan always running issue is kernel-level, and have confirmed the following works (in stopping the fan, and running less often) with kernels 3.2 - 3.5:
1. Enabling SATA ALPM
Code: Select all
echo "min_power" | tee /sys/class/scsi_host/host*/link_power_management_policy

(or sudo tee if you're not on root shell)

Typically one only needs to do it on host0 only, but it doesn't hurt to do it as above, just to be sure.

Yes, as it's strange as it sounds, the only way I could get the fan to quite down is with enabling SATA ALPM (Agressive Link Power Management) -- the min_power used above. Unfortunately, medium_power doesn't help. max_performance is the default and is what keeps the fan always running for some odd reason. But, since this happens to be a laptop, this may be a good idea anyway as it shaves a good 0.7-1.5Watts off your power consumption when you running on batteries.

2. Turn off bluetooth (~1W)
Code: Select all
# rfkill block bluetooth


3. Enable Integrated GPU (i915) power-savings and turning off Discrete GPU (radeon) by default. (~10W)

Integrated GPU (Intel HD 4000) / Discrete GPU (Radeon HD 7670) power-savings:
Another thing to help with power/heat, is power savings options of the integrated GPU - intel HD 4000 kernel module; i915

/etc/modprobe.d/i915-kms.conf
Code: Select all
options i915 modeset=1 i915_enable_rc6=1 i915_enable_fbc=1 lvds_downclock=1 semaphores=1


/etc/modprobe.d/radeon-kms.conf
Code: Select all
options radeon modeset=1


modeset is necessary (along with opensource radeon driver) for vgaswitcheroo to work. Make sure debugfs is mounted to be able to use vgaswitcheroo. If not, add it to fstab so that its mounted at boot:
Code: Select all
# needed for vgaswitcheroo
debugfs               /sys/kernel/debug   debugfs   defaults   0   0


That way, you can disable the discrete graphics when not needed via:

Code: Select all
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
echo MIGD > /sys/kernel/debug/vgaswitcheroo/switch
echo IGD > /sys/kernel/debug/vgaswitcheroo/switch
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch


This 2nd OFF may not be needed, unless scripting, to avoid possible blanking on resume. You may want to run this in startup, for default boot to be more energy efficient (and quiter fan operation).

I add "/usr/local/bin/switch-intel" command in /etc/rc.local , which is a little script I made to do the above automatically at boot (before X / MDM)
Create that file with the following contents, and make it executable with chmod +x intel-switch:
Code: Select all
#!/bin/bash

switch=/sys/kernel/debug/vgaswitcheroo/switch

if [ "$1" = "restartx" ]; then
  echo "Stopping Display Manager before switching cards" >&2
  service mdm stop
fi

#service mdm stop

echo OFF > $switch
echo MIGD > $switch
echo IGD > $switch
echo OFF > $switch

if [ "$1" = "restartx" ]; then
  service mdm start
fi

exit 0


Another script, /usr/local/bin/switch-amd to optionally switch to to the radeon, and can use switch-intel to switch back, at runtime. To take effect though if you run it while in X, you need to supply the argument "restartx" to effectively restart the display manager (MDM) and X, and change GPU in use.
Code: Select all
#!/bin/bash

switch=/sys/kernel/debug/vgaswitcheroo/switch

if [ "$1" = "restartx" ]; then
  echo "Stopping Display Manager before switching cards" >&2
  service mdm stop
fi

echo OFF > $switch
echo MDIS > $switch
echo DIS > $switch
echo OFF > $switch

if [ "$1" = "restartx" ]; then
  service mdm start
fi

exit 0


WD10JPVT Constant Head-parking:
N.B. If your laptop came with Western Digital Blue drive, check drive's SMART data and make certain Load_Cycle_Count (attribute #193) isn't increasing rapidly (like 50 / hour or more).
Code: Select all
smartctl -A /dev/sda | grep ^193


If it is, your drive may also be factory-shipped with 8-sec "IntelliPark" bug-feature, which is a really bad idea if there's something accessing your drive every few seconds, as the drive will repeatedly park and unpark which will inevitably shorten your drive's lifetime.

There's wdidle3.exe tool from Western Digital (DOS only tool), and there's idle3-tools package -- apt-get install idle3-tools -- (executable idle3ctl) for Linux, for changing the timeout in the drive's firmware. You can increase the idle3 timeout to something sensible, at least 2-3 minutes. Change by either tools requires a complete power-off and power-on for the change to take effect. A restart simply won't do. Glad I noticed this early on.

just my 2 cents with this laptop so far. In my next post I plan to cover comprehensive power management, to try and match the lowest power consumption in Windows 7 at idle (an impressive 8.6W at idle, down from 9.2W before optimizing running background processes / services).
User avatar
jasmineaura
Level 2
Level 2
 
Posts: 60
Joined: Thu Mar 08, 2012 3:38 am
Location: Cairo, Egypt

Re: Radeon HD 7xxx, Intel 4000, BCM43142 (Dell 15R 5520 lapt

Postby jasmineaura on Thu Sep 27, 2012 10:52 am

Using kernel 3.6-rc7 I can confirm that power regression in 3.4.x/3.5.x is FINALLY FIXED. That is, with 3.6-rc7, I'm getting idle power usage relative to that I was getting on 3.2.0-3 -- in the 9W range (comparable to win7, yay) -- and so far without freezes.

However, the dreaded, unpublished broadcom-sta-dkms driver (6.20.55.19) triggers new bugs with wpasupplicant 1.0-2 and this new (development) kernel.
As I already had a report to debian to add this new driver, I followed up on it and added linux-wireless to the list:
http://bugs.debian.org/cgi-bin/bugrepor ... =688823#10
Though I probably can't be helped given the proprietary nature of this driver.
Also on ubuntu: https://bugs.launchpad.net/ubuntu/+sour ... bug/923809

So:
3.2.x = Total lock-ups
3.3.x = EOL
3.4.x = power-regression
3.5.x = power-regression
3.6-rc7 = no wifi

I'm so doomed :D
User avatar
jasmineaura
Level 2
Level 2
 
Posts: 60
Joined: Thu Mar 08, 2012 3:38 am
Location: Cairo, Egypt

Re: Radeon HD 7xxx, Intel 4000, BCM43142 (Dell 15R 5520 lapt

Postby lizbeth on Fri Oct 26, 2012 9:51 pm

I realise that most of what you are doing is over my head. i would only say that Catalyst 12.11 Beta is available from AMD. And adresses many issues with HD 7xxx cards

http://www2.ati.com/drivers/beta/amd-dr ... x86_64.zip

Read here: http://support.amd.com/us/kbarticles/Pa ... river.aspx
lizbeth
Level 4
Level 4
 
Posts: 314
Joined: Thu Mar 31, 2011 5:44 pm


Return to Hardware Support

Who is online

Users browsing this forum: No registered users and 0 guests