Cygwin 介紹 安裝 基本使用 交叉編譯vivi kernel

         Cygwin 安裝   基本使用 交叉編譯 vivi kernel          
 
引言:
初學 linux 時,須要轉換系統是最頭疼得事,由於 windows linux 各有優勢,各有用途,因此只能麻煩的在二者之間切換,反覆的重啓。開機時也麻煩,由於初學者大多數使用 windows ,裝了 linux 後,開機會自動啓動 linux( 固然,能夠經過在安裝過程當中設置或按裝結束後修改相應文件來決定啓動時先引導哪一個系統 ) ,想進入 windows 還要坐在電腦旁死等。 Cygwin 剛好解決了這個問題。
 
介紹:
 1  .cygwin windows 平臺上運行的 unix 模擬環境,它對於學習 unix/linux 操做環境,或者從 unix windows 的應用程序移植,或者進行某些特殊的開發工做,尤爲是使用 gnu 工具集在 windows 上進行嵌入式系統開發,很是有用。
 
特色:  
1.     cygwin 只是模擬一個 unix 的環境有助於初學者學習,如今也能夠在 windows 下開發一些程序。但他所支持的命令沒有新版本的 LINUX 多,它是一個不是很完整的 UNIX 系統。
2.     vmware,qemu 等虛擬機軟件,以 vmware 爲例,是先在 windows 中安裝 vmware 虛擬機 , 再在 vmware 虛擬機上面用 linux 光盤或 iso 鏡像安裝完整的 linux 系統, vmware 功能是虛擬一個 cpu 。與用虛擬機相比, Cygwin 自己就是 linux windows 環境下的部分替代物,佔用資源相對較少,同時功能與 真實感 也更小,還有些不完善之處。
下載與安裝:
1 解釋: 原本安裝個軟件是個很簡單的事情,不過初次接觸 cygwin. 每每有不少人折騰了很多天才搞定。主要是緣由是:咱們以往在 windows 上裝個軟件,一般只是在網上下載個 setup.exe 安裝包 , 而後就能夠在沒有網絡的狀況下,雙擊 setup.exe, 隨時就能夠安裝啦。 Cygwin 也是要下載一個 setup.exe, 不過這個 setup.exe 可不是安裝包,而只是用來下載和定製安裝包的,下載定製完成後,纔是真正的安裝(就沒必要須要網絡啦),待會兒就明白啦。
2 下載安裝: 登錄 :[url]http://www.cygwin.com[/url] , 點擊「 install Cygwin Now 」先 下載個 安裝嚮導文件 setup.exe ,這個是 Cygwin 的官方下載安裝嚮導文件,並且也只能經過它才能正確下載最新的 Cygwin 版本   。雙擊「 setup.exe , 出現以下界面(圖略)
 
 
擊「下一步」,出現三個選項,即三種安裝方式:
      (1)  Install from Internet :直接從 Internet 上下載並當即安裝(安裝完成後,下載好的安裝文件並不會被刪除,而是仍然被保留,以便下次再安裝)。
  
2 Download Without Installing :只是將安裝包下載到本地,但暫時不安裝。
  
3 Install from Local Directory :不下載安裝文件,直接從本地某個含有安裝文件的目錄進行安裝(得保證你的計算機上已經用 setup.exe 在網上下載了安裝包)。
第一次確定不選選項( 3 )。選項( 1 )最費時間,若是網速 20kb/s , 得一天多才搞好,不過最省事,第一次不知如何辦,我選最穩妥的方式:選項( 1 ),一個流程搞定。其實選項( 2 )也得很長時間。因此不管如何保證你能連續上網一成天啊,不過就別在計算機面前一直坐着死等了,乾點別的事去吧。選擇完成後,點擊「下一步」。出現 root Directory( 根目錄安裝處,即肯定要把 cygwin 安裝在何處,得保證至少有 5G 空閒空間 ) ,點擊右側「 Browse 。。。」
選擇你要把 cygwin 安裝在何處,我裝在 f 盤啦。其它默認就行啦。
 
     肯定後單擊「下一步」。出現下面界面,肯定要把安裝包(就是用 setup.exe 下載下來的安裝包,用來真正安裝 cygwin 模擬環境的那個安裝包)放在哪一個地方,以備之後用於直接安裝 cygwin 模擬環境。確認方式和上面同樣,我將之放在 f 盤本身創建的一個文件夾 cygwinset 中。
 
  肯定 後單擊「下一步」,出現以下界面。出現三種鏈接方式,
1 Direct Connection :直接鏈接。
2 Use IE5 Settings :使用 IE 的鏈接參數設置進行鏈接。
3 Use HTTP/FTP Proxy :使用 HTTP FTP 代理服務器進行鏈接(須要輸入服務器地址和端口號)。
 
   直接默認選擇:選項( 1 )就行啦,直接單擊「下一步」,稍等片刻出現以下界面:(圖略)
 
         界面中列出多個下載站點,我是選的默認項,(必定記住你選擇的站點),可能下載速度有不一樣吧,直接「下一步」。
  
    安裝嚮導正從下載鏡像站點上獲取壓縮過的安裝列表文件,片刻便出現以下界面,即安裝列表文件界面。
 
 
   能夠看到 all 後面有個「 Default 字符 , 即爲默認安裝 , 單擊」 default 」可依次變爲」 install , reinstall ; reinstall 」先不用管,「 Default 「默認安裝時不少如 vivi,gcc 等都不會被安裝,單擊「 all 後面「 Default 」成爲」 install 「,所有安裝便可。出現以下界面:
   單擊」下一步「就好好等着吧,我用了一天左右。
   安裝完畢後,最後一個界面提示是否創建桌面快捷方式,直接打「 \/ 「就成,而後」肯定「就完全完工啦。個人 f 盤的 cygwinset 文件夾中看到名爲」 ftp%3a%2f%2fcygwin.dp.ua%2fpub%2fmirrors%2fcygwin 「安裝包,你的多是」 http%3a%2f% 。。。。。「無所謂啦,留着之後安裝用。
 
雙擊桌面 圖標   進入 cygwin 虛擬環境。
 
若是下載安裝不順利,如出現 「down incomplete,Try  again? 」 提示符。或者在某一進度卡住不動, 則可點擊「取消「,而後從新點擊 setup.exe 重複上面動做,不過有兩個關鍵動做:一是在選擇下載網站時要選擇同一個網址,以下界面 ( 這就是上面建議要記住網址的緣由 .)
  第二個關鍵動做:安裝方式時選擇,選擇」 Reinstall 「,而不是」 install 「啦, 這樣單擊「下一步」就可從原來的進度繼續下載安裝。不然將從零開始啦。。
 
使用:
在使用 cygwin 虛擬環境以前要設置一下環境變量 PATH PATH 變量被 cygwin 應用程序做爲搜索可知性文件的路徑列表 . 若是想在不運行 bash 的時候也可以使用 cygwin 工具集, PATH 起碼應該包含 x:\cygwin\bin ,其中 x:\cygwin 是你的系統中的 cygwin 目錄。例如個人則是 f \cygwin. PATH=f:\cygwin\bin. 設置方法以下:
1.      打開 windows 系統屬性對話框,點擊「高級」 環境變量 ,打開環境變量設置窗口。
2.      點擊用戶環境變量窗口的「新建」,就是上邊那個。出現以下新建用戶環境變量界面:輸入以下
 
   單擊「肯定」,好啦,如今可使用啦,雙擊桌面圖標 進入 cygwin
1.      最早想作的是,查看 windows 的內容。
輸入指令「 mount
$mount
出現能查看的全部目錄》》
  主機上的 c 對應   /cygdrive/c
想查看 c 盤,輸入指令:
$cd  /cygdrive/c
要查看 c 盤內容:
$ls
d ,e, f 盤查看,同理
Cygwin 經常使用指令與 linux 下基本一致,請自行查閱。不過個人 cygwin 能查看文件,沒法編輯文件, vi 後,鍵盤輸入不正常。只能在 windows 下創建。在 windows 下創建的 c 文件是能夠在 cygwin 下編譯和運行的。
插入一個小問題:再查看 windows 的文件時,有些文件名 兩個 單詞之間有空格。
查看時 可在中間插入「 \ 」。例如想查看 c 盤的 Program  Files 文件夾,先進入 c 盤而後指令以下:
$cd  Program\  Files
便可。
交叉編譯 vivi kernel
1.      安裝 arm-linux-gcc 交叉編譯環境:
(1)      先在 X:\cygwin 下創建個文件夾如: opt
(2)      arm-linux-gcc 的壓縮包解壓在 opt 中。個人是
arm-linux-toolchains_cygwin.tgz
$cd opt
$tar zxvf  arm-linux-toolchains_cygwin.tgz
Opt  目錄出現 FriendlyARM 目錄,內爲交叉編譯工具源碼。
            修改啓動腳本 /etc/profile 文件 ( 可在 Windows 中用文本編
X:\cygwin\etc\profile) 中的 PATH 環境變量爲
PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/opt/FriendlyARM/crosstool/arm-linux/gcc-2.95.3-glibc-2.2.3/bin:$PATH
 
 
能夠鼠標點擊相應目錄查看一下,感覺更直觀。
輸入命令:「 arm-linux-gcc –v   確認是否安裝成功
2. 編譯 vivi
因爲 VIVI 要用到 kernel 的一些頭文件,因此須要 kernel 的源代碼,將 vivi kernel 都壓到 /FriendlyARM
而後需修改 /friendly-arm/vivi/Makefile 裏的一些變量設置
LINUX_INCLUDE_DIR = /friendly-arm/kernel/include
CROSS_COMPILE   = arm-linux-
ARM_GCC_LIBS=/opt/FriendlyARM/crosstool/arm-linux/gcc-2.95.3-glibc-2.2.3/lib/gcc-lib/arm-linux/2.95.3
聽說爲確保編譯的有效性,最好在編譯以前將 vivi 裏全部的 「*.o」 「*.o.flag」 刪的掉,不過我沒找到,也就沒管。

進入 /FriendlyARM/vivi 目錄裏,輸入 「make menuconfig」 ,開始選擇配置。注意 Exit 時必定要選 「Yes」 保存配置。
再輸入 「make」 正式開始編譯,一下子就完了。若是不報錯,在 FriendlyARM/vivi 裏面就有你本身的 「vivi」 了。
 
3. 編譯 kernel
       kernel 的源程序在上面編譯 vivi 時已經解到 /friendly-arm/kernel 中了。由於這個程序包已在 linux 中編譯過 ,有一些中間和目標代碼和 Cygwin 是不兼容的。必須先處理一下,不然不能正常進行編譯。
                
進入 /friendly-arm/kernel 目錄,能夠輸一下 「make menuconfig」 試試。結果提示出錯。這是因爲配置腳本已在 Linux 中編譯過,在 scripts/lxdialog 裏產生了一個 Linux 下的可執行程序 lxdialog 。在 Cygwin 裏這是個壞東西,它既不能執行,還會阻止可執行程序的生成。必須把它刪掉 , 目錄以下:
     /FriendlyARM/kernel/scripts/lxdialog/lxdialog
順便把同一文件下的全部 .o 文件也都刪除,看準啦,別把 .c 源文件刪啦!
 
再執行 「make zImage」 應該能夠完成編譯了。若是出現以下提示: make: *** No rule to make target `/friendly-arm/kernel/include/asm/arch/param.h', needed by `/friendly-arm/kernel/include/asm/param.h'. Stop.
先「 make dep
   make zImage
等一下子,就會在 //FriendlyARM/kernel/arch/arm/boot 目錄裏會生成你編譯的 zImage
順便提示一下: 有時候 cygwin 會出現顯示不徹底現象,好比「 make dep 後,就可能出現,不用管,只要 make dep 一段時間,屏幕不動, ls 能使用,就直接輸入「 make zImage 」生成內核啦。
相關文章
相關標籤/搜索