EEVblog Electronics Community Forum

General => General Chat => Topic started by: Lightages on October 04, 2017, 03:34:00 am

Title: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Lightages on October 04, 2017, 03:34:00 am
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: cdev on October 04, 2017, 03:41:20 am
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: thermistor-guy on October 04, 2017, 06:00:49 am
I run Win7 and (rarely) WinXP as guest OSes under Virtualbox on Mint 17, to support legacy tools or Windows-only software.

Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Ampera on October 04, 2017, 07:01:59 am
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: IanMacdonald on October 04, 2017, 03:24:51 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Paul Moir on October 04, 2017, 03:44:33 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Ampera on October 04, 2017, 05:28:03 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: cdev on October 04, 2017, 05:34:21 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: hans on October 04, 2017, 05:43:32 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: nctnico on October 04, 2017, 06:25:01 pm
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...
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: SeanB on October 04, 2017, 06:38:56 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: lundmar on October 04, 2017, 07:53:04 pm
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 (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 (http://openocd.org)) in combination with the flyswatter2 debugger/programmer (http://www.tincantools.com/JTAG/Flyswatter2.html (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 (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 (http://www.openvim.com)). However, if you prefer the classic graphical editor/IDE then I recommend geany (http://geany.org (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 (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 (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 (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 (https://www.virtualbox.org)). Forget about dual booting, just leave Windows behind - you don't need it!  :box:


Happy hacking  8)
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: rstofer on October 06, 2017, 06:04:32 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: hans on October 06, 2017, 07:38:46 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: lundmar on October 06, 2017, 09:55:02 pm
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
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: nctnico on October 06, 2017, 10:20:33 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: eugenenine on October 06, 2017, 10:24:55 pm
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?
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: lundmar on October 06, 2017, 10:46:56 pm
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/ (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 :-+
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: nctnico on October 06, 2017, 10:52:53 pm
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 (https://launchpad.net/gcc-arm-embedded)
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: bingo600 on October 07, 2017, 06:55:30 am
For any ARM development (Cortex-A, Cortex-M, etc.) I always use crosstool-ng (http://crosstool-ng.github.io/ (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
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Karel on October 07, 2017, 09:09:53 am
I have a number of things that might not work in Linux. ... DS1054Z, etc...

https://www.teuniz.net/DSRemote/ (https://www.teuniz.net/DSRemote/)
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: HoracioDos on October 07, 2017, 12:27:12 pm
https://www.teuniz.net/DSRemote/ (https://www.teuniz.net/DSRemote/)

It works fine on ethernet connection. There's a known bug with USBTMC (Rigol Firmware)
https://github.com/Teuniz/DSRemote/issues/12#issuecomment-283940080 (https://github.com/Teuniz/DSRemote/issues/12#issuecomment-283940080)
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: HoracioDos on October 07, 2017, 12:43:48 pm
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
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: HoracioDos on October 07, 2017, 12:55:17 pm
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.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Lightages on October 08, 2017, 04:11:42 pm
Thank you everyone for the replies.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: joeqsmith on October 08, 2017, 11:59:23 pm
NI has or had a version of LabVIEW for GNU but it was really crippled, similar to their 64-bit version.  My guess is there is little demand for it.

Anytime I have play with any of the open source code, its go out and find all the file, sub files, sub sub files. Build, build build build build.  Then test test test test test.   Then pick the least buggy of the various attempts.   Normally asking for help in the forums is a negative result. 

I actually use a flavor of GNU LINUX for work but it is in a very limited capacity.   Every time I look at it, it's better but until the mainstream tools I use run flawless on it, I can't switch.  I've been waiting for it since Windows 95.   
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: eugenenine on October 09, 2017, 12:40:05 am
NI has or had a version of LabVIEW for GNU but it was really crippled, similar to their 64-bit version.  My guess is there is little demand for it.

Anytime I have play with any of the open source code, its go out and find all the file, sub files, sub sub files. Build, build build build build.  Then test test test test test.   Then pick the least buggy of the various attempts.   Normally asking for help in the forums is a negative result. 
 

Funny, I've had better luck with open source support.  I still have a couple old Microsoft cases in my notes where they refused to fix an issue.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: joeqsmith on October 09, 2017, 01:08:58 am
That doesn't surprise me at all.  With the open source community, I don't expect support so it's a matter of spending a lot of time grinding away until I find some magic combination that sort of works.   Don't get me wrong, for what it is, it is very impressive.  I started playing with LINUX around the time Windows 95 was released.  I download it every few years and see how it's doing.  Spend a few weeks trying things out and put it away again.

Does Octave now come with 64-bit indexing enabled?   Last time I looked was maybe five years ago and they still were 32-bits.  I think I asked in the forums and the through was there was no need to support it as you would never work with data sets that large.   :-DD   Fun stuff.  Everyone should at least try it once. 
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: lundmar on October 09, 2017, 01:31:21 am
Does Octave now come with 64-bit indexing enabled?   Last time I looked was maybe five years ago and they still were 32-bits.  I think I asked in the forums and the through was there was no need to support it as you would never work with data sets that large.   :-DD   Fun stuff.  Everyone should at least try it once.

https://www.gnu.org/software/octave/doc/v4.2.0/Compiling-Octave-with-64_002dbit-Indexing.html (https://www.gnu.org/software/octave/doc/v4.2.0/Compiling-Octave-with-64_002dbit-Indexing.html)

Time to leave Windows behind mister ;)
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Monkeh on October 09, 2017, 01:55:29 am
Anytime I have play with any of the open source code, its go out and find all the file, sub files, sub sub files. Build, build build build build.  Then test test test test test.   Then pick the least buggy of the various attempts.   Normally asking for help in the forums is a negative result. 

Just like patching together proprietary blobs with a multitude of undocumented changes and missing revisions, you mean. Except there you have no chance of fixing it yourself.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: joeqsmith on October 09, 2017, 02:54:09 am
Does Octave now come with 64-bit indexing enabled?   Last time I looked was maybe five years ago and they still were 32-bits.  I think I asked in the forums and the through was there was no need to support it as you would never work with data sets that large.   :-DD   Fun stuff.  Everyone should at least try it once.

https://www.gnu.org/software/octave/doc/v4.2.0/Compiling-Octave-with-64_002dbit-Indexing.html (https://www.gnu.org/software/octave/doc/v4.2.0/Compiling-Octave-with-64_002dbit-Indexing.html)

Time to leave Windows behind mister ;)

This is exactly my point. It's been at least four years, maybe five and they still built for 32-bit.  The option was there back then to build it with 64-bit indexing.  Of course you then need to find and set up everything. After playing with several versions, I was able to get it working fairly decent and it actually did a decent job compared with Mathworks, considering it was free.  But wow, what a time sucker.   Build a version, and graphics was great but some bug.  Build the next version, graphics are broke. 

I ran it as a sever for over a year once without a power cycle.  I thought that was pretty impressive. 

One day, maybe the mainstream tools I use will run on it. 
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Karel on October 09, 2017, 06:36:05 am
"What do you anticipate Microsoft will do next?"

...

Microsoft will switch to Linux and keep selling their software on top of Linux. And it will cost the Windows users as much as before.

At the same time will the Linux community get face-stomped by hordes of Windows users, all trying to learn everything there is to learn about Linux and in record-breaking time.

Some long-time Linux supporters will switch to Microsoft in a heart beat like cold-hearted back-stabbers, while others die the slow death of the White Knight in the most epic drama the Linux community has ever seen, before the Linux community itself disappears and we will all have turned into "the new Windows user".

Once it's all done and over, and Microsoft has taken over Linux with its hordes of Windows users, will you either be the new slave of the Microsoft empire or you will have found refuge under a tiny bridge, just next to the one where all the FreeBSD trolls live, and where you'll then be telling tales of Linux's past.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: lundmar on October 09, 2017, 10:33:34 am
"What do you anticipate Microsoft will do next?"

...

Microsoft will switch to Linux and keep selling their software on top of Linux. And it will cost the Windows users as much as before.

At the same time will the Linux community get face-stomped by hordes of Windows users, all trying to learn everything there is to learn about Linux and in record-breaking time.

Some long-time Linux supporters will switch to Microsoft in a heart beat like cold-hearted back-stabbers, while others die the slow death of the White Knight in the most epic drama the Linux community has ever seen, before the Linux community itself disappears and we will all have turned into "the new Windows user".

Once it's all done and over, and Microsoft has taken over Linux with its hordes of Windows users, will you either be the new slave of the Microsoft empire or you will have found refuge under a tiny bridge, just next to the one where all the FreeBSD trolls live, and where you'll then be telling tales of Linux's past.

Lol Karel, this is poet level material!
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: hendorog on October 09, 2017, 07:52:22 pm
Does Octave now come with 64-bit indexing enabled?   Last time I looked was maybe five years ago and they still were 32-bits.  I think I asked in the forums and the through was there was no need to support it as you would never work with data sets that large.   :-DD   Fun stuff.  Everyone should at least try it once.

https://www.gnu.org/software/octave/doc/v4.2.0/Compiling-Octave-with-64_002dbit-Indexing.html (https://www.gnu.org/software/octave/doc/v4.2.0/Compiling-Octave-with-64_002dbit-Indexing.html)

Time to leave Windows behind mister ;)

This is exactly my point. It's been at least four years, maybe five and they still built for 32-bit.  The option was there back then to build it with 64-bit indexing.  Of course you then need to find and set up everything. After playing with several versions, I was able to get it working fairly decent and it actually did a decent job compared with Mathworks, considering it was free.  But wow, what a time sucker.   Build a version, and graphics was great but some bug.  Build the next version, graphics are broke. 

I ran it as a sever for over a year once without a power cycle.  I thought that was pretty impressive. 

One day, maybe the mainstream tools I use will run on it.

Fair point, recompiling Octave for 64bit indexing does look a bit ugly. For whatever reason they haven't made that simple.

If you can stay with the mainstream software then linux is very simple these days. The definition of mainstream is not the same as it is for windows however.

It's all about expectations.

MS now support running a real Ubuntu Linux natively inside Windows 10, so I use that for any command line stuff - no VM required!


Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: eugenenine on October 09, 2017, 08:31:24 pm
I guess building stuff isn't a big deal to me.  When I got off of windows back in 2002 I went with slackware.  Most everything you build anyway so its pretty easy now.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: timb on October 10, 2017, 02:53:13 am
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.

For what it’s worth, VMWare has mighty fine USB3 support. (Works with all hosts but only officially on Windows 7+ and macOS 10.9+ guests; Linux guests may work if they support the particular Intel USB3 controller VMWare emulates. USB2 is supported on pretty much everything.)

As for virtualization being slow, well, it’s not! Modern CPUs actually provide specific hardware that allows guest OSes direct access to the processor, so they can run at near bare metal speeds. Add in features like Linux’s Kernel Virtual Machine (which allows a VM direct access to other hardware, like PCI-e devices, etc.)

Honestly, there’s really no reason to dick around with WINE in my opinion.

VMWare Fusion (macOS) even has a feature that allows you to run Windows apps directly alongside macOS apps (essentially they give each running Windows program a dock icon, macOS title bar and window, the rest of the Windows interface (desktop, start menu, etc.) is hidden). It’s pretty slick and makes you *almost* forget you’re running Windows, too.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: eugenenine on October 10, 2017, 04:52:44 pm
Well, Virtualization is slow if you try to use Windows as a host, thats where the 'virtualization' is slow comes from.  When Microsoft removed from XP some of the reg keys we used to get good performance on 2000 then later released their own virtualization product the reason then made sense.  They intentionally cripple the rest of their OS products to get you to buy their virtual stuff.

Running on a Linux host I can't tell any slowdown.  I used to hand people my laptop and let them run windows on it then pop it out of full screen so they could see they were running as a virtual guest on a linux host and they were all surprised that the windows guest performance was so good.  I think it actually works better than on native hardware because Linux is caching into ram what widows thinks its swapping to disk.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Lightages on October 10, 2017, 08:48:14 pm
Which of the 50 VMWare products does one choose? It isn't even close to obvious.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: hendorog on October 10, 2017, 08:57:41 pm

Honestly, there’s really no reason to dick around with WINE in my opinion.


VM's are great, but virtualisation is a RAM and disk space eater, that is one reason why Wine is still relevant. It is also handy for software which is only used occasionally where you don't want to maintain an entire other OS just for the odd program.



Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: hendorog on October 10, 2017, 09:11:24 pm
Which of the 50 VMWare products does one choose? It isn't even close to obvious.

You probably want Workstation: https://www.vmware.com/products/workstation-pro.html (https://www.vmware.com/products/workstation-pro.html)

Personally I would suggest you try VirtualBox first as it is free and might be good enough. You can always go and pay for VMWare if VB doesn't do the job.
I used VMWare Workstation for many years, but found it good but not good enough to pay the premium over VB.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: nctnico on October 10, 2017, 10:09:28 pm
Honestly, there’s really no reason to dick around with WINE in my opinion.

VM's are great, but virtualisation is a RAM and disk space eater, that is one reason why Wine is still relevant. It is also handy for software which is only used occasionally where you don't want to maintain an entire other OS just for the odd program.
But getting something to work under Wine eats more time than RAM and hard drive space cost nowadays. I have tried Wine in the past but every time the first piece of software I try doesn't work.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: hendorog on October 10, 2017, 10:18:33 pm
Honestly, there’s really no reason to dick around with WINE in my opinion.

VM's are great, but virtualisation is a RAM and disk space eater, that is one reason why Wine is still relevant. It is also handy for software which is only used occasionally where you don't want to maintain an entire other OS just for the odd program.
But getting something to work under Wine eats more time than RAM and hard drive space cost nowadays. I have tried Wine in the past but every time the first piece of software I try doesn't work.

It depends on the software - I posted a while back about running Sonnet Lite under Wine on my Mac and it worked fine.

I wouldn't try too hard, if it doesn't work it doesn't work and then you know a VM is the way forward. If it does work then you are up and running in less time than it takes to boot a VM :)
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: cdev on October 10, 2017, 10:26:24 pm
In my experience the kinds of task-specific programs, loggers, calculators, etc. used with my electronics equipment often work under Wine.

Wine has gotten a lot better over the years.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: timb on October 10, 2017, 11:08:12 pm

Honestly, there’s really no reason to dick around with WINE in my opinion.


VM's are great, but virtualisation is a RAM and disk space eater, that is one reason why Wine is still relevant. It is also handy for software which is only used occasionally where you don't want to maintain an entire other OS just for the odd program.

A few years ago I would have agreed with you; but now you can have 16GB of ram and 1TB of solid state storage for very little money.

I basically stopped even trying WINE awhile back because it was easier to use a VM. Keep in mind I keep the Windows 7 VM booted but paused, so it only takes a few seconds to start.

I also find a VM much handier than dual booting because of one fantastic little feature: Snapshots. Being able to take a snapshot of the entire VM (which includes memory contents if it’s running) allows you to roll back to any point instantly. It’s great for trying out new software, without botching an entire Windows install.

(I don’t know how other VM software does it, but in VMWare they essentially use “linked clones” of the virtual hard disk image to do snapshots, so you’re only saving the changed data between snapshots and not an entirely new copy of the disk image. That saves a good deal of space!)

Anyway, WINE does have its place, I’m just not a big fan. (For example, Novarm distribute their macOS version of DipTrace as a WINE bottled application, however I never quite felt it worked 100% right, despite being coded specifically with the constraints of WINE in mind. I eventually moved over to the Windows version in a VM and was much happier.)
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: hendorog on October 10, 2017, 11:35:46 pm

Honestly, there’s really no reason to dick around with WINE in my opinion.


VM's are great, but virtualisation is a RAM and disk space eater, that is one reason why Wine is still relevant. It is also handy for software which is only used occasionally where you don't want to maintain an entire other OS just for the odd program.

A few years ago I would have agreed with you; but now you can have 16GB of ram and 1TB of solid state storage for very little money.

I basically stopped even trying WINE awhile back because it was easier to use a VM. Keep in mind I keep the Windows 7 VM booted but paused, so it only takes a few seconds to start.

I also find a VM much handier than dual booting because of one fantastic little feature: Snapshots. Being able to take a snapshot of the entire VM (which includes memory contents if it’s running) allows you to roll back to any point instantly. It’s great for trying out new software, without botching an entire Windows install.

(I don’t know how other VM software does it, but in VMWare they essentially use “linked clones” of the virtual hard disk image to do snapshots, so you’re only saving the changed data between snapshots and not an entirely new copy of the disk image. That saves a good deal of space!)

Anyway, WINE does have its place, I’m just not a big fan. (For example, Novarm distribute their macOS version of DipTrace as a WINE bottled application, however I never quite felt it worked 100% right, despite being coded specifically with the constraints of WINE in mind. I eventually moved over to the Windows version in a VM and was much happier.)

Yep totally agree. It's useful when it works, but probably not for a complex app you use heavily.

Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Red Squirrel on October 11, 2017, 12:23:24 am
For anything that requires a physical connections VMs can be hit and miss, the device won't always show up as an option to do pass through or sometimes it will just be flaky.  My experience with that has always been mixed.   I would just have a separate machine with windows for that stuff.   But in general I do my best to avoid anything that may require windows.   It is annoying that so many things are designed for it though instead of being open. 
Title: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: timb on October 11, 2017, 10:48:01 am
For anything that requires a physical connections VMs can be hit and miss, the device won't always show up as an option to do pass through or sometimes it will just be flaky.  My experience with that has always been mixed.   I would just have a separate machine with windows for that stuff.   But in general I do my best to avoid anything that may require windows.   It is annoying that so many things are designed for it though instead of being open.

I disagree, though, it may depend on the VM software you use. I’ve found that commercial options tend to be much better in this regard (Parallels, VMWare, etc). Especially when it comes to basic USB pass through and such working reliably out of the box.

I use VMWare Fusion (which uses basically the same VMX core as Workstation) almost daily, for everything from test equipment connections (scopes, AFGs, power supplies, DMMs, GPIB adapters and so on) to embedded development (including firmware programming and debugging) and I rarely, if ever, have a single device fail to pass through. In fact, I think the last time was circa 2009 with some odd Chinese device that didn’t quite respect the USB bulk transfer standard. The developer who handles USB for VMWare had me turn on verbose USB logging, plug the device in and send her the log. I had a patch a few days later.

I’ve actually found using a VM with good USB logging capabilities can be very, very helpful when writing software for an embedded
USB stack. Also for reverse engineering protocols and hacking devices. It makes it super easy to monitor the traffic flow. [emoji4]

Anyway, as I mentioned before, VMs give you the ability to do snapshots and rollbacks of the entire image, in seconds, which is a lot more difficult to setup on a physical machine (and a lot more time consuming to actually do the rollbacks).

Most of my software development is done on the command line these days, and while I *could* easily setup the toolchain under macOS, I instead tend to run them under a Linux VM instead. This has three big advantages:
1) I can rollback to a previous snapshot if something breaks.
2) I can have separate VMs with otherwise incompatible combinations of software installed.
3) I can archive a copy of the VM (with all the dev tools installed) with the rest of the project files (source code, gerbers, etc). That way, if I have to go back 6 months or 6 years from now and make a change, I know the dev environment will be intact and I won’t have to spend a weekend figuring out how to install ancient dev tools on a modern environment).

That applies equally to Linux and Windows tools.

And hey, if you don’t want to have to boot into an OS just to VM another OS, there’s always bare metal virtualization systems (HyperVisors) to manage and run the VMs.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Karel on October 11, 2017, 11:45:01 am
I’ve actually found using a VM with good USB logging capabilities can be very, very helpful when writing software for an embedded
USB stack. Also for reverse engineering protocols and hacking devices. It makes it super easy to monitor the traffic flow. [emoji4]

Better than, for example, using Wireshark?
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: nctnico on October 11, 2017, 12:01:18 pm
Honestly, there’s really no reason to dick around with WINE in my opinion.

VM's are great, but virtualisation is a RAM and disk space eater, that is one reason why Wine is still relevant. It is also handy for software which is only used occasionally where you don't want to maintain an entire other OS just for the odd program.
But getting something to work under Wine eats more time than RAM and hard drive space cost nowadays. I have tried Wine in the past but every time the first piece of software I try doesn't work.

It depends on the software - I posted a while back about running Sonnet Lite under Wine on my Mac and it worked fine.

I wouldn't try too hard, if it doesn't work it doesn't work and then you know a VM is the way forward. If it does work then you are up and running in less time than it takes to boot a VM :)
A VM boots in seconds (from SSD) but my Windows XP VM is always running so Windows is a mouseclick away. Schematics and PCB design work just fine in the VM as well.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: timb on October 11, 2017, 03:43:50 pm
I’ve actually found using a VM with good USB logging capabilities can be very, very helpful when writing software for an embedded
USB stack. Also for reverse engineering protocols and hacking devices. It makes it super easy to monitor the traffic flow. [emoji4]

Better than, for example, using Wireshark?

At the very least I find it’s easier to setup and much less intrusive, since you don’t need any custom drivers or low level modifications to the system (which all of the useful USB logging apps I’ve seen require).

It removes that additional abstraction layer, so I’ve found it’s less likely to interfere with what you’re trying to debug.
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Karel on October 11, 2017, 04:03:02 pm
I’ve actually found using a VM with good USB logging capabilities can be very, very helpful when writing software for an embedded
USB stack. Also for reverse engineering protocols and hacking devices. It makes it super easy to monitor the traffic flow. [emoji4]

Better than, for example, using Wireshark?

At the very least I find it’s easier to setup and much less intrusive, since you don’t need any custom drivers or low level modifications to the system (which all of the useful USB logging apps I’ve seen require).

It removes that additional abstraction layer, so I’ve found it’s less likely to interfere with what you’re trying to debug.

With additional abstraction layer you mean what they describe here? https://wiki.wireshark.org/CaptureSetup/USB (https://wiki.wireshark.org/CaptureSetup/USB)
I found it very easy to use and powerfull (at least on Linux).
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: Red Squirrel on October 11, 2017, 10:02:10 pm
Yeah I use Virtualbox so it's probably not as good as VMware but it's fully free.   Been a while since I tried the USB passthrough though, it may have improved. I just know when I tried it before, it only worked when it wanted to.  Seemed to depend on the particular device.

 Had no idea you could capture USB with Wireshark, that's kinda cool to know. 
Title: Re: Advice needed for running Linux and develeopment tools, programming tools, etc
Post by: HoracioDos on October 12, 2017, 12:07:27 pm
Hi
I wasn't sure to write this reply here or in another thread but I think it's related and it can be useful for somebody. Yesterday I setup and tested a VM with Windows 7 Home Basic under Linux Mint 18.2 Cinnamon edition.

https://www.eevblog.com/forum/chat/windows-10-creators-update-1703/msg1322296/#msg1322296 (https://www.eevblog.com/forum/chat/windows-10-creators-update-1703/msg1322296/#msg1322296)