5 ms·
A short demo showing that your Nexus 9 is actually the cheapest and most accessible 64-bit ARM development platform for systems programming.
by andreiw 12y ago
A short demo showing that your Nexus 9 is actually the cheapest and most accessible 64-bit ARM development platform for systems programming.
- voltagex_ 12y agoI got pretty sick of "Linux on xyz Android device" meaning a chroot with varying levels of usefulness. This is the first post in a while that shows some actual low-level dev work being done. How difficult would it be to get a (mainline?) kernel booting on this, maybe even into Debian?
- sliverstorm 12y agoEspecially humorous, considering "Linux" is technically a kernel, so "a chroot on Android" actually has zero Linux going on, just the GNU userland.
- eurleif 12y agoHuh? Android uses the Linux kernel...
- ne0phyte 12y agoBut people and apps often refer to "Linux on Android" while it's nothing but a chroot environment. Android is already running the Linux kernel. Calling it "running Linux on Android" is stupid.
- sliverstorm 12y agoWell, it's been forked for a while, and has grown apart in many ways... if we consider it to still be the Linux kernel though, then "Linux on xyz Android device" is meaningless from the start.
- icebraining 12y agoIt's not meaningless, it's short for "regular Linux distro".
- ojn 12y agoNvidia hasn't submitted any platform patches, nor device tree contents, for mainline yet. Nearly all the drivers carry over just fine between 32- and 64-bit, and they've been actively moving a bunch of the little glue code out of arch/arm lately, so there's not a _whole_ lot left to do. I haven't seen anything posted yet so it's not looking all that promising that it'll make 3.19 either (but it's still possible).
- uaygsfdbzf 12y agoARM SoC support in Linux mainline is usually pretty good but support for individual mobile devices that normally run Android's version of Linux is almost non-existent. Basically we are never going to get the usual Linux distros running on Android devices without using Android's version of Linux. There isn't anyone with the available, time, skills and motivation to get new or old Android devices supported by Linux mainline. I expect the same goes for other vendor-controlled Linux based mobile distros (Tizen, Sailfish, FirefoxOS etc). Probably the closest to mainline is the very old Nokia N900 but that doesn't even support all of the hardware on the device: http://elinux.org/N900 http://elinux.org/N900
- sandGorgon 12y agoDoes anyone know what the differences between the mainline kernel and the Android kernel are? This is actually surprising to me - I had expected that the only differences were in username (unit system, ipc, etc). Is it a question of one time development to make driver format compatible in Linux?
- ojn 12y ago(upstream arm-soc kernel maintainer here :) It's not really about anything Android-specific that's in the "android kernel", it's about all the other code that's needed for a platform to run well. The main problem is that besides the base kernel, most mobile platforms require a lot of code that hasn't been upstreamed. In some cases, "hasn't yet", in some cases "probably never will be" -- it depends on the vendor involved if they have any such ambitions. Most of this is drivers of various kind. Some vendors are better than others at upstreaming them and the other pieces that are needed, but nearly none of them have upstreamed sufficient amount of power management to make a real device useful and have reasonable battery life. There's also usually drivers missing for modems, etc. And, of course, graphics is a very sore topic in this area -- no vendor today ships a phone that uses an open graphics base. Ironically enough, Nvidia is the vendor that has done best here, with work happening in the open on their DRM drivers (but no products have shipped with those drivers at this time). The vendors that have done best are normally those who have more embedded-type platforms and not primarily mobile phone chipsets. By the time upstreaming of a mobile platform is done, the next generation is already out and nobody will build new products with the old one. It _does_ get better over time as more and more share code goes in, but most vendors have enough of a backlog that they don't see those benefits yet and as a result don't prioritize it as high as I wish they would. Then there is of course some vendors who don't participate at all, or does very very little. The Chinese manufacturers used to be notorious here, but even some of them have started doing better as of late (Rockchip in particular, but MediaTek has started posting some patches too). The vendor that traditionally has done best is TI, but they've gotten out of the mobile business. ST-Ericsson was making a good attempt too, and they also got out of it. Nvidia has actually been really good at working upstream on their 32-bit Tegra support, it's unfortunate that it's taken them this long to get going on the 64-bit support upstream.
- uaygsfdbzf 12y agoIt is fairly easy to get Debian on an Android device, the problem is you will end up drinking over 9000 litres of beer due to the mainline Linux kernel not supporting your device. http://bonedaddy.net/pabs3/log/2012/12/03/debian-mobile/ http://bonedaddy.net/pabs3/log/2012/12/03/debian-mobile/ https://wiki.debian.org/ChrootOnAndroid https://wiki.debian.org/ChrootOnAndroid
- voltagex_ 12y agoWouldn't the cheapest option actually be https://developer.nvidia.com/jetson-tk1 https://developer.nvidia.com/jetson-tk1?
- hobo_mark 12y agoGorgeous! I know I'm asking for much but does it have JTAG debug access to the CPU as well?
- lgeek 12y agoEven if the JTAG pins are brought out, the hardware is a proprietary NVIDIA architecture, you wouldn't have any development tools for it. I suppose they might use the DBT firmware to allow direct debugging of the ARM code, but I don't think it's very likely.
- TorKlingberg 12y agoJetson TK1, the Nvidia dev board with 32-bit Tegra K1 has JTAG. The 64-bit chip has a completely different instruction set of course, is that the problem?
- lgeek 12y agoThe 64-bit Tegra K1 doesn't run ARMv8 code natively. It's a proprietary VLIW architecture with an undocumented (AFAIK) ISA. It executes ARMv8 using a firmware-level dynamic binary translator, similarly to how Transmeta processors were running x86 code.
- hobo_mark 12y agoEwww, TIL... http://en.wikipedia.org/wiki/Project_Denver http://en.wikipedia.org/wiki/Project_Denver
- lgeek 12y agoNot ewww, it's one of the more interesting developments (well, technically a revival) in computer architecture from the industry. I just wish they'd 1) document their architecture and 2) allow access third party access to the bare metal.
- andreiw 12y ago
- pjmlp 12y agoThere are lots of cheap boards out there, way cheaper than a Nexus, of course they require a bit of electronics knowledge, but that should be part of any proper CS degree (at least mine had it).
- pm215 12y agoCheap 32-bit ARM boards, sure. Cheap 64-bit ARM devboards? I'm not aware of any on the market just yet... In a year's time your statement will probably be correct but I don't think it is just at this moment.