| 導購 | 订阅 | 在线投稿
分享
 
 
 

深度剖析E680G開發五.移植OPIE操作系統(下)-編譯和運行OPIE

來源:互聯網網民  2006-12-10 06:53:37  評論

深度剖析E680G開發五.移植OPIE操作系統(下)-編譯和運行OPIE

草木瓜

20060930

一、前言

這是最後的內容,然而卻有很大的遺憾,如果運行OPIE,但E680原有系統依然

會接受的鍵盤和觸摸屏的事件,這種情況下幾乎不能正常使用OPIE,必須telnet進

手機kill掉windowserver,這實在是無聊的很。

這個問題早在去年已經被一位外國友人解決。不過相關源碼貼子的鏈結皆已失效,

不能盡快的找出解決方法,但在網上可以搜索到完美編譯後的OPIE下載。

如有那位前輩知道解決方法,一定請賜教,不甚感激。

我之所以還要把帶有遺憾的方法寫出來,那是因爲這些內容覆蓋面相當多了,

層次也很高了。

以後找出解決方法,有了這些知識基礎,就隨心所欲了。

二、重要提示

爲了方便更好的理解本文,提供下面鏈結。

E680應用開發全系列的文章地址:http://blog.csdn.net/liwei_cmg

文章相關的重要資源的下載地址:http://play.younet.com/view.php?tid=18578

三、編譯OPIE

1.http://marcus.bluetroll.se/e680/opie-cvs.tar.gz 下載 opie-cvs.tar.gz

注意:其實編譯過程可以看opie-cvs.tar.gz裏的README。我們這裏同樣使用了Leprechaun

的方法。

2.在ftp://ftp.trolltech.com/qt/source/qt-embedded-2.3.10-free.tar.gz

此OPIE版本指定需要使用qt 2.3.10版本。

3.同樣爲了便于管理,統一在 /home/gcc/toolchain 下解壓縮OPIE和QT。

4.設置環境變量

export TOOLCHAIN_DIR=/home/gcc/toolchain

export PATH=$PATH:$TOOLCHAIN_DIR/arm-linux/gcc-3.3.2-glibc-2.3.2/bin

export QTDIR=$TOOLCHAIN_DIR/qt-2.3.10

export OPIEDIR=$TOOLCHAIN_DIR/opie

export LFLAGS_EXTRA=" -Wl,-rpath-link,$TOOLCHAIN_DIR/arm-linux/gcc-3.3.2-glibc-2.3.2/arm-linux/lib "

5.執行如下腳本,這是編譯QTE所做的准備工作,這裏需要下載uic-qt2這個文

件,上篇文章已經說明

mkdir -p $QTDIR/bin

cp uic-qt2 $QTDIR/bin/uic

chmod u+x $QTDIR/bin/uic #root用戶這個就沒有必要了

ln -s $OPIEDIR/qt/qconfig*.h $QTDIR/src/tools/ #README裏已說明,使用OPIE選項進行編譯

cd $QTDIR

patch -p1 < $OPIEDIR/qt/qt-2.3.10.patch/qte-2.3.10-all.patch #qt的OPIE補丁

6.編譯QTE

cd $QTDIR

./configure -qconfig qpe -depths 16,32 -xplatform linux-arm-g++

-thread -no-qvfb -system-jpeg -gif -system-zlib -no-xft

make

7.編譯OPIE

cd $OPIEDIR

make menuconfig

cp opie-config $OPIEDIR/.config

make

注意:這個opie-config是Leprechaun提供的config文件,用戶也可以直接在

menuconfig自行設置,其實包含需要編譯的OPIE功能。本資源貼提供了下載。

8.至此OPIE已經編譯成功。如果要在手機上運行,我們這裏需要對他進行一些

精簡,去除一些無關緊要的東西。

#!/bin/bash

export REALOPIE=/home/gcc/moto

mkdir -p $REALOPIE/i18n

cp -a $OPIEDIR/bin $OPIEDIR/apps $OPIEDIR/lib $OPIEDIR/pics $OPIEDIR/sounds $OPIEDIR/plugins $OPIEDIR/pics-hires $REALOPIE

cp -a $OPIEDIR/i18n/en $REALOPIE/i18n/

cp -a $QTDIR/lib/* $REALOPIE/lib/

find $REALOPIE -type d -name CVS | xargs rm -rf

我們把精簡的路徑設爲/home/gcc/moto,複制完全後,這個就是我們需要放

在手機上的文件夾。

四、手機上運行OPIE

這裏有三種方法。我們將做一一介紹。

★方法一★:將/home/gcc/moto這個文件,直接複制到E680上。

這裏需要注意的嚴重問題。文件夾的lib文件有很多是采用Linux的ln,即軟連接,

如:libso -> libso.1.1 libso.1 -> libso.1.1,libso與libso.1皆是軟連接。只有

libso.1.1是真實的庫文件。這在Linux下是十分普遍的。在我們SD卡上是不能夠建立

的。因爲我們SD卡默認是采用FAT格式分區。

我們進行冗余法,即有一個軟連接,我就複制一個真實的lib文件。

這裏自已寫了個腳本完成這個操作。

#!/bin/bash

vFileInput=liwei

rm -f $vFileInput

echo "Begin Find Links..."

sleep 0.5s

find /home/gcc/moto -type l | xargs ls -l | tee $vFileInput

echo "End Find Links."

echo "Begin Copy Libs..."

sleep 0.5s

rm -f copyso.log

i=0

vFileLen=`wc -l < $vFileInput`

vFileLen=`expr $vFileLen + 1`

while test $i -lt $vFileLen

do

vFileLine=`tail +$i $vFileInput | head -1`

vDir=${vFileLine%>*}

vDir=${vDir%-*}

vDir=${vDir%/*}

vDir=${vDir##* }

vBase=${vFileLine##* }

vLink=${vFileLine%>*}

vLink=${vLink%-*}

vLink=${vLink% *}

vLink=${vLink##* }

echo rm -f $vLink

rm -f $vLink

echo cp $vDir/$vBase $vLink

eval 'cp $vDir/$vBase $vLink'

echo $i " Files Dealed."

i=`expr $i + 1`

done

echo "End Copy Libs."

echo "Done."

注意:find /home/gcc/moto -type l | xargs ls -l | tee $vFileInput

顯然是指定這裏的/home/gcc/moto路徑,可按自已需要更改。此外這個腳本

還有個bug,就是如果/home/moto/gcc下不存在軟連接,則會出錯。有興趣的

可以去完善一下。

複制完所有軟連接,將這個文件夾複制到手機SD上。如:/mmc/mmca1/moto

#!/bin/bash

export QTDIR=/mmc/mmca1/moto

export LD_LIBRARY_PATH=/lib:/usr/lib:/mmc/mmca1/moto/lib

export EZX_RES_FONT_PATH=/mmc/mmca1/moto/lib/fonts

export PATH=$PATH:/mmc/mmca1/moto/bin

export HOME=/mmc/mmca1/moto

/mmc/mmca1/moto/bin/qpe -qws

即可運行OPIE系統,這裏OPIE和系統會在觸摸屏上會有沖突,國外早已有人

解決了這個問題,遺憾的相關鏈結全部失效,到現在也沒有解決這個問題。這裏

暫時只能ps -ef ,把windowserv的進程殺掉才可以完美的運行OPIE。

★方法二★:將OPIE制作成cramfs文件格式包,並把SD卡分出一個分區,用

于裝載cramfs文件包,並在E680上mount上去。這就成功避開了軟連接的問題。

這個方法單就運行OPIE,意思不大,且十分複雜,但涉及內容很多,不沖方

法沖知識,所以這裏詳細說明一下。

1.首先需要對SD卡進行分區。當然SD卡內容會全部丟失,及時做好備份。

將SD卡彈出,用USB讀卡器連到Linux機器上。我這裏使用的是虛擬機VMware5.0,

需要在菜單vm->Removeable Devices->USB Devices->Micro USB Device。這

時虛擬機會自動加載USB設備到Linux下。

此時在Linux fdisk -l 可以查看的兩段信息,一是硬盤分區信息,另一個就

是USB設備了。

Disk /dev/sda: 8053 MB, 8053063680 bytes

255 heads, 63 sectors/track, 979 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 892 7164958+ 83 Linux

/dev/sda2 893 974 658665 82 Linux swap

Disk /dev/sdb: 1015 MB, 1015808000 bytes

32 heads, 61 sectors/track, 1016 cylinders

Units = cylinders of 1952 * 512 = 999424 bytes

Device Boot Start End Blocks Id System

/dev/sdb1 1 950 927169+ 6 FAT16

/dev/sdb2 951 1016 64416 83 Linux

[注意:]

如果此時看不到類似以上內容,可執行以下語句:

# /sbin/lsmod

查看內容是否包括 usbcore、usb-ohci(或usb-uhci)、scsi_mod等。如找

不著,可按下面shell語句,循環安裝驅動。當然,你也可以用/sbin/insmod

一一安裝。

cd /lib/modules/2.4.20-8/kernel/drivers/usb

for v in *.o storage/*.o ; do /sbin/insmod $v ; done

驅動安裝完畢後,# /sbin/lsmod 查看內容是否安裝成功,重新插拔USB設備

直到fdisk -l 發現設備。

上面查看到USB設備,已經是分好區的。分了兩個主分區 /dev/sdb1,/dev/sdb2

這樣,/dev/sdb1會自動被Windows和E680識別,/dev/sdb2在E680上可以手工挂載上

去。

具體如何使用fdisk分區,可以查看相關幫助,或網上搜索一下。

fdisk /dev/sdb 對SD卡進行分區,最後強調一下,必須都是主分區,第一個分

區是FAT格式,第二個是Linux格式。分完w保存信息,mkfs.msdos /dev/sdb1進行格

式化。/dev/sdb2用作cramfs文件,比OPIE總體大小大一點就可以了,一般40M左右。

2.分好區後,就需要制作cramfs文件了。

我們輸入 mkcramfs /home/gcc/moto /home/gcc/moto.cramfs

會發生錯誤,如下:

Exceeded MAXENTRIES. Raise this value in mkcramfs.c and recompile. Exiting.

麻煩又來了,系統自帶的mkcramfs命令支持的文件數量是有限的。我們必須去

找mkcramfs的源代碼,更改下參數,然後重新編譯一下。本資源貼提供了此源代碼的下載。

編譯後使用可執行文件:/home/gcc/moto/mkcramfs /home/gcc/moto /home/gcc/moto.cramfs

生成cramfs包。成功顯示如下:

Directory data: 89156 bytes

Everything: 21572 kilobytes

Super block: 76 bytes

CRC: eb6895a4

3.將cramfs包裝載到SD卡的第二個分區。

dd if=moto.cramfs of=/dev/sdb2

這個過程比較慢,且不需要mount /dev/sdb2,只要fdisk -l能查看的/dev/sdb2的

信息即可。成功會顯示如下:

43144+0 records in

43144+0 records out

4.再點下菜單vm->Removeable Devices->USB Devices->Micro USB Device 把勾去掉

USB設備又回到了Windows下。移除USB讀卡器,把SD卡,插入E680。

在telnet下,輸入mount命令:

rootfs on / type rootfs (rw)

/dev/root on / type cramfs (rw)

none on /ram type ramfs (rw)

proc on /ram/proc type proc (rw)

/dev/tffsa on /usr/language type cramfs (rw)

/dev/roflash2 on /usr/setup type cramfs (rw)

none on /dev/pts type devpts (rw)

/dev/mtdblock2 on /ezxlocal type vfm (rw,noatime)

/dev/tffsb1 on /diska type vfat (rw,noatime)

/dev/mmca1 on /mmc/mmca1 type vfat (rw,noatime)

可以看出E680系統自動mount了我們第一個主分區,第二個主分區需要我們手工

mount。

輸入以下命令:

# ls -l /dev/mmca1

brw-rw---- 1 root root 243, 1 Oct 2 07:09 /dev/mmca1

我們需要在E680上再建立個塊文件。只有/ezxlocal下才允許我們建立。

在/ezxlocal下創建block文件。因爲mmca1是243 1,所以我們使用如下參數:

mknod /ezxlocal/mmca2 b 243 2

在/ezxlocal下創建目錄。如opie。 mkdir /ezxlocal/opie。這個目錄用于我們

挂載建立的block文件。輸入命令:

mount -t cramfs /ezxlocal/mmca2 /ezxlocal/opie

就會發現opie裏的就是我們在Linux下那個/home/gcc/moto的文件內容了。至此

我們就成功的把cramfs文件做爲一個分區挂載到E680上。

5.運行OPIE

export QTDIR=/ezxlocal/opie

export OPIEDIR=$QTDIR

export LD_LIBRARY_PATH=/lib:/usr/lib:$QTDIR/lib

./clock -qws

即可看到個全屏時鍾,./qpe -qws即可運行OPIE操作系統,不過這個依然會存在

與WindowsServer的觸摸屏沖突,解決方法同上。

★方法三★:通過loop,挂載moto.cramfs。下載本資源貼loop.o文件,將

moto.cramfs和loop.o複制到SD卡上,如/mmc/mmca1下。

# mkdir liwei

# insmod loop.o

# mount moto.cramfs liwei -t cramfs -o loop

/mmc/mmca1/liwei下就可以看到moto.cramfs裏的內容了,十分簡單。再運行OPIE

就跟方法二一樣了。

五、寫在最後

這三種方法都有個通病:不能解決OPIE與E680的觸摸屏,按鍵的沖突問題。大家

可以去網上搜索相關完美解決方法。也有提供完美的OPIE安裝文件。我目前手機上

就是用的一位外國人編譯的,運行時可以屏蔽按鍵,觸摸屏,可以自由與手機系統進行

切換。

如果找到了解決方法,一定詳細公布與衆。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
深度剖析E680G開發五.移植OPIE操作系統(下)-編譯和運行OPIE 草木瓜 20060930 一、前言 這是最後的內容,然而卻有很大的遺憾,如果運行OPIE,但E680原有系統依然 會接受的鍵盤和觸摸屏的事件,這種情況下幾乎不能正常使用OPIE,必須telnet進 手機kill掉windowserver,這實在是無聊的很。 這個問題早在去年已經被一位外國友人解決。不過相關源碼貼子的鏈結皆已失效, 不能盡快的找出解決方法,但在網上可以搜索到完美編譯後的OPIE下載。 如有那位前輩知道解決方法,一定請賜教,不甚感激。 我之所以還要把帶有遺憾的方法寫出來,那是因爲這些內容覆蓋面相當多了, 層次也很高了。 以後找出解決方法,有了這些知識基礎,就隨心所欲了。 二、重要提示 爲了方便更好的理解本文,提供下面鏈結。 E680應用開發全系列的文章地址:[url=http://blog.csdn.net/liwei_cmg]http://blog.csdn.net/liwei_cmg[/url] 文章相關的重要資源的下載地址:[url=http://play.younet.com/view.php?tid=18578]http://play.younet.com/view.php?tid=18578[/url] 三、編譯OPIE 1.http://marcus.bluetroll.se/e680/opie-cvs.tar.gz 下載 opie-cvs.tar.gz 注意:其實編譯過程可以看opie-cvs.tar.gz裏的README。我們這裏同樣使用了Leprechaun 的方法。 2.在[url=ftp://ftp.trolltech.com/qt/source/qt-embedded-2.3.10-free.tar.gz]ftp://ftp.trolltech.com/qt/source/qt-embedded-2.3.10-free.tar.gz[/url] 此OPIE版本指定需要使用qt 2.3.10版本。 3.同樣爲了便于管理,統一在 /home/gcc/toolchain 下解壓縮OPIE和QT。 4.設置環境變量 export TOOLCHAIN_DIR=/home/gcc/toolchain export PATH=$PATH:$TOOLCHAIN_DIR/arm-linux/gcc-3.3.2-glibc-2.3.2/bin export QTDIR=$TOOLCHAIN_DIR/qt-2.3.10 export OPIEDIR=$TOOLCHAIN_DIR/opie export LFLAGS_EXTRA=" -Wl,-rpath-link,$TOOLCHAIN_DIR/arm-linux/gcc-3.3.2-glibc-2.3.2/arm-linux/lib " 5.執行如下腳本,這是編譯QTE所做的准備工作,這裏需要下載uic-qt2這個文 件,上篇文章已經說明 mkdir -p $QTDIR/bin cp uic-qt2 $QTDIR/bin/uic chmod u+x $QTDIR/bin/uic #root用戶這個就沒有必要了 ln -s $OPIEDIR/qt/qconfig*.h $QTDIR/src/tools/ #README裏已說明,使用OPIE選項進行編譯 cd $QTDIR patch -p1 < $OPIEDIR/qt/qt-2.3.10.patch/qte-2.3.10-all.patch #qt的OPIE補丁 6.編譯QTE cd $QTDIR ./configure -qconfig qpe -depths 16,32 -xplatform linux-arm-g++ -thread -no-qvfb -system-jpeg -gif -system-zlib -no-xft make 7.編譯OPIE cd $OPIEDIR make menuconfig cp opie-config $OPIEDIR/.config make 注意:這個opie-config是Leprechaun提供的config文件,用戶也可以直接在 menuconfig自行設置,其實包含需要編譯的OPIE功能。本資源貼提供了下載。 8.至此OPIE已經編譯成功。如果要在手機上運行,我們這裏需要對他進行一些 精簡,去除一些無關緊要的東西。 #!/bin/bash export REALOPIE=/home/gcc/moto mkdir -p $REALOPIE/i18n cp -a $OPIEDIR/bin $OPIEDIR/apps $OPIEDIR/lib $OPIEDIR/pics $OPIEDIR/sounds $OPIEDIR/plugins $OPIEDIR/pics-hires $REALOPIE cp -a $OPIEDIR/i18n/en $REALOPIE/i18n/ cp -a $QTDIR/lib/* $REALOPIE/lib/ find $REALOPIE -type d -name CVS | xargs rm -rf 我們把精簡的路徑設爲/home/gcc/moto,複制完全後,這個就是我們需要放 在手機上的文件夾。 四、手機上運行OPIE 這裏有三種方法。我們將做一一介紹。 ★方法一★:將/home/gcc/moto這個文件,直接複制到E680上。 這裏需要注意的嚴重問題。文件夾的lib文件有很多是采用Linux的ln,即軟連接, 如:libso -> libso.1.1 libso.1 -> libso.1.1,libso與libso.1皆是軟連接。只有 libso.1.1是真實的庫文件。這在Linux下是十分普遍的。在我們SD卡上是不能夠建立 的。因爲我們SD卡默認是采用FAT格式分區。 我們進行冗余法,即有一個軟連接,我就複制一個真實的lib文件。 這裏自已寫了個腳本完成這個操作。 #!/bin/bash vFileInput=liwei rm -f $vFileInput echo "Begin Find Links..." sleep 0.5s find /home/gcc/moto -type l | xargs ls -l | tee $vFileInput echo "End Find Links." echo "Begin Copy Libs..." sleep 0.5s rm -f copyso.log i=0 vFileLen=`wc -l < $vFileInput` vFileLen=`expr $vFileLen + 1` while test $i -lt $vFileLen do vFileLine=`tail +$i $vFileInput | head -1` vDir=${vFileLine%>*} vDir=${vDir%-*} vDir=${vDir%/*} vDir=${vDir##* } vBase=${vFileLine##* } vLink=${vFileLine%>*} vLink=${vLink%-*} vLink=${vLink% *} vLink=${vLink##* } echo rm -f $vLink rm -f $vLink echo cp $vDir/$vBase $vLink eval 'cp $vDir/$vBase $vLink' echo $i " Files Dealed." i=`expr $i + 1` done echo "End Copy Libs." echo "Done." 注意:find /home/gcc/moto -type l | xargs ls -l | tee $vFileInput 顯然是指定這裏的/home/gcc/moto路徑,可按自已需要更改。此外這個腳本 還有個bug,就是如果/home/moto/gcc下不存在軟連接,則會出錯。有興趣的 可以去完善一下。 複制完所有軟連接,將這個文件夾複制到手機SD上。如:/mmc/mmca1/moto #!/bin/bash export QTDIR=/mmc/mmca1/moto export LD_LIBRARY_PATH=/lib:/usr/lib:/mmc/mmca1/moto/lib export EZX_RES_FONT_PATH=/mmc/mmca1/moto/lib/fonts export PATH=$PATH:/mmc/mmca1/moto/bin export HOME=/mmc/mmca1/moto /mmc/mmca1/moto/bin/qpe -qws 即可運行OPIE系統,這裏OPIE和系統會在觸摸屏上會有沖突,國外早已有人 解決了這個問題,遺憾的相關鏈結全部失效,到現在也沒有解決這個問題。這裏 暫時只能ps -ef ,把windowserv的進程殺掉才可以完美的運行OPIE。 ★方法二★:將OPIE制作成cramfs文件格式包,並把SD卡分出一個分區,用 于裝載cramfs文件包,並在E680上mount上去。這就成功避開了軟連接的問題。 這個方法單就運行OPIE,意思不大,且十分複雜,但涉及內容很多,不沖方 法沖知識,所以這裏詳細說明一下。 1.首先需要對SD卡進行分區。當然SD卡內容會全部丟失,及時做好備份。 將SD卡彈出,用USB讀卡器連到Linux機器上。我這裏使用的是虛擬機VMware5.0, 需要在菜單vm->Removeable Devices->USB Devices->Micro USB Device。這 時虛擬機會自動加載USB設備到Linux下。 此時在Linux fdisk -l 可以查看的兩段信息,一是硬盤分區信息,另一個就 是USB設備了。 Disk /dev/sda: 8053 MB, 8053063680 bytes 255 heads, 63 sectors/track, 979 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 892 7164958+ 83 Linux /dev/sda2 893 974 658665 82 Linux swap Disk /dev/sdb: 1015 MB, 1015808000 bytes 32 heads, 61 sectors/track, 1016 cylinders Units = cylinders of 1952 * 512 = 999424 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 950 927169+ 6 FAT16 /dev/sdb2 951 1016 64416 83 Linux [注意:] 如果此時看不到類似以上內容,可執行以下語句: # /sbin/lsmod 查看內容是否包括 usbcore、usb-ohci(或usb-uhci)、scsi_mod等。如找 不著,可按下面shell語句,循環安裝驅動。當然,你也可以用/sbin/insmod 一一安裝。 cd /lib/modules/2.4.20-8/kernel/drivers/usb for v in *.o storage/*.o ; do /sbin/insmod $v ; done 驅動安裝完畢後,# /sbin/lsmod 查看內容是否安裝成功,重新插拔USB設備 直到fdisk -l 發現設備。 上面查看到USB設備,已經是分好區的。分了兩個主分區 /dev/sdb1,/dev/sdb2 這樣,/dev/sdb1會自動被Windows和E680識別,/dev/sdb2在E680上可以手工挂載上 去。 具體如何使用fdisk分區,可以查看相關幫助,或網上搜索一下。 fdisk /dev/sdb 對SD卡進行分區,最後強調一下,必須都是主分區,第一個分 區是FAT格式,第二個是Linux格式。分完w保存信息,mkfs.msdos /dev/sdb1進行格 式化。/dev/sdb2用作cramfs文件,比OPIE總體大小大一點就可以了,一般40M左右。 2.分好區後,就需要制作cramfs文件了。 我們輸入 mkcramfs /home/gcc/moto /home/gcc/moto.cramfs 會發生錯誤,如下: Exceeded MAXENTRIES. Raise this value in mkcramfs.c and recompile. Exiting. 麻煩又來了,系統自帶的mkcramfs命令支持的文件數量是有限的。我們必須去 找mkcramfs的源代碼,更改下參數,然後重新編譯一下。本資源貼提供了此源代碼的下載。 編譯後使用可執行文件:/home/gcc/moto/mkcramfs /home/gcc/moto /home/gcc/moto.cramfs 生成cramfs包。成功顯示如下: Directory data: 89156 bytes Everything: 21572 kilobytes Super block: 76 bytes CRC: eb6895a4 3.將cramfs包裝載到SD卡的第二個分區。 dd if=moto.cramfs of=/dev/sdb2 這個過程比較慢,且不需要mount /dev/sdb2,只要fdisk -l能查看的/dev/sdb2的 信息即可。成功會顯示如下: 43144+0 records in 43144+0 records out 4.再點下菜單vm->Removeable Devices->USB Devices->Micro USB Device 把勾去掉 USB設備又回到了Windows下。移除USB讀卡器,把SD卡,插入E680。 在telnet下,輸入mount命令: rootfs on / type rootfs (rw) /dev/root on / type cramfs (rw) none on /ram type ramfs (rw) proc on /ram/proc type proc (rw) /dev/tffsa on /usr/language type cramfs (rw) /dev/roflash2 on /usr/setup type cramfs (rw) none on /dev/pts type devpts (rw) /dev/mtdblock2 on /ezxlocal type vfm (rw,noatime) /dev/tffsb1 on /diska type vfat (rw,noatime) /dev/mmca1 on /mmc/mmca1 type vfat (rw,noatime) 可以看出E680系統自動mount了我們第一個主分區,第二個主分區需要我們手工 mount。 輸入以下命令: # ls -l /dev/mmca1 brw-rw---- 1 root root 243, 1 Oct 2 07:09 /dev/mmca1 我們需要在E680上再建立個塊文件。只有/ezxlocal下才允許我們建立。 在/ezxlocal下創建block文件。因爲mmca1是243 1,所以我們使用如下參數: mknod /ezxlocal/mmca2 b 243 2 在/ezxlocal下創建目錄。如opie。 mkdir /ezxlocal/opie。這個目錄用于我們 挂載建立的block文件。輸入命令: mount -t cramfs /ezxlocal/mmca2 /ezxlocal/opie 就會發現opie裏的就是我們在Linux下那個/home/gcc/moto的文件內容了。至此 我們就成功的把cramfs文件做爲一個分區挂載到E680上。 5.運行OPIE export QTDIR=/ezxlocal/opie export OPIEDIR=$QTDIR export LD_LIBRARY_PATH=/lib:/usr/lib:$QTDIR/lib ./clock -qws 即可看到個全屏時鍾,./qpe -qws即可運行OPIE操作系統,不過這個依然會存在 與WindowsServer的觸摸屏沖突,解決方法同上。 ★方法三★:通過loop,挂載moto.cramfs。下載本資源貼loop.o文件,將 moto.cramfs和loop.o複制到SD卡上,如/mmc/mmca1下。 # mkdir liwei # insmod loop.o # mount moto.cramfs liwei -t cramfs -o loop /mmc/mmca1/liwei下就可以看到moto.cramfs裏的內容了,十分簡單。再運行OPIE 就跟方法二一樣了。 五、寫在最後 這三種方法都有個通病:不能解決OPIE與E680的觸摸屏,按鍵的沖突問題。大家 可以去網上搜索相關完美解決方法。也有提供完美的OPIE安裝文件。我目前手機上 就是用的一位外國人編譯的,運行時可以屏蔽按鍵,觸摸屏,可以自由與手機系統進行 切換。 如果找到了解決方法,一定詳細公布與衆。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有