[Resolved] How can I use libugpio.so library?



  • Good day, all. Last time I encountered with GPIO problems. I think all of C/C++ coders wants to use simple mechanism to GPIO manipulation. The second reason is using this library because it has poll-ed fuction to make pseudo-async events for our application. As I know we don't have any gpio drivers to use real hardware gpio interrupts with asynchronous dev-file operations.

    I know that library libugpio.so is already installed in Onion OS in the /usr/lib/. It's compiled version mhei/libugpio, created by Michael Heimpold.

    But I can't find any .h-file of it, also the development package (named libugpio-dev) is not avalable in the repository.

    Unfortunately I can't use it as dynamicaly loaded because this version not export any symbols, the commands nm, readelf, objdump don't find any exported symbols in and any other one in the path /usr/lib.

    But if you open the file in a simple viewer you can find the text name of all the functions same as ugpio.h that can be found in the repository mhei/libugpio,

    If anyone has used this library, please tell can I use.



  • @Modest-Polykarpovich take a look at the onion github https://github.com/OnionIoT
    Take a look at all the stuff available for gpio work in C



  • Many thanks all, I've figure out on it! The format of libugpio.so is corrupted for a my version of GCC.

    How to fix it and same one is below:

    1. First, it's posible only in cross-compiling machine (see official documentation). I'm using OpenWRT SDK Toolchain (it's compiled toolchain for MIPS MT76x8) on Debian CLI Virtual Machine. See more details here and here.

    2. Second. You must have right configuration of the feeds.config.default (the file at top path of SDK). My configuration is below:

    src-git base https://github.com/openwrt/openwrt.git;v18.06.4
    src-git packages https://github.com/openwrt/packages.git;openwrt-18.06
    src-git onion https://github.com/OnionIoT/OpenWRT-Packages
    src-link omega2_kmods /home/vladimir/My_kmods
    #src-git luci https://git.openwrt.org/project/luci.git^4d6d8bc5b0d7ee71c7b29b12e7e0c2e1e86cb268
    #src-git routing https://git.openwrt.org/feed/routing.git^bb156bf355b54236a52279522fabbec1e8dd7043
    #src-git telephony https://git.openwrt.org/feed/telephony.git^507eabe1b60458ceb1a535aec9d12c8be95706f0
    

    Look at the second line of my file:

    src-git packages https://github.com/openwrt/packages.git;openwrt-18.06
    

    I'm using GitHub Mirrow of The OpenWRT sources because Russian provider has banned resource https://git.openwrt.org. And I'm using named branch openwrt-18.06 because Onion OS has based on its.

    1. Third you must enter next commands below for download metafiles, sources, take configuration and compile our or another library (package).

    3a) We are updating packages metadata from repository (see second line of feeds.config.default😞

    myname@debian-cli:~/OpenWRT_sdk$ ./scripts/feeds update packages
    

    3b) Next, let's install libugpio package in the our SDK.

    myname@debian-cli:~/OpenWRT_sdk$ ./scripts/feeds install libugpio
    

    3c) Next, we have to download sources, configure and compile package:

    myname@debian-cli:~/OpenWRT_sdk$ make package/libugpio/download
    ...
    myname@debian-cli:~/OpenWRT_sdk$ make package/libugpio/prepare
    ...
    myname@debian-cli:~/OpenWRT_sdk$ make package/libugpio/compile
    
    1. Now we can try to find our files that we need to use in our own C/Π‘++ project:
    myname@debian-cli:~$ find ./OpenWRT-sdk -type f -name "*ugpio.*"
    ./OpenWRT-sdk/build_dir/target-mipsel_24kc_musl/libugpio-0.0.6/.pkgdir/libugpio.installed
    ./OpenWRT-sdk/build_dir/target-mipsel_24kc_musl/libugpio-0.0.6/.pkgdir/libugpio/usr/lib/libugpio.so.1.0.0
    ./OpenWRT-sdk/staging_dir/target-mipsel_24kc_musl/pkginfo/libugpio.provides
    ./OpenWRT-sdk/staging_dir/target-mipsel_24kc_musl/root-ramips/usr/lib/libugpio.so.1.0.0
    ./OpenWRT-sdk/staging_dir/target-mipsel_24kc_musl/usr/include/ugpio/ugpio.h
    ./OpenWRT-sdk/staging_dir/target-mipsel_24kc_musl/usr/lib/pkgconfig/libugpio.pc
    ./OpenWRT-sdk/staging_dir/target-mipsel_24kc_musl/usr/lib/libugpio.a
    ./OpenWRT-sdk/staging_dir/target-mipsel_24kc_musl/usr/lib/libugpio.so.1.0.0
    ./OpenWRT-sdk/staging_dir/target-mipsel_24kc_musl/packages/libugpio.list
    

    We see the next files:
    ugpio.h, libugpio.a, libugpio.so.1.0.0 (it's acronym of libugpio.so. You must rename it if will use).
    Also you will need file ugpio-version.h that you can find with ugpio.h in the same directory.

    1. Last. Copy these files in your project and use CFLAGS -L<path> and -l<libname without prefix *lib* and *extension*> for a GCC linker.

    By the way: static and dynamic linkage:

    1. If you put .so file in your project dir, your application will use shared object from LIB-path (/usr/lib/libugpio.so that has incorrect symbols format but normal works).
    2. If you put static library .a file your application will use static library and .so file no need.

    And the end. My compiled version of libugpio.so has normal format and all symbols you can see by next unitilies: nm, readelf, objdump. See example:

    myname@debian-cli:~/OpenWRT-sdk/staging_dir/target-mipsel_24kc_musl/usr/lib$
    readelf -s ./libugpio.so.1
    
    Π’Π°Π±Π»ΠΈΡ†Π° символов Β«.dynsymΒ» содСрТит 71 элСмСнт:
       Чис:    Π—Π½Π°Ρ‡   Π Π°Π·ΠΌ Π’ΠΈΠΏ     Бвяз   Vis      ИндСкс ΠΈΠΌΠ΅Π½ΠΈ
         0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
         1: 00000ccc     0 SECTION LOCAL  DEFAULT   10
         2: 00001331   104 FUNC    GLOBAL DEFAULT   11 ugpio_direction_output
         3: 00013000     0 NOTYPE  GLOBAL DEFAULT   19 _fdata
         4: 00001651    64 FUNC    GLOBAL DEFAULT   11 gpio_set_activelow
         5: 0001aff0     0 SECTION GLOBAL DEFAULT  ABS _gp_disp
         6: 000013c9    36 FUNC    GLOBAL DEFAULT   11 ugpio_set_edge
         7: 00001719    54 FUNC    GLOBAL DEFAULT   11 gpio_free_array
         8: 00001611    64 FUNC    GLOBAL DEFAULT   11 gpio_get_activelow
         9: 00001255    68 FUNC    GLOBAL DEFAULT   11 ugpio_set_activelow
        10: 00000e51   240 FUNC    GLOBAL DEFAULT   11 ugpio_request
        11: 000012a5    62 FUNC    GLOBAL DEFAULT   11 ugpio_get_direction
        12: 00000ccc     8 FUNC    GLOBAL DEFAULT   10 _init
        13: 000013a5    36 FUNC    GLOBAL DEFAULT   11 ugpio_get_edge
        14: 00000d30     0 NOTYPE  GLOBAL DEFAULT   11 _ftext
        15: 000016d9    64 FUNC    GLOBAL DEFAULT   11 gpio_set_value
        16: 00000f41   136 FUNC    GLOBAL DEFAULT   11 ugpio_request_one
        17: 000012e5    74 FUNC    GLOBAL DEFAULT   11 ugpio_direction_input
        18: 00001299    10 FUNC    GLOBAL DEFAULT   11 ugpio_alterable_direction
        19: 00001195     4 FUNC    GLOBAL DEFAULT   11 ugpio_fd
        20: 000130bc     0 NOTYPE  GLOBAL DEFAULT   21 __bss_start
        21: 00001691    72 FUNC    GLOBAL DEFAULT   11 gpio_get_value
        22: 00001f60     8 FUNC    GLOBAL DEFAULT   13 _fini
        23: 0000121d    56 FUNC    GLOBAL DEFAULT   11 ugpio_get_activelow
        24: 00001399    10 FUNC    GLOBAL DEFAULT   11 ugpio_alterable_edge
        25: 000011d9    68 FUNC    GLOBAL DEFAULT   11 ugpio_set_value
        26: 000130bc     0 NOTYPE  GLOBAL DEFAULT   20 _edata
        27: 000130e0     0 NOTYPE  GLOBAL DEFAULT   21 _end
        28: 00001119   124 FUNC    GLOBAL DEFAULT   11 ugpio_close
        29: 00001051   200 FUNC    GLOBAL DEFAULT   11 ugpio_full_open
        30: 00001895   100 FUNC    GLOBAL DEFAULT   11 gpio_request_array
        31: 00001199    64 FUNC    GLOBAL DEFAULT   11 ugpio_get_value
        32: 00000fc9    62 FUNC    GLOBAL DEFAULT   11 ugpio_free
        33: 000130bc     0 NOTYPE  GLOBAL DEFAULT   21 _fbss
        34: 00001f40     0 FUNC    GLOBAL DEFAULT  UND free
        35: 00001f30     0 FUNC    GLOBAL DEFAULT  UND close
        36: 00001a91   128 FUNC    GLOBAL DEFAULT   11 gpio_fd_write
        37: 00001f20     0 FUNC    GLOBAL DEFAULT  UND open
        38: 00001f10     0 FUNC    GLOBAL DEFAULT  UND strlen
        39: 00001bb5   120 FUNC    GLOBAL DEFAULT   11 gpio_fd_set_edge
        40: 00001951   124 FUNC    GLOBAL DEFAULT   11 gpio_fd_open
        41: 00001f00     0 FUNC    GLOBAL DEFAULT  UND __errno_location
        42: 000018f9    88 FUNC    GLOBAL DEFAULT   11 gpio_get_edge
        43: 0000141d   124 FUNC    GLOBAL DEFAULT   11 gpio_request
        44: 00001751    42 FUNC    GLOBAL DEFAULT   11 gpio_alterable_edge
        45: 0000177d    92 FUNC    GLOBAL DEFAULT   11 gpio_set_edge
        46: 000017d9   188 FUNC    GLOBAL DEFAULT   11 gpio_request_one
        47: 00001589    52 FUNC    GLOBAL DEFAULT   11 gpio_direction_input
        48: 000015bd    84 FUNC    GLOBAL DEFAULT   11 gpio_direction_output
        49: 00001ef0     0 FUNC    GLOBAL DEFAULT  UND strncmp
        50: 00001b11   164 FUNC    GLOBAL DEFAULT   11 gpio_fd_get_edge
        51: 00001ee0     0 FUNC    GLOBAL DEFAULT  UND read
        52: 00001009    72 FUNC    GLOBAL DEFAULT   11 ugpio_open
        53: 00001541    70 FUNC    GLOBAL DEFAULT   11 gpio_get_direction
        54: 00001ed0     0 FUNC    GLOBAL DEFAULT  UND write
        55: 00000000     0 FUNC    WEAK   DEFAULT  UND __deregister_frame_info@GLIBC_2.0 (2)
        56: 00001ec0     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail
        57: 00001eb0     0 FUNC    GLOBAL DEFAULT  UND lseek
        58: 00001ea0     0 FUNC    GLOBAL DEFAULT  UND malloc
        59: 00001499   124 FUNC    GLOBAL DEFAULT   11 gpio_free
        60: 00000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize
        61: 00001ce9   184 FUNC    GLOBAL DEFAULT   11 gpio_write
        62: 00001da1   144 FUNC    GLOBAL DEFAULT   11 gpio_check
        63: 00001515    42 FUNC    GLOBAL DEFAULT   11 gpio_alterable_direction
        64: 00000000     0 FUNC    WEAK   DEFAULT  UND __register_frame_info@GLIBC_2.0 (2)
        65: 000019cd    34 FUNC    GLOBAL DEFAULT   11 gpio_fd_close
        66: 00001c2d   188 FUNC    GLOBAL DEFAULT   11 gpio_read
        67: 00000000     0 OBJECT  GLOBAL DEFAULT  UND __stack_chk_guard
        68: 000013f1    42 FUNC    GLOBAL DEFAULT   11 gpio_is_requested
        69: 00001e90     0 FUNC    GLOBAL DEFAULT  UND snprintf
        70: 000019f1   160 FUNC    GLOBAL DEFAULT   11 gpio_fd_read
    
    Π’Π°Π±Π»ΠΈΡ†Π° символов Β«.symtabΒ» содСрТит 137 элСмСнтов:
       Чис:    Π—Π½Π°Ρ‡   Π Π°Π·ΠΌ Π’ΠΈΠΏ     Бвяз   Vis      ИндСкс ΠΈΠΌΠ΅Π½ΠΈ
         0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
         1: 00000138     0 SECTION LOCAL  DEFAULT    1
         2: 00000150     0 SECTION LOCAL  DEFAULT    2
         3: 00000168     0 SECTION LOCAL  DEFAULT    3
         4: 00000268     0 SECTION LOCAL  DEFAULT    4
         5: 00000498     0 SECTION LOCAL  DEFAULT    5
         6: 00000908     0 SECTION LOCAL  DEFAULT    6
         7: 00000bec     0 SECTION LOCAL  DEFAULT    7
         8: 00000c7c     0 SECTION LOCAL  DEFAULT    8
         9: 00000c9c     0 SECTION LOCAL  DEFAULT    9
        10: 00000ccc     0 SECTION LOCAL  DEFAULT   10
        11: 00000d30     0 SECTION LOCAL  DEFAULT   11
        12: 00001e90     0 SECTION LOCAL  DEFAULT   12
        13: 00001f60     0 SECTION LOCAL  DEFAULT   13
        14: 00001fa0     0 SECTION LOCAL  DEFAULT   14
        15: 00002094     0 SECTION LOCAL  DEFAULT   15
        16: 00012fd0     0 SECTION LOCAL  DEFAULT   16
        17: 00012fd8     0 SECTION LOCAL  DEFAULT   17
        18: 00012fe0     0 SECTION LOCAL  DEFAULT   18
        19: 00013000     0 SECTION LOCAL  DEFAULT   19
        20: 000130b8     0 SECTION LOCAL  DEFAULT   20
        21: 000130c0     0 SECTION LOCAL  DEFAULT   21
        22: 00000000     0 SECTION LOCAL  DEFAULT   22
        23: 00000000     0 SECTION LOCAL  DEFAULT   23
        24: 00000000     0 SECTION LOCAL  DEFAULT   24
        25: 00000000     0 SECTION LOCAL  DEFAULT   25
        26: 00000000     0 SECTION LOCAL  DEFAULT   26
        27: 00000000     0 SECTION LOCAL  DEFAULT   27
        28: 00000000     0 SECTION LOCAL  DEFAULT   28
        29: 00000000     0 SECTION LOCAL  DEFAULT   29
        30: 00000000     0 SECTION LOCAL  DEFAULT   30
        31: 00000000     0 SECTION LOCAL  DEFAULT   31
        32: 00000000     0 FILE    LOCAL  DEFAULT  ABS crtstuff.c
        33: 00012fd0     0 OBJECT  LOCAL  DEFAULT   16 __CTOR_LIST__
        34: 00012fd8     0 OBJECT  LOCAL  DEFAULT   17 __DTOR_LIST__
        35: 00002094     0 OBJECT  LOCAL  DEFAULT   15
        36: 00000d30     0 FUNC    LOCAL  DEFAULT   11 __do_global_dtors_aux
        37: 000130c0     1 OBJECT  LOCAL  DEFAULT   21 completed.4849
        38: 000130c4     4 OBJECT  LOCAL  DEFAULT   21 dtor_idx.4851
        39: 00000e10     0 FUNC    LOCAL  DEFAULT   11 frame_dummy
        40: 000130c8    24 OBJECT  LOCAL  DEFAULT   21 object.4861
        41: 00000000     0 FILE    LOCAL  DEFAULT  ABS crtstuff.c
        42: 00012fd4     0 OBJECT  LOCAL  DEFAULT   16 __CTOR_END__
        43: 00002094     0 OBJECT  LOCAL  DEFAULT   15 __FRAME_END__
        44: 00001e30     0 FUNC    LOCAL  DEFAULT   11 __do_global_ctors_aux
        45: 00000000     0 FILE    LOCAL  DEFAULT  ABS ugpio.c
        46: 0000104c     0 OBJECT  LOCAL  DEFAULT   11 __pool_ugpio_open_44
        47: 00001050     0 FUNC    LOCAL  DEFAULT [MIPS16]    11 __pend_ugpio_open_44
        48: 00001114     0 OBJECT  LOCAL  DEFAULT   11 __pool_ugpio_full_open_66
        49: 00001118     0 FUNC    LOCAL  DEFAULT [MIPS16]    11 __pend_ugpio_full_open_66
        50: 00000000     0 FILE    LOCAL  DEFAULT  ABS gpio.c
        51: 000017d4     0 OBJECT  LOCAL  DEFAULT   11 __pool_gpio_set_edge_49
        52: 000017d8     0 FUNC    LOCAL  DEFAULT [MIPS16]    11 __pend_gpio_set_edge_49
        53: 0000194c     0 OBJECT  LOCAL  DEFAULT   11 __pool_gpio_get_edge_84
        54: 00001950     0 FUNC    LOCAL  DEFAULT [MIPS16]    11 __pend_gpio_get_edge_84
        55: 00000000     0 FILE    LOCAL  DEFAULT  ABS ugpio-internal.c
        56: 00012fe0    32 OBJECT  LOCAL  DEFAULT   18 ugpio_triggers
        57: 00001ce4     0 OBJECT  LOCAL  DEFAULT   11 __pool_gpio_read_69
        58: 00001ce8     0 FUNC    LOCAL  DEFAULT [MIPS16]    11 __pend_gpio_read_69
        59: 00001e2c     0 OBJECT  LOCAL  DEFAULT   11 __pool_gpio_check_86
        60: 00001e30     0 FUNC    LOCAL  DEFAULT [MIPS16]    11 __pend_gpio_check_86
        61: 00000000     0 FILE    LOCAL  DEFAULT  ABS
        62: 00001e90     0 FUNC    LOCAL  DEFAULT   12 _MIPS_STUBS_
        63: 00000168     0 OBJECT  LOCAL  DEFAULT  ABS _DYNAMIC
        64: 0001aff0     0 NOTYPE  LOCAL  DEFAULT   19 _gp
        65: 00012fdc     0 OBJECT  LOCAL  DEFAULT   17 __DTOR_END__
        66: 000130b8     0 OBJECT  LOCAL  DEFAULT   20 __dso_handle
        67: 00013000     0 OBJECT  LOCAL  DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
        68: 00001331   104 FUNC    GLOBAL DEFAULT   11 ugpio_direction_output
        69: 00013000     0 NOTYPE  GLOBAL DEFAULT   19 _fdata
        70: 00001651    64 FUNC    GLOBAL DEFAULT   11 gpio_set_activelow
        71: 0001aff0     0 SECTION GLOBAL DEFAULT  ABS _gp_disp
        72: 000013c9    36 FUNC    GLOBAL DEFAULT   11 ugpio_set_edge
        73: 00001719    54 FUNC    GLOBAL DEFAULT   11 gpio_free_array
        74: 000019f1   160 FUNC    GLOBAL DEFAULT   11 gpio_fd_read
        75: 00001e90     0 FUNC    GLOBAL DEFAULT  UND snprintf
        76: 000013f1    42 FUNC    GLOBAL DEFAULT   11 gpio_is_requested
        77: 00000000     0 OBJECT  GLOBAL DEFAULT  UND __stack_chk_guard
        78: 00001c2d   188 FUNC    GLOBAL DEFAULT   11 gpio_read
        79: 000019cd    34 FUNC    GLOBAL DEFAULT   11 gpio_fd_close
        80: 00000000     0 FUNC    WEAK   DEFAULT  UND __register_frame_info@@GL
        81: 00001515    42 FUNC    GLOBAL DEFAULT   11 gpio_alterable_direction
        82: 00001da1   144 FUNC    GLOBAL DEFAULT   11 gpio_check
        83: 00001ce9   184 FUNC    GLOBAL DEFAULT   11 gpio_write
        84: 00000000     0 FUNC    WEAK   DEFAULT  UND __cxa_finalize
        85: 00001499   124 FUNC    GLOBAL DEFAULT   11 gpio_free
        86: 00001ea0     0 FUNC    GLOBAL DEFAULT  UND malloc
        87: 00001611    64 FUNC    GLOBAL DEFAULT   11 gpio_get_activelow
        88: 00001255    68 FUNC    GLOBAL DEFAULT   11 ugpio_set_activelow
        89: 00000e51   240 FUNC    GLOBAL DEFAULT   11 ugpio_request
        90: 00001eb0     0 FUNC    GLOBAL DEFAULT  UND lseek
        91: 000012a5    62 FUNC    GLOBAL DEFAULT   11 ugpio_get_direction
        92: 00001ec0     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail
        93: 00000ccc     8 FUNC    GLOBAL DEFAULT   10 _init
        94: 000013a5    36 FUNC    GLOBAL DEFAULT   11 ugpio_get_edge
        95: 00000000     0 FUNC    WEAK   DEFAULT  UND __deregister_frame_info@@
        96: 00001ed0     0 FUNC    GLOBAL DEFAULT  UND write
        97: 00001541    70 FUNC    GLOBAL DEFAULT   11 gpio_get_direction
        98: 00000d30     0 NOTYPE  GLOBAL DEFAULT   11 _ftext
        99: 00001009    72 FUNC    GLOBAL DEFAULT   11 ugpio_open
       100: 00001ee0     0 FUNC    GLOBAL DEFAULT  UND read
       101: 00001b11   164 FUNC    GLOBAL DEFAULT   11 gpio_fd_get_edge
       102: 00001ef0     0 FUNC    GLOBAL DEFAULT  UND strncmp
       103: 000015bd    84 FUNC    GLOBAL DEFAULT   11 gpio_direction_output
       104: 000016d9    64 FUNC    GLOBAL DEFAULT   11 gpio_set_value
       105: 00000f41   136 FUNC    GLOBAL DEFAULT   11 ugpio_request_one
       106: 000012e5    74 FUNC    GLOBAL DEFAULT   11 ugpio_direction_input
       107: 00001299    10 FUNC    GLOBAL DEFAULT   11 ugpio_alterable_direction
       108: 00001589    52 FUNC    GLOBAL DEFAULT   11 gpio_direction_input
       109: 00001195     4 FUNC    GLOBAL DEFAULT   11 ugpio_fd
       110: 000130bc     0 NOTYPE  GLOBAL DEFAULT   21 __bss_start
       111: 00001691    72 FUNC    GLOBAL DEFAULT   11 gpio_get_value
       112: 00001f60     8 FUNC    GLOBAL DEFAULT   13 _fini
       113: 0000121d    56 FUNC    GLOBAL DEFAULT   11 ugpio_get_activelow
       114: 00001399    10 FUNC    GLOBAL DEFAULT   11 ugpio_alterable_edge
       115: 000017d9   188 FUNC    GLOBAL DEFAULT   11 gpio_request_one
       116: 0000177d    92 FUNC    GLOBAL DEFAULT   11 gpio_set_edge
       117: 000011d9    68 FUNC    GLOBAL DEFAULT   11 ugpio_set_value
       118: 00001751    42 FUNC    GLOBAL DEFAULT   11 gpio_alterable_edge
       119: 000130bc     0 NOTYPE  GLOBAL DEFAULT   20 _edata
       120: 000130e0     0 NOTYPE  GLOBAL DEFAULT   21 _end
       121: 0000141d   124 FUNC    GLOBAL DEFAULT   11 gpio_request
       122: 000018f9    88 FUNC    GLOBAL DEFAULT   11 gpio_get_edge
       123: 00001119   124 FUNC    GLOBAL DEFAULT   11 ugpio_close
       124: 00001f00     0 FUNC    GLOBAL DEFAULT  UND __errno_location
       125: 00001951   124 FUNC    GLOBAL DEFAULT   11 gpio_fd_open
       126: 00001051   200 FUNC    GLOBAL DEFAULT   11 ugpio_full_open
       127: 00001bb5   120 FUNC    GLOBAL DEFAULT   11 gpio_fd_set_edge
       128: 00001f10     0 FUNC    GLOBAL DEFAULT  UND strlen
       129: 00001895   100 FUNC    GLOBAL DEFAULT   11 gpio_request_array
       130: 00001f20     0 FUNC    GLOBAL DEFAULT  UND open
       131: 00001199    64 FUNC    GLOBAL DEFAULT   11 ugpio_get_value
       132: 00000fc9    62 FUNC    GLOBAL DEFAULT   11 ugpio_free
       133: 00001a91   128 FUNC    GLOBAL DEFAULT   11 gpio_fd_write
       134: 000130bc     0 NOTYPE  GLOBAL DEFAULT   21 _fbss
       135: 00001f30     0 FUNC    GLOBAL DEFAULT  UND close
       136: 00001f40     0 FUNC    GLOBAL DEFAULT  UND free
    


  • @Modest-Polykarpovich why would you not just follow the onion documented cross compilation process like the rest of us?



  • @crispyoz said in [Resolved] How can I use libugpio.so library?:

    @Modest-Polykarpovich why would you not just follow the onion documented cross compilation process like the rest of us?

    Because it's need the Docker that can be install in only Windows 10 Pro, but my Windows is "Home" and I can't use it.

    I think my path with pre-compiled Open WRT SDK is the simplest in this situation.



  • @Modest-Polykarpovich You don't need docker, as Windows 10 Home doesn't support Hyper-V but you can use other virtualisation products. VirtualBox will run on Windows 10 Home into which you install Linux, I use Ubuntu 18.



Looks like your connection to Community was lost, please wait while we try to reconnect.