Linux 开发入门
Linux 开发环境
概 述
本文是linux开发的一个入门文档,介绍了环境的建立,编译等相关步骤。
一. 概述
应其他组的要求,本文给出了一个在windows XP上建立linux开发环境的步骤。可按照本步骤建立linux开发环境,本文不包括Android开发环境搭建。有关错误和遗漏有待后续补充修正
1、 安装虚拟机软件
虚拟机安装软件位于 ftp://server28/共享软件/开发用软件/,一般先安装6.0,再升级到6.5。升级到6.5是为了使用其虚拟机和本级文件共享功能。
2、 建立Linux虚拟机
运行虚拟机后在File->New->Virtual Machine菜单建立一个新的虚拟机,建立过程中操作系统选Linux,版本选Ubuntu(如下图),操作系统的磁盘一般分配20G左右。
3、 在虚拟机上安装操作系统
安装操作系统有两种方法,一种是在新建虚拟机的过程中会提示选择从光盘安装还是从虚拟光驱安装,如下图,此时选择从虚拟光驱安装,选择你下载的(位于FTP)操作系统映象文件ubuntu-8.10-desktop-i386.iso即可,虚拟机建立完毕后启动即开始自动安装linux。
若上图时选择最后一个选项,则建立虚拟机时不安装操作系统,这样也可以。等虚拟机建立完后,可通过Edit virtual machine settings菜单定制虚拟机的设备,如下图红线,此时选Add按钮,在弹出的选项卡中选择CD/DVD光驱设备,然后点Next选择上面提到的iso文件即可,启动虚拟机后系统会执行自动安装。
4、 设置文件共享
文件共享功能可以在本机windows和linux之间共享一个文件夹,进行数据交换。使用此功能先要在虚拟机上稍微进行一下设置:进入上述的Edit virtual machine settings菜单,在option选项卡中选择shared Folders选项,使其“Always enabled”,同时在右侧选一个windows系统磁盘中的任意文件夹作为共享路径,点OK。
启动linux,将桌面上的VmwareTools安装,之后便可以在windows和linux之间共享文件,linux系统下的共享文件位于/mnt/hgfs目录下。
共享文件的另一种方式是U盘,在windows中将文件拷入U盘,再在linux中访问U盘即可。虚拟机运行时U盘插入默认是连接到虚拟机的,断开虚拟机上的U盘,U盘则会连接到windows。
5、 安装编译开发环境
Ubuntu已经自带有一些软件,包括GCC编译器等,但由于要使用make menuconfig等工具,因此要预先安装一些其他的支持包,打开linux命令行终端
sudo apt-get install build-essential
sudo apt-get install libncurses5 -dev
6、 获取一个linux版本
下载一个linux内核版本,如FTP上的Android的内核Linux2.6.25-android-1.0_r1.tar.gz到共享文件夹,启动ubuntu,进入/mnt/hgfs下的共享文件夹中,将该版本拷贝到home/你的用户下的一个新建目录中,在通过tar –zxvf命令解开压缩到当前目录。
7、 安装ARM交叉编译器
交叉编译器要和linux一一对应,同时可以安装多个交叉编译器在机器上,如果是编译上述Android的linux内核,请到FTP下载对应的交叉编译器arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
,同样拷贝到home下用户目录,使用命令tar –jxvf 解开压缩即可,
注:凡是.gz的压缩包,使用tar –zxvf命令解开
凡是.bz2的压缩包,使用tar –jxvf命令解开
8、 设置内核的makefile
打开上述linux内核版本根目录下的makefile 文件,找到以下两行:
ARCH ?=
CROSS_COMPILE ?
分别改为
ARCH ?= arm
CROSS_COMPILE ?=
/home/你交叉编译器目录/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi
此处第一行为修改体系结构为ARM,第二行为设置ARM的交叉编译器路径,填写你上面解压的交叉编译器路径即可,这样,交叉编译器就设置完毕。
9、 获取一个config文件
拷贝一个config文件到linux内核根目录,例如FTP上的Linux-Android-AT91.conf是android内核对应的AT92SAM926芯片对应的config文件,
使用 make mrproper或make clean命令清除原有目标文件
使用cp Linux-Android-AT91.conf ./.config 命令再复制出一个.config的文件出来
如果前面第五步的menuconfig相关组件已安装,则使用 make menuconfig 命令则可以打开 menuconfig的软件如下图
如果不需要更改配置,则直接保存退出,config即完成,后面就可以进行编译。
10、 编译和生成映象固件
完成上述config之后,使用make 命令即可以进行编译,编译后会生成zImage在ARCH/ARM/BOOT目录下。
如果需要生成Uboot能识别的uImage,则需要将ARM开发板源码包中的mkimage文件和tools文件拷贝到内核根目录下,并更改mkimage文件中的路径为你上述交叉编译器的路径:
/home/你的交叉编/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-objcopy -O binary -S vmlinux linux.bin
gzip -v9 linux.bin
之后运行./mkimage命令,即可生成固件
至此,linux内核已在搭建的开发平台上编译生成成功,有关更多的操作将在后续或其他文档中进一步介绍。