Author Topic: Advice needed for running Linux and develeopment tools, programming tools, etc  (Read 5458 times)

0 Members and 1 Guest are viewing this topic.

Offline Lightages

  • Supporter
  • ****
  • Posts: 4302
  • Country: ca
  • Canadian po
So as I have been working towards dumping Windows and moving to Linux, I have some concerns with development tools and other things running in Linux.

I have a number of things that might not work in Linux. Multimeter logging, a TL866 programmer, some logic analyzers, and some instruments like a DS1054Z, DS1052E, Siglent SDG, etc...

Anybody have advice on how to make Linux work with theses kinds of things? I prefer Linux Mint as my distro.
 

Offline cdev

  • Super Contributor
  • ***
  • Posts: 5630
  • Country: 00
If your software uses a serial port or can be used with a USB-UART adapter, chances are it will work fine under Wine.

OTOH, much USB hardware is non-functional under wine. However, you could use virtualization software to run windows in a virtual machine. VMWare is the one VM environment that Ive heard works the best with USB. You should ask people here about the specific applications you use by name.

Also Sigrok is useful on many levels for me, especially Pulseview as a logic analyzer. I have never used any of the Sigrok project's software with my Uni-T UT61E multimeter.

I have been able to get Uni-T software to work under Wine.
« Last Edit: October 04, 2017, 03:47:37 am by cdev »
"What the large print giveth, the small print taketh away."
 

Offline thermistor-guy

  • Regular Contributor
  • *
  • Posts: 217
  • Country: au
I run Win7 and (rarely) WinXP as guest OSes under Virtualbox on Mint 17, to support legacy tools or Windows-only software.

 

Offline Ampera

  • Super Contributor
  • ***
  • Posts: 2567
  • Country: us
    • Ampera's Forums
If you want to get fancy, Dual boot ReactOS.

ReactOS is a peculiar specimen that I wish would work better as it's one step closer to being a true free Windows replacement. It does say to work with most NT5 era drivers and applications (and indeed the UI seems to be modeled after Windows 2000, the best least shit version of Windows) so stuff like the TL866 "should" work fine. You also have stock Windows VMs, or do what I did. Dual boot Linux and Windows, use Linux for a month thinking, man this is so much better than Windows, then start to miss my Windows apps because I am too lazy to restart my box and boot into Windows to use them, and eventually end up ignoring my Linux install, and maybe uninstalling it if I feel like it.

If you have an MSDN or Imagine subscription, you can get Windows Server 2016, which is the best least shit Windows version that still has support for anything. It's not for the average user (and indeed it is expensive if you don't have an MSDN or Imagine subscription) but it drops a lot of Windows 10's bullshit like UWP, forced updates, Cortana, etc. It still allows you to install those as options, but it's the fact that it GIVES you an option which makes it so much nicer in my book. The only pissy thing is that it SOMETIMES gets stupid with drivers, but Hyper-V is included with the OS, so there you go in worst case. Program support is as good as Windows 7 (maybe even a tad better) and is secure enough for me to not be paranoid about leaving my baby computer with a stranger like Windows Defender. (I have had a total of one slight security incident in my entire time of using Server 2016, which was my fault because I was one of those stupid people who thought that uTorrent was not total garbage)

You can also install a full Linux subsystem that allows you to run Linux programs natively. Not that you need that, as the only real incentive to use Windows is the exclusive apps that Microsoft has taken hostage for the ransom of forking your dough over for a broken down kernel and a shitty UI (although Windows 10/Server 2016 have the least shit Windows UI in a while, except for the settings/contol panel being stupid)

Also Windows Update is still a load of arse. In a day when some Linux distros can replace the entire fricking kernel without a restart, Windows Update demands a restart after a broken, slow download and update. I don't get it, how, since Windows/Microsoft Update was a THING, they have not been able to get it right ONCE.

Either way, that's my sum on the mater. Rant over.
Professional complainer-in-chief criticizing other people's code
Programmer and bumbling Unix fool
Op @ EEVBlog IRC: irc.austnet.irc #eevblog
 

Offline IanMacdonald

  • Frequent Contributor
  • **
  • Posts: 944
  • Country: gb
    • IWR Consultancy
Here, most of the software testing is done in Virtualbox VMs on a Debian host.

Used VMWare in v1 days and it was good, but v2 sucked like hell so we switched to Virtualbox. Not looked at VMWare since so can't comment on recent versions, but we're happy with Virtualbox anyway. It allows you to redirect specific USB devices from host to guest. Support is USB1 only unless you install the extension pack, which is not strictly free for business use.
 

Offline Paul Moir

  • Frequent Contributor
  • **
  • Posts: 894
  • Country: ca
I use Virtualbox with a very old version of Windows:  2000 believe it or not.  I have found it very helpful to keep the software tools frozen in time like this as some of the more esoteric ones stop working at various Windows versions.  Once you have a good working configuration you practically don't have to maintain it any more.  It also makes deploying the software on new hardware trivial.

I'm sure sometime soon some piece of software is going to complain and I'll have to create another VM with a later Windows version.  But it hasn't happened yet. 

TL866 works fine FWIW, as does the multitude of various other USB/serial type connected software.  Everything I've tried has worked without much trouble.  It does feel old fashioned battling Windows random COM port assignments though when underneath it all is a much better system.
EDIT:  Bunch of minor stuff.  nctnico mentions HDD thrashing.  This could be the case as I only have SSDs.   I have the Virtualbox addons in 2000 installed.  You really want to have them.  I used to use VMWare but switched years ago for some reason that now escapes me.  The reason may no longer exist.  Finally, I couldn't get half the stuff done I do for a living in Windows:  my high productivity owes a lot to Linux, the GNU ecosystem and the many collaborative projects built upon them.
« Last Edit: October 05, 2017, 01:42:18 am by Paul Moir »
 

Offline Ampera

  • Super Contributor
  • ***
  • Posts: 2567
  • Country: us
    • Ampera's Forums
In the past I found VirtualBox to be very lacking, and to have poor support for many hosts, but that was years ago. I am a VMWare Player fan, so that is where most of my experience lies.
Professional complainer-in-chief criticizing other people's code
Programmer and bumbling Unix fool
Op @ EEVBlog IRC: irc.austnet.irc #eevblog
 

Offline cdev

  • Super Contributor
  • ***
  • Posts: 5630
  • Country: 00
I should mention that the software that I was trying to use under Windows in Wine and Virtual Box was a specialized SDR program (SDRsharp) that was Windows only at the time, and the SDR I was trying to use was a RTLSDR dongle which is likely a complicated USB device, as they go, much more so than most SDRs and required (for it to work) a level of performance which in retrospect would have been surprising, had I succeeded.

So the lack of success I had was not surprising. Chances are many other "Windows-only" hardware use cases would be successful.
"What the large print giveth, the small print taketh away."
 

Offline hans

  • Super Contributor
  • ***
  • Posts: 1081
  • Country: nl
I would first of all suggest finding as many Linux alternatives as possible. After all; Linux is just the kernel, the user space on top is what you'll be in touch with 90% of the time.

This can be hard especially in the embedded and hardware domain, because some vendors like to stick their head in the sand and not care about Mac or Linux. Booting VM's gets tiresome fast, so I try to keep that to a minimum.

But for some programs, like eCAD, you almost cannot escape. Then I tend to use Virtualbox. It can create linked clone disk images, so I create 1 base Windows 7 image and then clone linked copies for my various applications. Since my machine has 16GB of RAM, I can spin up 4 VM's for dedicated applications each assigned 1-2 cores and 2GB of RAM without any issues.

If one VM image is redundant or messed up, it's easy to reinstall that single application and have a fresh disk. Maintaining VM disk images tends to be a horrible experience, they tend to only grow up to their maximum and never shrink back. So better make sure you got the (fast) disk space available.

I've had bad experiences with VMware, especially hiding the Player software as much as possible on their site, removing features that people loved to use over time so their 'enterprise' packages have artificial added value.
Maybe it's better for their paid versoins, I don't know.

Additionally, I would be careful with guest tools and version discrepencies. In my experience this can cause instability in the guest VM, which may occasionally hang or completely crash the VM which is very frustrating.

In terms of native hardware support, well:
Altera & Xilinx have native IDE's for their boards, that work.
MPLAB X works for PICKIT3 and ICD3.
AVRdude has a wide variety of support for AVRISP, Arduino, etc.
Openocd has a wide range of support for ARM chips. I STLink and JLink dongles and they work fine.
Serial ports usually come up in /dev/tty*

All these devices tend to work without any driver fuss. You may need to add udev rules however so that any normal user can access these hardware devices though. But usually it's not hard to write or just google your device and "udev rule", you'll probably hit some results.
« Last Edit: October 04, 2017, 05:45:58 pm by hans »
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 19839
  • Country: nl
    • NCT Developments
I have been using virtualbox for several years to run Windows on Linux and it works well. You really need to have an SSD though because the dynamic hard drive sysing causes overhead on disk access and a mechanical hard drive will make things slow down a lot.
The advantages are huge though because it is much easier to have seperate Windows machines for different tasks. Also make sure to keep data on a network drive. That way you can roll Windows back to a known-good state if it starts to misbehave. Fix any Windows problem with one mouse click! Life couldn't be better...
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline SeanB

  • Super Contributor
  • ***
  • Posts: 15402
  • Country: za
Virtualbox with the add ins to improve USB pass through, and this works well for many things that emulate a serial port as well, plus the virtual FDD and the network is good as well. Works with the TL866 as well, and so long as you disable internet it is secure as well.

make a good base image, and then copy it for each program, so that you can start with a known good base image each time and have fewer worries about updates borking things. I just make a new good base with each Windows update if I actually care to install them, but keep a good XP copy as well that generally will operate perfectly every time, just keep it not connected, or regard every copy as something to use once then wipe and re clone.
 

Online lundmar

  • Frequent Contributor
  • **
  • Posts: 354
  • Country: dk
So as I have been working towards dumping Windows and moving to Linux, I have some concerns with development tools and other things running in Linux.

I have a number of things that might not work in Linux. Multimeter logging, a TL866 programmer, some logic analyzers, and some instruments like a DS1054Z, DS1052E, Siglent SDG, etc...

Anybody have advice on how to make Linux work with theses kinds of things? I prefer Linux Mint as my distro.

Dumping Windows sounds like an excellent idea - good for you  :-+

The Linux eco system has many good and useful development tools - you just have to look for them. I'm a loooong time Linux user/developer and I hope some of my development tool recommendations will suit you. I'm very particular about the tools I use and I'm also the author of some of the them (lxi-tools, liblxi and tio) ;)


For control of modern LXI/Ethernet enabled instruments I recommend the linux lxi-tools to discover and send commands to your instruments: https://lxi.github.io

Code: [Select]
Example - sending a SCPI command to an instrument:

$ lxi scpi --address 10.42.0.42 "*IDN?"
RIGOL TECHNOLOGIES,DS1104Z,DS1ZA171206207,00.04.03

lxi-tools also include a tool for retrieving screen-shots from DS1000Z series oscilloscopes.

Code: [Select]
Example - retrieve PNG screenshot:

$ rigol_1000z_screenshot 10.42.0.42 my_screen.png
Saved screenshot to my_screen.png


For debugging and programming JTAG enabled chips I recommend to use OpenOCD (http://openocd.org) in combination with the flyswatter2 debugger/programmer (http://www.tincantools.com/JTAG/Flyswatter2.html). It's an excellent combination and the debugger also features a serial port close to the target which often comes handy.


For accessing your UART enabled development board I recommend to use tio (http://tio.github.io). It's a small and simple TTY terminal tool that gets the job done.


If you want a very powerful text editor for power users then I recommend vim (tutorial at http://www.openvim.com). However, if you prefer the classic graphical editor/IDE then I recommend geany (http://geany.org). Geany features various useful plugins. It's one of the few editors that can handle code autocompletion for a zillion files without slowing down much. It's also a nice IDE with plugin for GDB support.


Use git and github to keep track of your code (https://try.github.io). Don't develop code without git code revision - it will keep track of your code changes and save your bacon in case you mess up your code.


If you work with many terminals/consoles then I recommend to use tmux (http://tmux.github.io). It's a terminal multiplexer and a power tool but it is one of those tools that becomes indispensable once you learn how to use it. tmux + tio is a great combination :)


For PCB design use Kicad (http://kicad-pcb.org). KiCad 4 is excellent and soon we will have KiCad5 which will be awesome! In the future I expect KiCad might become everyones PCB design tool of choice - it's that good! :)


Regarding GNU/Linux distributions there are many choices. However, if you end up doing professional development on Linux then I can really only recommend to use Ubuntu simply because for many companies it is the distribution of choice and it is still the most popular GNU/Linux distribution in general. Ubuntu 17.10 is shaping up to be a very nice distribution.


If you ever do need Windows for anything then install it in a VM using virtualbox (https://www.virtualbox.org). Forget about dual booting, just leave Windows behind - you don't need it!  :box:


Happy hacking  8)
https://lxi-tools.github.io - Open source LXI tools
https://tio.github.io - A simple TTY terminal I/O application
http://dc-power-supply.github.io - OSHW DC power supply project
 

Online rstofer

  • Super Contributor
  • ***
  • Posts: 7416
  • Country: us
I didn't build up an I7 7700k box just to slow it down with virtualization.  If dual booting is out of the question, how about a KVM switch?  One box for Linux and the other for Windows.  You can even run them both at the same time and just switch the keyboard, video and mouse.
 

Offline hans

  • Super Contributor
  • ***
  • Posts: 1081
  • Country: nl
I use that sometimes as well for visual studio development (it tends to run horrible in Virtualbox).

In that case I use Remmina for remote desktop connections to avoid using a KVM, although that only works for 1 screen.

And most 3D applications do not work, as they wont find any graphics mode that is supported by RDP. (i.e. you can't play games with it).

You could try out Steam in-home streaming if you need that, but often it's buggy in desktop mode so can't really recommend.
« Last Edit: October 06, 2017, 07:42:35 pm by hans »
 

Online lundmar

  • Frequent Contributor
  • **
  • Posts: 354
  • Country: dk
I didn't build up an I7 7700k box just to slow it down with virtualization.  If dual booting is out of the question, how about a KVM switch?  One box for Linux and the other for Windows.  You can even run them both at the same time and just switch the keyboard, video and mouse.

With modern CPU and Linux KVM (Kernel Virtual Machine) it is actually possible to get near native speed and it is even possible to use a PCI passthrough mechanism so that the guest OS (eg. Windows) can use a discrete GPU directly for accelerated 3D.

However, it requires 2 GPUs (for example iGPU + NVDIA) and two monitors (or one monitor with 2 inputs). It is tricky to set up but there are success stories and guides available:

https://davidyat.es/2016/09/08/gpu-passthrough
https://forum.level1techs.com/t/play-games-in-windows-on-linux-pci-passthrough-quick-guide/108981
https://lxi-tools.github.io - Open source LXI tools
https://tio.github.io - A simple TTY terminal I/O application
http://dc-power-supply.github.io - OSHW DC power supply project
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 19839
  • Country: nl
    • NCT Developments
I didn't build up an I7 7700k box just to slow it down with virtualization.  If dual booting is out of the question, how about a KVM switch?  One box for Linux and the other for Windows.  You can even run them both at the same time and just switch the keyboard, video and mouse.
The goal is ofcourse to put the stuff you use least in the VM and in my experience the hard drive is the only speed limitation so get an SSD to store the VM images on.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline eugenenine

  • Frequent Contributor
  • **
  • Posts: 830
  • Country: us
I didn't build up an I7 7700k box just to slow it down with virtualization.  If dual booting is out of the question, how about a KVM switch? 

Virtualization doesn't cause slowdown with Linux as a host like it does with windows as a host.  If your just running one guest you won't really notice it.

What is everyone doing for arm?  I have mplabX/pickit3 and avrdude but keep seeing threads about arm.  What the fav Linux toolchain there?
« Last Edit: October 06, 2017, 10:26:48 pm by eugenenine »
 

Online lundmar

  • Frequent Contributor
  • **
  • Posts: 354
  • Country: dk
What is everyone doing for arm?  I have mplabX/pickit3 and avrdude but keep seeing threads about arm.  What the fav Linux toolchain there?

For any ARM development (Cortex-A, Cortex-M, etc.) I always use crosstool-ng (http://crosstool-ng.github.io/) to build a custom toolchain that I optimize for the specific chip I'm using. This way I get maximum performance and a nice gcc toolchain with gdb debugger and all the useful tools that binutils provides :-+
« Last Edit: October 06, 2017, 10:48:53 pm by lundmar »
https://lxi-tools.github.io - Open source LXI tools
https://tio.github.io - A simple TTY terminal I/O application
http://dc-power-supply.github.io - OSHW DC power supply project
 

Offline nctnico

  • Super Contributor
  • ***
  • Posts: 19839
  • Country: nl
    • NCT Developments
I didn't build up an I7 7700k box just to slow it down with virtualization.  If dual booting is out of the question, how about a KVM switch? 

Virtualization doesn't cause slowdown with Linux as a host like it does with windows as a host.  If your just running one guest you won't really notice it.

What is everyone doing for arm?  I have mplabX/pickit3 and avrdude but keep seeing threads about arm.  What the fav Linux toolchain there?
For microcontroller use you can use the GCC port for ARM which is maintained by ARM: https://launchpad.net/gcc-arm-embedded
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline bingo600

  • Super Contributor
  • ***
  • Posts: 1478
  • Country: dk
For any ARM development (Cortex-A, Cortex-M, etc.) I always use crosstool-ng (http://crosstool-ng.github.io/) to build a custom toolchain that I optimize for the specific chip I'm using. This way I get maximum performance and a nice gcc toolchain with gdb debugger and all the useful tools that binutils provides :-+

I'm using the one (arm-gcc) from Arm them self (replaced the one from launchpad)
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm

Works like a charm .

I'm only using M$ for updating maps on my Garmin GPS  :-- :-- , everything else including the 866' burner can be done w. linux.

/Bingo
 

Offline Karel

  • Super Contributor
  • ***
  • Posts: 1561
  • Country: 00
I have a number of things that might not work in Linux. ... DS1054Z, etc...

https://www.teuniz.net/DSRemote/
 

Offline HoracioDos

  • Frequent Contributor
  • **
  • Posts: 335
  • Country: ar
  • Just an IT monkey with a DSO
 

Offline HoracioDos

  • Frequent Contributor
  • **
  • Posts: 335
  • Country: ar
  • Just an IT monkey with a DSO
Hello!

Brymen 257 software works under wine. TL866 MiniPro works also but you need to copy a dll into the software folder to make it work with USB. Follow these instructions.
https://github.com/radiomanV/TL866/tree/master/wine

Brymen 257 and DE5000 ESR can be read with Sigrok. I didn't test DE5000 original software under wine yet.

LTSpice, Korad 3005P PSU and Feeltech 3200 DSG software also work under wine. You can find third party software (Mostly in Python) on Github for the last ones.

Hope this can help
« Last Edit: October 07, 2017, 09:12:03 pm by HoracioDos »
 

Offline HoracioDos

  • Frequent Contributor
  • **
  • Posts: 335
  • Country: ar
  • Just an IT monkey with a DSO
Anybody have advice on how to make Linux work with theses kinds of things? I prefer Linux Mint as my distro.

Mint is my current distro at home. (Cinnamon and Mate) Mate is amazingly stable and fast. I can help you if you need it.
MiniPro under wine with Mint 18.2 Cinnamon.
 

Offline Lightages

  • Supporter
  • ****
  • Posts: 4302
  • Country: ca
  • Canadian po
Thank you everyone for the replies.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf