[Q] Linux for Tegra /w shield - Shield Q&A

I know the current answer is not possible with current released source code (only support for tegra 2/3). And a 2nd answer is nothing official is announced regarding any shield source code release. However I want to throw this out there as a topic of discussion.
How likely do you guys feel Linux for tegra (straight Linux not android and possibly dual boot /w android) is going to find its way to the shield and what it could mean for the shield?
For those that don't quite see the point, look into the openpandora project. While desktop experience computing is a major advantage of having straight Linux in that form factor of a handheld, arguably the greatest advantage it also offers is direct access to the HAL (hardware abstraction layer; Frame buffer etc etc) it gives a significant boost in performance in emulators and games over android even with its use of the NDK. Removes even the most minor latency in games for the most purest of experiences.
Games / emulators can be written in straight c, c++, assembly, or a plethora of different programming languages without being wrapped in java or using the multiple abstraction layers android uses and you get the full potential of your hardware.
This isn't an android hate post by any means, but more of a promotion of Linux for tegra and what it could benefit if paired with shield.
So thoughts? chances of seeing it supported? Interest? Ideas? Potential additional uses?

johnsongrantr said:
I know the current answer is not possible with current released source code (only support for tegra 2/3). And a 2nd answer is nothing official is announced regarding any shield source code release. However I want to throw this out there as a topic of discussion.
How likely do you guys feel Linux for tegra (straight Linux not android and possibly dual boot /w android) is going to find its way to the shield and what it could mean for the shield?
For those that don't quite see the point, look into the openpandora project. While desktop experience computing is a major advantage of having straight Linux in that form factor of a handheld, arguably the greatest advantage it also offers is direct access to the HAL (hardware abstraction layer; Frame buffer etc etc) it gives a significant boost in performance in emulators and games over android even with its use of the NDK. Removes even the most minor latency in games for the most purest of experiences.
Games / emulators can be written in straight c, c++, assembly, or a plethora of different programming languages without being wrapped in java or using the multiple abstraction layers android uses and you get the full potential of your hardware.
This isn't an android hate post by any means, but more of a promotion of Linux for tegra and what it could benefit if paired with shield.
So thoughts? chances of seeing it supported? Interest? Ideas? Potential additional uses?
Click to expand...
Click to collapse
I am unaware of a L4T build, and it likely would be lacking some significant features (like touchscreen support). That said, I also disagree with the statements about being faster due to direct access to the HAL. While it is true that L4T would give you direct access to the frame buffer, what it *doesn't* give you is any GPU support. The GPU turns into nothing but a pixel pusher. All rendering must be done in software on the processor. While this isn't a big deal for older emulators on platforms which don't support native 3D, games that do support the GPU for more than pixel pushing can run faster with less latency because the system isn't as busy rendering the graphics.

agrabren said:
I am unaware of a L4T build, and it likely would be lacking some significant features (like touchscreen support). That said, I also disagree with the statements about being faster due to direct access to the HAL. While it is true that L4T would give you direct access to the frame buffer, what it *doesn't* give you is any GPU support. The GPU turns into nothing but a pixel pusher. All rendering must be done in software on the processor. While this isn't a big deal for older emulators on platforms which don't support native 3D, games that do support the GPU for more than pixel pushing can run faster with less latency because the system isn't as busy rendering the graphics.
Click to expand...
Click to collapse
If L4T is built for tegra 4 and not specifically for the shield, it would undoubtedly be missing quite a few device specific drivers. I'm sure it's a bit of work to port that stuff over from android source. My understanding it's not the brunt of the work such as the chipset and gpu, having full support would make things much easier I'm sure. Thanks for the info about it probably not being worked on though, it's a little disappointing, but at least I won't have my hopes on it being released in the near future. Hopefully L4T isn't a forgotten project, and one can only hope it eventually finds it's way to being officially supported on shield.
One thing that was suggested in not so many words was possibly opening up the 3d GPU driver source for tegra 4. I am speaking out of turn for sure and should probably sit patiently until something is publicly released, and base my comments off something solid rather than hearsay, but if true it would hopefully allow for the hardware acceleration rather than just a pixel pusher. I'm out of my lane in questioning it and giving a comparison, but for the openpandora they have at least some level of gpu hardware acceleration with their powervr GPU because Texas Instruments provided it. It may only be at the same level as your talking about and just taking some of the load off the CPU rather than processing complex graphics but the difference between the point in which they implemented hardware accelerated graphics and non-hardware accelerated was quite noticeable, at least on that platform. I know they don't have full GPU driver source on that platform either just compiled binaries unfortunately. I know they would have appreciated the same level of support that was suggested for tegra 4.
I wouldn't say only older emulators and 2d games would see a benefit from straight linux support. There is some newer emulators like PPSSPP that runs visually faster on linux than it does under android on the same hardware and same clock speed and kernel. Also highly optimized emulators like pcsx rearmed that runs significantly faster on linux than android (retroarch) That's just performance clock for clock on the same hardware. That also doesn't go into the audio and input lag (however insignificant) it is still detectable under android even if the program uses the NDK. Now I would accept that it's only because of the lack of the same background processes and services, but I imagine and have been told it's more than that. It is directly linked to android's use of it's HAL's
Thanks for your insight and detailed answer, it's much appreciated, hopefully it will continue, it's good to have someone who knows what they're talking about to talk to that won't just flame you or blow you off.

Raw linux on the shield would make for a damn sweet machine but most of your reasons for doing so can be done on a rooted android device anyway (with some trickery you can bypass dalvik - yes, dalvik, android is not actually java - entirely and run native code on the linux kernel, but its not easy).

Do you have any more information about that? I've seen chrooted Linux on android is that what you're talking about?
Sent from my SPH-L900 using Tapatalk 4 Beta

resurrecting the 2nd oldest post in this catagory to show this
http://www.youtube.com/watch?v=sAvXLqPKxow
source here
https://github.com/linux-shield/kernel

Knew it would be possible, if only he had the drivers to wrap that up fully.

SixSixSevenSeven said:
Knew it would be possible, if only he had the drivers to wrap that up fully.
Click to expand...
Click to collapse
So far I just followed his instructions on the kernel, haven't setup a rootfs yet but if you want a copy of what I got so far you can follow below. Looks like it builds just fine.
http://forum.openhandhelds.net/index.php/topic,448.0.html

Related

Is there a true Open Source Android phone? (drivers)

The current situation with the Dream and missing drivers have made me think about the importance of open drivers also for embedded devices like phones. Anyone using the combo Ati card + a distro that upgrades Xorg or kernel more often than Debian stable (whics is most of them) have felt the urge to curse closed source drivers to the deepest levels of hell. Now the same **** hits the fans for G1 owners.
Even though tis post is not about Ati, I must say in their defense that they have released specs, which is great.
Qualomm however, has not released anything whatsoever when it comes to source or specs, as far as I can understand. I have been stalking enough development efforts on embedded devices to know that this is common practise from hardware vendors - and extremely annoying for any geek wanting to do some heavy development for them.
And now i finally reach the question, which has already been mentioned in the title: Is there any device, released or upcoming, that features a SoC with opensourced drivers and firmware for all components? If not (and guess it is so, unfortunately), is anyone better than the others?
Of the many phones/MIDs/ARM gadgets I evaluated before I got my Vogue, the only ones I saw that had even remotely open OpenGL drivers were based on TI's OMAP3 SoC or had a PowerVR SGX GPU. Unfortunately, none of the OMAP3/PowerVR devices I saw were cheap (OpenPandora, AI Touchbook, BeagleBoard, Nokia N900, etc.) enough for me. That, and I saw what happened with the TouchBook's OpenGL ES library, which apparently wasn't allowed to be distributed outside of TI's SDK - but I haven't been following that. I also saw that the Samsung S3C6410, used in the cheap made-in-China SmartQ5 and Q7 MIDs, has open enough specs for writing a driver, but no one has stepped up to write one yet. Aside from OpenGL, though, an OMAP3/4 based phone would be perfectly open... except there aren't many consumer OMAP3 phones I really wish reverse-engineering or converting the Qualcomm/ATI libhgl.so for "real" Linux wasn't next to impossible/illegal - if doing it was easy, you'd have an OpenGL ES library for Debian on the Dream by now. I would reverse engineer it if I had the resources, unfortunately I'm unsure how legal it would be to do that.
EDIT: as far as phones (as opposed to the non-phones I was talking about), the most open right now seems to be Qualcomm - not counting Marvell PXA or other feature-poor (opposite of feature-rich ) SoCs - as contradictory as that may seem. If you haven't guessed by now, I'm basing everything on OpenGL drivers, since as far as other hardware goes, I don't have much expertise. Also, I haven't looked hard enough to find any Freescale- or other ARM SoC-based phones, and I don't know of any Android phones (shipped with android, not ported by third-party developers) that DON'T use Qualcomm chips. For the moment, it seems you must pay a premium for openness.
Well, thank for an insightfull reply anyway.
The N900 is definitely on my watch-list, but yeah, it sure is a bit expensive. Then again, it IS cheaper than the N1, So it isn't that bad.
As for the legality, it really shouldn't be legal NOT to give out open drivers for hardware when you sell it to consumers. They should have a legal right to have it!
But seriously, these outdated qualcomm chips in most HTC phones is no competitor to Snapdragon or Tegra, so who do they think they are fooling when they keep the drivers closed for "competitive reasons". Thats pretty much what they all us as an excuse.
Sad to hear about the "free" Touchbook fate though. I had high hopes for it, but if that is the stance they're taking now, I'm glad i didn't buy it myself.
Soooomewheeereee over the rainbooooow, coooode iiiiiiiiis freeeeeee (likeinfreespeechnotfreebeer) Soooomewheeeeree over...
In paradise there is no binary blobs in any code running on any of my devices.
Acer has just released the "Acer Liquid kernel source code". http://www.acer.co.uk/acer/service....tx1g.c2att92=122&ctx1.att21k=1&CRC=2980211862 Liquid support under Document tab.
Hope that everything is there.
The GeeksPhone One is an open source Android device running on the MSM7225 processor, and worth checking out.
http://www.geeksphone.com/en/
The samsung moment uses the Samsung S3C6410 processor .... whitch is used in otehr windows mobile devices and i do belive samsung has a sdk advable but im not sure
I don´t know it exactly but shouldn´t be the OpenMoko a true opensource phone?
Isn't the Droid pretty decent? Doesn't Motorola even release the drivers for the hardware as open source here: https://opensource.motorola.com/sf/sfmain/do/home
The Moment has the same problem the SmartQ 5/7 have, unless Samsung released source code for the Android OpenGL drivers behind my back. That still wouldn't cover running Debian, sadly - I was hoping I could run Debian if I got one, but I know it won't be 3D-accelerated even if Debian does run. The Motorola Droid has pretty much the same SoC as the N900 and friends, hence the same PowerVR driver problems. IIRC, the SGX drivers are only partially open - I think most of the source code is available, but I remember hearing somewhere that there were redistribution problems. The infamous Intel GMA500 IGP (which was actually designed - and manufactured I think - by PowerVR) still suffers from poor-quality closed drivers, and Intel still hasn't done anything about it, pointing fingers at PowerVR for who knows what reason. I've come to a conclusion: hardware companies don't care about the consumer anymore
What's the status of this these days?
- how open are the n900 drivers?
The Nexus and i9000 both have a thing where the modem reads the CPU so that's as far as the reliant project goes.
Geeks phone is pretty cool but has binary blobs.
I remember reading about another project to make a phone like the Geeksphone but being prepared for compromise to achieve full openness. But I forget the name of the project. Anyone know what its called?
I'm really hoping there's a cheap Chinese phone out there that one can really own from driver level up now.

[Q] crazy idea about porting halo

ive just realised something. halo ce's minimum requirements are 800mhz processor and geforce 2 gtx and 256mb of ram. a lot of phones have more processing power than that (im mainly thinking about tegra 2 phones like the atrix)
So aside from the direct x issue would it be possible to port halo ce onto android?
thre3aces said:
ive just realised something. halo ce's minimum requirements are 800mhz processor and geforce 2 gtx and 256mb of ram. a lot of phones have more processing power than that (im mainly thinking about tegra 2 phones like the atrix)
So aside from the direct x issue would it be possible to port halo ce onto android?
Click to expand...
Click to collapse
...
thre3aces said:
...aside from the direct x issue...
Click to expand...
Click to collapse
That is kind of a big issue, but maybe. It would have to run as a native application, and it would need to be ported to run on openglES, It would also involve a lot of refactoring to make a java-based interface to the game.
Possible... maybe with the source code, and some talented devs.
Not likely to be coming soon, and then there is the whole IP issue on top of the difficulty of the porting... I know I value my sanity too much to work on such a project.
Not likely. You may think that our current processors are more powerful, but that's not necessarily true. Watt for watt they are, but those non mobile x86 processors run many more instructions than these mobile chips. Also porting a game in x86 to ARM is a massive undertaking, not really worth it.
Sent from my HTC Sensation Z710e using XDA App
ive recently started a thread here:
http://forum.xda-developers.com/showthread.php?t=1195712
wouldnt this help if the interface is java-based?
Yay I have a atrix
Sent from my MB860 using XDA App
This is relevant to my interests. I was wondering why a Diablo 2 style game couldn't be tried. I know my phone far overpowers my old pc. Lol
There are two main technological hurdles to overcomes when porting games from consoles/PC to a mobile platform are:
1. CPU Performance
Just because a ARM CPU has a higher clock-rate than a non-low-power CPU doesn't mean that it is more powerful. ARM is a RISC (Reduced Instruction Set Computing) CPU which means that it is ideal for low-power limited memory devices. However some operations that could be completed in one clock-cycle on an X86 CPU may take two or more clock-cycles an ARM CPU.
Even when comparing ARM CPUs to RISC PPC CPUs included in game consoles, the PPC CPUs tend to implement optimisations that aren't available in mobile ARM CPUs.
2. Graphics
As previously mentioned the main problem is that console and PC games are all developed with OpenGL (or possibly DirectX) not OpenGL ES. Whilst OpenGL ES 2.0 does have support for programmable shaders it's still very limiting compared to what can be achieved with OpenGL (even old versions).
Other Issues
There are also other issues due to the limited (or different) input mechanisms available to mobile device. The smaller physically sized screens are also potentially a issue even if resolutions are similar.
yea ive taken that into account and i know that arm CPUs are slower than an intel/amd counterpart despite higher clock speed. but surely a 1ghz dual core arm cortex a8 is faster than a 800mhz intel cpu.
the open gl thing was something i completely forgot about and know that you mention it i think the whole idea may not be possible. BUT i found this on wiki "PowerVR's Series5 SGX series features pixel, vertex, and geometry shader hardware, supporting OpenGL 2.0 and DirectX 10.1 Shader Model 4.1".
maybe it is still possible.
the screen size is another big issue. but maybe it will be ok on a tablet like the zoom.
We need to start looking into this again
Qualcomm will be releasing the snapdragon 810 soon it supports direct X, is x64, and has 2.7+ghz I think porting pc games is becoming much more of a reality and I would love for someone to give me a reason ditch my pc for gaming
I'd hate to re revive but since android practically is Linux, couldn't we focus on wine for android? That would not only allow people to install direct x in the first place on android phones and tabs but also open up many many possibilities such as a PC version of steam for android. A fun way of this could be taking advantage of Samsung's multi window support. But yes there is no halo for android before wine. Once wine is existant there will be PC on android. And Gabe's 3 will be comfirmed.
I have DREAMED of Halo in my pocket, and this is why I started developing. I thought I could put in the hours to at least get it off to a good start and get people involved. Here are the main issues, and the reasons that I (and I bet any others who have tried) eventually gave up.
It's been pointed out the difference in processing and graphics. X86 processors just run many more instructions than mobile processors. Mobile processors are catching up, and have been more powerful for a long time, but even if one runs a comparitively adequate number of instructions it still communicates differently with graphics processors and ram etc. This alone is intimidating because means that the entire game would have to be redone from scratch and the assets either stolen (yikes) or a partnership arranged with Microsoft.
Enter Microsoft. I love ole Mikey Soft I do, but they are defensive about their Halo. They recently made it almost impossible to install a fan project rework of Halo 1 CE. Any attempts to port to Android would be met with similar treatment. *Cough* they don't trust fans, but they gave Master Chief to 343, killed Cortana, and then made her evil.* That was a long cough. In their defense they have probably not pursued this because of the last point here: porr end product = poor user experience.
So processor, graphics, Mike, and finally porting itself. Borderlands 2 was recently ported onto an arm (mobile) processor. I bought a PS Vita+BL2 bundle specifically to see if I could learn anything about porting other pc games, like Halo. If you've played it you know that it is AWESOME, but has a great deal of glitches, frame rate drops, and even later loading textures than the PC/console version. To be fair I'm SHOCKED that BL2 and all its dlc run as well as it does on Vita. Bravo yo!
My conclusion was that it would have to be completely remade which would require using assets from a zealously guarded IP, and if a partnership was struck the final product would likely be extremely hard to optimize leaving all of us nostalgic fans with dissapointment as we are trying to launch each other to the top of blood gulch but run into such low fps that we can't coordinate the required wart hoggery. This is also why there are several Halo-ish games on Android. It's tough to Port, but much easier to imitate. Sad pandasaurus.
sorry to revive an older thread but heres an apk. i found however its in Spanish if someone can change the language it would be great.

[Q] Why our generation cant support WP8?

I dont understand much about the architecture of software, im asking this because i dont get it, why the processors of our devices cant understand the new kernel and the instructions of WP8. in my head, its exacly the same saying that our pc desktops processors couldnt run the new Windows 8. i would like to know what are the barriers in this case. So guys, what they would be in your opinion?
This was posted by a dude on Reddit.
Disclaimer: I work at Microsoft. But not on Windows Phone.
Windows Phone 7 was built on top of Windows CE kernel (the same as Windows Mobile, and for those who are young enough to remember, Pocket PC and Windows CE Handhelds - this was in 1997).
Windows Phone 8 is moving to NT kernel, the same one as your desktop operating system is using. NT kernel requires radically different hardware - specificaly, TLB mappings in pre-v7 ARM CPU contained logical addresses and this does not work very well on symmetric multiprocessor OS.
So older ARM CPUs did not work with NT kernel, and move to the different OS kernel required radical redesign of the OS. Also, of course the desktop/server OS kernel requires significantly more RAM.
With the large generational shifts it is not uncommon for OS to lose compatibility with old software. These shifts do not happen very often, but they do happen.
For example, Windows NT did not support PCs with 286 CPUs (which were rather common when it shipped), or with less than 12MB RAM (something that is easily upgradeable on a PC, but much more difficult with the phone). Similarly, Windows NT 3.5 dropped support for 386 family entirely.
For Microsoft to have, as you call it, "foresight", it would probably have to drop Windows Phone 7 altogether and go to NT-kernel based solution. It would not have made Phone 8 to appear any faster, however - it would just have lost 2 years.
Click to expand...
Click to collapse
http://www.reddit.com/r/gadgets/comments/vdjwe/designed_to_fail_all_windows_phone_7_handsets/c53rh01
I think that answers your question.
Beautifuly!!! Thanks!!
m125 said:
This was posted by a dude on Reddit.
I think that answers your question.
Click to expand...
Click to collapse
This answer is a complete bull****! MS already run NT kernel on the arm cpus for a years! This guy is referred to the "desktop" kernel but of course Apollo/WinRT/ (whatever the MS ****heads will call it in the future) has a different (from the desktop OS-es) kernel.
What the "older arm cpu" he's mentioned about??? Nokia Lumia 900 has Qualcomm APQ8055 Snapdragon cpu (google or wiki for that). What the hell "pre-arm"???
Sorry, it's not an explanation, just a stupid bull**** from ignoramus. He definitely needs a "radical redesign" of his brain
Oh c'mon, if our CPUs were the same old Qualcomms from Android 1.6 days I would believe it, but they are last-gen Snapdragons, goddamit!
I'm pretty sure Microsoft could support it as easy as adding two drivers, but it won't. Specially since all phones are the exact same hardware, with WP7.
The point about TLB mappings might be valid... if it weren't for the fact that these are all single-CPU, single-core processors (in WP7 devices). There's no need for a kernel to support SMP. In fact, you don't *want* a SMP kernel on such a processor; there are performance optimizations you can make for single-hardware-thead systems.
Historically, Microsoft has actually shipped two copies (per architecture) of the NT kernel on their desktop OS install media, one for SMP and one for single-core. The installer would use the correct one for the hardware. There is no technical reason that they couldn't do similar with WP8, shipping one NT kernel for single-core phones (which would be able to run on ARM v6) and one for multi-core (which would require ARM v7).
As for the RAM issue, that's a red herring. The RAM requirements of a basic MinWin system are far below the half-gig of WP7 devices. Even adding the phone's extra libraries and user interface, it should still be possible to implement msot if not all of the software features of WP8 while leaving a comfortable overhead for running and app or two at a time (that being all that WP7 officially allows anyhow).
@sensboston: The first that I'd heard of Microsoft running NT on ARM was 2010, when multi-core ARM v7 was already available.
Actually, I agree that the guy doesn't seem to know what he's talking about; according to Wikipedia (unreliable but in this case I see no reason to expect incorrectness), the Snapdragon processors use the ARM v7 instruction set anyhow.
@GoodDayToDie, last two days I've heard a lot of very different (but all BS and incompetent) explanations from MS employees... Seems like guys in marketing department don't have enough engineering knowledge, and can't announce any realistic-looking reason. But may be they don't have to: for general public some unknown "martian" words like "TLB mapping", "GDT and IDT" etc. sounds very "reasonable"
guilhermedsx said:
Oh c'mon, if our CPUs were the same old Qualcomms from Android 1.6 days I would believe it, but they are last-gen Snapdragons, goddamit!
I'm pretty sure Microsoft could support it as easy as adding two drivers, but it won't. Specially since all phones are the exact same hardware, with WP7.
Click to expand...
Click to collapse
I really agree with that!! how loudly do we have to yell? But in my point of view nothing about it will be done, microsoft need money and need for yesterday, and yes they will sacrificate the poor white sheeps (that would be us) and watch them bleed just to launch "a completely new OS" that our phones "doesnt support".

I/O Issue - Is it really unique to transformer line?

EDITED as more information about other platforms were found.
Based on my reading here, it sounds like there are two theories exist currently.
1, ASUS using old kernel
2. Tegra chip issue
However, following information seems to challenge these hypothesis..
According to this http://forum.xda-developers.com/show....php?t=1722799, Iconia A700 has very similar result and also Kernel info shows 2.6.39.4+.
So based on this, I think we can hypothesize couple things:
Hypothesis 1: Kernel is the issue
One flag goes against this is that Nexus 7, which uses the latest kernel did not outperform transformer line by much. So it may boost some, but unlikely to be the sole cause of the problem.
Hypothesis 2: Tegra chipset is the issue
On the andropolice benchmark page, they included HTC One X with Tegra 3 version. It actually outperformed it counterpart and in fact was one of the best I/O benchmark result producing unit excluding Nexus Phone. So it is hard to believe Tegra 3 is the issue.
Hypothesis 3: ASUS is the issue
This well may be true, but when you look at Acer Iconia 700 Tegra 3 HD Screen model, it is as bad or perhaps slightly worse than the Transformer Infinity. So perhaps there is a part of kernel that they share or provided by someone?
Hypothesis 4: Tablet SSD/Flash or other common denominator hardware is the issue
Again this is something based on the Iconia vs. Infinity. Infinity has superior CPU and RAM yet the difference in IO is so subtle. This to me suggest bottleneck lies somewhere else. Such as SSD/Flash drive itself? Though I am not sure if that is major advantage of HTC One over Tablet as you would think smaller drives are tends to be slower and more expensive...
I know we still have not answered anything here, but at least, this result make a step further to suggest underlying issue is NOT unique to infinity but perhaps wider problem across the android tablet. If so, the chance of it getting fixed would either depend on the Google or individual manufactures to put unexpected amount of resource into this...
What do you all think?
HoushaSen said:
Based on my reading here, it sounds like there are two theories exist currently.
1, ASUS using old kernel
2. Tegra chip issue
However, following information seems to challenge these hypothesis..
According to this http://forum.xda-developers.com/show....php?t=1722799, Iconia A700 has very similar result and also Kernel info shows 2.6.39.4+.
So based on this, I think we can hypothesize couple things:
Hypothesis 1: Kernel is the issue
If so, who is actually making this kernel? Is it vendors of tablet or Google? i.e. Samsung doing its own customization which includes the newer Kernel? One thing that does not make sense here (at least to me) is that if you look at http://en.wikipedia.org/wiki/Android_version_history, the Kernel is based on the version of Android i.e. sounds like NOT dependent on the manufacture. However, clearly the picture above shows Iconia A700, which runs Ice Cream Sandwitch is not running on newer kernel as stated by the Wiki... So I am a bit confused here...
Hypothesis 2: Tablet SSD or other common denominator hardware is the issue
Considering the faster Tegra 3 (not by much but some), and better RAM (DDR3 vs. DDR2) and minimal differece between the two systems, my guess is Tegra 3 chip or memory is not the bottle neck, but rather SSD or other common component is the issue.
I know we still have not answered anything here, but at least, this result make a step further to suggest underlying issue is NOT unique to infinity but perhaps wider problem across the android tablet. If so, the chance of it getting fixed would either depend on the Google or individual manufactures to put unexpected amount of resource into this...
What do you all think?
Click to expand...
Click to collapse
Kernels are created by the manufacturer, they're what tell the OS about the hardware and how to use it. Google makes the Operating system, not the kernel. Each kernel is different on each device because each device has different hardware.
So I'm thinking it's just a software issue. I haven't really looked into it, but I haven't heard a ton of complaints about I/O issues from One X users. I think this whole issue is just normal Android stuff that people are blowing out of proportions because it may be a little worse on this right now. I know on my Bionic when a lot of I/O operations are happening, it slows down a bit. Especially with restoring Titanium Backup files and moving big files around. I'm thinking with a little help from Asus and/or indy devs this won't be a big issue.
If you use old software, you always miss out on some features. (Office 95 won't open OpenDocument-formatted documents, AFAIK. ) That being said, it is quite common for SSDs to use a number of controllers that is suboptimal for the number of memory units. That might be a problem.
Given that I perceive the TF700 to be quite a bit snappier with the SuperCharger, I think it's quite possible the issue is in fact caused by an interaction of multiple factors: standard Android policies (not being able to clear out finished-and-not-to-be-used-anytime-soon apps, filling RAM to the brim py preference), suboptimal hardware (crippled I/O controller(s)?) and software (kernel issues).
The second component obviously is out of reach in terms of solutions.The first component could be alleviated partly -- this going head-on with the considerations for earlier and less capable Android systems -- by using a task killer, or optimizing the system (SuperCharger), and the third component could be solved by some of the unbelievably able kernel enthusiasts we have in the XDA ecosystem.
I think we might have a case on hand here for arguing that the current versions of Android are not really optimal for these high-end devices. Scaling issues are not that rare: Windows scales like crap to less capable devices, whereas all *nix systems I've worked with ran beautifully on pretty much archaic systems, and the latter don't gain as much when upgrading hardware, in my experience. From a cynical point of view, you might argue that that's because they ran REALLY well initially anyway.
The policies in force for both scenarios are necessarily different. It might be beneficial to change some of them a little bit. If Google does not institute that by its mighty self, we can at the least take matters in our own hands.
KilerG said:
Kernels are created by the manufacturer, they're what tell the OS about the hardware and how to use it. Google makes the Operating system, not the kernel. Each kernel is different on each device because each device has different hardware.
Click to expand...
Click to collapse
So I guess Wiki is not correct... They often amazes me how much detail there are and quite frequently right. But I guess not this time as Wiki clearly assigns each Android OS version as based on XXX Linux Kernel. But what you say actual make sense as Kernel is like interface between the OS and underlying hardware so my understanding is Kernel just simply provides set of API that meets the OS demand.
But if this is indeed the case and Kernel is the real conundrum then the chance of it being fixed may be much lower, isn't it? Because fixing kernel or upgrading kernel to newer version probably requires extensive amount of work, which I am not sure any company is willing to do when the machines are already sold.
If it was Google, perhaps they could have indeed updated kernel along with Jellybean, but that's out of picture now except of XDA members.
MartyHulskemper said:
I think we might have a case on hand here for arguing that the current versions of Android are not really optimal for these high-end devices. Scaling issues are not that rare: Windows scales like crap to less capable devices, whereas all *nix systems I've worked with ran beautifully on pretty much archaic systems, and the latter don't gain as much when upgrading hardware, in my experience. From a cynical point of view, you might argue that that's because they ran REALLY well initially anyway.
Click to expand...
Click to collapse
Interesting argument there. One hope I have here is that if Nexus 7 succeeds, developers are more willing to put apps specific for tablets. yes. they may be 7 inch... but better than 4 or 5 inch scaling to 10.1 inch. Plus Nexus 7 has very similar spec as Transformer Prime, so supporting of such device seem to make ASUS ahead of packs and in fact, (if they decide to do so) they can easily port those knowledge and resources into Transformer line.
But this IO issue may be one reason why iOS avoids true multitasking. I can never download files or load files in a application in background on my iPAD2. It basically freezes the application where left off i.e. not really multitasking. But because of it, most application won't see any issue what other application is running in background (well actually nothing is running in background..but you know what I mean).
So I am not saying, Android should take this approach but perhaps we may have to take that into consideration and appreciate true multitasking in Android. and when the task becomes large (such as IO issue here), we may simply have to understand some tasks are not for multitask friendly...
Mostly interesting questions but when it comes to nvidia and i/o problems lets blame it on the kernel drivers.
Look at around 48 min mark.
www . youtube . com/watch?feature=player_embedded&v=MShbP3OpASA
Do you think Asus seriously cares about its customers??
HoushaSen said:
So I guess Wiki is not correct... They often amazes me how much detail there are and quite frequently right. But I guess not this time as Wiki clearly assigns each Android OS version as based on XXX Linux Kernel. But what you say actual make sense as Kernel is like interface between the OS and underlying hardware so my understanding is Kernel just simply provides set of API that meets the OS demand.
But if this is indeed the case and Kernel is the real conundrum then the chance of it being fixed may be much lower, isn't it? Because fixing kernel or upgrading kernel to newer version probably requires extensive amount of work, which I am not sure any company is willing to do when the machines are already sold.
If it was Google, perhaps they could have indeed updated kernel along with Jellybean, but that's out of picture now except of XDA members.
Interesting argument there. One hope I have here is that if Nexus 7 succeeds, developers are more willing to put apps specific for tablets. yes. they may be 7 inch... but better than 4 or 5 inch scaling to 10.1 inch. Plus Nexus 7 has very similar spec as Transformer Prime, so supporting of such device seem to make ASUS ahead of packs and in fact, (if they decide to do so) they can easily port those knowledge and resources into Transformer line.
But this IO issue may be one reason why iOS avoids true multitasking. I can never download files or load files in a application in background on my iPAD2. It basically freezes the application where left off i.e. not really multitasking. But because of it, most application won't see any issue what other application is running in background (well actually nothing is running in background..but you know what I mean).
So I am not saying, Android should take this approach but perhaps we may have to take that into consideration and appreciate true multitasking in Android. and when the task becomes large (such as IO issue here), we may simply have to understand some tasks are not for multitask friendly...
Click to expand...
Click to collapse
I hope (and actually expect) that JB will fix a lot of these issues, as it seems to tweak lot of elements that might be in the way of Android really deploying on capable hardware. As far as the Nexus 7 goes, it probably is a really nice device, but I am too much infatuated with the HD screen and the battery/keyboard/dock I currently have to even consider going over.
And yes, maybe we just have to accept that, for the time being, real mobile multitasking (i.e., relatively limitless) may be out of reach. According to your experience with the iPad2, it may show that Apple actually did some real-life testing and came to the same conclusion. That may have been the reason for the much criticised decision to not support multitasking.
Someone mentioned on our Infinity fora here that all the flash memory used in today's tablet is the same chip, so it's not somebody in ASUS or Acer didn't want to spend an extra 10$ per device, it must be something else.
I'm still wondering why I get ca. 10MB/s write and ca. 20MB/s read on internal storage and the other way around with (micro)SD or USB storage.
I think all of us are waiting for JB right now.
Its definitely a kernel issue. If you look in the Prime forum, there's a lot of people raving about the IO performance of Motley's kernel. In the TF300 forum, there's been some mention that CM9 improves the browser performance Once we get a bootloader unlock I'd be shocked if we didnt get a better kernel, if Asus hasn't fixed it already by then.
The old kernel is caused by NVidia because in every Tegra 3 device the kernel is the same: 2.6.... Nexus 7 seems to have 3.1 kernel and hopefully all Tegra 3 devices which get JB will get updated kernel. Old kernel isn't Asus' fault. It is NVidia's fault. Google built ICS with 3.0 kernel and that is why almost all other devices except Tegra 3 devices have Linux kernel version 3.0.
attelaut said:
The old kernel is caused by NVidia because in every Tegra 3 device the kernel is the same: 2.6.... Nexus 7 seems to have 3.1 kernel and hopefully all Tegra 3 devices which get JB will get updated kernel. Old kernel isn't Asus' fault. It is NVidia's fault. Google built ICS with 3.0 kernel and that is why almost all other devices except Tegra 3 devices have Linux kernel version 3.0.
Click to expand...
Click to collapse
Wait correct me if I am wrong. So you are saying, as stated in the Wiki when original Android OS is developed e.g. ICS it used Linux kernel version 3.0.x but then when ASUS or other manufactors using Tegra 3 chip only got access to Kernel 2.6 because it is what Nvida provided? So blame is actually on the Nvidia?
So how did Nexus 7 got new kernel? It uses Tegra 3, ASUS is involved... Is it google that forced NVida to upgrade to newer kernel? In any event, do Kernel usually get updated along with OS update?
One pessimistic comment though.. If we look at Andropolice benchmark Nexus 7 was included there, and their IO result was not much better than Transformer line.
HoushaSen said:
Wait correct me if I am wrong. So you are saying, as stated in the Wiki when original Android OS is developed e.g. ICS it used Linux kernel version 3.0.x but then when ASUS or other manufactors using Tegra 3 chip only got access to Kernel 2.6 because it is what Nvida provided? So blame is actually on the Nvidia?
So how did Nexus 7 got new kernel? It uses Tegra 3, ASUS is involved... Is it google that forced NVida to upgrade to newer kernel? In any event, do Kernel usually get updated along with OS update?
One pessimistic comment though.. If we look at Andropolice benchmark Nexus 7 was included there, and their IO result was not much better than Transformer line.
Click to expand...
Click to collapse
Its entirely possible that Asus decided backporting 3.X's features to a 2.6 kernel would be easier than to do a 3.X kernel from the ground up. Its the route many devices without official ICS have taken to get their community builds and for most of those devices it works just fine.
The Nexus 7 had the advantage of being being handled by Google for software, and as such had no legacy code to be based on. The 700, on the other hand, was close enough to the Prime that Asus probably decided to use the kernel of the later as a base.
This is just speculation though.
jdefi3ebuggdsf32 said:
Mostly interesting questions but when it comes to nvidia and i/o problems lets blame it on the kernel drivers.
Look at around 48 min mark.
www . youtube . com/watch?feature=player_embedded&v=MShbP3OpASA
Do you think Asus seriously cares about its customers??
Click to expand...
Click to collapse
So NVIDIA is the issue then? I like his comment, at the end. "So NVIDIA, F*CK YOU."
Jotokun said:
Its entirely possible that Asus decided backporting 3.X's features to a 2.6 kernel would be easier than to do a 3.X kernel from the ground up. Its the route many devices without official ICS have taken to get their community builds and for most of those devices it works just fine.
The Nexus 7 had the advantage of being being handled by Google for software, and as such had no legacy code to be based on. The 700, on the other hand, was close enough to the Prime that Asus probably decided to use the kernel of the later as a base.
This is just speculation though.
Click to expand...
Click to collapse
But reasonable speculation. I don't think you're far off with these assumptions.
Here's hoping that JB and maybe even some kernel updates and tweaks can at least alleviate the IO issues.
The kernel is a part of OS and can be updated when the OS is updated. I think the kernel is old because Nvidia hadn't lot of time to prepare the kernel to be compatible with new android. Now when nvidia have bee working with google and asus so maybe google have helped nvidia to make new kernel to work with tegra 3. If you want new kernel, find a working custom rom with new kernel and use it.
attelaut said:
The kernel is a part of OS and can be updated when the OS is updated. I think the kernel is old because Nvidia hadn't lot of time to prepare the kernel to be compatible with new android. Now when nvidia have bee working with google and asus so maybe google have helped nvidia to make new kernel to work with tegra 3. If you want new kernel, find a working custom rom with new kernel and use it.
Click to expand...
Click to collapse
Well at this point, we should be waiting for the bootloader to be unlockable. Once we can load custom kernels, the tablet will zooooooooooom.
KilerG said:
Well at this point, we should be waiting for the bootloader to be unlockable. Once we can load custom kernels, the tablet will zooooooooooom.
Click to expand...
Click to collapse
Did custom ROMs solve the I/O problems with the Prime entirely? (never owned one)
d14b0ll0s said:
Did custom ROMs solve the I/O problems with the Prime entirely? (never owned one)
Click to expand...
Click to collapse
According to this thread, it does.
http://forum.xda-developers.com/showthread.php?t=1768406
Jotokun said:
According to this thread, it does.
http://forum.xda-developers.com/showthread.php?t=1768406
Click to expand...
Click to collapse
no it doesnt help entirely. it helps a bit but it does not solve the problems.
for instance the browser still locks up a lot, some ANR messages every now now and then.
only way to get the browser stable is by using browser2ram.
Seems it can be a hard way out of the T3 path.
Have you tried Dolphin browser on your Prime btw? (if I assume correctly that you own one) It helps a lot on the Infinity (Chrome is slightly faster than the stock browser, but is said not to support H/W acceleration, which makes it slower on content-loaded pages)
Sent from my ASUS Transformer Pad TF700T using xda app-developers app
I am sure someone else has already noticed, but HTC One X which had one of top I/O result on Andropolice benchmark has a version with Tegra 3, which still performed well in fact often outperformed its counter part. I could not find which Kernel it uses though. But this may perhaps be one evidence goes against Tegra 3 is the actual issue, but rather something else. And also noting Nexus 7, which used Kernel 3.1 not doing that much better than transformer line also put a flag against Kernel being underlying issue. Could it really be the flash drive itself?
Now to put these in summary, I edited my opening post.

How to do Virtualization on Android

Disclaimer: This is an open discussion thread for How to do virtualization on Android! It's not a reference or guide! But hope this thread can lead us towards making a way to do it!
Intro: Once phones was a tiny piece of electronic device which was mainly used to talk and sending text messages! (I am talking about mobile phones off course! )
Then here comes smartphones like the symbian one and then iphones and Android!
They opened a lot more way to do on a device rather than only talking or texting!
But still we needed to rely on laptops or desktops to do extensive tasks which we couldn't do (yet) on smartphones!
The main reason was the lack of technology or the memory and processing power limitations on these device!
I remember I bought my first Redmi 2 at a cost of 200$ back in April 2015 which featured quadcore Qualcomm processor, 1GB of RAM and 8 GB of internal storage space!
But now the time has changed! Technology advanced exponentially! After 3 years of my first Xiaomi device, I bought another one (Mi A1) with almost the same price! Whuch features double (on the basis of cores) processors and 4X RAM and 8X internal spaces!
In the mean time on the mainstream computing counterpart, virtualization technology becomes so popular that if not all but most of the servers runs based on it! We have also docker now!
We can now use or test any software/OS on any device (mainstream computers off course) by the grace of virtualization!
On the other hand, Android devs still needs to do the hard work to port ROMs let the OS itself! And yet we can't run Windows on a Android device!
But wait! Android is also a Linux! Isn't it?
So, if Linux can run QUEMU/KVM, why not Android?
And most of the Android SOCs now are 64bit!
So, can't we just make it happen? Can't we just find a way to do virtualization and run any OS on a virtual environment right in our hand?
May be!
I don't know if any guys working on this or not!
But here's how to:
1) Enable virtualization support on kernel
2) Make an apps for Android for manging the virtual machines (like VirtualBox, VMWare etc.)
I think the Android kernels (most of them) supports virtualization already!
The hardest part is to make it compatible with the frontend Android! Which brings the apps and interfaces!
I know there's wine exist for Android! But that's just a complete different thing what I am talking about!
And I wasnt able to run wine on my tissot (Xiaomi Mi A1)!
Thanks everyone who is reading!
Give your valuable opinion and ideas!
Hope someone like @CosmicDan can make it!
ARMv8 (every phone) doesn't have hardware virtualisation extensions, so it would be as slow as emulation.
For that, we already have QEMU and KVM. But it's too slow to be of any practical use.
If you want proper virtualisation, you need ARMv8.1, which no phone has.
CosmicDan said:
ARMv8 (every phone) doesn't have hardware virtualisation extensions, so it would be as slow as emulation.
For that, we already have QEMU and KVM. But it's too slow to be of any practical use.
If you want proper virtualisation, you need ARMv8.1, which no phone has.
Click to expand...
Click to collapse
Hmm! I just realised the hardest part: it's ARM and not x86_64!
ProttoyX said:
Hmm! I just realised the hardest part: it's ARM and not x86_64!
Click to expand...
Click to collapse
That's emulation, not virtualisation.
You can use QEMU, Bochs or DOSBox to emulate x86 (x86_64 is probably impossible, idk but it's pointless to try). But it's dog slow and always will be.
CosmicDan said:
That's emulation, not virtualisation.
You can use QEMU, Bochs or DOSBox to emulate x86 (x86_64 is probably impossible, idk but it's pointless to try). But it's dog slow and always will be.
Click to expand...
Click to collapse
Hmm! Got it! This thing came into my mind when I was reading about servers based on ARM! Wondered if they provides virtualization/container service or not! And ARM provides more cores than x86_64! I guess it's it's related to RISC/CISC thing! Not sure though!
ARM servers uses ARMv8.1?
AND PLEASE DON'T MIND ABOUT ENDING EVERY SENTENCE WITH (!)! PLEASE!
No one can always be rude! ?
I am surely not!
Again thanks for what you’ve done for the tissot and other staffs! You are genius! ?
ProttoyX said:
Hmm! Got it! This thing came into my mind when I was reading about servers based on ARM! Wondered if they provides virtualization/container service or not! And ARM provides more cores than x86_64! I guess it's it's related to RISC/CISC thing! Not sure though!
ARM servers uses ARMv8.1?
AND PLEASE DON'T MIND ABOUT ENDING EVERY SENTENCE WITH (!)! PLEASE!
No one can always be rude! ?
I am surely not!
Again thanks for what you’ve done for the tissot and other staffs! You are genius! ?
Click to expand...
Click to collapse
Yes those ARM servers would be 8.1. It's not so much a RISC vs CISC thing but more an SoC vs CPU thing. Our devices are SoC's - sure they have many GHz and cores but they're still a lot slower that a proper CPU which has countless of extensions designed for accelerating tasks, and have more IPC capability and other such things (in short GHz/core count is comparable across different platforms or architectures, it's more relative than that). Our SoC's simply don't have those extensions that would make this feasible.
CosmicDan said:
ARMv8 (every phone) doesn't have hardware virtualisation extensions, so it would be as slow as emulation.
For that, we already have QEMU and KVM. But it's too slow to be of any practical use.
If you want proper virtualisation, you need ARMv8.1, which no phone has.
Click to expand...
Click to collapse
Every ARMv8,and even ARMv7 has.On v8 it's called EL2 while on v7 it's HYP mode.However the biggest headache is that most SoC vendors do not allow users to enter it even with bootloader unlock.
On Qualcomm there are no way except a low level powerful exploit. On Exynos it is possible,needs a specific SMC to trustzone,and can be done only with an unlocked bootloader with custom kernel.
fxsheep said:
Every ARMv8,and even ARMv7 has.On v8 it's called EL2 while on v7 it's HYP mode.However the biggest headache is that most SoC vendors do not allow users to enter it even with bootloader unlock.
On Qualcomm there are no way except a low level powerful exploit. On Exynos it is possible,needs a specific SMC to trustzone,and can be done only with an unlocked bootloader with custom kernel.
Click to expand...
Click to collapse
do you have any references links on this? maybe a cve for the qualcomm exploit?

Categories

Resources