Menu

#10 A way to make a libFTDIInterface for 64 bit Linux?

1.0
closed
nobody
2019-12-01
2018-12-14
No

Greetings, I have been burning up greatly good numbers of electrons with the Mac version of Yad2xx, it has been my stable workhorse for all of my SPI and i2c communication needs. As I have drifted increasingly towards Linux (Ubuntu with xfce) I was hoping you had some suggestions on how to compile the libFTDIInterface for Linux so I can ditch my mac and move completely over to my new favorite linux box.

Discussion

1 2 > >> (Page 1 of 2)
  • Stephen Davies

    Stephen Davies - 2018-12-17

    Hi Robert,
    welcome back.

    Adding a Linux port shouldn't be too much work. The Maven project has been set up as multi-module. It always builds the common JAR then depending on the build OS it builds one of the two possible native libraries. See <profiles> in trunk/pom.xml, lines 96-124, for details. </profiles>

    I'm about to head off on holiday. If you find you have a desperate need for this code I suggest:

    1) install the FTDI Linux 64 bit driver
    2) alter trunk/pom.xml. Cut & paste one of the existing <profile> sections. Change values - <id>Linux</id>, <family>unix</family> and <module>yad2xxSo</module>.
    3) make directory trunk/yad2xxSo
    4) copy trunk/yad2xxJnilib/pom.xml to trunk/yad2xxSo/pom.xml
    5) alter trunk/yad2xxSo/pom.xml to build Linux SO. The <name> and some of the elements require attention.</name></profile>

    Sorry I can't provide more detail right now.

    Merry Christmas,
    Stephen

     
  • Robert Huber

    Robert Huber - 2019-01-12

    Thanks a stack Stephen, I hope your holidays were pleasant and relaxing. here is what I have managed to do based on your instructions ... at the end of the <profiles> section of the trunk pom.xml i have added an 'so' profile with ...</profiles>

        <profile>
            <id>Linux</id>
            <activation>
                <os>
                    <family>unix</family>
                </os>
            </activation>
    
            <modules>
                <module>yad2xxSo</module>
            </modules>
          </profile>
    

    and made the new yad2xxSo folder with pom file with the changes that i thought were needed

    when i ran the mvn install i ended up with errors ...

    [ERROR] Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-alpha-8:javah (default-javah) on project libFTDIInterface: Error running javah command: Error executing command line. Exit code:2 -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-alpha-8:javah (default-javah) on project libFTDIInterface: Error running javah command
    ...

    i went back and checked out the unmodified trunk, reinstalled the D2XX drivers (which are now at 1.4.4 and i still got the same error. i'll first make a new ticket for that, then will return back to here for the linux profiles once i manage to wrap my head around the initial compile problem of the trunk ... i fear it may have something to do with newer versions of java.

     

    Last edit: Robert Huber 2019-01-13
  • Robert Huber

    Robert Huber - 2019-01-13

    not far to go but not quite there yet ...

    i copied the pom.xml file from the yad2xxJniLib to the new yad2xxSo project folder and i modified a few of the obvious places with

    <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <parent>
        <groupId>net.sf.yad2xx</groupId>
        <artifactId>yad2xx</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    
    <artifactId>libFTDIInterface</artifactId>
    
    <name>yad2xx - Linux Library</name>
    
    <packaging>jnilib</packaging>
    
    <dependencies>
    
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>yad2xxJava</artifactId>
            <version>${project.version}</version>
        </dependency>
    
    </dependencies>
    
    <build>
        <plugins>
    
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>native-maven-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
    
                    <javahClassNames>
                        <javahClassName>net.sf.yad2xx.FTDIInterface</javahClassName>
                    </javahClassNames>
                    <javahVerbose>true</javahVerbose>
    
                    <sources>
                        <source>
                            <directory>../src/main/native</directory>
                            <fileNames>
                                <fileName>FTDIInterface.c</fileName>
                            </fileNames>
                        </source>
                        <source>
                            <directory>${env.JAVA_HOME}/include</directory>
                        </source>
                        <source>
                            <directory>${env.JAVA_HOME}/include/darwin</directory>
                        </source>
                        <source>
                            <directory>/usr/local/include</directory>
                        </source>
                    </sources>
    
                    <linkerStartOptions>
                        <linkerStartOption>-dynamiclib -lftd2xx -L/usr/local/lib</linkerStartOption>
                    </linkerStartOptions>
    
                </configuration>
            </plugin>
    
        </plugins>
        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            org.codehaus.mojo
                                        </groupId>
                                        <artifactId>
                                            native-maven-plugin
                                        </artifactId>
                                        <versionRange>
                                            [1.0-alpha-7,)
                                        </versionRange>
                                        <goals>
                                            <goal>initialize</goal>
                                            <goal>unzipinc</goal>
                                            <goal>javah</goal>
                                            <goal>compile</goal>
                                            <goal>link</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    

    when i mvn -e install this i get ...

    [INFO] Error stacktraces are turned on.
    [INFO] Scanning for projects...
    [ERROR] [ERROR] Project 'net.sf.yad2xx:libFTDIInterface:1.0-SNAPSHOT' is duplicated in the reactor @
    [ERROR] Project 'net.sf.yad2xx:libFTDIInterface:1.0-SNAPSHOT' is duplicated in the reactor -> [Help 1]
    org.apache.maven.project.DuplicateProjectException: Project 'net.sf.yad2xx:libFTDIInterface:1.0-SNAPSHOT' is duplicated in the reactor
    at org.apache.maven.project.ProjectSorter.<init> (ProjectSorter.java:96)
    at org.apache.maven.graph.DefaultProjectDependencyGraph.<init> (DefaultProjectDependencyGraph.java:61)
    at org.apache.maven.graph.DefaultGraphBuilder.reactorDependencyGraph (DefaultGraphBuilder.java:121)
    at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:83)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    [ERROR]
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DuplicateProjectException</init></init>

    any suggestions how to conquer that last hurdle???

    </project>
     
  • Stephen Davies

    Stephen Davies - 2019-01-14

    Hi Robert,
    try:
    <packaging>so</packaging> and
    <artifactid>soFTDIInterface</artifactid>

     
  • Robert Huber

    Robert Huber - 2019-01-14

    hi stephen, yes, those were the missing bits. the I in artifactId needed to be capitalized. the sourceforge editor insists on changing the I back to i.

    then i got a clean compile of the linux library under java 8. thanks again, i will do some testing of the linux lib this week and will report how it gies, thanks again. ciao,

     

    Last edit: Robert Huber 2019-01-14
  • Robert Huber

    Robert Huber - 2019-01-14

    this is my maven file for the new yad2xxso project that generates the linux so, if you want to include it in the trunk distro.

     
  • Stephen Davies

    Stephen Davies - 2019-01-17

    Hi Robert,
    I've decided to move the project over to Github. Apparently it's where all the cool kids hang out ;)

    Any chance you could clone https://github.com/aushacker/yad2xx then apply your changes and send me a pull request? Haven't done this before and need the practice.

     
  • Robert Huber

    Robert Huber - 2019-01-17

    dear stephen, done. i have always struggled a bit with the GIT mechanism and its terminology, but i have added the needed sections to the pom files. you should have the pull requests on your desk. let me know if i can be of use with bringing the yad2xx maven ecosystem to newer versions of the JDK. my move from 8 to 11 has been entirely smooth and i have yet to find anyting that broke ... other than the javah deprecation in favor of javac -h. i am more familiar with starting on java and implementing some routines via JNI in C, but how hard can it be to go the other way? .... ok, don't answer ... LOL

     
  • Robert Huber

    Robert Huber - 2019-02-13

    reporting from the front ... no additional driver is needed on linux. ubuntu 18.04 lists

    ttyUSB0
    ttyUSB1

    when i plug in the ftdi click. so far so good.

    i have not managed to compile the native lib on linux,
    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO]
    [INFO] Yet Another JNI-D2XX Interface Library. ............ SUCCESS [ 0.076 s]
    [INFO] yad2xx - Java Library .............................. SUCCESS [ 1.954 s]
    [INFO] yad2xx - Linux Library ............................. FAILURE [ 0.480 s]
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2.796 s
    [INFO] Finished at: 2019-02-13T14:09:28-05:00
    [INFO] Final Memory: 23M/403M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-alpha-8:compile (default-compile) on project soFTDIInterface: Error executing command line. Exit code:1 -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-alpha-8:compile (default-compile) on project soFTDIInterface: Error executing command line. Exit code:1
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Error executing command line. Exit code:1
    at org.codehaus.mojo.natives.plugin.NativeCompileMojo.execute (NativeCompileMojo.java:182)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    Caused by: org.codehaus.mojo.natives.NativeBuildException: Error executing command line. Exit code:1
    at org.codehaus.mojo.natives.util.CommandLineUtil.execute (CommandLineUtil.java:34)
    at org.codehaus.mojo.natives.compiler.AbstractCompiler.compile (AbstractCompiler.java:105)
    at org.codehaus.mojo.natives.plugin.NativeCompileMojo.execute (NativeCompileMojo.java:178)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    [ERROR]
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR] mvn <goals> -rf :soFTDIInterface</goals>

    i was able to compile it on mac though. i needed to rename the soFTDIInterface.so from the so target to libFTDIInterface.so and i created a eclipse userlibrary from the jar and lib. when i atempt to load the library in my program i get

    OpenJDK 64-Bit Server VM warning: You have loaded library /home/admin_lab/eclipse-workspace/UserLibraries/yad2xx/libFTDIInterface.so which might have disabled stack guard. The VM will try to fix the stack guard now.
    It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
    Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/admin_lab/eclipse-workspace/UserLibraries/yad2xx/libFTDIInterface.so: /home/admin_lab/eclipse-workspace/UserLibraries/yad2xx/libFTDIInterface.so: invalid ELF header (Possible cause: endianness mismatch)
    at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
    at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2424)
    at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2481)
    at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2678)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2643)
    at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:876)
    at java.base/java.lang.System.loadLibrary(System.java:1875)
    at net.sf.yad2xx.FTDIInterface.<clinit>(FTDIInterface.java:40)</clinit></libfile>

    following the suggestion i get

    $ execstack -c '/home/admin_lab/eclipse-workspace/UserLibraries/yad2xx/libFTDIInterface.so'
    execstack: "/home/admin_lab/eclipse-workspace/UserLibraries/yad2xx/libFTDIInterface.so" is not an ELF file

    any suggestions? i dont think we are too far off ...

     
  • Stephen Davies

    Stephen Davies - 2019-02-14

    Hi Robert,
    a couple of thoughts.

    1) Am no Linux expert but the ttyUSB0/1 thing may be a problem as it suggests the OS has taken ownership of the FTDI device. This could mean that the devices will be unavailable for D2XX api operations. There is a known driver issue on macOS https://sourceforge.net/p/yad2xx/wiki/OS%20X%20Device%20Drivers/
    There may be a similar problem on Linux where the default driver only allows the FTDI device to operate as a serial port via the Posix APIs. Check out the FTDI driver documentation for Linux.

    2) The Maven native plugin normally shells out to the gcc compiler. The attached stack trace suggests that this is where the problem lies. Are you able to run gcc at the Linux command line? i.e. is gcc installed? Also, try running Maven with debugging enabled i.e. mvn -X.

    3) As far as cross compiling the library on macOS I have no experience. There may be a way to acheive this but its way beyond my ability to make it happen.

     
  • Stephen Davies

    Stephen Davies - 2019-02-14

    Hi Robert,
    set up an Ubuntu workstation and made some progress today.

    Suggest you read https://github.com/aushacker/yad2xx/wiki/Building-on-Linux first. Let me know what I've left out.

    You will also want to do a git pull as I've changed the Linux POM.

     
  • Robert Huber

    Robert Huber - 2019-02-14

    nice, may i suggets a few small changes to the building-on-linux page? in the install section either mention to download the driver you need, or, alternatively, add line

    $ wget https://www.ftdichip.com/Drivers/D2XX/Linux/libftd2xx-x86_64-1.4.8.gz

    in between cd ~/
    and tar ....

    unfortunately, despite its .gz ending, the file is not gzipped

    $ file libftd2xx-x86_64-1.4.8.gz

    reports

    libftd2xx-x86_64-1.4.8.gz: POSIX tar archive (GNU)

    tar works but it needs to use command

    $ tar xfv libftd2xx-x86_64-1.4.8.gz

    for selecting java version 1.8 i suggest using

    $ sudo update-alternatives --config java

    instead. the instructions suggest a restart after setting the javapath, which unfortunately will wipe out the javapath and reset it back to the default (which may not be 1.8)

     
    • Stephen Davies

      Stephen Davies - 2019-02-15

      Have updated the page re wget and tar suggestions.

      Are you using openjdk or the Oracle JVM?

       
  • Robert Huber

    Robert Huber - 2019-02-14

    NOTE: that suggested restart at the end of the instructions will also again load the VCP drivers.

     
  • Robert Huber

    Robert Huber - 2019-02-14

    in any case, it still gives me an issue with a missing jni.h file at net_sf_yad2xx_FTDIInterface.h:2:10 as in this stacktrace

    In file included from /home/admin_lab/Downloads/yad2xx-master/src/main/native/FTDIInterface.c:35:0:
    /home/admin_lab/Downloads/yad2xx-master/yad2xxSo/target/native/javah/net_sf_yad2xx_FTDIInterface.h:2:10: fatal error: jni.h: No such file or directory
    #include <jni.h>
    ^~~~~~~
    compilation terminated.
    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO]
    [INFO] Yet Another JNI-D2XX Interface Library. ............ SUCCESS [ 0.144 s]
    [INFO] yad2xx - Java Library .............................. SUCCESS [ 4.028 s]
    [INFO] yad2xx - Linux Library ............................. FAILURE [ 1.114 s]
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 5.841 s
    [INFO] Finished at: 2019-02-14T08:07:29-05:00
    [INFO] Final Memory: 23M/258M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-alpha-8:compile (default-compile) on project soFTDIInterface: Error executing command line. Exit code:1 -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-alpha-8:compile (default-compile) on project soFTDIInterface: Error executing command line. Exit code:1
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Error executing command line. Exit code:1
    at org.codehaus.mojo.natives.plugin.NativeCompileMojo.execute (NativeCompileMojo.java:182)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    Caused by: org.codehaus.mojo.natives.NativeBuildException: Error executing command line. Exit code:1
    at org.codehaus.mojo.natives.util.CommandLineUtil.execute (CommandLineUtil.java:34)
    at org.codehaus.mojo.natives.compiler.AbstractCompiler.compile (AbstractCompiler.java:105)
    at org.codehaus.mojo.natives.plugin.NativeCompileMojo.execute (NativeCompileMojo.java:178)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    [ERROR]
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR] mvn <goals> -rf :soFTDIInterface</goals></jni.h>

     
  • Robert Huber

    Robert Huber - 2019-02-14

    one step further. the missing jni.h was due to the missing JAVA_HOME path after restart. 3 ways to solve it ...

    • set it (temproarily for you only) in your terminal

    $ export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"

    • or (for you and it remains after restart) add this line to your .bashrc file, save it, and force it to rerun from the terminal

    export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"

    $ source ~/.bashrc

    • or (permanently for all users) add the line to /etc/profile and restart
      export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"

    then runs into gcc compile problem

     
  • Robert Huber

    Robert Huber - 2019-02-14

    it then fails to find -lftd2xx during gcc compile ... any suggestions? thanks

    [INFO] /bin/sh -c cd /home/admin_lab/Downloads/yad2xx-master/yad2xxSo && gcc -shared -o /home/admin_lab/Downloads/yad2xx-master/yad2xxSo/target/soFTDIInterface.so target/objs/FTDIInterface.o -lftd2xx -L/usr/local/lib
    /usr/bin/ld: cannot find -lftd2xx
    collect2: error: ld returned 1 exit status
    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO]
    [INFO] Yet Another JNI-D2XX Interface Library. ............ SUCCESS [ 0.173 s]
    [INFO] yad2xx - Java Library .............................. SUCCESS [ 6.109 s]
    [INFO] yad2xx - Linux Library ............................. FAILURE [ 1.971 s]
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 8.818 s
    [INFO] Finished at: 2019-02-14T10:33:22-05:00
    [INFO] Final Memory: 21M/202M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-alpha-8:link (default-link) on project soFTDIInterface: Error executing command line. Exit code:1 -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-alpha-8:link (default-link) on project soFTDIInterface: Error executing command line. Exit code:1
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Error executing command line. Exit code:1
    at org.codehaus.mojo.natives.plugin.NativeLinkMojo.execute (NativeLinkMojo.java:227)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    Caused by: org.codehaus.mojo.natives.NativeBuildException: Error executing command line. Exit code:1
    at org.codehaus.mojo.natives.util.CommandLineUtil.execute (CommandLineUtil.java:34)
    at org.codehaus.mojo.natives.linker.AbstractLinker.link (AbstractLinker.java:53)
    at org.codehaus.mojo.natives.plugin.NativeLinkMojo.execute (NativeLinkMojo.java:215)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    [ERROR]
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR] mvn <goals> -rf :soFTDIInterface</goals>

     
  • Stephen Davies

    Stephen Davies - 2019-02-15

    Sounds like you missed the bit in AN220 about copying the library (sec 2.1.1).

    sudo cp /opt/ftdi/v1.4.8/build/libftd2xx.so.1.4.8 /usr/local/lib
    sudo ln -s /usr/local/lib/libftd2xx.so.1.4.8 /usr/local/lib/libftd2xx.so

     
  • Robert Huber

    Robert Huber - 2019-02-15

    dang it. yes you are so very right. that is exactly what i had missed. i added the lines and i get a spanking clean new compile of the lib for linux. cant wait to put it through its paces today. will report. i am using the openjdk 8 for compile and 11 for run time. thanks for updating the github readme. confirming that it works as writen in my hands.

     
  • Stephen Davies

    Stephen Davies - 2019-02-19

    Hi,
    got it all working. You'll need anothe git pull, maven clean and rebuild then copy the shared library to the Java library path (https://github.com/aushacker/yad2xx/wiki/Binary-Installation). Let me know how you go.

     
  • Robert Huber

    Robert Huber - 2019-03-12

    hi stephen, confirming a clean compile, the FTDIclick is recognized, but, as you suspected, the built in usbserial driver grabs a hold of it as soon as I plug the click in.

    $ ls /dev/tty*
    lists ttyUSB0 and ttyUSB1 for the two devices of the FT2232H

    i consulted the ftdi readme https://www.ftdichip.com/Drivers/D2XX/Linux/README.dat which tells me to unload the ftdi_sio and usbserial drivers

    you must unload this driver (and usbserial) if it is attached to your device ("rmmod ftdi_sio" and "rmmod usbserial" as root user).

    even after i unload the driver the device remains open

    Found FTDI Board:
    FTDI Device: 0
    Type : FT_DEVICE_UNKNOWN
    Descr :
    SerNum :
    Open : true
    Speed : false
    Class : class net.sf.yad2xx.Device
    Driver : 1.4.8
    FTDI Device: 1
    Type : FT_DEVICE_UNKNOWN
    Descr :
    SerNum :
    Open : true
    Speed : false
    Class : class net.sf.yad2xx.Device
    Driver : 1.4.8

    not surprisingly, trying to open it gives me ...

    java.lang.IllegalArgumentException: Supplied device is not MPSSE capable.
    at net.sf.yad2xx.mpsse.Mpsse.<init>(Mpsse.java:132)
    at net.sf.yad2xx.mpsse.Mpsse.<init>(Mpsse.java:126)
    at net.sf.yad2xx.mpsse.Spi.<init>(Spi.java:72)
    at com.lobsterman.JavaGrinders.control.FTDI2xx_SPI.<init>(FTDI2xx_SPI.java:79)
    at Tests_Control.Test_FTDIDeviceManager.main(Test_FTDIDeviceManager.java:31)</init></init></init></init>

    if i unplug and replug the click, the usbserial/ftdi_sio is loaded again. i'll prevent the ftdi_sio from being loaded in the first place, but not sure ...

    any suggestions? be well,

     
  • Stephen Davies

    Stephen Davies - 2019-03-13

    Hi Robert,
    got the ListDevices sample app to run ok today.

    Steps were:
    1) Install D2XX drivers as per the video (on FTDI drivers page)
    2) Attach device. Running 'lsmod' should show ftdi_sio and usbserial modules loaded. 'ls /dev' listed ttyUSB0 and ttyUSB1.
    3) 'sudo rmmod ftdi_sio'
    4) 'sudo rmmod usbserial'
    5) 'ls /dev' no longer lists ttyUSB0 and ttyUSB1
    6) Run 'sudo java -jar yad2xxJava-x.x-SNAPSHOT-jar-with-dependencies.jar net.sf.yad2xx.samples.ListDevices'

    The trick was running the JVM with root permissions. Can't say I'm too happy about it. It has nothing to do with yad2xx, if you watch the last minute or so of the FTDI install video they do the same thing to run their C code examples.

    Some more info on the Linux/D2XX driver issue can be found here - https://www.elektormagazine.de/news/ftdi-d2xx-and-linux-overcoming-the-big-problem-

    Regards,
    Stephen

     
  • Robert Huber

    Robert Huber - 2019-03-13

    ok, no prob with unloading the driver ... when i plug in the click

    $ lsmod

    ftdi_sio 53248 2
    usbserial 45056 5 ftdi_sio

    $ ls /dev/tty*

    /dev/ttyUSB0
    /dev/ttyUSB1

    after the unload all of these entries are gone ... good so far. i then run

    $ sudo java -jar ~/yad2xx-master/yad2xxJava/target/yad2xxJava-1.0-jar-with-dependencies.jar net.sf.yad2xx.samples.ListDevices

    but i get ...

    no main manifest attribute, in /home/admin_lab/yad2xx-master/yad2xxJava/target/yad2xxJava-1.0-jar-with-dependencies.jar

    running a call to ListDevices from within eclipse lists the two devices of the click, but both are listed as open=true.

     
  • Robert Huber

    Robert Huber - 2019-03-13

    it even seems to use the correct driver (1.4.8) but device is still claimed from previous ones despite unload of modules.

    FTDI Device: 0
    Type : FT_DEVICE_UNKNOWN
    Descr :
    SerNum :
    Open : true
    Speed : false
    Class : class net.sf.yad2xx.Device
    Driver : 1.4.8
    java.lang.IllegalStateException: Device in use
    at net.sf.yad2xx.Device.open(Device.java:211)
    at Tests_Control.Test_FTDIDeviceManager.main(Test_FTDIDeviceManager.java:27)

    and if we prevent the built in driver from loading in the first place then none of the comm with other ftdei chips will work. i think i will try the route with udev.rule for idVendor and idProduct as in the link. do you know how to assign custom values for the ftdiclick? that maybe another path to loading the correct driver. suggestions?

     
  • Stephen Davies

    Stephen Davies - 2019-03-14

    Hi Robert,
    I find it strange that we have similar configurations but appear to be getting different results. I'm testing this with a Dangerous Prototypes FT2232H v1.0 breakout board.

    At this point you might want to ignore Java and try running the FTDI C examples. The problem is in the driver, not the Java layer. Once you get those working we can return to yad2xx.

    By the way, I have sent a support request to FTDI about the supervisor (sudo) requirement. That doesn't sit well with me.

    Regards,
    Stephen

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.