Page 1 of 1

wireless resume woes again - with solution

Posted: 20 Sep 2011, 22:08
by mikebl71
Hi
I've installed the latest kernel and samsung-wireless recently
and noticed that the wireless does not come back after suspend-resume (again).

I've got
* Samsung N140
* kernel 2.6.38-11.49~ppa1~loms~natty
* samsung-wireless 0015.1013.2010~ppa2~loms~natty

I've done some investigations and found that dkms is doing a rather lousy job at renaming the driver. As was discussed in [http://www.voria.org/forum/viewtopic.php?f=3&t=593], the linux kernel now has a driver called "r8192e_pci", so the samsung-wireless has to use a different name ("r8192e_pci_realtek") to avoid confusion. Samsung-wireless now uses dkms, so it builds the module as "r8192e_pci" and expects dkms to rename it into "r8192e_pci_realtek" when installed. However, as it seems, this does not really work as expected. When the driver is installed into the kernel, the file is indeed called "r8192e_pci_realtek.ko". But the module name inside it is not changed. So, when the module is loaded, lsmod still lists it as "r8192e_pci".

That does not really bother anyone until we come to suspend/resume. During suspend, the /usr/lib/pm-utils/sleep.d/75modules script finds the "r8192e_pci" module in the list and unloads it. And later, at resume time, it dutifully tries to load back the driver which it remembers as "r8192e_pci". And sure enough it loads the "r8192e_pci" from kernel, NOT the "r8192e_pci_realtek" from samsung-wireless. So nothing good comes out of this.

Unfortunately, I could not find how to fix dkms. So the only solution I could come up with was to change the realtek's makefile to build the driver as "r8192e_pci_realtek" so that no renaming is necessary.

What I've done is

Code: Select all

 cd /usr/src/samsung_wireless-0015.1013.2010 
  sed --in-place -e 's/r8192e_pci/r8192e_pci_realtek/' HAL/rtl8192/Makefile
  sed --in-place -e 's/"r8192e_pci"/"r8192e_pci_realtek"/' dkms.conf
  # rebuild
  dkms remove -m samsung_wireless -v 0015.1013.2010 --all
  dkms add -m samsung_wireless -v 0015.1013.2010
  dkms build -m samsung_wireless -v 0015.1013.2010
  dkms install -m samsung_wireless -v 0015.1013.2010
This fixed the suspend/resume for me.

VoRia, if you agree, could you please make this change in the package.

Re: wireless resume woes again - with solution

Posted: 20 Sep 2011, 23:04
by voria
Done. I've just uploaded samsung-wireless 0015.1013.2010~ppa3~loms~natty to the repository.
Thank you for reporting the problem. ;)

Re: wireless resume woes again - with solution

Posted: 22 Sep 2011, 09:19
by mikebl71
Verified. All cool.Thanks for the quick response.