- Acid Test by Quixote - http://www.molvray.com/acidtest -

Broadcom wifi, Nvidia graphics, and suspend on LinuxMint Debian testing/squeeze on an HP Ideapad S12

This is a notes-to-myself post so that the next time I need this info, I have some idea where to find it.

Broadcom wireless

Followed primarily the instructions on the Debian wiki: https://wiki.debian.org/bcm43xx [1]

sudo apt-get install firmware-b43-lpphy-installer

Installs everything nicely. Reboot for new settings to take effect.

But it still didn’t work. Solved here: http://forums.linuxmint.com/viewtopic.php?f=194&t=92360 [2]. In /etc/network/interfaces, comment out everything except “auto lo” and “iface lo inet loopback”. “allow eth0 hotplug” can also stay.
(All the other wireless-related lines were to fix other *old* problems….) If you haven’t futzed with that file in the dim, forgotten past, you’ll probably be fine with just the debian wiki instructions.

Nvidia graphics

Started in debian wiki:
https://wiki.debian.org/NvidiaGraphicsDrivers#Version_304.88 [3]

Find out exact model of graphics card and check debian wiki links to lists of cards and which commands to use:
sudo lspci -nn | grep VGA
(S12 has Nvidia ION (Geforce 9400 M))

# aptitude -r install linux-headers-$(uname -r|sed ‘s,[^-]*-[^-]*-,,’) nvidia-kernel-dkms
“This will also install the recommended nvidia-glx package. DKMS will build the nvidia module for your system.”
However, there was no xorg.conf.d directory as implied under “X server configuration file”
So did not make a /etc/X11/xorg.conf.d/20-nvidia.conf file as suggested.

Instead followed guide of proxima-centauri on lmde forums [4],
BUT left out “nvidia-kernel-dkms nvidia-glx” since those already installed. “build-essential” was already installed on my system.

sudo apt install nvidia-kernel-dkms nvidia-glx build-essential nvidia-settings nvidia-xconfig

When done, execute nvidia-xconfig in terminal.
sudo nvidia-xconfig

Then blacklist:
sudo echo blacklist nouveau > /etc/modprobe.d/blacklist-nouveau.conf

Then reboot for settings to take effect.

Some VGA resolution weirdness during bootup, but once booting is complete, looks fine.

Suspend

Debian wiki says “hal” package conflicts with power management [5] and isn’t needed anyway. Uninstalled, but still doesn’t suspend.

Then tried the following script [6] of John Dias and brocktice to unload all usb modules and now it works. First ran lsmod (list modules) to see which usb drivers were active on my system (ehci_hcd and ohci_hcd).

Saved the following to /etc/pm/sleep.d/20_custom-ehci_hcd, then substituted “ohci” instead of “ehci” and saved to /etc/pm/sleep.d/20_custom-ohci_hcd

#!/bin/sh
# File: "/etc/pm/sleep.d/20_custom-ehci_hcd".
TMPLIST=/tmp/ehci-dev-list

case "${1}" in
hibernate|suspend)
echo -n '' > $TMPLIST
for i in `ls /sys/bus/pci/drivers/ehci_hcd/ | egrep '[0-9a-z]+\:[0-9a-z]+\:.*$'`; do
# Unbind ehci_hcd for first device XXXX:XX:XX.X:
echo -n "$i" | tee /sys/bus/pci/drivers/ehci_hcd/unbind
echo "$i" >> $TMPLIST
done
;;
resume|thaw)
for i in `cat $TMPLIST`; do
# Bind ehci_hcd for first device XXXX:XX:XX.X:
echo -n "$i" | tee /sys/bus/pci/drivers/ehci_hcd/bind
done
rm $TMPLIST
;;
esac

Did not unload any other modules or do anything else. Note that the output of /var/log/pm-suspend.log made me think that 99video and 98video-quirks was somehow at fault, because they were suspended/resumed right at the sleep/wake point. But no. Apparently not.