qtopia移植筆記

1. 按照《移植QTOPIA.pdf》 文檔,編譯 qtx11
        《Embedded QT完整編譯過程》
2. 編譯e2fsprogs-1.3.5
arm-linux-gcc 3.4.1編譯e2fsprogs-libs的時候報告錯誤:
    fd.h:342: error: variable or field `__user’ declared void,
    經查gcc 3.4.1中新增類型 __user ,需要引入編譯器定義頭文件,在引用#include <linux/fd.h>的文檔前面加上    #include <linux/compiler.h>,可以解決這個編譯錯誤。
3.
cp -r e2fs/lib/uuid    qtopia/include
cp e2fs/lib/libuuid.so*   /usr/local/arm/2.95.3/arm-linux/lib
//cp jpeg-6b/.libs/libjpeg.so.* /usr/local/arm/2.95.3/arm-linux/lib
cp jpeg-6b/.libs/libjpeg.so.* qt/lib
cp jpeg-6b/jpeglib.h           qt/include
cp jpeg-6b/.libs/libjpeg.so.* qtopia/lib
cp jpeg-6b/jpeglib.h           qtopia/include

4. 編譯qtopia
make 時,報錯:
.obj/release-shared/moc_fifteen.o(.text+0xa4): In function `FifteenMainWindow::staticMetaObject()':
: undefined reference to `QMainWindow::staticMetaObject()'
.obj/release-shared/moc_fifteen.o(.text+0x10c): In function `FifteenWidget::staticMetaObject()':
: undefined reference to `QWidget::staticMetaObject()'
.obj/release-shared/moc_fifteen.o(.text+0x174): In function `PiecesTable::staticMetaObject()':
: undefined reference to `QTableView::staticMetaObject()'
.obj/release-shared/moc_fifteen.o(.text+0x234): In function `PiecesTable::initMetaObject()':
: undefined reference to `QTableView::className() const'
.obj/release-shared/moc_fifteen.o(.text+0x290): In function `FifteenWidget::initMetaObject()':
: undefined reference to `QWidget::className() const'
.obj/release-shared/moc_fifteen.o(.text+0x368): In function `FifteenMainWindow::initMetaObject()':
: undefined reference to `QMainWindow::className() const'
/usr/local/arm/qt_arm/qte/lib/libqte.so: undefined reference to `QListBox::returnPressed(QListBoxItem*)'/usr/local/arm/qt_arm/qte/lib/libqte.so: undefined reference to `QPopupMenu::activatedRedirect(int)'
/usr/local/arm/qt_arm/qte/lib/libqte.so: undefined reference to `QMainWindow::toolBarPositionChanged(QToolBar*)'
【解決方案】:
       # cd qte
# export QTDIR=$PWD
對qte重新configure,make
        然後,對qtopia進行make clean;然後在make
=================================================
5. -sh: ./qpe: not found
【解決方案】busybox要採用動態編譯
(1)進入busybox配置模式,
Busybox Setting-->
   build options-->
    [ ] Build BusyBox as a static binary (no shared libs) //去掉該項
    [*] Build shared libbusybox (NEW) //選中該項
(2)配置好之後,如果直接下載到板子上,會有錯誤:
failed to excute /linuxrc.
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
【解決方案】:把庫文件拷貝到board/lib下面,要拷貝的庫文件見有:
    ① 從3.4.1中拷貝庫文件 ld*,libc*,libm*   到wpb_rootfs/lib下面,並建立原來的連接關係
② libstdc++.so.6:從3.4.1拷貝相關文件到wpb_rootfs/lib
    libgcc_s.so.1 從3.4.1拷貝相關文件到wpb_rootfs/lib
    libdl.so.2 從3.4.1拷貝相關文件到wpb_rootfs/lib
=================================================
6.
如果找不到:libqtopia2.so.2, 則說明: 沒有設置好環境變量
libuuid.so.1 從e2fs拷貝相關文件到 board/lib
libjpeg.so.62 從jpeg-6b拷貝相關文件到 board/lib
# cp e2fs/lib/libuuid.so*          board/lib/
# cp jpeg-6b/.libs/libjpeg.so*     board/lib
=================================================
7.
could not open for writing 'Settings/qpe_new.conf'
QCopChannel::send: Must construct a QApplication before using QCopChannel
【解決方案】:$HOME環境變量沒有設置阿? 要設到一個可寫的位置。
Can't open framebuffer device /dev/fb
:driver cannot connetc
【解決方案】:ln –s /dev/fb/0 /dev/fb0
如果不支持ln命令,則在busybox配置中添加對ln命令的支持
=================================================

===================================================
8.添加觸摸屏
(1)   編譯tslib:
      /qt_arm/tslib
      ./autogen.sh
      echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache   //爲了防止出現undefined reference to `rpl_malloc' 錯誤
      ./configure --host=arm-linux --cache-file=arm-linux.cache –enable-inputapi=no
      在make之前,爲了支持觸摸屏,這裏有一點小小的修改,打開src/ts_read_raw.c文件,查看你的觸摸屏驅動程序數據結構,看與ts_read_raw.c結構中的哪個一樣,就將代碼中的
   char *defaulttseventtype="UCB1x00";
   修改爲
   char *defaulttseventtype="H3600";     //這裏因爲我的驅動是h3600_ts_event結構,修改爲你驅動對應的結構,好了,如果你觸摸屏驅動程序支持ioctrl操作,上面的configure操作中的[—enable-inputapi=no]你可以刪除。好了,現在可以make了,^_^

      make
      cp qt_arm/tslib/src/.libs/libts-0.0.so.0*   qt_arm/qte/lib/
      cp qt_arm/tslib/src/.libs/libts.so          qt_arm/qte/lib/
      cp qt_arm/tslib/src/*.h                     qt_arm/qte/include/
(2) 修改文件
   vi /usr/local/arm/qt_arm/qte/src/kernel/qwsmouse_qws.cpp
    其中有3處/ect/pointercal 將其改爲/tmp/pointercal
    (這裏因爲我的根文件系統不可寫,默認的/etc下不可寫,所以在校準的時候把pointercal方到了/tmp/下,這裏按照你//自己校準文件的存放路徑改即可,如果是可讀根文件系統,就不用修改了)
目標板子最好爲可寫文件系統,tslib校準程序會寫etc/pointercal文件,只讀文件系統的話,建一個鏈接到/tmp目錄吧
################################################
:h3600 -> input/tsraw0

################################################
(3) 在/usr/local/arm/qt_arm/qtopia/src/qt/qconfig-qpe.h的末尾加上,
這是使qt自己支持觸摸屏,我也加了。
//#define QT_QWS_IPAQ
//#define QT_QWS_IPAQ_RAW

==============================================
編譯修改工作
//①、vi /root/yizhi/qtopia-free-2.2.0/qtopia/mkspecs/qws
/linux-arm-g++/qmake.conf
將此行
QMAKE_LIBS_QT = -lqte
修改爲
QMAKE_LIBS_QT = -lqte -luuid -ljpeg -lts
②、 如果想讓Qtopia支持鼠標,需要修改/usr/local/arm/qt_arm/qtopia/src/qt/qconfig-qpe.h文件
註釋如下部分
/*
#ifndef QT_NO_QWS_CURSOR
#define QT_NO_QWS_CURSOR
#endif
#ifndef QT_NO_QWS_MOUSE_AUTO
#define QT_NO_QWS_MOUSE_AUTO
#endif
#ifndef QT_NO_QWS_MOUSE_PC
#define QT_NO_QWS_MOUSE_PC
#endif
*/
============================================

    cp /usr/local/arm/qt_arm/qtopia/src/qt/qconfig-qpe.h
        /usr/local/arm/qt_arm/qte/src/tools

=====================================================================================
(4) 開始configure了 qte ,qtopia (加入:-tslib)
=====================================================================================
cd qte
./configure -qconfig qpe -no-xft -qvfb -depths 4,8,12,16 -xplatform linux-arm-g++ -system-jpeg -gif -tslib
make
cd ..
cd qtopia
./configure -edition pda -prefix /usr/local/arm/qt_arm/board -xplatform linux-arm-g++ -displaysize 320x240
make
make install

=====================================================================================
(5) 拷貝庫與觸摸屏校準/測試程序
=====================================================================================
      mkdir /qt_arm/board/bin/tests          
      //mkdir /qt_arm/board/lib/ts
      cp /qt_arm/tslib/tests/.libs/ts_*   /qt_arm/board/bin/tests //幾個所需的測試文件,比如生成的校準文件,測試文件等
      cp /qt_arm/tslib/src/.libs/libts-0.0.so.0* /qt_arm/board/lib         //幾個所需的庫文件
      cp /qt_arm/tslib/src/.libs/libts.so    /qt_arm/board/lib         //幾個所需的庫文件
      cp /qt_arm/tslib/plugins/.libs/*.so /qt_arm/board/lib         //觸摸屏插件模塊庫; 這些是ts.conf要用到的庫文件
   把文件/qt_arm/tslib/etc/ts.conf文件拷貝到你的板子的/qt_arm/board目錄下,並將moudle mousebuts 前面的#去掉
   下一步是要把board文件夾mount到板子的/tmp目錄下
////////////////////////////////////////////////////
【總結】:需要拷貝的文件:
# cp e2fs/lib/libuuid.so*          board/lib/
# cp jpeg-6b/.libs/libjpeg.so*     board/lib
      # mkdir board/bin/tests   
      # cp tslib/tests/.libs/ts_*             board/bin/tests
      # cp tslib/src/.libs/libts-0.0.so.0* board/lib       
      # cp tslib/src/.libs/libts.so    board/lib       
      # cp tslib/plugins/.libs/*.so         board/lib    
# cp tslib/etc/ts.conf                  board   //將moudle mousebuts 前面的#去掉
        拷貝pointercal到board
        拷貝setnenv.sh到board
/////////////////////////////////////////////////////

=====================================================================================
(6) 運行[以下操作在目標板上進行]:
=====================================================================================
(i) 做鏈接
# ln -s /dev/fb/0 /dev/fb0
   //幀緩衝設備板子上爲/dev/fb/0,但程序默認爲/dev/fb0,所以做了一個鏈接/dev/fb0到/dev/fb/0

# ln -sf /dev/input/tsraw0   /dev/ts
//qtopia要打開/dev/ts,你沒有這個文件, 所以 dev下邊應該有觸摸平的節點,
相當於, qtopia啓動要找 /dev/ts, 但是你只有/dev/input/tsraw0
所以你把ts鏈接到你的觸摸屏的文件就可以了!
我得觸摸屏設備節點文件爲/dev/input/tsraw0
所以,建立鏈接 /dev/ts 到/dev/input/tsraw0
(這裏要自己針對自己板子具體的文件進行設置,要不然也會報錯)
(ii)指定環境變量
      mount -t nfs 192.168.10.1:/usr/local/arm/qt_arm/board /tmp
      在你的板子上設置運行環境變量
      export HOME=/tmp
      export QTDIR=/tmp
      export QPEDIR=/tmp
      export PATH=$QPEDIR/bin:$PATH
      export QWS_MOUSE_PROTO=TPanel:/dev/input/ts0    
      export LD_LIBRARY_PATH=/tmp/lib
      export TSLIB_TSDEVICE=/dev/input/ts0 //指定觸摸屏設備節點文件
      export TSLIB_CONSOLEDEVICE=none //tslib運行需要的控制檯,這裏就是LCD屏幕 ,設定控制檯設備爲none,否則默認爲/dev/tty
      export TSLIB_FBDEVICE=/dev/fb0 // /dev/fb0 指定幀緩衝設備
                                      // 我的開發板上只有/dev/fb/0,所以做了一個鏈接 ln -s /dev/fb/0 /dev/fb0
      export TSLIB_CALIBFILE=/tmp/pointercal    //指定觸摸屏校準文件pintercal的存放位置
                                                //默認是在/etc下面,可寫文件系統爲/etc/pointercal
      export TSLIB_CONFFILE=/tmp/ts.conf        //指定TSLIB配置文件的位置
      export TSLIB_PLUGINDIR=/tmp/lib           //指定觸摸屏插件所在路徑:
                                                // mousebuts.so variance.so dejitter.so linear.so的存放路徑
      export POINTERCAL_FILE=/tmp/pointercal
***************************
如果爲可寫根文件系統,可以修改開發板/etc/profile文件,將這些環境變量寫入,就不用每次設置了
*****************************
      校準屏幕(5點校準)
      cd /tmp/bin/tests
      ./ts_calibrate
      會陸續在LCD的4個角和中點出現光標,點擊光標進行校準,生成校準文件
    
     再運行測試
     ./ts_test
     這時LCD上出現光標,你的手指點哪裏光標就會跟到哪裏才成功
     
     運行PDA
      cd /tmp/bin
      ./qpe
出現”Tap anywhere to continue”,然後進行qpe5點校準,進入qpe
【問題】: 如何運行設置環境變量文件 setenv.sh
【解決方法】:. ./setenv.sh
【問題】: ts_open:No such file or dircetory //ts_open() 打開觸摸屏設備
【解決方法】:是觸摸屏驅動沒移植好,導致打不開觸摸屏設備。先確認一下在/dev/input/下面是否有ts0,mouse0等,
              如果沒有,是觸摸屏驅動沒有移植好
【問題】:   Cannot create Qt/Embedded data directory: /tmp/qtembedded-0
【解決方法】:把qt加載到一個可讀寫的目錄下面

【問題】: 運行./ts_calibrate又出現了令人十分之鬱悶的錯誤:
             ts_config: Success
【解決方法】:cp   tslib/plugins/.libs/*.so board/lib //這些是ts.conf要用到的庫文件:
        // mousebuts.so variance.so dejitter.so linear.so
       export TSLIB_PLUGINDIR=/tmp/lib           //指定觸摸屏插件所在路徑:
                                                // mousebuts.so variance.so dejitter.so linear.so的存放路徑

【問題】: 1:option '-16018' not recognisedts_config:success
【解決方法】:必須將pointercal文件刪除,然後從tslib/etc/下面將原始的ts.conf重新拷貝到board下面即可。

【問題】: timezone警告的問題
【解決方法】:
在usr/etc/profile中添加export TZ=America/New_York
拷貝 qtopia/etc/zoneinfo/zone.tab 到 /usr/share/zoneinfo/下
//拷貝 qtopia/etc/zoneinfo/America/New_York 到 /usr/share/zoneinfo/America/New_York下
拷貝 qtopia/etc/zoneinfo 到 /usr/share/下
【問題】:我怎麼知道/dev/input/eventX這些事件到底是什麼事件阿,是鼠標還是鍵盤或者別的,
eventX代表的是所有輸入設備(input核心)的事件,比如按鍵按下,或者鼠標移動,或者遊戲遙控器等等,
【解決方法】:在系統查看的方法是 cat /proc/bus/input/devices 就可以看到每個eventX是什麼設備的事件了。
//插入鼠標後
I: Bus=0013 Vendor=dead Product=beef Version=0101
N: Name="s3c2410 TouchScreen"
P: Phys=
H: Handlers=mouse0 event0 ts0 evbug
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003
I: Bus=0003 Vendor=15d9 Product=0a37 Version=0100
N: Name="USB Mouse"
P: Phys=usb-s3c24xx-1/input0
H: Handlers=mouse1 event1 ts1 evbug
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103
=====================================================================================
(7)
【問題】: 出現”Tap anywhere to continue”,不能進行:qpe5點校準,進入qpe
/dev/input 下面有:
鼠標: event0 mouse0 ts0   tsraw0
觸摸屏:event1 mouse1 ts1   tsraw1
【問題】: 當設置 export QWS_MOUSE_PROTO=QVFbMouse:/dev/input/ts0 時:
          按下觸摸屏後彈出窗口: Calibrate: Calibration can only be performed on a touch screen
=====================================================================================
【解決方法】:板子的觸摸屏設備驅動和QT/E的readMouseData()函數不匹配,需要修改QT/E源代碼。利用vi工具打開管理觸摸屏的QT/E源代碼qte/src/kernel/qwsmouse_qws.cpp,並參考ARMLinux系統的觸摸屏ADS7843驅動代碼(/driver/char/ads7843_ts.c)中的讀函數來適當地修改參數值。
(i)將 qte/src/kernel/qwsmouse_qws.cpp 中的 “#define QWS_CUSTOMTOUCHPANEL”前的註釋去掉
(ii)下面帶有//wpb add 註釋的語句是要添加的部分
class QCustomTPanelHandlerPrivate : public QWSMouseHandler
{
    Q_OBJECT
public:
    QCustomTPanelHandlerPrivate(MouseProtocol, QString dev);
    ~QCustomTPanelHandlerPrivate();
private:
    int mouseFD;
    unsigned char prevstate; //wpb add
private slots:
    void readMouseData();
};
(iii)下面帶有//wpb add 註釋的語句是要添加的部分
QCustomTPanelHandlerPrivate::QCustomTPanelHandlerPrivate(
MouseProtocol, QString )
{
#ifdef QWS_CUSTOMTOUCHPANEL
   if ((mouseFD = open( "/dev/ts", O_RDONLY))
       qWarning( "Cannot open /dev/ts (%s)", strerror(errno));
     return;
   } else {
       sleep(1);
   }
   prevstate = 0;     //wpb add
   QSocketNotifier *mouseNotifier;
   mouseNotifier = new QSocketNotifier( mouseFD, SocketNotifier::Read, this );
   connect(mouseNotifier,SIGNAL(activated(int)),this, SLOT(readMouseData()));
#endif
}

(iv)//把readMouseData()改成下面所示
void QCustomTPanelHandlerPrivate::readMouseData()
{
#ifdef QWS_CUSTOMTOUCHPANEL
    if(!qt_screen)
return;
    CustomTPdata data ;
    short data2[4]={0};
    int ret;
                                                                                                
    ret=read(mouseFD,data2,sizeof(data2));
    if(ret)
    {
        data.status=data2[0];
        data.xpos=data2[1];
        data.ypos=data2[2];
        QPoint q;
        q.setX(data.xpos);
        q.setY(data.ypos);
        mousePos=q;
        if(data.status && !prevstate)
        {
              emit mouseChanged(mousePos,Qt::LeftButton);
        }
else if(!data.status&&prevstate)
{
              emit mouseChanged(mousePos,0);
        }
        prevstate=data.status;
    }
    if(ret<0){
        qDebug("Error %s",strerror(errno));
    }
#endif
}
(v) QWSMouseHandler* QWSServer::newMouseHandler(const
QString& spec)

QWSMouseHandler *handler = 0;
mouseProtocol = TPanel;   // add this line
   switch ( mouseProtocol ) {

(iii)配置qte:
     ./configure -qconfig qpe -no-xft -qvfb -depths 4,8,12,16 -xplatform linux-arm-g++ -system-jpeg -gif
     //去掉-tslib
(iv) # make
(8)
vi qtopia/src/settings/calibrate/calibrate.h
添加:#define QWS_NEED_CALIBRATION

//////////////////////////////////
POINTERCAL_FILE(由於其他目錄不可寫,我把校準文件的存放位置改到了/mnt/yaffs/tmp/目錄下)
vi qtopia/src/settings/calibrate/calibrate.cpp
將第99行的/etc/pointercal改爲/tmp/pointercal
5.POINTERCAL_FILE
vi qtopia/src/server/pda/firstuse.cpp
將第345行的/etc/pointercal改爲/tmp/pointercal
6.POINTERCAL_FILE
vi qte/src/kernel/qwsmouse_qws.cpp
將所有/etc/pointercal修改爲/tmp/pointercal
==========================================================
(1)語言和時區設置完成之後,出現光標(忙狀態),然後有如下報錯信息,又重新回到初始界面:
warning: problem renaming file using qdir::rename /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf
Warning: ::rename problem renaming file /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf
Warning: ::rename problem renaming file /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf
Warning: ::rename problem renaming file /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf
Warning: ::rename problem renaming file /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf
Warning: ::rename problem renaming file /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf
Warning: ::rename problem renaming file /tmp/Settings/qpe_new.conf to /tmp/Settings/qpe.conf errno 2
[9;15] [?33h [?25h [?0c?25h [?0c [9;15] [?33h [?25h [?0c33h [?25h [?0c [9;15] [?33h [?25h [?0c33h [?25h [?0c [9;15] [?33h [?25h [?0c15] [?33h [?25h [?0c [9;0] [?33l [?25ll [?25lproblem renaming file using qdir::rename /tmp/Settings/locale_new.conf to /tmp/Settings/locale.conf
::rename problem renaming file /tmp/Settings/locale_new.conf to /tmp/Settings/locale.conf errno 2
[9;0] [?33l [?25l [9;0] [?33l [?25l[?25l [9;15] [?33h [?25h [?0c[?33h [?25h [?0c [9;0] [?33l [?25ll [?25l [9;0] [?33l [?25l25lWarning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: problem renaming file using qdir::rename /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf
Warning: ::rename problem renaming file /tmp/Settings/PluginLoader_new.conf to /tmp/Settings/PluginLoader.conf errno 2
Warning: language message - en_US
Warning: and its not null
Warning: loading /tmp/i18n/en_US/qt.qm
Warning: loading /tmp/i18n/en_US/qpe.qm
Warning: loading /tmp/i18n/en_US/libqpe.qm
Warning: loading /tmp/i18n/en_US/libqtopia.qm
Warning: loading /tmp/i18n/en_US/language.qm
Warning: loading /tmp/i18n/en_US/timezone.qm
Warning: loading /tmp/i18n/en_US/systemtime.qm
Warning: language message - en_US
Warning: and its not null
Warning: loading /tmp/i18n/en_US/qt.qm
Warning: loading /tmp/i18n/en_US/qpe.qm
Warning: loading /tmp/i18n/en_US/libqpe.qm
Warning: loading /tmp/i18n/en_US/libqtopia.qm
Warning: loading /tmp/i18n/en_US/language.qm
Warning: loading /tmp/i18n/en_US/timezone.qm
Warning: loading /tmp/i18n/en_US/systemtime.qm
Warning: language message - en_US
Warning: and its not null
Warning: loading /tmp/i18n/en_US/qt.qm
Warning: loading /tmp/i18n/en_US/qpe.qm
Warning: loading /tmp/i18n/en_US/libqpe.qm
Warning: loading /tmp/i18n/en_US/libqtopia.qm
Warning: loading /tmp/i18n/en_US/language.qm
Warning: loading /tmp/i18n/en_US/timezone.qm
Warning: loading /tmp/i18n/en_US/systemtime.qm
Warning: language message - en_US
Warning: and its not null
Warning: loading /tmp/i18n/en_US/qt.qm
Warning: loading /tmp/i18n/en_US/qpe.qm
Warning: loading /tmp/i18n/en_US/libqpe.qm
Warning: loading /tmp/i18n/en_US/libqtopia.qm
Warning: loading /tmp/i18n/en_US/language.qm
Warning: loading /tmp/i18n/en_US/timezone.qm
Warning: loading /tmp/i18n/en_US/systemtime.qm
Warning: language message - en_US
Warning: and its not null
Warning: loading /tmp/i18n/en_US/qt.qm
Warning: loading /tmp/i18n/en_US/qpe.qm
Warning: loading /tmp/i18n/en_US/libqpe.qm
Warning: loading /tmp/i18n/en_US/libqtopia.qm
Warning: loading /tmp/i18n/en_US/language.qm
Warning: loading /tmp/i18n/en_US/timezone.qm
Warning: loading /tmp/i18n/en_US/systemtime.qm
You touch the screen
You touch the screen
【處理】:將一個校驗文件pointercal 拷貝到/etc目錄下,//設置 export POINTERCAL_FILE=/tmp/pointercal
(2)出現界面後報錯:
Warning: QServerSocket: failed to bind or listen to the socket
Warning: Failed to bind to port 4242
Warning: QServerSocket: failed to bind or listen to the socket
Warning: Failed to bind to port 4243
Warning: QServerSocket: failed to bind or listen to the socket
Warning: Failed to bind to port 4242
Warning: QServerSocket: failed to bind or listen to the socket
Warning: Failed to bind to port 4243
Warning: QServerSocket: failed to bind or listen to the socket
Warning: Failed to bind to port 4242
/tmp # Warning: QServerSocket: failed to bind or listen to the socket
Warning: Failed to bind to port 4243
Warning: QServerSocket: failed to bind or listen to the socket
Warning: Failed to bind to port 4242
【解決方案】: 在運行 /tmp下面的 ./bin/qpe時,後面不要添加 -qws&,因爲:qpe本身就是把自己設置爲server的
(3)校準完成後,位置不對,點中間位置,控制了右下角的按鈕。
校準後的pointercal不能寫入到目錄下?????????
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章