Shop OBEX P1 Docs P2 Docs Learn Events
What is the best version of Linux for micro controller development ? — Parallax Forums

What is the best version of Linux for micro controller development ?

blittledblittled Posts: 681
edited 2013-04-06 18:20 in General Discussion
I know this is a loaded question and hopefully won't start a heated debate but with the advent of the non-PC friendly Windows 8 I want to migrate to Linux. I have a Windows 7 laptop which I want to dual boot into Linux. Originally I was going to use VMBox in Windows 7 but I would rather have Linux as a real OS without any limitations VMBox has. I am looking at either OpenSUSE or Debian unless the Linux users here suggest something better.
«1

Comments

  • ajwardajward Posts: 1,130
    edited 2013-04-05 07:05
    I've always used Red Hat or Fedora and found them a pleasant alternative to Winderz. Not a power user by any means tho'.

    Amanda - Currently running F18
  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2013-04-05 07:06
    I just tried mint with cinnamon and its pretty good. (No jokes) very easy to install, no snafus.

    If you're underwhelmed by the pain felt when driving a nail through your foot, then there's always LFS:
    http://www.linuxfromscratch.org
  • mindrobotsmindrobots Posts: 6,506
    edited 2013-04-05 07:06
    What is the best flavor of ice cream and what is the best camera...or the best place to eat?

    I started with Ubuntu and had no complaints (the GUI is klunky IMHO), tried Fedora16 and am currently using it and 18. Haven't really tried any others, I'm relatively new to Linux.

    A lot of it is look, feel, how involved you want to be, etc.

    Try a few (most can run live systems off a memory stick) then pick one that fits you best.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-04-05 07:37
    I used to use Ubuntu, but their switch to Unity left me cold. So I switched to Linux Mint which seems to work OK.
  • SRLMSRLM Posts: 5,045
    edited 2013-04-05 09:15
    I use GNOME desktop on Ubunutu. I like the Ubuntu system, but strongly dislike Unity.

    But really, I think any version of Linux will work about the same of uC work.
  • blittledblittled Posts: 681
    edited 2013-04-05 09:21
    Thanks for the opinions. I have flirted with Linux for the past 15 years and have set up a computer to dual boot Windows 98 with Redhat a while back. I also have done stuff with the Knoppix Live CD when it first came out. Since I now have a Raspberry PI and want to develop cross platform projects my interest in Linux has rekindled. I just cleaned up my laptop and backed it up so now I have space and feel adventurous so I wanted to set up a dual boot system. :)
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2013-04-05 10:03
    Go to www.distrowatch.com and take a look at the top 5 distributions. I use Ubuntu because it is way up there AND it has both Chinese and English. I guess Mint is leading the pack now, but no Chinese. Fedora and Red Hat are based in the USA and have been bullied by MS into not providing certain programs to work around proprietary software. They tell you that you have to buy software that is available in Ubuntu for free (think Adobe Flash, and viewing MS video formats).

    Ubuntu has a great community for troubleshooting the problems that occasionally arise, so there isn't much reason for me to jump to Mint.

    Knoppix is now on a DVD as it is huge. I find that it is excellent if that is what you require, but way too much for most users... tons of technical stuff, very geeky.

    These days, you can just burn a LiveCD or LiveDVD and try many different distributions without installing. I use some for other work. Linux Lite is very interesting for operation from a CD. Much as I dislike the name, Puppy Linux is an excellent repair tool on a CD boot. There are many more. Everything is at Distrowatch.
  • frank freedmanfrank freedman Posts: 1,983
    edited 2013-04-05 21:16
    Of all the flavors I have used my favorites were Duetche Linux and Redhat 5.0 with the redneck language option. May try mint or lighter as so much power is being lost to stuff I don't really want or need.
    F
  • Heater.Heater. Posts: 21,230
    edited 2013-04-05 22:00
    blittled,
    Since I now have a Raspberry PI....
    In that case I would strongly suggest Debian.

    I imagine that on the Pi you are going to be using Raspian which is a build of Debian optimized for the floating point architecture of the Pi's ARM processor. It's very convenient to have the desktop OS the same as your target. You get to know the nitty little details of where things are and how things are configured and tricks with the package manager etc etc etc. Makes life much easier if what you learn for one directly applies to the other.

    So I would say get Debian unstable (or "wheezy" as it is called just now). Don't let the designation "unstable" put you off. I have never had problems with it.

    I like to use KDE rather than Debians crappy looking Gnome stuff.

    $ apt-get install aptitude tasksel
    $ aptitude --without-recommends install standard desktop kde-desktop

    Plasma desktop is really nice:

    $ apt-get install kde-plasma-desktop

    Edit:

    I'd be inclined to run that Windows in a virtual machine rather than dual boot. All that rebooting is a pain in the neck.
  • Mike4421Mike4421 Posts: 131
    edited 2013-04-05 22:35
    Ohhh wow... Even Slackware Linux is still out there!?!...
    thanks Loopy for the link:smile:
  • Mike4421Mike4421 Posts: 131
    edited 2013-04-05 22:39
    Count in again, on the Linux thing!!!
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2013-04-05 23:19
    Ummm. The 'best version of Linux for mciro controller development' is really dependent on the targeted micro-controller... not the cross-compiler's OS. They all use GCC. Nonetheless I have found that some micro-controllers are only providing good code for a 64bit Linux, the 32bit Linux side is incomplete.

    So if you are using AVRs or ARMs or Intel or the Propeller, the answers could all be a bit different.

    You really have to look into the details of what you want to cross-compile.

    For instance, I am using a Cubieboard that is an ARM9 device and similar to a Raspberry Pi. While it does install Ubuntu Linux, the drivers are not well adapted to the particular chip. There is better code out there in a customized Debian package. And the Android package is far more stable than anything released in Linux, even though Android is 'on top of Linux'. Android is not sharing its proprietary solutions. The Cubieboard required a 64bit Intel platform with a 64bit OS. I used 64bit Ubuntu installed on an outboard USB harddisk so as to not disturb the normal configuration of my Intel Quad 64bit.

    So for development work, you can have an outboard harddisk provide whatever you want, without disturbing the daily use of your desktop's configuration.
  • Heater.Heater. Posts: 21,230
    edited 2013-04-05 23:29
    Loopy,
    ...best version of Linux for mciro controller development' is really dependent on the targeted micro-controller....For instance, I am using a Cubieboard that is an ARM9 device ...The Cubieboard required a 64bit Intel platform with a 64bit OS.
    You are going to have to explain this because I don't understand. Your board is an ARM, how does that dictate that you need a 64 bit OS on your development system and that it has to be an Intel architecture?

    For example. If you are wanting to write C/C++ for the Propeller using propggcc and perhaps SimpleIDE you can do that on a 32 or 64 bit dev machine, you can even do it on an ARM machine or anywhere else propgcc builds.

    My suggestion that one might like Debian on the PC when working with the Raspi is only based on the convenience of having a common system at both ends and not having to get familiar with different package managers, configurations etc.
  • Mike4421Mike4421 Posts: 131
    edited 2013-04-05 23:31
    I got alot of reading to do, thanks again for the info.:smile:
  • TorTor Posts: 2,010
    edited 2013-04-06 04:55
    Heater. wrote: »
    Don't let the designation "unstable" put you off. I have never had problems with it.
    Seconded, and worth repeating. For Debian Unstable (or sid, as is its permanent name) 'unstable' simply means that it's not a frozen, fixed configuration: New versions of firefox (called iceweasel on Debian) are constantly made available for 'apt-get update; apt-get upgrade', as are new versions of all other applications. So with the Unstable version you have an operating system that's constantly incrementally upgraded (if you wish to do so), no reboot (unless the kernel is upgraded - very very rarely). Unlike the other versions with proper names (wheezy, squeeze, and earlier versions): Those are frozen, and only receive security updates. They are a good choice if you believe you'll never need something new on your setup.

    When that's said, Debian unstable _is_ occasionally broken by an upgrade.. much more so in years past though. Usually that'll fix itself after some days if or when it happens. A way to stay ahead of the possibility of a broken upgrade is to 'apt-get install apt-listbugs', which will check the bug database and give you the choice to not upgrade. With another tool you can put dubious packages 'on hold', so that they're not affected by later upgrades (until you decide to 'unhold' them). I use the 'wajig' tool for this (a tool which envelopes all the other package management tools into one: apt-get, dpkg, others, what they do can all be done from 'wajig', and it adds useful commands like 'hold' and 'unhold', and 'new', 'new-upgrades' which show what new packages are available, and what new versions are available)

    -Tor
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2013-04-06 05:11
    Heater. wrote: »
    Loopy,

    You are going to have to explain this because I don't understand. Your board is an ARM, how does that dictate that you need a 64 bit OS on your development system and that it has to be an Intel architecture?

    For example. If you are wanting to write C/C++ for the Propeller using propggcc and perhaps SimpleIDE you can do that on a 32 or 64 bit dev machine, you can even do it on an ARM machine or anywhere else propgcc builds.

    My suggestion that one might like Debian on the PC when working with the Raspi is only based on the convenience of having a common system at both ends and not having to get familiar with different package managers, configurations etc.

    Well, for the Cubieboard I have to use sunxi-tools binaries and the ones compiled on 32bit just wont' install. I suspect that there are lines of 'pragma' in the original C code that make it all 64bit dependent.

    With other than AMD or Intel platforms, it is NOT enough to have the original code in C to compile the binaries, you have to have a chip manufacturer that is willing to provide the best optimized solution for Linux.

    For ARM9, that seems to be Linux-sunxi.

    Cross-compiling to the Propeller is rather simple in C. The Propeller will NOT load a full Linux OS. You need a lot of things that the Propeller just cannot support. With the ARM9, you are actually getting a full Linux file systems, XWindows interface, and HDMI video. Come on, you know it is a System On a Chip... which the Propeller is NOT.
  • Heater.Heater. Posts: 21,230
    edited 2013-04-06 05:14
    Tor,

    Yes. Sorry everyone. I get confused by all the Debian release names.

    Basically I live on "testing" which what the Raspberry Pi's Raspian is. This is currently called "wheezy".

    The "unstable" I refered to is even more cutting edge and only for the brave. That's called "sid".

    It's all explained here: http://www.debian.org/releases/index.en.html

    Ubuntu, by the way is Canonicals hacked up version of "testing" with their own bugs and instabilities added:)
  • doggiedocdoggiedoc Posts: 2,243
    edited 2013-04-06 06:52
    This thread inspired me to build a linux box. So... last night I dug out an old XP machine I had shelved (Athlon 64) and burned a Ubuntu 12.04.2 server iso and installed it. I chose to completely wipe the xp partition. :D

    I decided to stick to bare bones, no gui interface and I didn't install any other packages at first. After installing mercurial and cloning the propgcc I had to install gcc package and make package. The first 2-3 builds failed but each time I uncovered another package I was lacking. Finally got my helloworld to build!! The next hurdle was getting usb serial working. I forgot to add the /opt/parallax/bin to my PATH. After that - works like a charm!

    Fun.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2013-04-06 07:03
    @doggiedog
    Did you notice the machine actually running faster than it ever did in XP? My XP/Ubuntu 12.04 dual boot is just a lot speedier in Linux. And I am running 512Mbyte of RAM that is shared with a very old video configuration on the motherboard.

    If you do have problems with old boxes, try Linux Lite... it is made for getting old junkers running again.... with a complete GUI.
  • doggiedocdoggiedoc Posts: 2,243
    edited 2013-04-06 07:26
    Loopy, it's hard to say. With no GUI to compare. But I will say the command line interface is snappy. :D

    I just installed Brad's bstc and bstl and successfully tested with a Quickstart board. Although I haven't figured out how to emulate PST from the command line yet.

    :D
  • mindrobotsmindrobots Posts: 6,506
    edited 2013-04-06 07:38
    Did you notice the machine actually running faster than it ever did in XP?

    This is the one reason I keep my I7 8GB laptop running Win7 - I can't handle the guilt of unleashing all that pent up productivity on myself. I fear it would be wasted in fueling further distraction. I like to think of Windows as a natural throttle on my thought processes!
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2013-04-06 08:20
    Out of interest I run i3s and i7s with Linux Mint and Cinnamon desktop which provides a cleaner interface IMO that allows me to easily add fixed workspaces and is also very quick to access software. I run Wine for those apps that run well under Wine, XP on VirtualBox for those that just need the Windows environment, but mostly try to stick to pure Linux for most apps which also includes BST 0.19.4-pre12 for Linux.

    Here's a summary of the software and environment that I use:

    • Linux Mint 14 Nadia
    • cinnamon desktop setup with 8 workspaces (web, data, Software development (BST etc), Windows, Office, Image processing, etc) - shortcut keys defined for fast switching
    • nemo file manager
    • BST 0.19.4-pre12 for Linux
    • medit for text editing (gedit is okay but has some weird shortcuts etc).
    • minicom for ANSI compatible serial communications up to 4M baud.
    • Wine for simple Windows executables
    • VirtualBox for complete Windows XP emulation (very good)
    • DosBox for the odd DOS executable
    • Firefox (with Tab Mix plus and Tab Groups Manager as I have hundreds of tabs open) and Chromium for browsing and Google docs
    • Protel 99SE for PCB and Schematics and other assorted Windows programs (on VirtualBox XP)
    • gthumb and gimp for image editing
    • LibreOffice Draw for creating accurate labels and mechanical drawings etc
    • LibreOffice Writer for datasheet documents and manuals (in landscape mode to suit widescreens)
    • various built-in Linux tools etc

    I'm looking to port from Protel 99SE to a Linux package or Wine friendly one but it's such a good CAD package still and I have thousands of library components defined.

    The other surprising thing about Linux is that practically every time I can just plug some device into it and it just works instantly, no Windoze fanfare and trumpet blowing which usually ends up in a "failed to install" which I find rather surprising because manufacturers supply drivers for Windows, not Linux. That also reminds me that Windows continues to create a new com port for every FTDI USB chip it finds whereas Linux will stick to USB0, UBS1 etc whereas in Windows you are trying to find where that com port is. If I only have one USB serial device connected in Linux then I know that it's USB0 and it's also easy to symlink it too.
  • KC_RobKC_Rob Posts: 465
    edited 2013-04-06 09:07
    PC-BSD ?

    jk - But I do have a laptop here running it; maybe I'll give that a go soon.
  • Heater.Heater. Posts: 21,230
    edited 2013-04-06 09:07
    It's also nice to have inkscape, git, mercurial, subversion, SwitcherCad/LTSpice (under wine), Chrome browser, node.js, vim.
    Oh and did we forget, propgcc, SimpleIDE and friends.

    Any other must haves people, err, must have?
  • Heater.Heater. Posts: 21,230
    edited 2013-04-06 09:10
    I tried installing PC-BSD on this new box I have which is now yet another Debian machine. Strange thing is is came up with some pretty graphics and then bombed back to the text only mode complaining it could not get X started. I gave up trying to find out why.
  • KC_RobKC_Rob Posts: 465
    edited 2013-04-06 09:15
    Heater. wrote: »
    I tried installing PC-BSD on this new box I have which is now yet another Debian machine. Strange thing is is came up with some pretty graphics and then bombed back to the text only mode complaining it could not get X started. I gave up trying to find out why.
    Hmm... latest version (9.1, I think)? I didn't have any problems with it on this laptop, and that wasn't too long ago. I've also installed it on one other machine. In the past I've used DesktopBSD, before that project fizzled.
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-04-06 11:34
    I just started using Ubuntu 12.04 with gnome, and made some instructions for installing simpleIDE to load spin to a quickstart
    http://code.google.com/p/propforth/wiki/LinuxPropforth
    It says propforth but it works with any spin.

    When I was running an XP virtual machine, I noticed that windows under Linux ran BETTER and seemed overall faster than a native windows install. I think this is due to Linux prevents Windows from choking itself to death, since it only gets part of the resources at any time. But maybe I'm so annoyed with windows so much these days that anything looks better.

    My next task is to get my RPi to load spin on my quickstart, but so far this looks a little involved, with several (possibly contradictory) ways to go. I'm not even sure if it has worked yet. But if it does, and indicates moving to debian, I would consider this option.
  • Heater.Heater. Posts: 21,230
    edited 2013-04-06 11:55
    Braino,

    I have successfully programmed Propellers from the Raspberry Pi using propgcc and SimpleIDE. You should not have to move to Debian on your dev machine to do this.

    What I did was compile propgcc and SimpleIDE on the Raspi itself. Takes about 15 hours or so:) It's also a bit tricky. Here are some instructions:

    http://forums.parallax.com/showthread.php/141428-propgcc-builds-on-Raspberry-Pi-!!

    and follow this link to a ready made package for Raspian including propgcc, spin support and loader. You can also use the serial port on the Raspi GPIO for programming your Prop.

    http://forums.parallax.com/showthread.php/141469-SimpleIDE-for-Raspberry-Pi-Raspian

    I need to make a new package for more a more recent release of propgcc, SimpleIDE.
  • blittledblittled Posts: 681
    edited 2013-04-06 13:29
    Thanks for all the great suggestions. I saw Loopy's reference for Distrowatch and made me decide on Mint 14 with Cinnamon. I do agree with Heater about using Debian since I have the PI but I decided that Mint is easier to transition to. I also thank Peter for his software list and I'll probably duplicate it.

    I gave up on the dual boot since my Dell laptop won't let me make a System Repair disk which I could restore the MBR in case I wanted to remove Linux. Installing with Windows caused it to crash too. I opted to put Linux Mint on a 100GB External Drive and set my bios to boot from USB Storage Device if present.
  • Heater.Heater. Posts: 21,230
    edited 2013-04-06 14:13
    Sounds like an excellent solution blittled.
Sign In or Register to comment.