Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Unofficial ports will happen. CM can only fully support devices where there is at least one developer who owns the device and is willing to do the work. All their work is in the open. Just the same as any other open source project: if you want it, you need to do some work or pay someone to do it for you.


Eh? The device was supported at one time.

Ubuntu doesn't say "too bad, we no longer own any six year old Thinkpad T60's" when they release a new version. They simply leave the drivers for such devices, make changes that aren't expected to break specific hardware models, and get some stablish prereleases so they can take the occasional bug report for the leaky abstractions that did break.

Contrast to Google who AFAIK throws globs of code over the wall with all of the support for older devices ripped out. And then CM presumably uses that tree as a starting point to make changes, instead of merging into a master CM tree.

CM might just be doing the best they can to cope with Google's broken process, but the whole philosophy of brittle trees tailored for specific devices is the philosophy of embedded development, not open source. So CM comes off as aiming to be the latest eye candy fluff mod for tinkerers, rather than a solid computing base for your phone.


> Ubuntu doesn't say "too bad, we no longer own any six year old Thinkpad T60's" when they release a new version.

It's not a huge problem because new x86-based computers still have to run Windows XP (they can probably run MS-DOS too) and, therefore, cannot be that much different from the six year old Thhinkpad of your example.


But we're talking about source compatibility, not binary compatibility. So getting around the quirks of the old devices is an already solved problem, even if it needs to be #ifdef'd out for the newer devices. The problem isn't technical, it's a philosophy that treats every device as an opaque special case, rather than factoring out the common parts and abstracting out the differences. Of course the incidental complexity continues to pile up.

I've got 18 years of experience running Linux, compiling my own kernel and packages on a Slackware base up until 2002 or so. In that time I also did embedded design and development for about five years, using cp/zip/email as the ultimate revision control. I know the two philosophies pretty damn well, and I'm unequivocally stating that Android and CM are being run as embedded development projects, where code flexibility and maintainability take a back seat to just making working blobs for specific device configurations. This is ridiculous for what purports to be an open source OS running on a computer roughly equivalent to a desktop PC circa 2000.

But alas, I'm being downvoted into oblivion by non-technical fanboys who probably think that flashing a phone is a highly technical activity, rather than just annoyance due to manufacturer obfuscation (this isn't you - which is why I'm replying to your comment. it's general frustration with the non-thinking HN masses these days). The incidental complexity from the non-scalable development philosophy has built up so much that most people are incapable of even seeing my simple point.

So then, I'm out. I'll keep dreaming of being in a place where I'd have the time to dedicate to making an actual open source user-centric mobile OS to run on mass market hardware. Android will make a great Windows XP.


No, sorry. You are wrong.

Every phone is a horrible special case, and those #ifdefs do not simply map forward from one version of the OS to another, unlike on a PC where a single set of drivers will get most computers to a basic working state.

More importantly, how do you suggest they debug? When a phone OS is incorrectly configured, the most likely behaviour is simply hanging with a black screen. Distributing such releases would be worse than useless. If you want to put in the work to make CM work on your device, there are plenty of people who would help you.


> The problem isn't technical, it's a philosophy that treats every device as an opaque special case, rather than factoring out the common parts and abstracting out the differences.

IIRC, the Android kernel will merge with mainline by 3.7. At that point, all such problems will be solved.


Last I checked, CM was free, done by the work of volunteers. Sooooooo, yeah. Either help (if you have the knowledge) or don't complain about it. I'm not trying to be a dick here, but come on, it's free! Don't look a gift ROM in the mouth.


Ubuntu is a commercial venture. It pays people salaries. You do the same to someone working on a CM ROM for your phone and I'm sure your request will be granted.


I only picked Ubuntu for a timely example. This philosophy has applied to the Linux kernel and Linux distributions for at least the past 15 years.


You're not listening. Linux on the PC works on pretty much any computer because Intel eradicated the competition. If you buy a new computer, you're almost certainly running an Intel chipset with an Intel CPU, and probably Intel graphics, NIC, etc.

That makes supporting the Linux kernel for computers relatively trivial.

This is not the case with mobile.

You have dozens of CPU variants for each generation. Nevermind the unique brew of components that goes into every different model even from the same manufacturer. Every phone needs at least one developer who spends his time maintaining the kernel and drivers for that phone for each and every update.

Now, follow along. Developers are nerds. Nerds like new and shiny things. The probability of any developer sticking around with an old phone is zero. Hence, no updates. If this is a problem, learn how to code and keep your obsolete hardware working. Nobody owes you anything. It's up to you.

The cyanogenmod project doesn't maintain any phones. They just help organize various developers who are interested in specific phones and combine their work into a cohesive product. No interest in a phone? No release for that phone.


No, I've been listening. It's just that nobody has been making any actual points besides 'stfu'. So thank you for bringing the discussion back to technicals.

Your point re: Intel peripherals is true today, but wasn't really true ten years ago. It's also a bit hard to talk about the Linux kernel today, as there is obviously a lot of money and other support such that every little piece is fully tended to by someone.

So my real question is why do the old drivers have to leave the tree or at least become perma deprecated? Is there that many breaking interface changes for which drivers cannot be mostly mechanically updated? I know this is a problem that the kernel devs managed just fine over the years (sure there's been individual broken drivers accompanying major changes, but there's a big difference between saying 'the latest kernel breaks your network card' and indefinitely unsupporting your entire computer.

Maybe I'm just looking at the wrong level of CM publishes (just the releases) and hence I'm out of touch on the actual status of "unsupported" workings on various devices.

And sheesh, the alleged entitlement is the same as with any open source project - I put my faith in the project and would like to continue doing so. I'm not asking for them to conjure up someone to magically do extra work to support my device, I'm asking why they don't change their process such that this extra work is unnecessary in the first place.


> Intel peripherals is true today, but wasn't really true ten years ago.

Absolutely. Linux was a nightmare to get properly working then. Trust me, I remember. You essentially bought hardware that you knew was going to work. You couldn't buy anything just off-the-shelf and expect it work.

Same problem with mobile.

> So my real question is why do the old drivers have to leave the tree or at least become perma deprecated?

Because Google keeps messing with the kernel? Which is fine, they have to move the platform forward.

> Is there that many breaking interface changes for which drivers cannot be mostly mechanically updated?

Most drivers are closed source. You only have binaries. This is truly unfortunate. So if the manufacturer of the component doesn't release the source (almost never happens) or a new device goes on the market with the same component and updated Android (almost never happens), you're stuck in a very unfortunate place.

Even the slightest change will break everything.

> I know this is a problem that the kernel devs managed just fine over the years

No, they didn't manage shit. They hacked. Hacking takes effort and time. Nobody wants to spend time on old hardware.

> I'm not asking for them to conjure up someone to magically do extra work to support my device ..

You are asking that because ...

> I'm asking why they don't change their process such that this extra work is unnecessary in the first place.

... this isn't possible.


Every version of Android generally uses a newer kernel release, but many Android drivers are binary-only and thus cannot be updated to work with newer kernels. To get ICS working on the G2, for example, hackers had to create a frankenkernel that could load old 2.6.x drivers but had the 3.x features that ICS needs. This is a lot of work and it has to be done for every SoC. Also, I get the impression that the custom ROM community is not well-organized.


Finally an actual simple explanation about where the source of the problem actually stems from! A similar thing happened to my ATI X1400 with newer X.Orgs (So when that motherboard died, I upgraded to Intel graphics).

Reading the oldnewthing MS money story the other day, I couldn't help but feeling that something was lost with the emphasis on source compatibility and programming to the abstraction. Clearly there's countless of benefits of doing such, but I'm starting to feel as if making ABIs more prominent wouldn't be the worst thing either.


The Intel CPU with AMD64 instruction set :)


So, because Linux distribution packagers have been able to provide you with free timely updates, you expect Cyanogen team to do so too?

Why do you think you deserve anything?


There have been unofficial CM10 builds for other devices before the first official ones started.

I'm running a fairly stable one on my HTC for daily use.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: