《1LINUX的安装及配置课件》由会员分享,可在线阅读,更多相关《1LINUX的安装及配置课件(43页珍藏版)》请在金锄头文库上搜索。
1、LINUX开发环境一:安装LINUX系统以下Linux开发环境的建立均基于Fedora 9.0在虚拟机/PC机上安装Fedora 9.01、安装虚拟机VMware WorkstationVMware Workstation虚拟机是一个在Windows或Linux计算机上运行的应用程序,它可以模拟一个基于x86的标准PC环境。这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器、SCSI控制器等设备,提供这个应用程序的窗口就是虚拟机的显示器。 2 安装()Fedora Core(自第七版直接更名为Fedora)是众多 Linux 发行
2、版之一。它是一套从Red Hat Linux发展出来的免费Linux系统。现时Fedora最新的版本是Fedora 20,Fedora是更新最快的linux发行版之一,通常每6个月发布一个正式的新版本 Fedora和Redhat这两个Linux的发行版联系很密切。Redhat 自9.0以后,不再发布桌面版的,而是把这个项目与开源社区合作,于是就有了Fedora 这个 Linux 发行版。Fedora 可以说是Redhat 桌面版本的延续,只不过是与开源社区合作。 具体安装过程可参看mini2440用户手册5.1节二、建立交叉编译环境 在 Linux 平台下,要为开发板编译内核,图形界面 Qto
3、pia,bootloader,还有其他一些应用程序,均需要交叉编译工具链。 之前的系统,要使用不同的编译器版本才能正常编译各个部分,因此要在开发过程不断切换设置,这十分不利于初学者使用,也降低了开发的效率;自从 Linux-2.6.29 开始(本开发板所配内核已为最新的 Linux-2.6.32.2),我们把交叉编译器统一为 arm-linux-gcc-4.4.3,下面是它的安装设置步骤。 Step1:将光盘目录 linux中的arm-linux-gcc-4.4.3.tgz复制到某个目录下如 tmp,然后进入到该目录,执行解压命令: #cd /tmp #tar xvzf arm-linux-g
4、cc-4.4.3.tgz C / 注意:C后面有个空格,并且 C是大写的,它是英文单词“Change”的第一个字母,在此是改变目录的意思。 执行该命令,将把 arm-linux-gcc安装到/usr/loca/arm/4.4.3目录。 解压过程如图所示:Step2:把编译器路径加入系统环境变量,运行命令 #gedit /root/.bashrc 编辑/root/.bashrc文件,在最后一行添加: export PATH=$PATH: /opt/FriendlyARM/toolschain/4.4.3/bin 如图,保存退出。 一重新登录系统(不必重启机器,开始-logout 即可),使以上设
5、置生效,在命令行输入 arm-linux-gcc v,会出现如下信息,这说明交叉编译环境已经成功安装。 三、 解压安装源代码及其他工具 本小节将解压安装开发学习过程所用到的全部源代码以及其他一些小工具,这包括: - Linux内核源代码 - 嵌入式图形界面 Qropia-2.2.0 源代码(分为 x86 和 arm平台两个版本) - 嵌入式图形界面QtE-4.6.3 源代码(ARM 版本) - busybox-1.13源代码 - Linux编程示例源代码(均为友善之臂自主开发并开放) - 用以启动Linux的 bootloader 之vboot - 其他开源的bootloader(适用于Lin
6、ux) - 其他开源软件源代码,如boa(web server), madplay(一个命令行 mp3播放器) - 目标文件系统目录 - 目标文件系统映象制作工具mkyaffsimage - 图形界面的Linux logo制作工具 logomaker 1:解压安装源代码 首先创建工作目录/opt/FriendlyARM/mini2440 在命令行执行 mkdir p /opt/FriendlyARM/mini2440 ,如图,后面步骤的所有源代码都会解压安装到此目录中 (1)准备好 Linux 源代码包 在 Fedora9系统中/tmp 目录中创建一个临时目录/tmp/linux #mkdir
7、 /tmp/linux 把光盘中 linux目录中的所有文件都复制到/tmp/linux 目录中 说明:这样做是为了统一下面的操作步骤,其实你可以使用其他目录,也可以直接从光盘解压安装。 (2)解压安装 Linux 内核源代码 在工作目录/opt/FriendlyARM/mini2440中执行: #cd /opt/FriendlyARM/mini2440 #tar xvzf /tmp/linux/linux-2.6.32.2-mini2440-20100106.tar.gz 将创建生成 linux-2.6.32.2目录,里面包含了完整的 Linux-2.6.32.2内核源代码 说明:20100
8、106是我们的发行更新日期标志,请以光盘中实际日期尾缀为准。 (3)解压安装嵌入式图形系统 qtopia源代码 在工作目录/opt/FriendlyARM/mini2440中执行: #cd /opt/FriendlyARM/mini2440 #tar xvzf /tmp/linux/x86-qtopia.tgz #tar xvzf /tmp/linux/arm-qtopia.tgz 将创建 x86-qtopia 和arm-qtopia 两个目录,并内含相应的全部源代码。 说明:20100108 是我们的发行更新日期标志,请以光盘中实际日期尾缀为准。 (4)解压安装嵌入式图形系统 QtE-4.6
9、.1 源代码 在工作目录/opt/FriendlyARM/mini2440中执行: #cd /opt/FriendlyARM/mini2440 #tar xvzf /tmp/linux/arm-qte-4.6.3-20100802.tar.gz 将创建 arm-qte-4.6.3目录,并内含相应的全部源代码。 说明: arm-qte 压缩包后面或许会有日期尾缀,它是我们的发行或更新日期,请以光盘中实际日期尾缀为准。 (5)解压安装 busybox 源代码 Busybox是一个轻型的linux命令工具集,在此使用的是busybox-1.13.3 版本。用户可以从其官方网站下载最新版本(http:
10、/)。 在工作目录/opt/FriendlyARM/mini2440中执行: #cd /opt/FriendlyARM/mini2440 #tar xvzf /tmp/linux/busybox-1.13.3-mini2440.tgz 将创建 busybox-1.13.3 目录,内含相应版本的全部源代码。 说明:为了方便用户编译使用,我们做了一个缺省的配置文件fa.config。 (6)解压安装 Linux 示例程序 在工作目录/opt/FriendlyARM/mini2440中执行: #cd /opt/FriendlyARM/mini2440 #tar xvzf /tmp/linux/exa
11、mples-20100108.tgz 将创建 examples目录,并包含初学linux 编程代码示例。 说明: 20100108是我们的发行更新日期标志, 请以光盘中实际日期尾缀为准。 examples目录中的代码均为友善之臂自主开发,并全部以源代码方式提供,它们都是一些基于命令行的小程序。 (7)解压安装 vboot 源代码 为了实现自动适应支持 64M/128M mini2440/micro2440,我们专门为 Linux 系统设计了一个简易的bootloader:vboot,而不再使用以前的vivi。 在工作目录/opt/FriendlyARM/mini2440中执行: #cd /op
12、t/FriendlyARM/mini2440 #tar xvzf /tmp/linux/vboot-src-20100106.tar.gz 将创建vboot 目录,里面包含该bootloader 的源代码和Makefile文件。 说明:20100106是我们的发行更新日期标志,请以光盘中实际日期尾缀为准 bootLoaderbootLoader的作用的作用的作用的作用 PC PC 机中的引导加载程序由机中的引导加载程序由 BIOSBIOS和位于硬盘和位于硬盘 MBR MBR 中的中的 OS Boot LoaderOS Boot Loader一起组成。一起组成。BIOS BIOS 在完在完成硬件
13、检测和资源分配后,将硬盘成硬件检测和资源分配后,将硬盘 MBR MBR 中的中的 Boot Loader Boot Loader 读到系统的读到系统的 RAM RAM 中,然后将控制权中,然后将控制权交给交给 OS Boot LoaderOS Boot Loader。Boot Loader Boot Loader 的主要运行的主要运行任务就是将内核映象从硬盘上读到任务就是将内核映象从硬盘上读到 RAM RAM 中,然中,然后跳转到内核的入口点去运行,也即开始启动操后跳转到内核的入口点去运行,也即开始启动操作系统。作系统。嵌入式系统中,通常并没有像嵌入式系统中,通常并没有像 BIOS BIOS
14、那样的固那样的固件程序,因此整个系统的加载启动任务完全由件程序,因此整个系统的加载启动任务完全由 bootLoader bootLoader 来完成。来完成。bootloaderbootloader的主要作用:的主要作用:(1 1)、初始化硬件设备)、初始化硬件设备(2 2)、建立内存空间的映射图)、建立内存空间的映射图(3 3)、完成内核的加载,为内核设置启动参数)、完成内核的加载,为内核设置启动参数嵌入式系统中的boot Loader 的实现完全依赖于 CPU 的体系结构,因此大多数 Boot Loader 都分为第一阶段和第二阶段两大部分,依赖于CPU体系结构的代码,比如设备初始化代码等
15、,通常都放在阶段1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而阶段2 则通常用C语言来实现, 1 1)、)、)、)、Boot Loader Boot Loader 的阶段的阶段的阶段的阶段1 1通常主要包括以下步骤:通常主要包括以下步骤:通常主要包括以下步骤:通常主要包括以下步骤:硬件设备初始化;设置时钟;硬件设备初始化;设置时钟;拷贝拷贝Boot LoaderBoot Loader的程序到的程序到RAMRAM空间中;空间中;设置好堆栈;设置好堆栈;跳转到阶段跳转到阶段2 2的的C C入口点。入口点。(2 2)、)、)、)、Boot LoaderBoot Loader的阶段的阶段的
16、阶段的阶段2 2通常主要包括以下步通常主要包括以下步通常主要包括以下步通常主要包括以下步骤:骤:骤:骤:初始化本阶段要使用到的硬件设备;初始化本阶段要使用到的硬件设备;系统内存映射系统内存映射(memory map)(memory map);将将kernelkernel映像和根文件系统映像从映像和根文件系统映像从FlashFlash读到读到RAMRAM空间中;空间中; 为内核设置启动参数;为内核设置启动参数;调用内核。调用内核。(8)解压安装其他其他开源 bootloader源代码 除了vboot,本开发板还提供了另外三种开源的 Bootloader(详见本手册第八章节),其中 vivi 和
17、u-boot 是在Linux平台下设计编译的。 在工作目录/opt/FriendlyARM/mini2440中执行: #cd /opt/FriendlyARM/mini2440 #tar xvzf /tmp/linux/bootloader.tgz 将创建 bootloader 目录,里面包含vivi 和 u-boot 两种 bootloader 的源代码。 说明:此处的vivi 仅适用于64M Nand Flash的 mini2440/micro2440板,u-boot是由网友提供的,我们并没有使用过,对其功能和性能均不了解。 2:解压创建目标文件系统 在工作目录/opt/FriendlyA
18、RM/mini2440中执行: #cd /opt/FriendlyARM/mini2440 #tar xvzf /tmp/linux/ rootfs_qtopia_qt4-0100816.tar.gz 将创建 rootfs_qtopia_qt4目录, 该目录和目标板上使用的文件系统内容是完全一致的。 它具有如下特性: - 自动识别NFS启动或本地启动 - 可支持USB鼠标和触摸屏共存 - 自动识别所接的输出显示模块是否接了触摸屏,以判断在第一次开机使用时是否要进行校正。如果没有连接,会自动进入系统,使用鼠标即可;否则会先校正触摸屏。 - 自动识别普通或者高速 SD卡(最大可支持 32G)和优盘
19、 - 包含双图形系统 Qtopia-2.2.0和QtE-4.6.1 3:解压安装必要实用工具 (1)目标文件系统映象制作工具 mkyaffs2image 要把上一步中的 rootfs_qtopia_qt4 目录烧写入目标板中使用,就需要使用相应的mkyaffs2image工具了,它是一个命令行的程序,使用它可以把主机上的目标文件系统目录制作成一个映象文件,以烧写到开发板中。 针对 64M 或 128M/256M/512M/1GB 的mini2440/mcro2440,分别有 2 套制作工具:mkyaffs2image 和 mkyaffs2image-128M。其中 mkyaffs2image
20、是制作适用于 64M 版本文件系统映象的工具,它沿用了以前的名字; mkyaffs2image-128M 是制作适用于128M/256M/512M/1GB 版本文件系统映象的工具,为了便于区分,我们把它命名为此。 在工作目录/opt/FriendlyARM/mini2440中执行: #cd /opt/FriendlyARM/mini2440 #tar xvzf /tmp/linux/mkyaffs2image.tgz C / 注意:C是大写的,C后面有个空格,C是改变解压安装目录的意思 说明:以前的内核系统支持的是 yaffs 文件系统,现在使用的是 yaffs2 文件系统,因此需要不同的制作
21、工具,我们在此把它称为 kyaffs2image,按照上面的命令解压后它会被安装到/usr/sbin目录下,并产生 2 个文件:mkyaffs2image 和 mkyaffs2image-128M。 (2)解压安装 LogoMaker 在工作目录/opt/FriendlyARM/mini2440中执行: #cd /opt/FriendlyARM/mini2440 #tar xvzf /tmp/linux/logomaker.tgz C / 注意:C是大写的,C后面有个空格,C是改变解压安装目录的意思 五: 配置网络文件系统 NFS服务 如果您已经按照以上章节介绍的方法完全安装好了Fedora
22、9, 则 NFS 相关软件都已经缺省安装好了,请按照以下步骤建立和配置NFS服务。 1:设置共享目录 注意:要使用共享目录,必须先解压安装好 root_qtopia目标板文件系统包。 (1)设置共享目录 运行命令 #gedit /etc/exports 编辑nfs 服务的配置文件(注意:第一次打开时该文件是空的),添加以下内容: /opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 *(rw,sync,no_root_squash) 其中: /opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 表示 nfs 共享目录, 它可以
23、作为开发板的根文件系统通过nfs 挂接; * 表示所有的客户机都可以挂接此目录 rw 表示挂接此目录的客户机对该目录有读写的权力 no_root_squash 表示允许挂接此目录的客户机享有该主机的root 身份 2:启动 NFS 服务 可以通过命令行和图形界面两种方式启动 NFS服务,我们建立 NFS服务的目的是通过网络对外提供目录共享服务,但默认安装的 Fedora系统开启了防火墙,这会导致NFS服务无法正常使用。因此先关闭防火墙,在命令行输入“lokkit”命令,打开防火期设置界面: 一选择其中(*)Disabled,然后选择“OK”退出,这样就永久的关闭了防火墙。 下面是启动 NFS服
24、务的方法和步骤: (1)通过命令启动和停止 nfs 服务 在命令行下运行: #/etc/init.d/nfs start 这将启动 nfs 服务,可以输入以下命令检验 nfs 该服务是否启动。 # mount -t nfs localhost: /opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 /mnt/ 如果没有出现错误信息,您将可以浏览到 /mnt 目录中的内容和/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 是一致的。 使用这个命令可以停止 nfs 服务: #/etc/init.d/nfs stop (2)通过
25、图形界面启动 NFS服务 为了在每次开机时系统都自动启动该服务,可以输入 # serviceconf 打开系统服务配置窗口,在左侧一栏找到nfs 服务选项框,并选中它,然后点工具栏的“Enable”启动它,如图。 一3 :通过 NFS启动系统 当NFS服务设置好并启动后,我们就可以把 NFS作为根文件系统来启动开发板了。通过使用 NFS作为根文件系统,开发板的“硬盘”就可以变得很大,因为您使用的是主机的硬盘,这是使用 Linux作为开发经常使用的方法,设置目标板启动模式为Nand Flash 启动,连接好电源,串口线,网线;打开串口终端,在开机或者复位的时候按下开发板上的 K1-K6任意按键,
26、这样我们就进入了 vivi 模式,输入以下命令: Supervivi param set linux_cmd_line “console=ttySAC0 root=/dev/nfsnfsroot=192.168.1.111:/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4ip=192.168.1.70:192.168.1.111:192.168.1.111:255.255.255.0::eth0:off 其中 ,param set linux_cmd_line 是设置启动 linux 时的命令参数。其各参数的含义如下: nfsroot 是自己开发主机的 IP地址。 “ip=”后面: 第一项(192.168.1.70)是目标板的临时 IP(注意不要和局域网内其他 IP冲突); 第二项(192.168.1.111)是开发主机的IP; 第三项(192.168.1.111)是目标板上网关(GW)的设置; 第四项(255.255.255.0)是子网掩码; 第五项是开发主机的名字(一般无关紧要,可随便填写) eth0 是网卡设备的名称。 一然后输入boot,按回车就可以通过 nfs 启动系统了。