• Visit https://www.embeddedcomputers.net/ for Hardware; Software and all other things related to FlashcatUSB

Compiling Console Source on Linux

50dBm

New Member
Is there any README or any Documentation on how to compile the console version on Linux, and more importantly, how to run after compilation. Dotnet, on Linux, is not my strong suit!

Thanks
B.
 
Looks like I am getting somewhere....

bguthrie@LinDesk01:~/Downloads/Flashcat/Console$ dotnet run -check
Welcome to the FlashcatUSB interfacing software, build: 628
Copyright 2021 - Embedded Computers LLC
Running on: Unix (64 bit)
FlashcatUSB Script Engine build: 311
License status: non-commercial use only
Waiting for connected device timedout


At least it is executing; need to see why it timedout; something with the USB libraries I suspect.
 
bguthrie@LinDesk01:~/Downloads/flashcat/Console$ dotnet build
Microsoft (R) Build Engine version 16.10.1+2fd48ab73 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

Determining projects to restore...
Restored /home/bguthrie/Downloads/flashcat/Console/FlashcatUSB_Console.vbproj (in 187 ms).
FlashcatUSB_Console -> /home/bguthrie/Downloads/flashcat/Console/bin/Debug/net5.0/fcusb_console.dll

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:03.75
bguthrie@LinDesk01:~/Downloads/flashcat/Console$ dotnet list FlashcatUSB_Console.vbproj package
Project 'FlashcatUSB_Console' has the following package references
[net5.0]:
Top-level Package Requested Resolved
> LibUsbDotNet 2.2.29 2.2.29

bguthrie@LinDesk01:~/Downloads/flashcat/Console$ dotnet publish -r linux-x64
Microsoft (R) Build Engine version 16.10.1+2fd48ab73 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

Determining projects to restore...
Restored /home/bguthrie/Downloads/flashcat/Console/FlashcatUSB_Console.vbproj (in 205 ms).
FlashcatUSB_Console -> /home/bguthrie/Downloads/flashcat/Console/bin/Debug/net5.0/linux-x64/fcusb_console.dll
FlashcatUSB_Console -> /home/bguthrie/Downloads/flashcat/Console/bin/Debug/net5.0/linux-x64/publish/

bguthrie@LinDesk01:~/Downloads/flashcat/Console$ dotnet /home/bguthrie/Downloads/flashcat/Console/bin/Debug/net5.0/linux-x64/fcusb_console.dll -check
Welcome to the FlashcatUSB interfacing software, build: 628
Copyright 2021 - Embedded Computers LLC
Running on: Unix (64 bit)
FlashcatUSB Script Engine build: 311
License status: non-commercial use only
Waiting for connected device timedout
----------------------------------------------
Press any key to close

At this point, I have been at this for hours; any hints.. anyone? It would be greatly appreciated. Thanks
 
"The software is provided as compiled binaries as well as source code.

It does NOT need a license key in order to run/operate.

The following features will require a valid license key:

  • Multi-device programming support
  • Boundary-scan programming for NOR
  • Command-line / Console mode
  • Integrated ECC support for NAND
  • LABview plugin
  • Linux version (console mode only at the moment)
Since the above features are designed for enterprise users, those will need to obtain a commercial license in order to use them.

Only qualified companies can apply for and purchase a license. Individuals are not allowed to obtain them. Personal use licenses maybe issued in the future, once we get an automated web form setup that will ask some questions to verify that you will not use the software for commercial purposes."

Well.. that solves that!
 
well... License keys are for commercial users. They are not needed to run or use the software. In addition, on Linux, you have to compile the console version from source code.

So back to the drawing board; really wish there was some type of installation instructions. Maybe I can provide them if I can get this working. Ha!
 
well... License keys are for commercial users. They are not needed to run or use the software. In addition, on Linux, you have to compile the console version from source code.

So back to the drawing board; really wish there was some type of installation instructions. Maybe I can provide them if I can get this working. Ha!
Hi @50dBm

Have you managed to get it to work? I have tried for a while on Arch Linux and do not seem to be able to get anywhere. The device is not detected when I run the software.

In the latest version (at the time of this post) has to be changed to 64bit in the the "<PlatformTarget>x86</PlatformTarget>" in the FlashcatUSB_Console.vbproj file. Although building the software works running it complains about unsupported archtiecture. It seems there is not 32bit dotnet for linux.

When building for 64bit it finishes without errors. I noticed that the LibUsbDotNet downloaded from nuget is only a 32 bit (I don't know if that's the issue). I tried for hours but then it's easier to run the software under Qemu for me now.

I tried using a newer version of LibUsbDotNet by changing the version number but the build does not work.

Hoping someone here managed to get it to work (under any Linux platform) could share how it was done.

K.
 
Hi there - I have also been working on this, perhaps we could pool resources

Here are some notes on getting FCUSB_SRC643_102422 (ie. the latest) to build under Ubuntu (Kubuntu actually). I am pretty experience with Linux but hardly at all with dotnet.

After unzipping the files I have to make the following two changes.

1) create the directory <project_dir>/Console/obj/Debug/net6.0/FlashcatUSB.Languages

Otherwise I got a load of errors like:
/usr/lib/dotnet/dotnet6-6.0.110/sdk/6.0.110/Microsoft.Common.CurrentVersion.targets(3264,5): error MSB3554: Cannot write to the output file "/home/jkn/projects/FCUSB_SRC643_102422/Console/obj/Debug/net6.0/Flash
catUSB.Languages/chinese.resources". Could not find a part of the path '/home/jkn/projects/FCUSB_SRC643_102422/Console/obj/Debug/net6.0/FlashcatUSB.Languages/chinese.resources'. [/home/jkn/projects/FCUSB_SRC643
_102422/Console/FlashcatUSB_Console.vbproj]
# and others for different languages


2) edit the file <project_dir>/Console/FlashcatUSB_Console.vbproj

to correctly point to the app.manifest file.

WAS:
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
CHANGE TO:
<ApplicationManifest>..\Source\My Project\app.manifest</ApplicationManifest>

3) Note that I didn't have to change the CPU type - in this version the .vbproj file says:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>

With these changes:

jkn@tower:~/projects/FCUSB_SRC643_102422/Console$ dotnet build
Microsoft (R) Build Engine version 17.0.1+b177f8fa7 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

Determining projects to restore...
All projects are up-to-date for restore.
FlashcatUSB_Console -> /home/jkn/projects/FCUSB_SRC643_102422/Console/bin/Debug/net6.0/fcusb_console.dll

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:03.13
jkn@tower:~/projects/FCUSB_SRC643_102422/Console$

Hurrah!

I guess I now have to look at the next step...

Regards, JKN
 
Hmm:

jkn@tower:~/projects/FCUSB_SRC643_102422/Console$ dotnet bin/Debug/net6.0/linux-x64/fcusb_console.dll --check
----------------------------------------------
Press any key to close
jkn@tower:~/projects/FCUSB_SRC643_102422/Console$

This is without a programmer connected, but still... any pointers?
 
I'm working on this now: https://github.com/easybe/fcusb/tree/wip
So far, I got the FlashcatUSB Classic to be detected on Ubuntu with .Net 6.0. Needs to be tested and further fixed/cleaned up though.
It is based on version 643 as 645 seems to be too broken for me as a VB novice to fix. I got stuck at:
Code:
.../fcusb/Source/programmers/PARALLEL_NAND.vb(30,23): error BC30002: Type 'ECC_Engine' is not defined. [.../fcusb/Console/FlashcatUSB_Console.vbproj]
.../fcusb/Source/programmers/SPI_NAND.vb(29,23): error BC30002: Type 'ECC_Engine' is not defined. [.../fcusb/Console/FlashcatUSB_Console.vbproj]
 
Last edited:
I am happy to report that I have successfully read and written an SPI NOR (XM25QH64C)!
 
Back
Top