Linux (Debian) on ARM

Discussion in 'SBC, ARM, Home Automation' started by maounique, Jun 13, 2013.

  1. maounique

    maounique Active Member

    322
    111
    May 29, 2013
    Hello !

    As an ARM noob (been looking at it from the distance for quite some time, but never dared to take the deep dive), I never run any regular distributions on ARM and I do not know what to expect.

    My speciffic questions:

    1. How often did you run into packages that do not exist or have problems running for ARM ? I do not intend to run anything fancy, just a regular desktop with basic connectivity (including 3g), office applications, browsers, RDP.

    2. Is it easy to hack a regular tablet to replace the Android ? I mean, I know I dont have to "jailbreak" it, but how easy it is to boot from uSD card and run it from there (I may need to keep the android too) ?

    3. Can a tablet be "bricked" by an unsuccessful installation of a bootloader ? Can it recover somehow, does it have a recovery partition or bios of some sorts ?

    4. Does Debian, for instance, support the peripherals that Android does ? I mentioned before 3g card, but also OTG, mali chip for video, sound, etc ? Will I have to keep the Android kernel for that ?

    5. While I like Debian a lot, is there a speciffic arm tablet distro in case Debian is not working for some reason ? If so, any Debian based that you have tried ?

    6. By now you know what I need. Any suggestions towards that goal ? I dont mind changing the paradigm completely, i.e. drop the tablet idea, get something similar instead (apart from bulky or expensive x86 stuffs).

    If you can, please elborate, send me to good guides you know are working.
     
  2. drmike

    drmike 100% Tier-1 Gogent

    8,573
    2,709
    May 13, 2013
    Well ARM is a diverse eco system and each board varies greatly in support, custom distro, etc.

    Probably best to say what sort of hardware you are about to tinker with so others with experience can talk about that hardware.
     
  3. maounique

    maounique Active Member

    322
    111
    May 29, 2013
    Thanks for the reply !

    Actually, I havent bought anything yet, I would like to know beforehand what to look for.

    I will take quite a big tablet, 1024/768 or 1280x800 and would like to run a full desktop on it.

    I know for sure it can be done, however, I lack the necessary experience on how to do it and which are the pitfalls I should avoid.
     
  4. acd

    acd New Member

    176
    71
    May 16, 2013
    Hi, I'm not an expert and this isn't nearly the right forum for this discussion (until ARM KVMs start coming out later this year, or early next year, I expect), but here's approximately the answers to your questions.

    1. Never so far, this is generally a kernel and compiler problem. The kernel's job is to provide a consistent userspace. The compiler maps instructions into native instructions. It can be a problem for any programs written in assembler, but most folks have the forethought to provide a C equivalent to any optimized assembler function. Granted, you can do further optimization by using the specialized device hardware (dsp cores, etc) that is usually available on ARM hardware, but that's up to package maintainers, but that's above and beyond what you asked. Generally speaking, gcc and llvm have good support for ARM targets. So if your kernel has drivers for all your hardware, you should be pretty well off.
    2. You may have to jailbreak it. Most of the bootloaders for arm are flash either on-die or very near it (PoP/adjacent serial flash prom, etc). There isn't really a BIOS equivalent on ARM that standardizes boot-from-removable/swappable media. Some devices have a particular location on the SD card they look for a boot initrd after the bootloader finishes, some have special formats they look for. Some don't support SD boot at all. Since you don't have a device yet, make sure you get one where you're sure someone has ALREADY done debian-on-tablet and it's not a PITFA to do (defined as requiring JTAG or soldering; I consider anything beyond that as impossible for normal users).
    3. A. Yes, depends on device. B. Maybe, depends on device. Generally, Android devices have a reset switch built into holding power+vol-down, but if your bootloader is eff'd it might not work since it's checked in software.
    4. In general, swapping the kernel out will cause you headaches. For that matter, changing the filesystem around will too. Most of those special-purpose peripherals have binary blob drivers, or require firmware loaded by driver or both (worst case scenario). Assuming you don't like hacking/reversing drivers yourself, I wouldn't count on most devices being supported. YMMV. Check support before you buy.
    5. I think you have the basic misconception that ARM/embedded is designed to be general purpose and vendor neutral. Embedded devices are usually designed to run one OS, provided by the manufacturer. That you can update it at all is a wonder. Hell, even RPi requires binary blob drivers and firmware loaded to run the graphics subsystem and that system is about the closest I've ever seen ARM being to user-changeable-OS friendly.
    6. I have a couple older tablets. I am not impressed with them. Best of four was the Transformer Prime w/ keyboard accessory, which I know you can install debian on. Nook color, kindle fire, and hp touchpad were all crappy for various reasons (mostly because of slow, small, or jank). If your requirement is only that it is a low cost ARM system, I'd steer you towards Raspberry Pi, Beaglebone Black, or one of the other low cost arm dev boards. Keep in mind that core version (Cortex A8/A9 etc) and feature set matters significantly more than clock speed for performance on ARM, especially for number crunching (unassisted A/V playback, etc). You will most likely regret getting a system without NEON/MPE (ARM's SIMD). ARM is not like x86 where you expect new features to slowly get rolled into all later revisions; embedded system designers pick and choose their cpus based on which features they want to offer and at what power cost because power budget is King in embedded land.
    tl;dr version. I don't recommend what you're trying to do based on your experience and goals. The corporate culture and economics of embedded ARM are not modification-friendly. You will waste a significant amount of time and money trying to do what you want, that in the end will be overshadowed by a shiny new toy next month. Get a ULV mini/nano/pico ITX system that runs x86 and an appropriate case and call it good.

    best regards,

    -tw
     
    Last edited by a moderator: Jun 13, 2013
    TheLinuxBug likes this.
  5. drmike

    drmike 100% Tier-1 Gogent

    8,573
    2,709
    May 13, 2013
    @acd has some great posts. :)

    Tablet hacking is umm, idealistic at best.   Seems to be what you are interested in doing.   There are tablets where people have been able to get Debian into them, with varying degrees of success.

    The big issue, beyond finding a well documented hackable tablet is dealing with Debian post-install.  Debian remains a server layer with a somewhat fragile graphical layer on top.  By default, all the tablet features (touch screen, onscreen keyboard, etc.) aren't going to self-detect and install.

    Then you have the issue about how to get that working plus the limited input options (keyboard and mouse lacking on a tablet).

    Shop well for a tablet like this.  A mass produced unit with tons of hacker spirit behind the side hack project.  Why? Because otherwise you will be lost.  Even with a large audience, that quickly dries up and hits limits as that group tends to migrate quickly to something newer.

    There are tablets intended to run desktop OSes.   Best to look at those.

    If you just want to fuss with an ARM environment, the Pogoplug, Sheevaplug and Dockstar are all tiny low power units available for little money and ARM based.  Raspberry Pi is certainly the big supported platform in this segment.
     
  6. maounique

    maounique Active Member

    322
    111
    May 29, 2013
    Thanks acd, exactly the answers I was looking for.

    I will try to find something that can boot from flash at most. Otherwise, Android will have to do :(.