[solved] why the Qt program is used libts-0.0.so.0 in mini2440?



  • Hi
    I have a question. what is the libts-0.0.so.0?
    when i copy the library to mini2440 and run demo in my device it show me this error: error while loading shared libraries: libts-0.0.so.0: cannot open shared object file: No such file or directory.
    but when i open my application ( that compiled with arm-linux-gcc4.4.3 and Qt version 4.6.3) it does not show me this error. i think maybe my program does not used this lib?
    ( when i solve this lib problem the demo touch is worked but my app touch is not worked) I guess maybe cause of this libs?


  • Lifetime Qt Champion

    Hi,

    That's the library used for touch screen handling. Depending on where you copy it on your device, it might not be found hence the error your are getting.



  • ohom, thank you, so when my aplication run without libts error but the example run with this error. it means maybe my application can not call this touch library. is it right?
    so how can i call this library in my Qt application?


  • Lifetime Qt Champion

    What example is it ?



  • It's not exactly clear that what is your problem from the description you have provided but I hope you find these info I'm providing helpful:

    • you need to find out whether the device driver for your touchscreen device is installed and working properly. If it's a USB one disconnect and connect it again and then in your terminal run dmesg command and see the few last lines and check if there's any info about touch screen device available and also if it's configured and working properly i.e. no warnings or errors.

    • touch screen is handled like mouse, user space applications don't see the difference. it's handled under the hood.

    • if you are using X window manager then you might need xorg-xserver-input-* (replace the * with the one required for your case) packages installed.

    Also try to see if you can use later versions of Qt. I've worked with mini2440 and have successfully installed Qt 5.0.0 on it. Could you tell us what operating system you are using on your ARM device? I hope it's not the default one provided with the board :)



  • Hi.
    @SGaist the example i said ,I mean the demo in first topic i said.
    @morkia this topic is my base question about mini2440. when i reinstall Linux on mini2440 and does not make static link at first ( for this error: libts-0.0.so.0 is a shared library or ...) i was running my app and the touch not worked. i tested it with the demo in mini2440 but it shows this library error. ( this is all my story :D ).
    my linux version is 2.6.32.2.this is dmesg
    [root@FriendlyARM /]# uname -a
    Linux FriendlyARM 2.6.32.2-FriendlyARM #16 Tue Dec 23 15:08:43 CST 2014 armv4tl unknown

    [root@FriendlyARM /]# dmesg
    51 MAC: 08:90:90:90:90:90 (chip)
    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
    s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
    s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb1: Product: S3C24XX OHCI
    usb usb1: Manufacturer: Linux 2.6.32.2-FriendlyARM ohci_hcd
    usb usb1: SerialNumber: s3c24xx
    usb usb1: configuration #1 chosen from 1 choice
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 2 ports detected
    Initializing USB Mass Storage driver...
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    usbcore: registered new interface driver ums-alauda
    usbcore: registered new interface driver ums-cypress
    usbcore: registered new interface driver ums-datafab
    usbcore: registered new interface driver ums-freecom
    usbcore: registered new interface driver ums-isd200
    usbcore: registered new interface driver ums-jumpshot
    usbcore: registered new interface driver ums-karma
    usbcore: registered new interface driver ums-onetouch
    usbcore: registered new interface driver ums-sddr09
    usbcore: registered new interface driver ums-sddr55
    usbcore: registered new interface driver ums-usbat
    usbcore: registered new interface driver usbserial
    USB Serial support registered for generic
    usbcore: registered new interface driver usbserial_generic
    usbserial: USB Serial Driver core
    USB Serial support registered for aircable
    usbcore: registered new interface driver aircable
    USB Serial support registered for ark3116
    usbcore: registered new interface driver ark3116
    USB Serial support registered for Belkin / Peracom / GoHubs USB Serial Adapter
    usbcore: registered new interface driver belkin
    belkin_sa: v1.2:USB Belkin Serial converter driver
    USB Serial support registered for ch341-uart
    usbcore: registered new interface driver ch341
    USB Serial support registered for cp210x
    usbcore: registered new interface driver cp210x
    cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver
    USB Serial support registered for Reiner SCT Cyberjack USB card reader
    usbcore: registered new interface driver cyberjack
    cyberjack: v1.01 Matthias Bruestle
    cyberjack: REINER SCT cyberJack pinpad/e-com USB Chipcard Reader Driver
    USB Serial support registered for DeLorme Earthmate USB
    USB Serial support registered for HID->COM RS232 Adapter
    USB Serial support registered for Nokia CA-42 V2 Adapter
    usbcore: registered new interface driver cypress
    cypress_m8: v1.09:Cypress USB to Serial Driver
    USB Serial support registered for Digi 2 port USB adapter
    USB Serial support registered for Digi 4 port USB adapter
    usbcore: registered new interface driver digi_acceleport
    digi_acceleport: v1.80.1.2:Digi AccelePort USB-2/USB-4 Serial Converter driver
    USB Serial support registered for Edgeport 2 port adapter
    USB Serial support registered for Edgeport 4 port adapter
    USB Serial support registered for Edgeport 8 port adapter
    USB Serial support registered for EPiC device
    usbcore: registered new interface driver io_edgeport
    io_edgeport: v2.7:Edgeport USB Serial Driver
    USB Serial support registered for Edgeport TI 1 port adapter
    USB Serial support registered for Edgeport TI 2 port adapter
    usbcore: registered new interface driver io_ti
    io_ti: v0.7mode043006:Edgeport USB Serial Driver
    USB Serial support registered for empeg
    usbcore: registered new interface driver empeg
    empeg: v1.2:USB Empeg Mark I/II Driver
    USB Serial support registered for FTDI USB Serial Device
    usbcore: registered new interface driver ftdi_sio
    ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
    USB Serial support registered for funsoft
    usbcore: registered new interface driver funsoft
    USB Serial support registered for Garmin GPS usb/tty
    usbcore: registered new interface driver garmin_gps
    garmin_gps: v0.33:garmin gps driver
    USB Serial support registered for hp4X
    usbcore: registered new interface driver hp4X
    hp4x: v1.00:HP4x (48/49) Generic Serial driver
    USB Serial support registered for PocketPC PDA
    usbcore: registered new interface driver ipaq
    ipaq: v0.5:USB PocketPC PDA driver
    USB Serial support registered for IPWireless converter
    usbcore: registered new interface driver ipwtty
    ipw: v0.3:IPWireless tty driver
    USB Serial support registered for IR Dongle
    usbcore: registered new interface driver ir-usb
    ir_usb: v0.4:USB IR Dongle driver
    USB Serial support registered for iuu_phoenix
    usbcore: registered new interface driver iuu_phoenix
    iuu_phoenix: v0.11:Infinity USB Unlimited Phoenix driver
    USB Serial support registered for Keyspan - (without firmware)
    USB Serial support registered for Keyspan 1 port adapter
    USB Serial support registered for Keyspan 2 port adapter
    USB Serial support registered for Keyspan 4 port adapter
    usbcore: registered new interface driver keyspan
    keyspan: v1.1.5:Keyspan USB to Serial Converter Driver
    USB Serial support registered for Keyspan PDA
    USB Serial support registered for Keyspan PDA - (prerenumeration)
    USB Serial support registered for Xircom / Entregra PGS - (prerenumeration)
    usbcore: registered new interface driver keyspan_pda
    keyspan_pda: v1.1:USB Keyspan PDA Converter driver
    USB Serial support registered for KL5KUSB105D / PalmConnect
    usbcore: registered new interface driver kl5kusb105d
    kl5kusb105: v0.3a:KLSI KL5KUSB105 chipset USB->Serial Converter driver
    USB Serial support registered for KOBIL USB smart card terminal
    usbcore: registered new interface driver kobil
    kobil_sct: 21/05/2004:KOBIL USB Smart Card Terminal Driver (experimental)
    USB Serial support registered for MCT U232
    usbcore: registered new interface driver mct_u232
    mct_u232: z2.1:Magic Control Technology USB-RS232 converter driver
    USB Serial support registered for Moschip 2 port adapter
    mos7720: 1.0.0.4F:Moschip USB Serial Driver
    usbcore: registered new interface driver moschip7720
    USB Serial support registered for Moschip 7840/7820 USB Serial Driver
    mos7840: 1.3.2:Moschip 7840/7820 USB Serial Driver
    usbcore: registered new interface driver mos7840
    USB Serial support registered for moto-modem
    usbcore: registered new interface driver moto-modem
    USB Serial support registered for navman
    usbcore: registered new interface driver navman
    USB Serial support registered for ZyXEL - omni.net lcd plus usb
    usbcore: registered new interface driver omninet
    omninet: v1.1:USB ZyXEL omni.net LCD PLUS Driver
    USB Serial support registered for opticon
    usbcore: registered new interface driver opticon
    USB Serial support registered for GSM modem (1-port)
    usbcore: registered new interface driver option
    option: v0.7.2:USB Driver for GSM modems
    USB Serial support registered for oti6858
    usbcore: registered new interface driver oti6858
    USB Serial support registered for pl2303
    usbcore: registered new interface driver pl2303
    pl2303: Prolific PL2303 USB to serial adaptor driver
    USB Serial support registered for Qualcomm USB modem
    usbcore: registered new interface driver qcserial
    safe_serial: v0.0b:USB Safe Encapsulated Serial
    USB Serial support registered for safe_serial
    usbcore: registered new interface driver safe_serial
    USB Serial support registered for siemens_mpi
    usbcore: registered new interface driver siemens_mpi
    Driver for Siemens USB/MPI adapter
    Version 0.1 09/26/2005 Thomas Hergenhahn@web.de http://libnodave.sf.net
    USB Serial support registered for Sierra USB modem
    usbcore: registered new interface driver sierra
    sierra: v.1.3.8:USB Driver for Sierra Wireless USB modems
    USB Serial support registered for SPCP8x5
    usbcore: registered new interface driver spcp8x5
    spcp8x5: v0.04:SPCP8x5 USB to serial adaptor driver
    USB Serial support registered for symbol
    usbcore: registered new interface driver symbol
    USB Serial support registered for TI USB 3410 1 port adapter
    USB Serial support registered for TI USB 5052 2 port adapter
    usbcore: registered new interface driver ti_usb_3410_5052
    ti_usb_3410_5052: v0.9:TI USB 3410/5052 Serial Driver
    USB Serial support registered for Handspring Visor / Palm OS
    USB Serial support registered for Sony Clie 3.5
    USB Serial support registered for Sony Clie 5.0
    usbcore: registered new interface driver visor
    visor: USB HandSpring Visor / Palm OS driver
    USB Serial support registered for Connect Tech - WhiteHEAT - (prerenumeration)
    USB Serial support registered for Connect Tech - WhiteHEAT
    usbcore: registered new interface driver whiteheat
    whiteheat: v2.0:USB ConnectTech WhiteHEAT driver
    mice: PS/2 mouse device common for all mice
    s3c2410 TouchScreen successfully loaded
    input: s3c2410 TouchScreen as /devices/virtual/input/input0
    S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
    s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
    i2c /dev entries driver
    Linux video capture interface: v2.00
    gspca: main v2.7.0 registered
    usbcore: registered new interface driver conex
    conex: registered
    usbcore: registered new interface driver etoms
    etoms: registered
    usbcore: registered new interface driver finepix
    finepix: registered
    usbcore: registered new interface driver jeilinj
    jeilinj: registered
    usbcore: registered new interface driver mars
    mars: registered
    usbcore: registered new interface driver mr97310a
    mr97310a: registered
    usbcore: registered new interface driver ov519
    ov519: registered
    usbcore: registered new interface driver ov534
    ov534: registered
    usbcore: registered new interface driver pac207
    pac207: registered
    usbcore: registered new interface driver pac7311
    pac7311: registered
    usbcore: registered new interface driver sn9c20x
    sn9c20x: registered
    usbcore: registered new interface driver sonixb
    sonixb: registered
    usbcore: registered new interface driver sonixj
    sonixj: registered
    usbcore: registered new interface driver spca500
    spca500: registered
    usbcore: registered new interface driver spca501
    spca501: registered
    usbcore: registered new interface driver spca505
    spca505: registered
    usbcore: registered new interface driver spca506
    spca506: registered
    usbcore: registered new interface driver spca508
    spca508: registered
    usbcore: registered new interface driver spca561
    spca561: registered
    usbcore: registered new interface driver sq905
    sq905: registered
    usbcore: registered new interface driver sq905c
    sq905c: registered
    usbcore: registered new interface driver sunplus
    sunplus: registered
    usbcore: registered new interface driver stk014
    stk014: registered
    usbcore: registered new interface driver t613
    t613: registered
    usbcore: registered new interface driver tv8532
    tv8532: registered
    usbcore: registered new interface driver vc032x
    vc032x: registered
    usbcore: registered new interface driver zc3xx
    zc3xx: registered
    usbcore: registered new interface driver ALi m5602
    ALi m5602: registered
    usbcore: registered new interface driver STV06xx
    STV06xx: registered
    gspca_gl860: driver startup - version 0.9d10
    usbcore: registered new interface driver gspca_gl860
    gspca_gl860: driver registered
    usbcore: registered new interface driver uvcvideo
    USB Video Class driver (v0.1.0)
    initializing s3c2440 camera interface......
    s3c2440 camif init done
    Loading OV9650 driver.........
    SCCB address 0x60, manufacture ID 0xFFFF, expect 0x7FA2
    SCCB address 0x60, manufacture ID 0xFFFF, expect 0x7FA2
    No OV9650 found!!!
    S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
    s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
    s3c-sdi s3c2440-sdi: powered down.
    s3c-sdi s3c2440-sdi: mmc0 - using pio, sw SDIO IRQ
    usbcore: registered new interface driver usbhid
    usbhid: v2.6:USB HID core driver
    Advanced Linux Sound Architecture Driver Version 1.0.21.
    No device for DAI UDA134X
    No device for DAI s3c24xx-i2s
    S3C24XX_UDA134X SoC Audio driver
    UDA134X SoC Audio Codec
    asoc: UDA134X <-> s3c24xx-i2s mapping ok
    ALSA device list:
    #0: S3C24XX_UDA134X (UDA134X)
    TCP cubic registered
    NET: Registered protocol family 17
    s3c2410-rtc s3c2410-rtc: hctosys: invalid date/time
    yaffs: dev is 32505859 name is "mtdblock3"
    yaffs: passed flags ""
    yaffs: Attempting MTD mount on 31.3, "mtdblock3"
    yaffs: auto selecting yaffs2
    block 452 is bad
    block 481 is bad
    block 516 is bad
    block 522 is bad

    Partially written block 685 detected
    .
    .
    .
    Partially written block 685 detected
    Partially written block 712 detected
    .
    .
    .
    Partially written block 712 detected

    yaffs_read_super: isCheckpointed 0
    VFS: Mounted root (yaffs filesystem) on device 31:3.
    Freeing init memory: 156K
    eth0: link down
    eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1

    sorry but i do not know about if I have error or not. and what is the meaning of that line i bold them.

    if you are using X window manager then you might need xorg-xserver-input-* (replace the * with the one required for your case) packages installed.

    i don't know X window manager.

    Also try to see if you can use later versions of Qt. I've worked with mini2440 and have successfully installed Qt 5.0.0 on it. Could you tell us what operating system you are using on your ARM device? I hope it's not the default one provided with the board :)

    Unfortunately, I used the basic Qt (Qt4.6.3). I don't know how to install new Qt on my board. :D



  • If you are running a Linux on your PC or Laptop then you are most certainly using the X window manager. Just search it in your favorite search engine like Google. Most modern arm processors are capable of running X window manager like Tiny X. How did you build the Linux for your board?

    in your dmesg output the line input: s3c2410 TouchScreen as /devices/virtual/input/input0 shows that you have the driver loaded for your kernel. If it works outside the Qt then there's something wrong within your code just post a snippet of your code so I can see where the problem might be.

    The parts that you have highlighted are related to your MTD device. Don't worry about them those are managed by your hardware automatically. If you swith off your board without properly shutting it down first, that could happen (an unsuccessful write damaged a block in your memory like a bad sector in your hard drive). Also the YAFFS2 file system scans for those blocks and then reuse them during it's garbage collection.

    Also, You have marked your issue as solved. Is it really solved or you still have problems with it?



  • Hi and thanks for reply @morkia
    thanks for your describe. :)

    Also, You have marked your issue as solved. Is it really solved or you still have problems with it?

    my main problem not solved. but the question in this topic is solved.

    If it works outside the Qt then there's something wrong within your code just post a snippet of your code so I can see where the problem might be

    this is my program that i uploaded. it is a simple hello world with Qt 4.6.3:http://project-free-upload.com/sg5yrgxi2ixs



  • your program consists of a main window on which you display heloo within a QLabel there's nothing to click on! What do you expect from it?! I suggest you at least put a QButton or something that reacts to click events.



  • at first my program has a click when it clicked show a message to say hello but the touch not worked. i think maybe my program has error. so i make a simple program to just show a simple label. but when i run it . the mouse is place the center screen and dose not change the location when i touch the display.



  • Place a button or something that accepts a click and then test your program. Don't pay attention to the cursor you see. If you don't have a window manager (which is very likely considering you are using an ancient arm device) then your cursor might not move around because there's no program to handle that for you. Remember everything is a software. It doesn't come by itself. So if you place a button or any widget that reacts to click events in your software, Does that work?


  • Lifetime Qt Champion

    @morkia Qt 4 for Embedded Linux provides it's own window manager, nothing to do with the age of the processor.

    @MhM93 what parameters are you giving to your application when you launch it ?



  • @SGaist yes it does provided it's correctly compiled. Also the platform on which you run Qt applications matter too.



  • Hi and thanks for reply @morkia @SGaist . (and Sorry cause I am so busy because changing my home and cant see this topic)
    @morkia : I said that my first program is a window with a button. when i clicked the button show message. but nothing worked in my app (just display the window with button). I guessed maybe the ARM device does not support the QmessegeBox. so I changed my app to a simple hello word with a simple label. but the touch not worked. (that program with message box is worked on tiny6410)
    @SGaist : I called my program like this:

    cd /udisk/
    ./prj3 -qws

    but just display my app with no touch. my last Topic



  • I could help you better if you would tell me what kind of Linux you are using and how you installed it on your board. I might tell you how to build a Linux for your board here, But first I should know if it's done correctly. All I can sense from here is an incorrectly configured installation of Linux. Tell me if you are interested.


  • Lifetime Qt Champion

    @morkia said:

    If you don't have a window manager (which is very likely considering you are using an ancient arm device)

    Again, this part has not much to do with the age of the device, Qt for Embedded Linux with the Qt Windowing System was already running on ARM devices more than 10 years ago.

    Part of the problem is here is that just saying -qws doesn't tell Qt that you have a touch screen at hand. You need to tell it that you are using TSLib. It's described here



  • @SGaist Yes but in my personal experience It's better to use a window manager like tiny X. Also since Qt is usually compiled from source for such cases, it's difficult for new and inexperienced users to get it to work right i.e. supplying proper configurations etc.

    This is the reason I'm continuously asking her to tell me how she has built the Linux for her device. If she uses X, then she won't have to worry about input device handling. It simply becomes transparent to her.

    by that statement I meant the way Linux is usually built and deployed on devices like hers.



  • @morika : Hi and thanks. I really want to know how to enable touch and understand the ARM structure.

    I could help you better if you would tell me what kind of Linux you are using

    [root@FriendlyARM /]# uname -a
    Linux FriendlyARM 2.6.32.2-FriendlyARM #16 Tue Dec 23 15:08:43 CST 2014 armv4tl unknown

    how you installed it on your board

    like the other website says : connect it with serial port and usb. in DNW set the port . press the key :
    x
    f
    v->supervivi128
    q
    ->change the kernel size and root size and set param to mtdblock3
    k->load zImage_T35(the screen type)
    y->rootf about 85MB
    b->boot the Linux.
    the the Linux is installed.

    @SGaist : really thanks.
    by that topic link :
    [root@FriendlyARM /]# ls -la /dev/input
    drwxr-xr-x 2 root root 0 Jan 1 08:00 .
    drwxr-xr-x 7 root root 0 Jan 1 08:00 ..
    crw-rw---- 1 root root 13, 64 Jan 1 08:00 event0
    crw-rw---- 1 root root 13, 63 Jan 1 08:00 mice

    I changed them by the last code in that topic : chmod a+rw /dev/input/mouse0 ( i have mice instead of mouse0 so edit it)
    [root@FriendlyARM /udisk]# ls -la /dev/input
    drwxr-xr-x 2 root root 0 Jan 1 08:00 .
    drwxr-xr-x 7 root root 0 Jan 1 08:00 ..
    crw-rw-rw- 1 root root 13, 64 Jan 1 08:00 event0
    crw-rw-rw- 1 root root 13, 63 Jan 1 08:00 mice

    but no touch again. ( ts_calibrate worked but my application touch not work)

    Part of the problem is here is that just saying -qws doesn't tell Qt that you have a touch screen at hand.

    I think I don't understand it !!the device demo is worked with this parameter./fluidluncher -qws -> this is worker completely even touch work.


  • Lifetime Qt Champion

    ARM is just a processor architecture, you can find yourself having the exact same problem on x86. What matters more is the distribution you use as well as the kernel.

    Did you compile fluidlauncher yourself ?



  • @SGaist : Did you compile fluidlauncher yourself ? No . this demo is in device and worked. you mean my compiler is wrong? but i compile my project as the same as some sites guide.


  • Lifetime Qt Champion

    No, not your compiler, just trying to narrow down the sources of your problem. Are you using a custom compiled Qt or the same provided on your board ?



  • @SGaist : I used arm-linux-gcc4.4.3 and qt4.6.3. I downloaded from internet.
    In most sites i saw for tiny6410 at first install tslib( and also mini2440) but in tiny6410 pdf does not do that. I install everything exactly like pdf. and everything is worked ( without tslib installation ). and my app is worked perfectly over tiny6410 ( the touch is work too). I wanna to say is it possible my device (mini2440) have problem or another problem ? I am so confused. O.o


  • Lifetime Qt Champion

    You should check for the differences between the two hardware and software wise



  • @MhM93 I suggest you build yourself a Linux using buildroot. The pdf file supplied with the board might not be accurate and/or complete. Are you using the demo root file system image supplied with your board or you have compiled it yourself? It should be a rootfs.yaffs or something similar. Don't use the demo rootfs supplied. Compile it yourself. Check buildroot out. I suggest using the versions below 2013 and also select CodeSourcery tool chain because the GCC compiler didn't produce the correct binaries (probably due to some incorrect configurations either within buildroot make files or something else.). If you wanted a more detailed howto then let me know.



  • @SGaist : thanks. i should do that.
    @morkia : thanks. Yes. i like to know every thing about the embedded system and all you said. If you help me, become me so Glad. thanks ( this is my email : haniyeh.ghassami A T gmail D O T com)



  • for starters search "buildroot" in google. Go to their website or go here directly. pick a version you like but I recommend the ones below 2013 because the higher versions didn't work for me. Download and extract it then go in the directory in which you extracted the archive and type make menuconfig (it might complain about ncurses in that case install libncurses I installed it using this command: sudo apt-get install libncurses5). Choose the packages and configurations and then press Escape key untill you are prompted to save changes then say yes and simply do a make. Remember to choose proper toolchain and compiler before. If you have any further questions feel free to ask here.


Log in to reply
 

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