2024年3月23日发(作者:)
Cygwin介绍安装基本使用交叉编译vivikernel
王建壮
引出:
初学linux时,最头疼的是,因为windows和linux各有优点,各有用途,所以只能麻
烦的在两者之间切换,不断的重启。开机时也麻烦,因为初学者大多数使用windows,装了
linux后,开机会自动启动linux(当然,可以通过在安装过程中设置或按装结束后修改相应文
件来决定启动时先引导哪个系统),想进入windows还要坐在电脑旁死等。Cygwin恰好解
决了这个问题。
介绍:
是windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,
或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu
工具集在windows上进行嵌入式系统开发,非常有用。
特点:
1.
2.
cygwin只是模拟一个unix的环境有助于初学者学习,现在也可以在windows下开发一
些程序。但他所支持的命令没有新版本的LINUX多,它是一个不是很完整的UNIX系统。
vmware,qemu等虚拟机软件,以vmware为例,是先在windows中安装vmware
虚拟机,再在vmware虚拟机上面用linux光盘或iso镜像安装完整的linux系统,vmware
功能是虚拟一个cpu。与用虚拟机相比,Cygwin本身就是linux在windows环境下的部
分替代物,占用资源相对较少,同时功能与“真实感”也更小,还有些不完善之处。
下载与安装:
1.解释:本来安装个软件是个很简单的事情,不过初次接触cygwin.往往有很多人折腾
了数日才搞定。主要是原因是:我们以往在windows上装个软件,通常只是在网上下载个
安装包,然后就可以在没有网络的情况下,双击,随时就可以安装啦。
Cygwin也是要下载一个,不过这个可不是安装包,而只是用来下载
和定制安装包的,下载定制完成后,才是真正的安装(就不必需要网络啦),待会儿就明白啦。
2.下载安装:登陆:,点击“installCygwinNow”先下载个安装向导
文件,这个是Cygwin的官方下载安装向导文件,而且也只能通过它才能正确下载
最新的Cygwin版本。双击“”,出现如下界面
点击“下一步”,出现三个选项,即三种安装方式:
(1)InstallfromInternet:直接从Internet上下载并立即安装(安装完成后,下载好
的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。
(2)DownloadWithoutInstalling:只是将安装包下载到本地,但暂时不安装。
(3)InstallfromLocalDirectory:不下载安装文件,直接从本地某个含有安装文件的
目录进行安装(得保证你的计算机上已经用在网上下载了安装包)。
第一次肯定不选选项(3)。选项(1)最费时间,如果网速20kb/s,得一天多才搞好,不
过最省事,第一次不知如何办,我选最稳妥的方式:选项(1),一个流程搞定。其实选项(2)
也得很长时间。所以无论如何保证你能连续上网一整天啊,不过就别在计算机面前一直坐着死等
了,干点别的事去吧。选择完成后,点击“下一步”。出现rootDirectory(根目录安装处,即
确定要把cygwin安装在何处,得保证至少有5G空闲空间),点击右侧“Browse。。。”
选择你要把cygwin安装在何处,我装在f盘啦。其它默认就行啦。
确定后单击“下一步”。出现下面界面,确定要把安装包(就是用下载下来的
安装包,用来真正安装cygwin模拟环境的那个安装包)放在哪个地方,以备以后用于直接安装
cygwin模拟环境。确认方式和上面一样,我将之放在f盘自己建立的一个文件夹cygwinset
中。
确
定后单击“下一步”,出现如下界面。出现三种连接方式,
(1)DirectConnection:直接连接。
(2)UseIE5Settings:使用IE的连接参数设置进行连接。
(3)UseHTTP/FTPProxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址
和端口号)。
直接默认选择:选项(1)就行啦,直接单击“下一步”,稍等片刻出现如下界面:
界面中列出多个下载站点,我是选的默认项,(一定记住你选择的站点),可能下载速度有不同吧,
直接“下一步”。出现如下界面。
安装向导正从下载镜像站点上获取压缩过的安装列表文件,片刻便出现如下界面,即安装列
表文件界面。
可以看
到“all”后面有个“Default”字符,即为默认安装,单击”default”可依次变为”install”,
“reinstall”;”reinstall”先不用管,“Default“默认安装时很多如vivi,gcc等都不会被安
装,单击“all”后面“Default”成为”install“,全部安装即可。出现如下界面:
单击”下
一步“就好好等着吧,我用了一天左右。
安装完毕后,最后一个界面提示是否建立桌面快捷方式,直接打““就成,然后”确定“就
彻底完工啦。我的f盘的cygwinset文件夹中看到名为”
ftp%3a%2f%%2fpub%2fmirrors%2fcygwin“安装包,你的可能是”
http%3a%2f%。。。。。“无所谓啦,留着以后安装用。
双击桌面
进入cygwin虚拟环境。还会出现下面图标,
Start X - Server (needed for emacs and surf).lnkSingular (Emacs).lnk
、、
Singular (rxvt).lnk
不太了解,还没到研究的它们的级别,如感兴趣可查阅其他资料,不
再冗言。
如果下载安装不顺利,如出现“downincomplete,Tryagain?”提示符。或者在某一进度卡
住不动,
则可
点击“取消“,然后重新点击重复上面动作,不过有两个关键动作:一是在选择
下载网站时要选择同一个网址,如下界面(这就是上面建议要记住网址的原因.)
第二个关键动作:安装方式时选择,选择”Reinstall“,而不是”install“啦
这样单击“下一步”就可从原来的进度继续下载安装。否则将从零开始啦。。
使用:
在使用cygwin虚拟环境之前要设置一下环境变量PATH。PATH变量被cygwin应用程
序作为搜索可知性文件的路径列表.如果想在不运行bash的时候也能够使用cygwin工具集,
PATH起码应该包含x:cygwinbin,其中x:cygwin是你的系统中的cygwin目录。例如
我的则是f:cygwin.则PATH=f:cygwinbin.设置方法如下:
1.打开windows系统属性对话框,点击“高级”—》”环境变量”,打开环境变量设置窗口。
2.点击用户环境变量窗口的“新建”,就是上边那个。出现如下新建用户环境变量界面:输
入如下
单击“确定”,好啦,现在可以使用啦,双击桌面
1.最先想做的是,查看windows的内容。
输入指令“mount”
$mount
进入cygwin。
出现能查看的所有目录》》
主机上的c盘对应
$cd
$ls
/cygdrive/c
/cygdrive/c
想查看c盘,输入指令:
要查看c盘内容:
对d,e,f盘查看,同理
Cygwin常用指令与linux下基本一致,请自行查阅。不过我的cygwin能查看文件,无法
编辑文件,vi后,键盘输入不正常。只能在windows下建立。在windows下建立的c文
件是可以在cygwin下编译和运行的。
插入一个小问题:再查看windows的文件时,有些文件名两个单词之间有空格。
查看时可在中间插入“”。例如想查看c盘的Program
指令如下:
$cdProgramFiles
即可。
交叉编译vivi,kernel:
1.安装arm-linux-gcc交叉编译环境:
(1)先在X:cygwin下建立个文件夹如:opt。
(2)将arm-linux-gcc的压缩包解压在opt中。我的是
arm-linux-toolchains_
$cdopt
$tarzxvf
Opt
arm-linux-toolchains_
目录出现FriendlyARM目录,内为交叉编译工具源码。
Files文件夹,先进入c盘然后
修改启动脚本/etc/profile文件(可在Windows中用文本编
X:cygwinetcprofile)中的PATH环境变量为
PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/opt/Friendly
ARM/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”和“*.”删的掉,
不过我没找到,也就没管。
进入/FriendlyARM/vivi目录里,输入“makemenuconfig”,开始选择配置。注意Exit
时一定要选“Yes”保存配置。
再输入“make”正式开始编译,一会儿就完了。如果不报错,在FriendlyARM/vivi里面就有你
自己的“vivi”了。
3.编译kernel:
kernel的源程序在上面编译vivi时已经解到/friendly-arm/kernel中了。因为这个程序
包已在linux中编译过,有一些中间和目标代码和Cygwin是不兼容的。必须先处理一下,否则
不能正常进行编译。
进入/friendly-arm/kernel目录,可以输一下“makemenuconfig”试试。结果提示出
错。这是由于配置脚本已在Linux中编译过,在scripts/lxdialog里产生了一个Linux下的可
执行程序lxdialog。在Cygwin里这是个坏东西,它既不能执行,还会阻止可执行程序的生成。
必须把它删掉,目录如下:
/FriendlyARM/kernel/scripts/lxdialog/lxdialog
顺便把同一文件下的所有.o文件也都删除,看准啦,别把.c源文件删啦!
再执行“makezImage”应该可以完成编译了。如果出现如下提示:make:***Norule
tomaketarget`/friendly-arm/kernel/include/asm/arch/param.h',neededby
`/friendly-arm/kernel/include/asm/param.h'.Stop.
确认是否安装成功
则先“makedep”
再“makezImage”
等一会儿,就会在//FriendlyARM/kernel/arch/arm/boot目录里会生成你编译的zImage。
顺便提示一下:有时候cygwin会出现显示不完全现象,比如“makedep”后,就可能出现,
不用管,只要makedep一段时间,屏幕不动,ls能使用,就直接输入“makezImage”
生成内核啦。


发布评论