Build a Developer's...
 
Notifications
Clear all

Build a Developer's Linux Workstation - Complete Guide

45 Posts
16 Users
5 Likes
5,518 Views
(@dronebot-workshop)
Workshop Guru Admin
Joined: 5 years ago
Posts: 1053
Topic starter  

Please read the description to get the most out of this very LONG video!
You can go directly to the section that interests you with the Table of Contents below, or by using the new YouTube “Chapters” feature in the video player.

Article with Cheat Sheet & PDF - https://dbot.ws/linuxws

Today we will be doing a complete build of a Linux Workstation for developers. We will start with a “barebones” computer system, then we’ll install Linux and more than 15 different software applications.

In order to simplify things you can download a free ZIP file that contains the following:

- A PDF version of the article.
- A “Cheat Sheet”. A simple text file with every Linux command you will need to install the software

Get the “Cheat Sheet” ZIP file at https://dbot.ws/cheat

Detailed article at https://dbot.ws/linuxws
More articles and tutorials: https://dronebotworkshop.com
Join the conversation on the forum: https://forum.dronebotworkshop.com
Subscribe to the newsletter and stay in touch: https://dbot.ws/dbnews

The workshop is in desperate need of a new workstation, so today I’m going to put one together. The new workstation will be based upon Ubuntu Linux and will have the following software and enhancements:

INTEGRATED DEVELOPMENT ENVIRONMENTS (IDEs):

Arduino IDE
Platform IO (with Visual Studio Code)
PyCharm Python IDE (the article also shows the installation of Thonny IDE)

TEXT EDITING & MANIPULATION:

Geany text editor
Meld file difference comparator
Balena Etcher USB & SD Card burner
GIT Management - GiG and GitCola

COMMUNICATIONS & NETWORK TOOLS

FileZilla FTP and SFTP utility
XTerm terminal emulator
Angry IP Scanner

PCB & SCHEMATIC DESIGN TOOLS

KiCad
EasyEDA

GRAPHICS & MEDIA TOOLS

VLC Media Player & Recorder
Shutter screenshot utility with web enhancement
Peek animated GIF recorder

LINUX ENHANCEMENTS

Nemo file manager
XKill Hotkey to kill frozen applications
Remove Caps Lock
ChaseApp file search engine

I used an Intel NUC “barebones” computer for my workstation. You can build the same one I did, use another computer, configure an existing computer as a “dual-boot, or just enhance your current Linux workstation.

You can skip directly to the section that interests you by using the following Table of Contents or the new YouTube “Chapters” feature in the video player:

00:00 - Introduction
07:18 - Workstation Requirements
13:10 - Building the Workstation (Intel NUC assembly)
21:06 - Installing Ubuntu Linux 20.04
25:00 - First Boot
27:28 - Format Work Drive
30:18 - Gedit and Terminal on Dock
32:13 - Nemo
34:21 - XKill Hotkey
36:28 - Turn off Caps Lock
39:13 - Install ChaseApp
44:03 - Install Arduino IDE & set USB permissions
52:02 - Install Visual Studio Code & PlatformIO
54:54 - Install PyCharm
57:04 - Install Geany
58:42 - Install Meld
1:01:01 - Install Balena Etcher
1:03:15 - GIT File Management (GitG & GitCola)
1:07:19 - Install FileZilla
1:09:05 - Install XTerm
1:11:09 - Install Angry IP Scanner
1:14:20 - Install KiCad
1:16:35 - Install EasyEDA
1:20:19 - Install VLC
1:21:12 - Install Shutter
1:23:32 - Install Peek

Between this video, the detailed article, and the “Cheat Sheet” you should have no problem building your own Linux Developers Workstation.

"Never trust a computer you can’t throw out a window." — Steve Wozniak


   
Quote
(@emersok)
Member
Joined: 3 years ago
Posts: 5
 

Hi I followed the article and got hold of a NUC i5 with 8Gb RAM and a 120Gb SDD

The original hard disk had windows 10 installed. Everything worked fine.

I added an internal Intel dual band wireless-AC 7260 board. Wifi worked fine under windows but couldn't get the bluetooth function to work. I followed various "fixes" including insulating two of the pins on the wireless board. No joy. not a big problem but an irritation.

I really wanted a Linux set-up so after replacing the 120gb SSD with a 240Gb SSD I followed the tutorial for installing the obuntu operating system and all the other suggested packages.

The tutorial was excellent, particularly using the cheat sheet. The extra large splash screens with the commands shown is also a great idea (instead of trying to peer at small text on the screen)

Once again everything worked fine and I also had built in wifi and bluetooth functionality. The only thing I had to do differently was to reboot (rather than just logging out and in again) to get the arduino serial comms going after the dialout usermod.

Brilliant tutorial. I previously wasn't aware of the NUC but I now have a pretty quick system which I can switch between windows and linux by selecting the appropriate SSD from the two i now have.

I have created images for both systems saved on USB sticks.

Whilst creating the image for the linux version I used "partimage" and found that list of partitions had various entries labelled loop? I also had the following

loop1 to loop7 listed , all -unknown- various sizes from 54 to 256 MiB

sda1 fat32  512.00 MiB

sda2 -extended-

sda5 ext3fs 223.0MiB

then loop8 to loop15 , all -unknown- various sizes from 62 to 291 MiB

If I use the Disks app

My 240Gb SSD is listed. 

I see

Filesystem Partition1 537 MB FAT

Extended Partition Partition 2 240GB

Filesystem Partition 5 240GB Ext4

Does this make sense ??

I'm a dabbler rather than having any great expertise and very new to the Linux workstation concept. I am more used to microsoft Windows and seeing a small number of partitions on a disc. I usually create sytem partition for the operating system and installed programmes and have a separate Data partition. In this case I did not partition the SSD.

Do I need to worry about any of this? 

Thanks again for a great video

 

 

 


   
ReplyQuote
(@dronebot-workshop)
Workshop Guru Admin
Joined: 5 years ago
Posts: 1053
Topic starter  
Posted by: @emersok

Filesystem Partition1 537 MB FAT

Extended Partition Partition 2 240GB

Filesystem Partition 5 240GB Ext4

Does this make sense ??

Multiple partitions are common for Linux. If you happen to have a microSD card with the Raspberry Pi Operating system (formerly known as Raspbian) on it and mount it you'll see a similar partition screen - it is also a Debian-based system.

Out of curiosity I just checked the machine I'm typing this on, another Nuc running Ubuntu 20.04 (not the one from the video, this one is a NUC 8)  and I have two partitions on its 512GB SSD:

  • Filesystem Partition 1 537 MB FAT (the same as yours)
  • Filesystem Partition 2 500GB Ext4

Plus Free Space of 1.1MB.

Are you dual-booting this system with Windows & Linux? That may be the reason you also see your partition mounted as an Extended Partition.

A lengthy but thorough description of Linux partitions can be found here, I'm sure there are several others.

BTW, I'm going to be modifying the workstation I used in the video. I purchased a copy of Windows 10 Pro and after I finish filming a few videos I'm in the middle of I want to configure it as a dual-boot. As you may recall it has two 1TB SSDs, I want to use the Western Digital SATA drive for windows and the Samsung Evo M.3 drive for Ubuntu.

Once I do I can post info about my partition table, probably in about a week.

Glad you found the video and cheat sheet useful, and I hope you enjoy the NUC. I now have there of them and am anxiously awaiting for Intel to put a price tag on the new NUC 11 so I can see how much poorer I'm going to be this year!

😎

Bill

"Never trust a computer you can’t throw out a window." — Steve Wozniak


   
ReplyQuote
frogandtoad
(@frogandtoad)
Member
Joined: 5 years ago
Posts: 1458
 

@emersok

Posted by: @emersok

Whilst creating the image for the linux version I used "partimage" and found that list of partitions had various entries labelled loop? I also had the following

loop1 to loop7 listed , all -unknown- various sizes from 54 to 256 MiB

sda1 fat32  512.00 MiB

sda2 -extended-

sda5 ext3fs 223.0MiB

then loop8 to loop15 , all -unknown- various sizes from 62 to 291 MiB

If I use the Disks app

My 240Gb SSD is listed. 

I see

Filesystem Partition1 537 MB FAT

Extended Partition Partition 2 240GB

Filesystem Partition 5 240GB Ext4

Does this make sense ??

Those are loop devices (loop8 - loop15), are generated when programs are installed using the new snap system.  From my understanding, they are not real partitions, and thought of as virtual partitions.

Some people do not like the quirks of this new snap system, and so remove it altogether.  In my last installation of a headless Ubuntu Server, that's exactly what I did as soon as I completed installation of it... removed the snap system.

Typing:

    $ snap list

...will show a list of the programs installed using the snap system ($ man snap for more help).

And typing:

    $ lsblk OR...
    $ sudo lsblk

...will show partition information ($ man lsblk for more help).

Cheers.


   
ReplyQuote
codecage
(@codecage)
Member Admin
Joined: 5 years ago
Posts: 1018
 

The Intel NUC supposedly supports up to three monitors, but does anyone have a good solution for a relatively simple way to add two more monitors to the NUC?  I saw something on Amazon that was about $140.00 that might do the trick, but it provided a bunch of other options that I thought was overkill.  I would like something that just supplied two HDMI, or DP, ports.

SteveG


   
ReplyQuote
(@emersok)
Member
Joined: 3 years ago
Posts: 5
 

@frogandtoad

Hi,

Thanks for your reply explaining the loop entries. If I rebuild the system I think that i may also remove snap

Thanks again

Keith


   
ReplyQuote
(@emersok)
Member
Joined: 3 years ago
Posts: 5
 

@dronebot-workshop

Hi Bill,

Thanks for your prompt replies. My main machine is Windows based so I intend to use the NUC as a pure Linux system (one operating system on a 240Gb SSD). I'll keep my smaller 120Gb SSD which has Windows 10 and office installed and plug that in if I want to operate the NUC as a Windows machine. 

I'll follow your update with interest and maybe set my NUC up without Snap this time. I'll also look into creating two partitions, one for the OS and apps and another for data.

For info This is a screen shot (using shutter!) of the Disks app showing the two? 240Gb partitions. I'd just like to understand why?

Disks 002

 Thanks again for the great material

Keith

 


   
ReplyQuote
codecage
(@codecage)
Member Admin
Joined: 5 years ago
Posts: 1018
 

Me again folks!

Has anyone that has followed Bill's tutorial on setting up the NUC also installed Zoom and gotten it working?

I can't seem to get a microphone working correctly.  Even using a Logitech USB headset/microphone!

From the 'VU' meter in Zoom it appears that Zoom (and the Linux sound system) is hearing me, but it never gives me a play back of my audio.  The 'Test Speakers' part works just fine and I hear the tones generated as part of the test in the earphones.  And taking the headset/microphone to a Windows machine everything works properly so I know it is not the Logitech USB device.

SteveG


   
ReplyQuote
 Dano
(@dano)
Member
Joined: 3 years ago
Posts: 6
 

The tutorial on building a workstation was helpful and reminded me of many such experiences in the past. One trouble I am not able to understand or resolve is the installation of the “Arduino IDE”. From all the Dronebot videos I see features of the IDE such as the “Library Manager” and “adding a library from the .zip file” that are not present on my IDE installation. This has been true on an installation of the IDE on a Raspian OS Pi4 as well as an Ubuntu 20.04 on a Pi4. What am I missing? Thanks for any insight.

incidentslly, my Arduino IDE on these platforms works OK otherwise but I don’t think I have the right IDE installation somehow.


   
ReplyQuote
(@emersok)
Member
Joined: 3 years ago
Posts: 5
 

@dano

Hi, Try this ...

Open the arduino IDE

In the tabs select "Sketch" then "Include Library"

You should then see beneath Manage Libraries in the drop-down list "Add .ZIP Library"

This is for my Ubuntu based system with Arduino IDE 1.8.13

Hope this helps

Keith


   
ReplyQuote
 Dano
(@dano)
Member
Joined: 3 years ago
Posts: 6
 

@emersok

Thank you Keith. The steps you give are exactly what I was seeing on the videos but sadly those menu entries were not on my IDE.

so, I then guessed that the IDE that I was running was one that was included with my OS somehow and was precluding the version 1.8.13 that I installed manually. I removed the package that came from the OS catalog then installed the 1.8.13 just downloaded and,  VOILA!, the features I was missing earlier are now present! Thanks for your assistance.

Dan


   
ReplyQuote
frogandtoad
(@frogandtoad)
Member
Joined: 5 years ago
Posts: 1458
 

I've mentioned this before, and thought I'd mention it again...

I have been using the new Arduino Pro IDE for quite a while now (the latest version I downloaded was a nightly build from December), as previously stated, it looks and feels a very much like VSCode, as I think it uses a similar base, with code completion, a debugger, and a nice dark theme too.

It also compiles code 10 times faster than my 1.8.13 version.

Not trying to detract away from using Platform IO, but the Pro version is all I use now, and even though it is not quite production ready, it appears to be working quite well for me.

It doesn't look like they've done any recent work on it, but if you want to test it out, you can grab it here:

arduino-pro-ide

Cheers.


   
ReplyQuote
(@dronebot-workshop)
Workshop Guru Admin
Joined: 5 years ago
Posts: 1053
Topic starter  

@frogandtoad

I've been looking forward to using the production release of the Arduino Pro IDE for quite a while now.

But the problem has always been this, as quoted from their GitHub repository:

Note: This is not a production release!

It's been that way for a long time, well over a year. So it makes me think that development has either stalled or halted on this.

Once it IS a production release I'm looking forward to checking it out, and I may indeed download the current Alpha release and check it out someday, as I am curious about it.

But it's great to hear you're having a positive experience with it!

😎

Bill

 

 

 

 

"Never trust a computer you can’t throw out a window." — Steve Wozniak


   
Ron and frogandtoad reacted
ReplyQuote
frogandtoad
(@frogandtoad)
Member
Joined: 5 years ago
Posts: 1458
 

@dronebot-workshop

Posted by: @dronebot-workshop

@frogandtoad

I've been looking forward to using the production release of the Arduino Pro IDE for quite a while now.

But the problem has always been this, as quoted from their GitHub repository:

Note: This is not a production release!

It's been that way for a long time, well over a year. So it makes me think that development has either stalled or halted on this.

Once it IS a production release I'm looking forward to checking it out, and I may indeed download the current Alpha release and check it out someday, as I am curious about it.

But it's great to hear you're having a positive experience with it!

Hi Bill,

Yep, I just download the zip portable version, so I never really install it, and it works very well so far.

They are supposed to have nightly builds, but the last one I downloaded is dated "20201712" and the date hasn't changed since then... they may well be on an extended Christmas break!

Nevertheless, it is as I noted, working very well... the worst thing that's happened is that a COM port has gone stale, and I've had to re-launch the IDE, but no major dramas at all.

I think people will like it when it is actually taken up as a production version, especially because it will also support python and Javascript, with Git incorporated too 🙂

Cheers.


   
ReplyQuote
(@rajames429)
Member
Joined: 3 years ago
Posts: 2
 

Thank you for this video.  Which model of the NUC did you use for this project?  Where did you purchase this NUC model? I recently searched Amazon for NUC models and the listing is extensive.  I want the latest version 10 of the NUC which can accommodate 64GB of RAM, but I do not want Windows 10 installed.  Do you have a link to the model used for the video?


   
ReplyQuote
Page 1 / 3