TagXplorer and Ubuntu 18.04LTS

cancel
Showing results for 
Search instead for 
Did you mean: 

TagXplorer and Ubuntu 18.04LTS

1,439 Views
JohnPaavo
Contributor II

Hello NXP and Friends!

I'd like to ask for help getting a problem resolved. I use Ubuntu 18.04LTS as my primary operating system.

My company will launch in a few weeks time a new NFC dog tag utilising the NTAG 216 IC. We want to use Tagxplorer in the production process for writing and making tags 'read only' but we are have problems getting TagXplorer to work properly and thus seek help from the community.

Here is what I have done so far:

1. Download and unpack the TagXplorer tool from:

https://www.nxp.com/products/rfid-nfc/mifare-hf/mifare-desfire/tagxplorer-pc-based-nfc-tag-reader-wr...

 

2.  Go to: https://gluonhq.com/products/javafx/

and download and extract 'JavaFX Linux SDK'  Public version 11.0.2 for Linux platform

3. I then run the jar with: java --module-path /path/to/sdk/lib/ --add-modules javafx.controls,javafx.fxml -jar TagXplorer-v1.2.jar (Making sure to provide the path to where I expanded the SDK)

4. The TagXplorer application opens and I attempt to connect readers:

Identiv uTrust 3700F and

HID Omnikey 5022CL

But only receive the message "Reader is not supported".

5. When I open competitor NFC read/write software like 'NFC Tools' in Ubuntu 18.04 both Identiv uTrust 3700F and HID Omnikey 5022CL work perfectly!

6. In terminal when I launch TagXplorer I get the following crash report:

Sep 29, 2020 9:17:36 AM javafx.scene.control.Control loadSkinClass
SEVERE: Failed to load skin 'com.sun.javafx.scene.control.skin.ProgressBarSkin' for control ProgressBar[id=splashProgressBar, styleClass=progress-bar progress-bar]
java.lang.ClassNotFoundException: com.sun.javafx.scene.control.skin.ProgressBarSkin
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at javafx.controls/javafx.scene.control.Control.loadClass(Control.java:124)
at javafx.controls/javafx.scene.control.Control.loadSkinClass(Control.java:720)
at javafx.controls/javafx.scene.control.Control$5.invalidated(Control.java:680)
at javafx.base/javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:110)
at javafx.base/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145)
at javafx.graphics/javafx.css.StyleableStringProperty.set(StyleableStringProperty.java:83)
at javafx.controls/javafx.scene.control.Control$5.set(Control.java:672)
at javafx.graphics/javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:69)
at javafx.graphics/javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:45)
at javafx.graphics/javafx.scene.CssStyleHelper.transitionToState(CssStyleHelper.java:787)
at javafx.graphics/javafx.scene.Node.doProcessCSS(Node.java:9647)
at javafx.graphics/javafx.scene.Node.access$900(Node.java:398)
at javafx.graphics/javafx.scene.Node$1.doProcessCSS(Node.java:471)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSSImpl(NodeHelper.java:192)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.superProcessCSSImpl(ParentHelper.java:93)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.superProcessCSS(ParentHelper.java:63)
at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1366)
at javafx.graphics/javafx.scene.Parent.access$400(Parent.java:79)
at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
at javafx.controls/javafx.scene.control.Control.doProcessCSS(Control.java:886)
at javafx.controls/javafx.scene.control.Control.access$000(Control.java:83)
at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1397)
at javafx.graphics/javafx.scene.Parent.access$400(Parent.java:79)
at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9529)
at javafx.graphics/javafx.scene.Scene.doCSSPass(Scene.java:569)
at javafx.graphics/javafx.scene.Scene.preferredSize(Scene.java:1745)
at javafx.graphics/javafx.scene.Scene$2.preferredSize(Scene.java:393)
at javafx.graphics/com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
at javafx.graphics/javafx.stage.Window$12.invalidated(Window.java:1086)
at javafx.base/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.base/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
at javafx.graphics/javafx.stage.Window.setShowing(Window.java:1174)
at javafx.graphics/javafx.stage.Window.show(Window.java:1189)
at javafx.graphics/javafx.stage.Stage.show(Stage.java:273)
at com.nxp.tagxplorer.Main.start(Main.java:66)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
at java.base/java.lang.Thread.run(Thread.java:834)

Sep 29, 2020 9:17:36 AM javafx.scene.control.Control loadSkinClass
SEVERE: Failed to load skin 'com.sun.javafx.scene.control.skin.ProgressBarSkin' for control ProgressBar[id=splashProgressBar, styleClass=progress-bar progress-bar]
java.lang.ClassNotFoundException: com.sun.javafx.scene.control.skin.ProgressBarSkin
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at javafx.controls/javafx.scene.control.Control.loadClass(Control.java:124)
at javafx.controls/javafx.scene.control.Control.loadSkinClass(Control.java:720)
at javafx.controls/javafx.scene.control.Control$5.invalidated(Control.java:680)
at javafx.base/javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:110)
at javafx.base/javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145)
at javafx.graphics/javafx.css.StyleableStringProperty.set(StyleableStringProperty.java:83)
at javafx.controls/javafx.scene.control.Control$5.set(Control.java:672)
at javafx.graphics/javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:69)
at javafx.graphics/javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:45)
at javafx.graphics/javafx.scene.CssStyleHelper.transitionToState(CssStyleHelper.java:787)
at javafx.graphics/javafx.scene.Node.doProcessCSS(Node.java:9647)
at javafx.graphics/javafx.scene.Node.access$900(Node.java:398)
at javafx.graphics/javafx.scene.Node$1.doProcessCSS(Node.java:471)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSSImpl(NodeHelper.java:192)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.superProcessCSSImpl(ParentHelper.java:93)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.superProcessCSS(ParentHelper.java:63)
at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1366)
at javafx.graphics/javafx.scene.Parent.access$400(Parent.java:79)
at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
at javafx.controls/javafx.scene.control.Control.doProcessCSS(Control.java:900)
at javafx.controls/javafx.scene.control.Control.access$000(Control.java:83)
at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
at javafx.graphics/javafx.scene.Parent.doProcessCSS(Parent.java:1397)
at javafx.graphics/javafx.scene.Parent.access$400(Parent.java:79)
at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
at javafx.graphics/javafx.scene.Node.processCSS(Node.java:9529)
at javafx.graphics/javafx.scene.Scene.doCSSPass(Scene.java:569)
at javafx.graphics/javafx.scene.Scene.preferredSize(Scene.java:1745)
at javafx.graphics/javafx.scene.Scene$2.preferredSize(Scene.java:393)
at javafx.graphics/com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
at javafx.graphics/javafx.stage.Window$12.invalidated(Window.java:1086)
at javafx.base/javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.base/javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
at javafx.graphics/javafx.stage.Window.setShowing(Window.java:1174)
at javafx.graphics/javafx.stage.Window.show(Window.java:1189)
at javafx.graphics/javafx.stage.Stage.show(Stage.java:273)
at com.nxp.tagxplorer.Main.start(Main.java:66)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
at java.base/java.lang.Thread.run(Thread.java:834)

Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: expected series of <size> while parsing 'box-shadow' at [28,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: expected series of <size> while parsing 'box-shadow' at [33,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: Expected '<font-weight>' while parsing '-fx-font-weight' at [42,18]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: expected series of <size> while parsing 'box-shadow' at [64,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style.css: expected series of <size> while parsing 'box-shadow' at [189,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style_1600x900.css: expected series of <size> while parsing 'box-shadow' at [39,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style_1600x900.css: expected series of <size> while parsing 'box-shadow' at [45,13]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style_1600x900.css: Expected '<font-weight>' while parsing '-fx-font-weight' at [54,18]
Sep 29, 2020 9:17:40 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/Launch_Screen_Style_1600x900.css: expected series of <size> while parsing 'box-shadow' at [76,13]
Sep 29, 2020 9:20:25 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/alertdailog.css: expected series of <size> while parsing 'box-shadow' at [28,13]
Sep 29, 2020 9:20:25 AM javafx.css.CssParser declaration
WARNING: CSS Error parsing jar:file:/home/paavo/NFC/NXP/TagXplorer-v1.2.jar!/css/alertdailog.css: expected series of <size> while parsing 'box-shadow' at [34,13]

 

Windows 10 is not an option for us. We MUST get TagXplorer working in Ubuntu 18.04LTS! My buisness depends on making this work. Is there someone in this forum that can help us move forward?

Thank you very much,

John Tengström, President

Taganize, Inc.

 

8 Replies

347 Views
Contributor
Contributor I

oops! Obviously I missed one other ugly immediate code value. Please patch my updated diff instead!

0 Kudos

495 Views
Contributor
Contributor I

The problem is caused by the different naming convention of SC readers between Windows and Linux. I don't have a clue, how Windows does it. But under Linux, the name of the reader is given by the pcscd daemon when the reader is getting connected. However, the TagXplorer Java application is only accepting the Windows style named device:

Identiv uTrust 3700 F CL Reader 0

There seems to be no effort on the NXP side, to make this interoperable. If you want pcscd to meet this strict naming convention, you have to build it yourself. To do so, you have to clone https://github.com/LudovicRousseau/PCSC to some working directory. I branched the 1.8.26 tag which is matching Ubuntu 20.04. Then you would apply the attached patch, configure, build and install the project and replace /usr/sbin/pcscd with your freshly built pcscd which should be located in /usr/local/sbin after a regular installation. After stopping the pcscd daemon and replugging your uTust 3700 device, TagXplorer should connect to it.

0 Kudos

921 Views
jvacanti
Contributor I

Hi @JohnPaavo. Did you have any success on this in the meantime? I am having similar issues on Linux.

One thing to note is Java typically expects a PC/SC driver in the incorrect location on Linux. When running a java command from the command line, you can add this option:

 

-Dsun.security.smartcardio.library=/usr/lib/x86_64-linux-gnu/libpcsclite.so.1

 

Now I can see my readers in TagXplorer, but I still get the "Reader is not supported" message that you got, too. Any ideas?

 

0 Kudos

1,305 Views
Contributor
Contributor I

Any suggestion to this topic would be highly appreciated

0 Kudos

1,339 Views
acesinvensys
Contributor I

is there any 2020 tagxplorer release ???

0 Kudos

1,413 Views
JohnPaavo
Contributor II

Any help and insight to get this up and running would be appreciated!

Thanks!

0 Kudos

1,383 Views
jimmychan
NXP TechSupport
NXP TechSupport

I will try to get some suggestions from the internal team. 

0 Kudos

1,371 Views
JohnPaavo
Contributor II

Thank you Jimmy! It would also be great to hear if there is an updated version for 2020 of the TagXplorer software. Especially as regards increased compatibility amongst NFC readers/writers.

Please keep in mind that I need for this to work on Ubuntu.

Thank you Jimmy.

Best,

John

 

0 Kudos