文章目錄
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目錄下。
共用檔案的另一種方式是隨身碟,在windows中將檔案拷入隨身碟,再在linux中訪問隨身碟即可。虛擬機器運行時隨身碟插入預設是串連到虛擬機器的,斷開虛擬機器上的隨身碟,隨身碟則會串連到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核心已在搭建的開發平台上編譯產生成功,有關更多的操作將在後續或其他文檔中進一步介紹。