RSS Feed

September, 2008

  1. debugging a problem

    September 25, 2008 by Oğuz Yarımtepe

    Today i realised that there may be some other factors that is causing the problem on your system other than software itself. Let me explain a bit more. I have been working on a netbook project that will be on the market soon with Ubuntu Netbook Remix installed. I have been dealing with the wireless adapter that will be plugged on netbook for a while because although the driver is compiled and installed without errors, somehow it was not possible to use it for Internet connection. Indeed the situation is explained as a bug at Launchpad, and i was not the only one suffering from it. But the driver was working on the Ubuntu Hardy sytem without errors with the same adapter. I was thinking that the reason may be either from the driver itself, because there were some “No Rx description available” messages at the syslog output, or from the kernel itself, because the system was atom based and the kernel is an lpia one. There was also another main problem that the system was not able to come out from suspend mode when the adapter is plugged. I first thought it may be a driver issue and decided to disable the wireless adapter at the sleep scripts. So i checked the /usr/lib/pm-utils/sleep.d directory and added a 01wireless script that will disable and unload the module and if the operation is a resume, will reload the module and up the adapter. It didn’t make any sense at the situation. The next thing was checking the driver. There was also a rtl-wifi drivers on the net and the Realtek one seems a fork of this driver. So i started to check the code, check the dmesg and kern.log outputs to guess what can be the problomatic thing. Then i suddenly remember the suspend problem also happened even i haven’t installed the driver ! I just didn’t give enough importance to that at that time thinking to compile and run the driver as soon as possible. I plugged the adapter out and tried. Now that time it was possible to wake from sleep up. I asked my colleague, who is working on the hardware design, to check the PCB if there are any errors. And voila ! There was a voltage leak, protecting the adapter waking up from sleep. At the new layout this problem was recovered. No one had thought this may be a problem about suspend because at the tests with windows the system was waking up.

    Then i changed the PCB with the new one and started to try the adapter on this system. This time the adapter was not able to detect any SSIDs at the wlan ! Same driver same adapter, a few minutes ago were able to scan the wireless network, but now it was not possible. I checked the syslog messages via tail -f and inserting the wireless module to the kernel. The message was strange because it was saying “the driver is not possible to scan SSIDs” ! Then i decided to think what had changed. BIOS was updated to a new release, there may be something wrong. I asked some information about the new release and the BIOS team said they didn’t see any problems with the wireless. Ok what else? Nothing indeed. I decided to be sure the adapter is working correct. There was already an open system which is being used by my BIOS developer colleague. I asked him whether he was able to scan the network via the wireless adapter. He hessitated and said yes, indeed he was not possible at first try, he started to scan after pluging the battery ! Ok my battery is not plugged and this may be a problem. I asked him to try. We plugged the battery, and guess what, there was no scan results. We decided to think what can be the problem. He then started to repeat what he did at that time. One of his actions was suspending the system. After waking up from suspend the adapter was scanning ! It happened on the win$ system. But i was surprised. There was something wrong with the BIOS. I haven’t tested the suspend thing at Ubuntu system yet. But today i learned that there may be hardware or BIOS related problems causing the problem at your system, especially if you are working on an open system that is being developed each time 🙂