tslib 이식 레코드의 루트 파일 시스템 마이그레이션

https://blog.csdn.net/flfihpv259/article/details/51496959

마이그레이션 단계 :

1. 다운로드 tslib

다운로드 포인트가 I 입력 또는 자식 명령을 사용하여 다운로드 :
자식 주소 - https://github.com/kergoth/tslib.git

tslib에서 다운로드 디렉토리 또는 추출물 2.

몇 가지 명령을 수행합니다 :

anzyelay@ubuntu:tslib$ ./autogen.sh  //得到configure
anzyelay@ubuntu:tslib$ ./configure  --host=arm-linux  --prefix=安装目录 CC=交叉编译器绝对路径
anzyelay@ubuntu:tslib$ make
anzyelay@ubuntu:tslib$ sudo make install

anzyelay@ubuntu:安装目录$ ls    //成功后在安装目录有如下文件
bin  etc  include  lib
  
  
  • 1
  • 4
  • 5
  • 6
  • (7)

절대 경로는 몇 가지 문제에서 절대 경로 여야합니다 수 없습니다.

4. 해당 루트 파일 시스템 디렉토리에 라이브러리와 실행 프로그램에 사용.

두 가지 방법 :

  • 다음 ->는이 "/"는 파일 시스템이 아닌 PC의 루트 디렉토리, 안정적인 이식 후이 tslib의 루트 디렉토리를 참조 후

  • 라이브러리 :> / lib에 - 제거 pkgconfig 디렉토리 tslib / lib 디렉토리 / 파일 이외의 다른 모든 파일
  • 프로그램 : tslib에서 / 빈 파일의 모든 텍스트 -> / 빈
  • 구성 : tslib은 / etc / ts.conf 파일 -> /etc/ts.conf
  • 또한 루트 디렉토리에있는 디렉토리로 전체 디렉토리를 선택할 수 있지만 구성 환경 변수에 해당하는 변경을 할, 이식의 시작에 대한 오류 수정 시간,

  • 5. 변경 파일 시스템 구성 파일 및 추가 환경 변수

    • ts.conf는 : 개발 보드에 터치 스크린 정보에 따라 여기에 취소 주석, 그것을 다음 재판에 대한 권리를 취소했다.

    # 주석을 해제 당신이 샤프 자우르스 SL-C700 / C750 / C760 / C860 사용하는 경우
    module_raw 코기

  • 은 / etc / 프로필에 자신의 파일 시스템에 따라 다음 설정을 추가 :

  • 수출 TSLIB_TSDEVICE = / 디바이스 / TS0 여기서 선택된 #을 ts.conf를 위해서 event0은 입력 module_raw으로부터 선택 될 경우
    ts.conf 수출 TSLIB_CONFFILE =은 / etc /
    수출 TSLIB_PLUGINDIR = / LIB / TS
    여기서 교정 pointercal가 내보내기 TSLIB_CALIBFILE = / TEMP / # 파일이 변경 장소를 저장
    수출 TSLIB_CONSOLEDEVICE을 = 없음
    수출 TSLIB_FBDEVICE =는 / dev / FB0

    상기 방법은 2 단계 인 경우에는 다음과 같이, 구성은 :

    수출 TS_ROOT = / usr / 지방 / tslib #tslib 이동 파일 시스템 디렉토리에
    수출 TSLIB_TSDEVICE =는 / dev / 입 / TS0
    수출 TSLIB_CONFFILE = $ ts.conf 등 TS_ROOT / /
    내보내기 TSLIB_PLUGINDIR = $ TS_ROOT / lib 디렉토리 / TS
    수출 TSLIB_CALIBFILE = / TEMP / pointercal
    수출 TSLIB_CONSOLEDEVICE = 없음
    수출 TSLIB_FBDEVICE =는 / dev / FB0
    내보내기 PATH = $ TS_ROOT / 빈 : $ 는 PATH
    내보내기 LD_LIBRARY_PATH = $ TS_ROOT / lib에 : $ LD_LIBRARY_PATH에

    이러한 구성은 참조 tslib이 / README는 다음과 의미 :

    42 43 TSLIB_TSDEVICE TS 장치 파일 이름. 44
    기본 (비 inputapi) / 디바이스 / 터치 / ucb1x00 45
    기본값 (inputapi) / 디바이스 / 입 / 위해서 event0 46 TSLIB_CALIBFILE
    교정 파일. 47 기본값 :
    $ {sysconfdir의} / pointercal 48 TSLIB_CONFFILE 구성 파일. 49
    기본값 : $ (50) TSLIB_PLUGINDIR 플러그인 /ts.conf {sysconfdir의}
    디렉토리. 51 기본값 : $ {DATADIR은} / 52 플러그인
    TSLIB_CONSOLEDEVICE 콘솔 장치를. 53 기본 :
    / 디바이스 / TTY 54 TSLIB_FBDEVICE 프레임 버퍼 장치. 55
    기본값 :는 / dev / FB0

    6. 마 ts_calibrate 보정

    [루트 @ BST /] # ts_calibrate
    XRES = 480 yres은 = 272
    26 개 샘플 툭 ...
    맨 왼쪽 : X = 162 Y 209 =
    30 개 샘플을 취했다 ...
    위쪽 오른쪽 : X = 866, Y = 210
    ... (31 개)의 샘플을 취했다
    봇 오른쪽 : X = 871 Y는 = 581
    ... (31 개)의 샘플을 취했다
    봇 왼쪽 : X = 155 Y 584 =
    24 개 샘플 ... 툭
    센터 : X = 515, Y = 395 개
    -35.559814 0.535173 0.001486
    -46.847839 0.000662 0.461112
    보정 상수 : -2330448 35,073 97 -3070220 43 30219 65536


    두 번째 문제가 발생 요약 :

    ./autogen.sh를 구현 1. 나타납니다

    ./autogen.sh: 3: autoreconf: not found

    다음 명령을 설치, 더 설치 Automake의 도구가 없기 때문에 그 이유는 :
    sudo apt-get install autoconf automake libtool

    실수가있는 경우 2. 음주 ./configure 아마 :

    • erro1 :

    libtool이 : 설치 : 오류 : 디렉토리가 끝나는로`linear.la '를 설치할 수 없습니다를 / usr / local / lib로 / TS에서
    : 만들기 [2] * [설치-pluginexecLTLIBRARIES] 오류 1
    메이크업 [2] :'디렉토리를 떠나 / 집 / anzyelay / 데스크탑 / 팔 / tslib / 플러그인 '
    메이크업 [1] : * [설치 - 오전] 오류 2
    메이크업 [1] :`디렉토리를 떠나 / 홈 / anzyelay / 데스크탑 / / tslib / 플러그인 팔'
    합니다 *를 [설치 -recursive] 1 오류

    각 ./configure를 다음 메이크업을 실행 한 후 오류 처리, 청소해야한다.

  • 있고 Error2 :

  • libtool이 : 설치 (CD / 홈 / anzyelay / 데스크탑 / 팔 / tslib / 플러그인 / 빈 / bash는 / 홈 / anzyelay / 데스크탑 / 팔 / tslib / libtool이 -tag CC -mode = 다시 연결 팔 - 리눅스 GCC -DTS_POINTERCAL = \ "/ 홈 / anzyelay / 데스크탑 / 팔 / tslib_install을 / etc / pointercal \"-DTSLIB_INTERNAL -fvisibility = 숨겨진 -DGCC_HASCLASSVISIBILITY -O2 -Wall -W -module -avoid 버전 -o linear.la -rpath / 홈 / anzyelay / 데스크탑 / 팔 / tslib_install / lib 디렉토리 / TS linear.lo ../src/libts.la)
    에서 libtool : 다시 연결 : 팔 - 리눅스의 gcc -shared -fPIC -DPIC .libs / linear.o -Wl, -rpath -Wl, / 가정 / anzyelay / 데스크탑 / 팔 / tslib_install / lib에 -L / 홈 / anzyelay / 데스크탑 / 팔 / tslib_install / lib에 -lts -O2 -Wl, -soname -Wl, linear.so -o .libs / linear.so
    / 홈 / anzyelay / 데스크탑 / / tslib / libtool이 팔 : 라인 8968 : 팔 - 리눅스 GCC : 명령을 찾을 수 없습니다
    libtool이 : 설치 : 오류 : 위의 명령을 다시 연결`linear.la을 '이 설치하기 전에
    확인 [2] : * [설치-pluginexecLTLIBRARIES] 오류 1

    다음과 같이 CC를 지정하려면, 당신은 절대 주소 또는 다음과 같은 오류 세 번째를 사용해야합니다 :

    anzyelay@ubuntu:~/Desktop/arm/tslib$ ./configure  --host=arm-linux --prefix=/home/anzyelay/Desktop/arm/myrootfs/usr/local/tslib CC=/usr/local/arm/4.4.3/bin/arm-linux-gcc
    
      
      
    • 1

    전술 한 구성, 모든 방법 확인을하지만, 오류 메이크업 설치할 때와 같이 다음과 같습니다 :

    ```
    /bin/bash ../libtool   --mode=install /usr/bin/install -c   linear.la dejitter.la variance.la pthres.la ucb1x00.la corgi.la collie.la h3600.la mk712.la arctic2.la tatung.la dmc.la linear_h2200.la input.la galax.la touchkit.la '/home/anzyelay/Desktop/arm/tslib/build/lib/ts'
    libtool: install: warning: relinking `linear.la'
    libtool: install: (cd /home/anzyelay/Desktop/arm/tslib/plugins; /bin/bash /home/anzyelay/Desktop/arm/tslib/libtool  --tag CC --mode=relink arm-linux-gnueabi-gcc -DTS_POINTERCAL=\"/home/anzyelay/Desktop/arm/tslib/build/etc/pointercal\" -DTSLIB_INTERNAL -fvisibility=hidden -DGCC_HASCLASSVISIBILITY -O2 -Wall -W -module -avoid-version -o linear.la -rpath /home/anzyelay/Desktop/arm/tslib/build/lib/ts linear.lo ../src/libts.la )
    libtool: relink: arm-linux-gnueabi-gcc -shared  -fPIC -DPIC  .libs/linear.o   -Wl,-rpath -Wl,/home/anzyelay/Desktop/arm/tslib/build/lib -L/home/anzyelay/Desktop/arm/tslib/build/lib -lts  -O2   -Wl,-soname -Wl,linear.so -o .libs/linear.so
    /home/anzyelay/Desktop/arm/tslib/libtool: line 8968: arm-linux-gnueabi-gcc: command not found
    libtool: install: error: relink `linear.la' with the above command before installing it
    make[2]: *** [install-pluginexecLTLIBRARIES] Error 1
    make[2]: Leaving directory `/home/anzyelay/Desktop/arm/tslib/plugins'
    make[1]: *** [install-am] Error 2
    make[1]: Leaving directory `/home/anzyelay/Desktop/arm/tslib/plugins'
    make: *** [install-recursive] Error 1
    
    ```
    
      
      
    • 1
    • 4
    • 5
    • 6
    • (7)
    • 8
    • 9
    • (10)
    • (11)
    • (12)
    • (13)
    • (14)

    CC는, 다음, 절대 그 주소를 수정 =
    때 오류

    anzyelay@ubuntu:tslib$ ./configure --host=arm-linux --prefix=`pwd`/build CC=arm-linux-gcc
    
      
      
    • 1

    옳은

    anzyelay@ubuntu:tslib$ ./configure --host=arm-linux --prefix=`pwd`/build CC=/usr/local/arm/4.9.4/bin/arm-linux-gcc
    
      
      
    • 1

    절대 주소를 사용할 때 좋은 작업 컴파일러 환경을 가지고 있지만, 팔 - 리눅스 GCC를 찾을 수 있지만, 잘못 할 수는 OK입니다.

    다음과 같은 오류 ts_calibrate를 수행하십시오

    • ERROR1는 :
      /bin/ts_calibrate: line 1: syntax error: unexpected end of file
      86에서 파일이 실제로 파일이 아닌 팔을 발견했다.

    anzyelay@ubuntu:myrootfs$ file bin/ts_calibrate 
    bin/ts_calibrate: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xb79294591df01693dcc3ae349c4995c59a527f80, not stripped
      
      
    • 1

    PATH 변수는 나중에 PC 복구를 발견하고는 / etc / 프로필이 정상 다음 다시 실행 소스의 / etc / 프로필, 정상 PATH를 참조 볼, sudo는 스와 복원 된 후 다시 설정해야합니다. 그리고 정상적인 설치를 다시 컴파일 :

    anzyelay@ubuntu:myrootfs$ file usr/local/tslib/bin/ts_calibrate 
    usr/local/tslib/bin/ts_calibrate: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped
    
      
      
    • 1
  • 있고 Error2 :

  • [루트 @ BST : /] # ts_calibrate
    ts_calibrate : 오류로드하는 동안 공유 라이브러리 : libts-1.0.so.0 : 잘못된 ELF 클래스 : ELFCLASS64

    라이브러리가 tslib / lib 디렉토리 / libts-1.0.so.0 아래에 / lib에 이동 한 경우는 다음과 같이 라이브러리 검색 경로를 지정해야합니다 전체 디렉토리 tslib를 이동하는 방법 인 경우, 볼을 초래하지 않기 때문입니다 :
    export TS_ROOT=/usr/local/tslib
    export LD_LIBRARY_PATH=$TS_ROOT/lib:$LD_LIBRARY_PATH

  • 이상 3 :

  • [루트 @ BST : /] # ts_calibrate
    XRES = 480, yres = 272
    ts_read : 잘못된 인수

    I는 ts.conf 모듈 "module_raw 코기"인 선택 했으므로 구성 파일의 변경되도록 TSLIB_TSDEVICE 변수는 다음이다

    export TSLIB_TSDEVICE=/dev/input/event0 
    修改为
    export TSLIB_TSDEVICE=/dev/input/ts0
      
      
    • 1

    심층 질문은 다음의 대응 관계를 발견
    / 디바이스 / 입 / 위해서 event0 <->는 INPUT module_raw
    / 디바이스 / 입 / TS0 - module_raw 코기를 <>
    해당 구성 프로파일 ts.conf 및 기록 것이면 모두 가능하다.

  • 오류 4

  • root@~# ts_calibrate 
    xres = 800, yres = 480
    tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
    Took 3 samples...
    Top left : X = 1993966148 Y = 20672392
    Took 3 samples...
    Top right : X = 1993966148 Y = 20672392
    Took 3 samples...
    Bot right : X = 1993966148 Y = 20672392
    Took 3 samples...
    Bot left : X = 1993966148 Y = 20672392
    Took 3 samples...
    Center : X = 1993966148 Y = 20672392
    0.348604 -0.002357 0.227393
    -0.214578 0.004819 -0.464815
    Calibration constants: 22846 -154 14902 -14062 315 -30462 65536
      
      
    • 1
    • 4
    • 5
    • 6
    • (7)
    • 8
    • 9
    • (10)
    • (11)
    • (12)
    • (13)
    • (14)
    • (15)
    • (16)

    선택한 장치에서 뭔가 잘못 볼 수있는 터치 스크린 TSLIB_TSDEVICE 문장, 다음 확인되지 않습니다 :

    export TSLIB_TSDEVICE=/dev/input/event0
      
      
    • 1

    다음 장치보기

    root@/etc# cat /proc/bus/input/devices 
    I: Bus=0019 Vendor=0000 Product=0000 Version=0000
    N: Name="20cc000.snvs-pwrkey"
    P: Phys=snvs-pwrkey/input0
    S: Sysfs=/devices/soc0/soc.0/2000000.aips-bus/20cc000.snvs-pwrkey/input/input0
    U: Uniq=
    H: Handlers=kbd event0 evbug 
    B: PROP=0
    B: EV=3
    B: KEY=100000 0 0 0
    
    I: Bus=0000 Vendor=0000 Product=0000 Version=0000
    N: Name="iMX6UL TouchScreen Controller"
    P: Phys=
    S: Sysfs=/devices/virtual/input/input1
    U: Uniq=
    H: Handlers=mouse0 event1 evbug 
    B: PROP=0
    B: EV=b
    B: KEY=400 0 0 0 0 0 0 0 0 0 0
    B: ABS=3
    
    I: Bus=0003 Vendor=0c45 Product=6340 Version=0000
    N: Name="USB 2.0 Camera"
    P: Phys=usb-ci_hdrc.1-1.1/button
    S: Sysfs=/devices/soc0/soc.0/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.1/1-1.1:1.0/input/input3
    U: Uniq=
    H: Handlers=kbd event2 evbug 
    B: PROP=0
    B: EV=3
    B: KEY=100000 0 0 0 0 0 0
    
      
      
    • 1
    • 4
    • 5
    • 6
    • (7)
    • 8
    • 9
    • (10)
    • (11)
    • (12)
    • (13)
    • (14)
    • (15)
    • (16)
    • (17)
    • (18)
    • (19)
    • (20)
    • (21)
    • (22)
    • (23)
    • (24)
    • (25)
    • (26)
    • (27)
    • (28)
    • (29)
    • (30)
    • (31)
    • (32)

    터치 화면이 다시 ts_calibrate을 수행, 다시 시작을 수정합니다 Event1을해야한다

    게시 42 개 원래 기사 · 원 찬양 148 · 전망 410 000 +

    추천

    출처blog.csdn.net/baidu_37503452/article/details/104793866