Konqueror/Embeded 的移植
konqueror 是一个全功能的万维网浏览器(使用 KDE 中通用的部件技术 )
konqueror/embedded是专为嵌入式而设计的,自带有kde库源代码.
支持:
下载最新版本: http://developer.kde.org/~hausmann/snapshots/Attic/konqueror-embedded-snapshot-20030705.tar.gz
关于konqueror/embedded已经有不少前辈研究的很透彻了,像 http://www.minigui.org/downloads/TECHPAPER-KONQEMB-ARCH-V1.0.pdf 上,就对其结构进行了较深入的分析。
也有更新些的版本,在 http://www.cirulla.net/kdenox-snapshots/ 上有,不过后者所需的QT/Embedded版本必须大于3.1版本.
我使用的QT版本交叉编译环境如下:
QT/Embedded 2.3.7 Qtopia-free-1.7.0 arm-linux-g++ (3.3.2版本)
所有QT资源在 ftp://ftp.trolltech.com上都能免费下载到。
下面介绍移植konqueror/embedded到arm板的过程。
下载 http://developer.kde.org/~hausmann/snapshots/Attic/konqueror-embedded-snapshot-20030705.tar.gz
假设解压到 /usr/local/qt/konqueror
修改 /usr/local/qt/konkueror/konq-embed/src下的main.cc文件
第334行注释掉 //(void)new PopupHandler( &app, "popup-handler" );
修改 /usr/local/qt/konqueror/konq-embed/src/defaults.h 修改一些网页默认设置,如主页等
修改 /usr/local/qt/konqueror/konq-embed/kdesrc/khtml/khtmldefaults.h 修改默认字体,如“unifont”
/usr/local/qt/konqueror/konq-embed/src/preferencesimpl.cc 第152行
增加两行:
setFontComboEntry( defaultFont, HTML_DEFAULT_VIEW_FONT );
defaultFont->setCurrentItem(2); //假设你的默认字体排序为2
设置环境变量,我的qt目录是/usr/local/qt/qt-arm,交叉编译器目录为/usr/local/arm/3.3.2
export QTDIR=/usr/local/qt/qt-arm/qt-2.3.7
export QPEDIR=/usr/local/qt/qt-arm/qtopia-free-1.7.0
export TMAKEDIR=/usr/local/qt/tmake-1.11
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$TMAKEDIR/bin:$QTDIR/bin:$PATH
ln -s $QPEDIR/lib/libqpe.so $QTDIR/lib/libqpe.so
mkdir /usr/local/qt/konkueror/install
./configure --target=arm-linux --host=arm-linux --enable-embedded --enable-qt-embedded --disable-debug --enable-ftp --enable-static --disable-shared --enable-qtopia --enable-qpe --disable-mt --with-gui=qpe --with-extra-libs=/usr/local/arm/3.3.2/lib --with-extra-includes=/usr/local/arm/3.3.2/include -without-ssl --prefix=/usr/local/qt/konqueror/install --with-qt-dir=$QTDIR --with-qt-includes=$QTDIR/include --with-qt-libraries=$QTDIR/lib --with-qtopia-dir=$QPEDIR
make
make install
编译好的文件在/usr/local/qt/konqueror/install目录下.
汉化konqueror
cd /usr/local/qt/konqueror/konq-embed
make messages
编辑生成的konqueror.pot 文件, 第15行charset设置为UTF-8
"Content-Type: text/plain; charset=UTF-8/n"
编辑好后用$QTDIR/tools/msg2qm/msg2qm工具将konqueror.pot 转成 konqueror.qm文件.
$QTDIR/tools/msg2qm/msg2qm konqueror.pot konqueror.qm
生成的 konqueror.qm 文件拷贝到 $QPEDIR/i18n/zh_CN目录下.
注意qm 文件名必需和可执行文件名相同.如 可执行文件为 arm-linux-konqueror 那么qm文件为 arm-linux-konqueror.qm
为了能在qt上运行konqueror,在文件系统目录下最好单独建个konqueror目录,拷贝 /usr/local/qt/konqueror/install目录下的所有文件到这个konqueror目录下.我的文件系统根目录下有个 Qtopia目录,下面就建了一个konqueror目录,另外还有qtopia-free-1.7.0和qt-2.3.7目录.
做好链接: 到文件系统目录的Qtopia目录下,
ln -s konqueror/bin/arm-linux-konqueror qtopia-free-1.7.0/bin/arm-linux-konqueror
ln -s konqueror/apps/Applications/konqueror.desktop qtopia-free-1.7.0/apps/Applications/konqueror.desktop
ln -s konqueror/pics/konqueror.png qtopia-free-1.7.0/pics/konqueror.png
拷贝翻译文件 arm-linux-konqueror.qm 至 qtopia-free-1.7.0/i18n/zh_CN目录下。
另外系统启动脚本里面必须设置好环境变量.对于konqueror来说,除了设置QTDIR,QPEDIR,QTEDIR外还要设置KDEDIR,KDEDIR就设置为建的konqueror目录.
文件系统制作好后,下载到板子上,没有问题的话,就可以用它浏览网页了。
不过由于QT使用的是Unicode码,所以要显示中文,必须设置字体为unicode或是支持 unicode编码的字体,如simsun。对于编码为gb2312的网站,就出问题了,因为文件系统里并不带gb2312字库,所以显示就是乱码了。而我在PC上模拟的qt/e就没有问题,是不是因为pc上gb2312库,Qt可以自动转换的原因?还在思考中。
来自http://blog.csdn.net/kangray/archive/2006/06/02/769287.aspx
konqueror/embedded是专为嵌入式而设计的,自带有kde库源代码.
支持:
- HTML4
- CSS
- JavaScript
- Cookies
- SSL
- Non-blocking IO
- Builtin Image Viewer
- IPv6 support
- Full xbel compatible bookmark support and management
下载最新版本: http://developer.kde.org/~hausmann/snapshots/Attic/konqueror-embedded-snapshot-20030705.tar.gz
关于konqueror/embedded已经有不少前辈研究的很透彻了,像 http://www.minigui.org/downloads/TECHPAPER-KONQEMB-ARCH-V1.0.pdf 上,就对其结构进行了较深入的分析。
也有更新些的版本,在 http://www.cirulla.net/kdenox-snapshots/ 上有,不过后者所需的QT/Embedded版本必须大于3.1版本.
我使用的QT版本交叉编译环境如下:
QT/Embedded 2.3.7 Qtopia-free-1.7.0 arm-linux-g++ (3.3.2版本)
所有QT资源在 ftp://ftp.trolltech.com上都能免费下载到。
下面介绍移植konqueror/embedded到arm板的过程。
下载 http://developer.kde.org/~hausmann/snapshots/Attic/konqueror-embedded-snapshot-20030705.tar.gz
假设解压到 /usr/local/qt/konqueror
修改 /usr/local/qt/konkueror/konq-embed/src下的main.cc文件
第334行注释掉 //(void)new PopupHandler( &app, "popup-handler" );
修改 /usr/local/qt/konqueror/konq-embed/src/defaults.h 修改一些网页默认设置,如主页等
修改 /usr/local/qt/konqueror/konq-embed/kdesrc/khtml/khtmldefaults.h 修改默认字体,如“unifont”
/usr/local/qt/konqueror/konq-embed/src/preferencesimpl.cc 第152行
增加两行:
setFontComboEntry( defaultFont, HTML_DEFAULT_VIEW_FONT );
defaultFont->setCurrentItem(2); //假设你的默认字体排序为2
设置环境变量,我的qt目录是/usr/local/qt/qt-arm,交叉编译器目录为/usr/local/arm/3.3.2
export QTDIR=/usr/local/qt/qt-arm/qt-2.3.7
export QPEDIR=/usr/local/qt/qt-arm/qtopia-free-1.7.0
export TMAKEDIR=/usr/local/qt/tmake-1.11
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export PATH=$TMAKEDIR/bin:$QTDIR/bin:$PATH
ln -s $QPEDIR/lib/libqpe.so $QTDIR/lib/libqpe.so
mkdir /usr/local/qt/konkueror/install
./configure --target=arm-linux --host=arm-linux --enable-embedded --enable-qt-embedded --disable-debug --enable-ftp --enable-static --disable-shared --enable-qtopia --enable-qpe --disable-mt --with-gui=qpe --with-extra-libs=/usr/local/arm/3.3.2/lib --with-extra-includes=/usr/local/arm/3.3.2/include -without-ssl --prefix=/usr/local/qt/konqueror/install --with-qt-dir=$QTDIR --with-qt-includes=$QTDIR/include --with-qt-libraries=$QTDIR/lib --with-qtopia-dir=$QPEDIR
make
make install
编译好的文件在/usr/local/qt/konqueror/install目录下.
汉化konqueror
cd /usr/local/qt/konqueror/konq-embed
make messages
编辑生成的konqueror.pot 文件, 第15行charset设置为UTF-8
"Content-Type: text/plain; charset=UTF-8/n"
编辑好后用$QTDIR/tools/msg2qm/msg2qm工具将konqueror.pot 转成 konqueror.qm文件.
$QTDIR/tools/msg2qm/msg2qm konqueror.pot konqueror.qm
生成的 konqueror.qm 文件拷贝到 $QPEDIR/i18n/zh_CN目录下.
注意qm 文件名必需和可执行文件名相同.如 可执行文件为 arm-linux-konqueror 那么qm文件为 arm-linux-konqueror.qm
为了能在qt上运行konqueror,在文件系统目录下最好单独建个konqueror目录,拷贝 /usr/local/qt/konqueror/install目录下的所有文件到这个konqueror目录下.我的文件系统根目录下有个 Qtopia目录,下面就建了一个konqueror目录,另外还有qtopia-free-1.7.0和qt-2.3.7目录.
做好链接: 到文件系统目录的Qtopia目录下,
ln -s konqueror/bin/arm-linux-konqueror qtopia-free-1.7.0/bin/arm-linux-konqueror
ln -s konqueror/apps/Applications/konqueror.desktop qtopia-free-1.7.0/apps/Applications/konqueror.desktop
ln -s konqueror/pics/konqueror.png qtopia-free-1.7.0/pics/konqueror.png
拷贝翻译文件 arm-linux-konqueror.qm 至 qtopia-free-1.7.0/i18n/zh_CN目录下。
另外系统启动脚本里面必须设置好环境变量.对于konqueror来说,除了设置QTDIR,QPEDIR,QTEDIR外还要设置KDEDIR,KDEDIR就设置为建的konqueror目录.
文件系统制作好后,下载到板子上,没有问题的话,就可以用它浏览网页了。
不过由于QT使用的是Unicode码,所以要显示中文,必须设置字体为unicode或是支持 unicode编码的字体,如simsun。对于编码为gb2312的网站,就出问题了,因为文件系统里并不带gb2312字库,所以显示就是乱码了。而我在PC上模拟的qt/e就没有问题,是不是因为pc上gb2312库,Qt可以自动转换的原因?还在思考中。
来自http://blog.csdn.net/kangray/archive/2006/06/02/769287.aspx