第一次建立ARM9的QT开发平台,必须先编译开发ARM9功能所需的核心程式。一开始先将s3c2410_kernel2.4.18_r1.1_webcam.tar.bz2档放至个人 /root 资料夹中,然后开启终端机模式,切换到个人 /root 资料夹输入解压缩指令
root@ashou :~/#tar xvfj s3c2410_kernel2.4.18_r1.1_webcam.tar.bz2
解压缩完毕后,在个人 /root 资料夹中产生s3c2410_kernel2.4.18_r1.1_change的目录,此目录存放的是更改后的核心程式s3c2410_kernel2.4.18_r1.1。与原来核心程式版本的差异在于旧核心程式版本只支援到PWC-8.6;更改后的核心程式版本支援至PWC-8.8 。目的在于让2410能支援我们所买的webcam,型号为logitech quickcam 4000 pro 。为了日后可以使用核心程式来加速开发撰写ARM9的程式,我们将s3c2410_kernel2.4.18_r1.1_change搬移到 /usr/src目录中,在个人/root 资料夹输入指令如下
root@ashou:~/#mv /root/s3c2410_kernel2.4.18_r1.1_change /usr/src
如果一切顺利,s3c2410_kernel2.4.18_r1.1_change目录移至/usr/src资料夹内,画面如图1所示
图1. 更改后的核心程式目录s3c2410_kernel2.4.18_r1.1_change
为了日后可以使应用程式能include核心程式所提供有关于webcam的资料结构和驱动程式,切换至/usr/src,建立名称为linux的连结,指令如下
root@ashou :/usr/src#ln –s s3c2410_kernel2.4.18_r1.1_change linux
将s3c2410_kernel2.4.18_r1.1_change目录以softlink的形式连结至linux目录,以便能编译ARM9核心程式以及使用此更改后的核心程式来开发应用程式。
编译ARM9的核心程式(kernel)有两种方法:1.文字模式2.图形模式。文字模式採用Y/N的问答方式,不管是否有无变动都需做Y/N的问答,如此需要约2000次的问答;因此採用文字模式编译ARM9的核心程式太繁琐。採用图形模式编译ARM9的核心程式是针对须更动的部份做问答;如此大幅简化编译ARM9核心程式的过程。为了採用图形模式来编译ARM9的核心程式(kernel),我们必须安装libncurses5-dev套件。切换至/usr/src目录,然后下指令
root@s608:/usr/src#apt-get install libncurses5-dev
顺利安装libncurses5-dev套件后,开始编译核心程式指令如下
root@s608:/usr/src #cd linux
root@s608:/usr/src/linux#make menuconfig
如果一切顺利,会出现图2的画面
图2 安装libncurses5-dev套件
下make menuconfig指令后,进入编译核心程式的视窗如图3所示
图3. 编译核心程式的视窗
选择 multimedia devices选项如图4所示
图4 选择 multimedia devices选项
按 enter键后如图5所示
图5. 选择 Video for Linux选项
然后按空白键选择Video For Linux,Video For Linux选项前面应出现
图6. 出现
点选Video For Linux --->后会出现四个模组选项,分别是
Mediavision Pro Movie Studio Video For Linux
CPiA Video For Linux
CPia USB lowlevel Support
NetWinder Video For Linux (EXPERIMENTAL)
这四个模组选项都需重新编译。首先按enter键点选Mediavision Pro Movie Studio Video For Linux,点选后该选项前面会出现
图7 出现
点选完毕后按两次Exit选项,再点选 USB support如图8所示。
图8. 点选USB support选项
然后再点选 USB Philips Cameras选项,点选完毕后USB Philips Cameras选项前面会出现
图9. 点选USB Philips Cameras选项
点选完毕后再按Exit选项出现图10画面,选Yes即储存新的核心程式设定。
图10. 选Yes储存新的核心程式设定
储存新的核心程式设定后,ubuntu作业系统自动进入文字模式的终端机视窗。检查/usr/src/linux/arch/arm/mach-s3c2410资料夹下的pcibuf.c的内容,有关MAX_SAFE、SIZE_SMALL及SIZE_LARGE参数必须设定如下:
#define MAX_SAFE32
#define SIZE_SMALL1024
#define SIZE_LARGE(16*1024)
做完必要的修正后重新编译核心程式前,必须下指令寻找更改后核心程式的相依性,指令如下
root@s608:/usr/src/linux#make dep
接下来即可编译新的核心程式,指令如下:
root@s608:/usr/src/linux#make modules
如果一切顺利,会出现图11画面。
图11. 编译新的核心程式成功后所出现的画面
--------------------------------------------------------------------------------------------------------
为了编译和使用Qtopia,必须在同一root终端机模式进行。若中途离开root终端机模式,所有用export指令所设定的环境变数将消失。例如
export QPEDIR=$PWD
export QTEDIR=$QTDIR
…………….
若不小心中途离开root终端机模式,必须再用export指令将所需的环境变数设定一次。