Why Is Linux Notebook Battery Life Still Poor?
Ganty writes "I recently purchased a Lenovo W500 notebook, and after 'downgrading' to XP and creating a dual partition, I found that I had a battery life of nearly three hours using the long-life battery, at this point I was a happy camper because it means that I can watch a DVD during a flight. I then tried various Linux distributions and found the battery life under FOS to be very disappointing, with an average of 45 minutes before a warning message. After settling on Ubuntu I then spent three days trying various hardware tweaks but I only managed to increase the battery life to one and a half hours. Unwanted services have been disabled, laptop mode has been enabled, the dual core CPU reduces speed when idle and the hard drive spins down when not needed. Obviously Apple with their X86 hardware and BSD based OS have got it right because the MacBooks last for hours, and a stock install of MS Windows XP gives me three hours of life. Why is battery life on notebooks so poor when using Linux? Some have suggested disabling various hardware items such as bluetooth and running the screen at half brightness but XP doesn't require me to do this and still gives a reasonable battery life."
I may sound like a jerkwad here, but why waste all that battery power watching a dvd when you could watch the divx version off local storage?
Linux is a popular choice for netbooks, where battery life is paramount.
You mean "was", until Microsoft decided to keep Windows XP alive in the North American market for a few more years at bargain-basement prices per copy.
This is just the same problem Noted in XKCD.
Good battery life is not cool. Open source software, especially a mutt like linux, is all about cool.
Good battery life requires annoyingly huge amounts of microoptimizations and chipset-dependent tricks. Which is most definatly NOT cool.
Test your net with Netalyzr
It always cracks me up when WHOOOSH!
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
Is the kernel compiled to be tickless? http://kerneltrap.org/node/6750
We need a -1 TrollFeeder option
"A person is smart. People are dumb, panicky dangerous animals and you know it." - K
And people expect an average computer user to want to use Linux when they have to make sure their kernel is compiled right to do basic power management?
Ding Ding Ding. We have a winner folks. This is the answer. You need to have a tickless kernel otherwise the tick timer keeps the CPU from ever making it to those deep C states for any decent amount of time. In effect, the kernel keeps asking everything,"got anything for me". The CPU equivalent of "are we there yet" or "can you hear me know".
Who are you? The new #2 Who is #1? You are #617565. I am not a number, I am a free man! Muhahaha.
And people expect an average computer user to want to use Linux when they have to make sure their kernel is compiled right to do basic power management?
No, you expect the average computer user to install the mobile or laptop version on a laptop, which come premade specifically with optimizations like these.
One size does NOT fit all.
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
But why should the average user have to worry about tickless
after all other OSs figure out your hardware and install the right options. A distribution could worry about the user experience and take care of this automatically or, at worst, ask you if you are installing on a battery powered system.
There is utility in having one entity responsible for the ease of installation and not punting it to the varying knowledge/skill levels of the user.
If Microsoft and Apple can do it....
It is notoriously hard to work with power management features of notebooks, because it is hard to find a really ACPI-compatible BIOS. Most of them are broken in some way, or require undocumented voodoo and magic values to behave. There is really no solution to this unless: a) Manufacturers get their shit together and ship functioning hardware, not hardware that accidentally happens to work under Windows (systemic approach); b) Linux gets more mindshare and those issues get sorted out on a per-device basis (band-aid approach). a) is very unlikely, since shipping functioning hardware brings no obvious reward to the manufacturer. Therefore we can only hope for b).
Note that this is not limited to ACPI. In almost every area, there are hardware products that do not comply with specifications they are supposed to comply with, lie about supported features when probed, have bogus device descriptors, reuse the product ID of a different device, do stupid things when supplied valid commands it doesn't expect, etc.
Those who would give up liberty to obtain working drivers, deserve neither liberty nor working drivers.
Would you? Really? Cause I have been using Linux exclusively for my servers, desktops and notebooks for years and I didn't know there was a "laptop" ubuntu. Or suse. Or redhat.
Actually, I still don't know that. But I will take your word for it that something like that exists in some niche under a rock. Everything does. Linux distros are like porn on the net, if you can think of it, someone has done it. And heck, there are probably even supported ones from the three distros above maybe. Just I never heard of them because I haven't cared enough to look.
Which brings us to the odds of "the average computer user" having heard of them: Zero. Zip. None, Nil.
Plus, they have absolutely no conditioning for it, coming from either Mac or Win, where you don't need a magic special install to make your laptop work with your OS. You just do it.
So basically this isn't negating the OP's point, but instead reinforcing it. It is just another reason for people who aren't geeks to say: linux, I tried that but my battery life cut in half, so I put Win back on my machine.
7. What we cannot speak about we must pass over in silence.
I'm running a stock Ubuntu install (except Nvidia drivers) and my battery life is great. The sleep mode works, too. The key to running Linux is using compatible hardware and it works very well. Ubuntu really has made the user experience better than Windows. I'm not saying that Linux offers the same breadth of software but on compatible hardware is really is slick. I was at my brothers and wanted to print a file. I plugged the USB cable in and the selected the printer while printing from the application. No downloading drivers, no loading crapware from a CD, just plug in and print.
I think many of the posters here, who all have great ideas and suggestions, are missing the point of the OP.
Why is an out-of-the-box XP machine performing better than an out-of-the-box Linux machine?
The Linux community shouldn't be saying "try this" or "tweak that" or "install this device driver" or "switch your hardware"... they should be working on building those into the next revs of the OS and making them part of the default configuration (or at least an easy prompt like XP offers).
-David
What you're basically asking for is "why can't this free software made by volunteers be as instantly capable with any hardware on the planet as the big corporate monopoly that spends zillions on the same thing"?
Do you now see the idiocy of the question?
No, I don't see the idiocy of the question. The answer gives an important insight into one reason why Linux isn't more successful on the desktop.
Users of computers don't care that Linux is partly made by volunteers. They want their computers to last as long as possible on a battery. They don't want to hear excuses about how Apple and Microsoft have better access to the hardware suppliers than the Linux developers. The fact is they do have better access and that leads to better power management.
I'm afraid you just have to find a way to deal with it. In fact, bleating that it's not fair because Linux developers are volunteers may make things worse. You're basically saying Linux is amateur. People want their software to be professional.
All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
My biggest objection to using Linux (and a major reason why I tell less technical friends/family to avoid Linux) is because of posts exactly like this.
My first Linux install was Slackware (if I remember correctly)...back in 1998. That's 10 years. And for all 10 of those years, my experience with Linux has been like this...
Linux Community: 'This new version of Linux is totally great. Easy to use, great hardware support, best Linux ever. Totally better than Windows!'
Me: "Ummm, that's cool and all - but I have a problem with X"
Linux Community: "*I* don't have a problem with X! I don't even believe you have a problem. Where is your proof? It's totally not a problem with Linux, if it's even a real problem at all."
Me: "Umm...okay. Well...all I want to do is be able to X (where X was get on the internet, hear sound, use a wireless network card, have decent battery life - all of which were or are problems). Here's more information....
Linux Community: "You are using Y? Y is worthless. Everyone knows Y isn't supported in Linux because of XYZ. You either need to write your own driver or get a real Y."
Me: "Can you tell me, specifically, what Y I should buy?"
Linux Community: "*I* have ABC and it works great. But it's more than just what is on the box, it's the chipset and stuff. It's kind of hit or miss.'
Me: 'Wtf? This sucks....I'm going to run Windows'
Linux Community: 'N0ob.'
*six months later*
Linux Community: "Great news! We've totally made it so you can do X"
Me: 'Wait, last time you told me you could do X, and that it was easy, and free, and better than Windows. When I said I had problem doing X, you all told me I was crazy and to RTFM!'
Linux Community: 'Oh well....yeah...in the past, we've had some problems with X. Some users couldn't do X at all, but now we've totally fixed it! Now Linux is is totally great. Easy to use, great hardware support, best Linux ever. Totally better than Windows!''
--------
You get the idea. Months after getting flamed for complaining about how my wireless network adapter doesn't work in Linux, the Linux community raves about how they've improved wireless support.
I've had plenty of problems with Windows....but when I have a problem with Windows, at the very least, people *believe me*.
Actually, I've had the same exact issue you detailed here with Windows, OSX, BSD, AIX, Solaris, and Linux.
Nothing works right 100% of the time - to quote three dead trolls in a baggie "It ain't the hardware guys, it just that every OS sucks".
Everyone knows that every app works on the developer's machine...
An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
Sounds like you are simplifying the situation alot. Yes thats how you do power management on tiny microcontrollers, but that has nothing to do with power management on a typical PC.
Video card have ways to stop clocks in certain areas of the chips, this is the main way power is saved, same with CPU's. These devices don't have I/O pins in the same way microcontrollers do, usually all the buses are tri-state and there is no need at all to 'set' something to input or output or high or low, you simply high impedance the whole bus connection.
What you are talking about has nothing to do with programming on modern computers, you can't just tell your video card what pins to set as output and input, you have to talk to it over a bus, and it runs its own firmware/bios that may have calls that make it disable clocks in certain parts of its chips and high empedance certain bus lines etc. Knowing what these commands are and how to talk to chip when the manufacturer doesn't release any details, just a windows binary driver is the whole problem in the first place.