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
」生成內核啦。