Tag Archives: linux

Installing Zenmap in Ubuntu 22.04

There are a few tutorials out there claiming to instruct one on installing Zenmap in newer versions of Ubuntu, unfortunately all the ones I have found simply do not work. The big problem is that Python 2  and pyGtk have been completely phased out and are no longer available in Ubuntu. Attempting to install any currently available .deb packages will result in failure.

FEAR NOT!!!! The nmap team has updated their code to Python 3 and the entire nmap suite can be installed quite easily from source. Zenmap, with a minor tweak to the config file will  work on Ubuntu 22.04 (LTS)!

OK, let’s get into it!

This install will be performed from the command line so get started by opening a terminal…

1: Install prerequisites

$ sudo apt install build-essential checkinstall zlib1g-dev libssl-dev libcurl4-openssl-dev

2: Get the source code from github

$ cd ~/Downloads
$ wget https://github.com/nmap/nmap/archive/refs/heads/master.zip -O nmap.zip
$ unzip nmap.zip

$ cd nmap

3: Fix Zenmap config file

There is an error in the current Zenmap config file and if not fixed Zenmap will not be able to find your nmap binary.

$ nano zenmap/share/zenmap/config/zenmap.conf

Navigate to line 60 and fix the [paths] section. Change this:

[paths]
nmap_command_path = ../nmap
ndiff_command_path = ../ndiff/ndiff

To this:

[paths]
nmap_command_path = nmap
ndiff_command_path = ndiff

If you have already gotten everything installed but Zenmap can’t find nmap, you can do the same fix on the file in your home folder:

~/.zenmap/zenmap.conf

4: Compile and install

$ ./configure
$ make
$ sudo make install

5: Run Zenmap

For full functionality of Zenmap, it is recommended to be run as root.

$ sudo zenmap

Happy Hacking!

MyDIYCNC Desktop CNC Machine $20 GRBL Resurrection

About 8 years before the writing of this article i purchased a CNC machine from Amazon created by a company called MyDIYCNC. I was interested in the technology and the price was right at only $250.

It was easy enough to assemble and get working with Linux using their FabCAM software. Well, so it seemed at first…

When the z-carriage would retract, it would skip some steps once in a while and eventually drive the tool head into whatever I was trying to mill. While the company’s customer support was responsive I could never figure the issue out and the project got shelved.

Long story short the company is no longer around but the machine was. Sitting on my shelf, sadly doing nothing.

Then one day while shopping for 3D Printer upgrades, I ran across this Arduino kit on amazon that will replace the proprietary brains, motor controllers, and software with a well supported open source system, GRBL.

I put the Arduino and drivers into this 3D Printed enclosure:

I used the power supply that came with the MyDiyCNC kit as well as the original spindle relay. The two wires on the right go to the spindle pins on the Stepper Hat:

I soldered some female plugs from jumper wires onto my motor wires and attached them to the motor driver output. Color order from top (reset button side of board, see photo) is Blue, Red, Black, Green:

I hooked the 12V+/- output from the power supply to (yellow+, black-) to the controller hat. This is also where I pulled 12V for the 40mm enclosure fan.

Don’t forget to put a jumper on the enable pins (right of reset button).

Once everything was all hooked up I adjusted the motor controllers amperage to 400mA (for the stock motors that came with the kit, your mileage may vary) using this guide.

Now you just need to flash GRBL to your Arduino and get some software for your computer. Here are some helpful links and files that go me through the rest of the setup phase including jumper settings for microstepping:

The last tweaks to get it to work correctly was to set the X, Y, Z max speed to 350mm/min (Firmware Settings) and 1/4 micro-stepping (Jumper under motor driver).

Now you can calculate your steps per millimeter here.

Finally, the software to control it.

I have been using OpenBuilds Control and their integrated CAM software. It works fairly well, though the GUI is prone to crashing. Upside is that when the GUI does crash, the job still completes. Unfortunately he crashed GUI can make it difficult to find perfect zero again.

Universal Gcode Sender will definitely play with GRBL and control the machine. However I have yet to use it to actually run a job. I will post updates after I give it a try.

Feel free to post any questions in the comments section below!

Use Pulse Audio to Pipe Audio Streams Between Programs

Looking for a way to pipe audio from one program to another without using JACK? Pulse Audio, default sound system for Ubuntu can do this and it’s really not that hard.

1. Install pavucontrol

sudo apt install pavucontrol

2. Set up a null sink

pactl load-module module-null-sink sink_name=virtual-cable

3. Connect aps via the null sink

In this example I will use QSSTV to listen to the output of GQRX. You can use any programs you want.

Run Pulse Audio Volume Control (pavucontrol)

In the “output devices” tab, set the audio output for the program you want to monitor or record to Null Output.

In the “recording” tab, set the capture from for the “recording” program to Monitor of Null Output

And that’s about it! Enjoy!

Viewing ISS SSTV Images Using GQRX and QSSTV and RTL Dongle on Ubuntu 20.20

When the International Space Station passes overhead it is still possible to view the SSTV (Slow Scan Television) images they are sending on 145.800Mhz using your Linux computer and a Realtek SDR USB Dongle. I did this on Ubuntu 20.20 but it should work on any Linux running pulse audio.

NOTE 1:  12-31-2020 is the last day the ISS will be transmitting images (for now). This tutorial can still help you get GQRX sending audio to QSSTV or any other “recording” app.

Step 1: Install and configure GQRX

First, get GQRX running using this How To: https://gqrx.dk/download/install-ubuntu

NOTE: When I installed GQRX on Ubuntu 20.20 only the myriadrf repos worked. Your mileage may vary.

You now need to run GQRX and configure it to work with your dongle. This is out of the scope of this howto and much info is available via Google. Once you can listen to radio via GQRX it’s time to move to the next steps.

Here is what my settings for the ISS look like:

Step 2: Install and configure QSSTV

I followed this guide to get QSSTV working, however, I found that howto a bit over complicated and many of the steps unnecessary if you already have GQRX installed. I was simply able to install QSSTV like this:

sudo apt install qsstv

Run QSSTV and in the configuration for sound set input and output to Pulse Audio.

Step 3: Install Pulse Audio Volume Control

Now that you have both your apps, you need to install some stuff to get pulse to make them play together. First install pavucontrol:

sudo apt install pavucontrol

Step 4: Invoke the NULL Sink

Finally it’s time to make a dummy sink. This is the glue that puts it all together. Using pavucontrol, any app can be outputted to the null sink and then any other app can record from this null sink.

pactl load-module module-null-sink sink_name=virtual-cable

Step 5: Connect the Programs

Once this null sink is created open up Pulse Audio Volume Control, GQRX and QSSTV. In the recording tab, set the input for QSSTV to Monitor of Null Output.

Finally in the output devices tab, set GQRX to Null Output.

That should be about it.

Find out when the space station is passing overhead and then tune GQRX to 145.800… QSSTV will do the rest. Feel free to post any questions you may have.

NOTE: You can use this technique to pipe audio from any program to another.

Enjoy!

Installing Chirp in Ubuntu 20.04

If you have been using the PPA to get the Chirp dailies, you will quickly find out that this no longer works in Ubuntu 20.04 Focal.

Python 2 is getting phased out and whatever is running the GUI for Chirp has been phased out completely. This makes getting Chirp to run a little more difficult than before.

UPDATE: It looks like major progress has been made with the Python 3 upgrade and Chirp is available in Groovy (20.10)! This article will likely be outdated soon. 

As of this writing, there are a few options:

  1. Wait until the python 3 version of Chirp is finished (NOT!)
  2. Install via the Snap: This gives a warning against doing so
  3. Install via flatpak: WINNAR!

A Flatpak is a self contained package that includes all necessary libraries. Similar to a Snap, but this uses a package directly from the author. I like the flatpak option because I don’t need to manually install a bunch of deprecated libs or add some PPA that wasn’t even meant for Ubuntu.

Note from user: If you already have Chirp installed, you will need to remove it first. See comments section for details.

First thing you need to do is download the latest .flatpak file from here:

https://trac.chirp.danplanet.com/chirp_daily/LATEST/

Rest of the work is from the terminal.

First, install Flatpak:

$ sudo apt install flatpak

The other howtos seem to have missed this next step. You need to use flatpak to install the “freedesktop” platform. First update flatpak and your paths.

$ flatpak update -v

This will give you a warning about paths, something like:

Note that the directories

'/var/lib/flatpak/exports/share'
'/home/[username]/.local/share/flatpak/exports/share'

are not in the search path set by the XDG_DATA_DIRS environment variable, so applications installed by Flatpak may not appear on your desktop until the session is restarted.

Since we now have to log out anyway, now might be a good time to make sure you are in the dialout group.

Use  the groups command to list your active groups. If the group “dialout” does not appear, add yourself to the group (replace [username] with your username):

$ sudo usermod -aG dialout [username]

Now restart your session (or computer) and return to the terminal.

~$ flatpak update -v
Looking for updates…
Nothing to do.

Don’t worry about installation directory warnings if you haven’t installed anything yet. Those will be created later. Important is that we got rid of the path warning. Moving on….

Now you need to get the Freedesktop repository installed:

$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

and then install the Freedesktop Platform:

$ flatpak install flathub org.freedesktop.Platform//19.08

This might take a while its a big (~0.5Gb) download. Grab some coffee and make some QSO’s….. Maybe check out my club’s website: http://w6ek.org

Finally we can install Chirp!  (replace .flatpack filename with your downloaded version)

$ flatpak install Downloads/chirp-daily-20201014.flatpak

You’re done! You can run chirp from your applications menu or from the command like like this:

$ flatpak run com.danplanet.chirp

Remember, this is only a temporary solution until the Python 3 conversion of Chirp has been completely rolled out. However, in the interim if you want to easily update the flatpak, or automate it with a cron job, here is a script that works for me:


#!/bin/bash
#
#
# This script updats chirp flatpak to latest daily build
# Add this to root's crontab for automatic updates
# If run as standard user, you will get a popop asking for admin password
#
#
#Make download folder if doesn't exist
mkdir -p ~/Downloads/ChirpFP
#Move to Download folder
cd ~/Downloads/ChirpFP
#Remove previously downloaded flatpaks
rm *.flatpak
#Pull link from download page and download latest flatpak
wget `lynx -dump https://trac.chirp.danplanet.com/chirp_daily/LATEST/ | awk '/http/{print $2}' | grep flatpak`
#Install the file
flatpak install -y --noninteractive *.flatpak

If you found this article helpful, please support me by subscribing to my YouTube channel! https://youtube.com/piratesinteepees

73 – KK6VHH

Boot Partition in Ubuntu Keeps Running out of Space After Upgrade to 18.04

After I upgraded to the latest LTS from Ubutnu, namely 18.04, I was finding I could never have more than two kernels installed at a time. /boot kept running out of space and updates would fail. Running sudo apt autoremove && sudo apt autoclean would resolve the issue until the next upgrade. This was tolerable until I needed to install both a generic and a low-latency kernel.

Looking at my df output it almost seemed as if the upgrade swapped my efi and boot partitions. My efi partition was 500MB and my boot partition only 250MB! The solution I found was to resize the partitions to make the efi partition 100MB and the boot partition 650MB. This process wasn’t as easy or smooth as I initially thought, so I figured I would document what it took to make it work.

Step 1 – Boot a Live USB

First thing you need is to have a liveUSB from ubuntu that you can boot into:

Create a Bootable USB Drive in Ubuntu

Boot into this drive, selecting “Try Ubuntu Without Installing”

Step 2 – Resize the Drives

After Ubuntu boots, open a terminal and type sudo gparted. In gparted, resize your efi drive to 100MB first, then resize your boot partition into the remaining space. Make sure no flags are set for the boot partition and the boot,esp flags are set for the EFI partition.

When you resize the EFI System Partition, it will change to fat16. This needs to be reformatted back to fat32 to work. Once this is done right click on efi partition, and select New UUID. Once this is done apply all settings and quit gparted.

Step 3 – Install and Run Boot Repair

Now you need to install and run boot repair from withing the live USB environment.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

Once boot repair loads, click the recommended repair button and follow onscreen instructions.

Once you are done, reboot!

Amazon Kindle Fire 5.3.1 Hacked – Rooted and new Rom

I just purchased a Amazon 5th gen kindle fire to use as a ground station for my drones. The device supports OTG and has the power needed to run the 3dr usb telemetry device.

Out of the box the fire is kind of useless for anything but an e-reader amazon buying tool.  Rooting and a ROM upgrade solves this! It is fairly simple, however the process is time consuming with lots of waiting (have something else to do like a book or a movie while you’re waiting on certain processes).

Step 1: Make sure you have 5.3.1.0 fire OS installed on device
Go to Settings -> Device Options -> Software Updates to check the version. My device shipped with 5.3.1.0 so I did not need to load a different firmware. Your mileage may vary.

If version is less than 5.3.1.0 follow This Guide instead.

If version is greater than 5.3.1.0 follow these instructions to install the 5.3.1 firmware. download from here

DO NOT attempt to downgrade a > 5.3.1.0 device below 5.3.1.0!!! This it will BRICK your fire.

Once version is 5.3.1.0 go to step 2

Step 2: Reset to factory settings
Go to Settings -> Factory Reset and perform a factory reset. This will reboot the device.

When device boots skip all set up and do not connect to WiFi yet (this will slow down any unwanted update process).

Step 3: Enable Developer Mode
Go to Settings -> Device Options and tap the build number seven times to enable dev mode.
Go to Settings -> Device Options -> Developer and turn on USB debugging and ADB.

Step 4: Download needed files
Download the latest SuperTool from RootJunky and extract somewhere you will remember.

Download the latest Nexus ROM for Fire Tablet but DO NOT extract it.

Step 5: Run SuperTool
From a command line navigate to the SuperTool folder and run the appropriate file. In Linux the command is
$ ./3-Amazon-Fire-5th-gen-linux-mac.sh
You will see a screen like this:

Press 2 and Enter to root device. First it will install KingRoot to your device which you will then have to run from your device when directed to do so. KingRoot will ask you to connect to WiFi.

You will likely have to run KingRoot repeatedly before it will work. Time to grab a book or a movie as this part takes time. Each time you run KingRoot it will reboot your device a few times and show progress on the screen. Each attempt takes about 10-15 minutes or more. After the first attempt I unplugged my device from the computer and had to run KingRoot a total of 4 times before it worked. Just keep trying.

Once root is gained plug your Fire back into the computer (you may need to cycle the ADB setting on your device for it to be recognized) and continue the SuperTool process following all instructions there. This will install SuperSu which will need interaction from you on the device. Follow the setup procedure according to the instructions in SuperTool.

Once this process is done run “Block OTA updates” to prevent accidentally losing root access.

Step 6: Install Rom via FlashFire
While still in SuperTool install FlashFire (option 6).

From your computer copy the zipped ROM file downloaded in Step 4 over to the INTERNAL storage of your Fire device.

On your device run FlashFire and follow these steps exactly, otherwise you risk the installation having problems:

Select the red plus (+) button to expand a selection of options, choosing Wipe.
Select System data, 3rd party apps, and Dalvik cache if they are not already checked.
Click the red plus (+) button again and choose Flash ZIP/OTA.
Search for the Nexus ROM that you’ve copied over and choose it.
Automount and Mount /system read/write need to be unchecked.
Drag Wipe to the top of the queue.

Hit the flash button to start the process.

This will take a few minutes and the screen might go blank for a while. It will eventually boot into the new ROM.

Step 7: Enjoy!
With new ROM installed be sure to update Google first. After it updates clear google app and framework cache and reboot.

Install apps. You will need EVERYTHING as this is a very vanilla ROM.

OTG works great with APM/Tower or DroidPlanner software.

Much faster, full play store support and NO ADS! Yay!

Configure Tarot 2D Gimbal on Linux / Wine

Having trouble getting serial devices in Linux to show up as COM ports ( eg, COM1 ) in Wine? So was I. Getting the correct software to configure your Tarot Gimbal and getting the com ports to work can be a nightmare.

Problem solved! Read on!

So you have a Tarot Gimbal and the included USB programming dongle.

On your *nix machine ( I am using Ubuntu, your mileage may vary ):

Make sure user has dialout privileges:

$ sudo usermod -a G dialout username

Log out and back in.

Install Wine:

$ sudo apt install wine

Configure wine to run XP

$ winecfg

Add required items to Wine registry (~/.wine/system.reg):

[Hardware\\Devicemap\\Serialcomm] 1231984861
"Serial0"="COM1"

More info here: https://onetransistor.blogspot.com/2015/12/wine-serial-port-linux.html

Plug in your USB to serial adapter to computer. Link device (ttyUSB0 in my case) to Wine com1

$ ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

Download programming software: ZYX-BMGC-EN_V1.5.zip

Uncompress the file, right click on main application and select run with Wine.

Plug in connector on USB to Gimbal.

Select COM1 in software and click connect.

Power on drone/gimbal.

Hack Away!