要做ARM linux 的开发就必须搭建开发环境,那么需要什么样的开发环境才能比较方便我们的开发和调试呢?我这里搭好了开发环境,把这些环境是那些,及怎么去搭建一一为大家做了过程步骤。 我搭的开发环境主机是windows 系统,虚拟机是linux(fedora 9版本的)我要完成的开发环境是主机(windows)和虚拟机的linux通过samba服务器共享linux的/opt/filesystem(filesystem是已经做好的文件系统,他安装在linux文件系统的/opt目录下面,他可以被开发板的linux内核通过网络挂载。)这样windows可以访问filesystem、虚拟机的linux和开发板的linux也可以访问,这样开发就方便多了,可以在windows下对代码用Source Insight进行编辑,在虚拟机的linux用arm-linux-gcc 编译,然后直接就可以在开发板的控制台下运行你的代码了。 好。下面我们先来安装fedora 9。 安装fedora 9: 一、 打开虚拟机软件 二、 建立新虚拟机 三、 点击下一步、再点击下一步 四、 选择linux单选项 五、 写虚拟机linux的名字和安装的路径 六、 选择第一项“use bridged networking“选项 七、 给虚拟机分配硬盘大小 我这里选择8G 八、 点击完成.这样就新建了个虚拟机,双击memory 可以调整虚拟机的内存大小,根 据你电脑的配置给他分配一个合理的内存大小。内存分配太小了就无法今晚图形界面安装或者根本不能安装。 九、 双击CD-ROM 选择use iso image(如果你是把fedora9的iso映像copy到了电脑上)然后选择browse选择fedora 9存放的路径 十、 点击start this virtual maching 也就是打开电源开始安装linux十一、 进去后等会出现如下图 十二、 : 十三、 按下tab键选中“skip”按回车,等下进入另一个界面 点击next然后进入语言选择,我们选择english 如果选其他,有可能安装后使用很卡。 在点击next,进入选择键盘的类型,我这里选择u.s.english,在点击next 出现下图 选择yes,进入网络设置,可以输入网关,DNS等,或者以后再设置也行。点击NEXT 进入时区选择,我们选择上海的。点击NEXT,进入设置根账户的密码设置。我们输入123456 点击next出现如下对话框 选择yes,进入硬盘配置方式选择,我们选择create custom layout 点击next进入磁盘分区设置。选中free,点击new,出现如下图。 点击Mount Point选择挂载点为 “/”选择File system type 为etx3 在size栏中输入5000,给他分配5000M的空间,点击OK,在次点击new分配另一个分区。选择File system type 为swap(这个是交换分区,是系统运行是用来存放临时文件的,选择这个就不用选择Mount Point了) 在size栏中输入1024,给他分配1G的大小。点击OK,如果还有空间的话可以在分配其他分区。现在我们点击next,出现如下图: 点击write changes to disk 在点击next。出现如下图: 我们把office and produc tivity 选择取消掉,因为我们开发没必要要这种office 软件,可提高系统运行效率。要选择software decelopent 并在下面选择Customize now ,进行自己定制安装软件。点击next ,这里我选择development tools 和fedora packager 和KDE software development 和FTP server 和network server 和server configuration tools 。然后点击next 开始进行安装。安装完之后重新启动虚拟机的linux,可以一直下一步,可以不配置用户,以后可以用root用户登录。出现警告就点yes 最后进入系统,输入root和密码即可。 好了虚拟机linux我们已经装好了。默认情况下已经安装好了ssh服务和samba服务和nfs服务有时TFTP没安装。这时我们就要从网上下载安装了。 二、安装TFTP 服务器。 进入linux系统。设置网络保证能上网后打开终端输入 yum install xinetd tftp tftp-server 三、现在开发环境需要的服务器。Tftp 、nfs、samba和ssh(远程登录用的)都安装好了。现在开始配置服务器。 =================================================== 配置网络 一、 先配置网络。让他能够和主机相互ping通其实上面安装TFTP的时候也要这么做才能上网的。那怎么配置网络呢? 二、 首先选择桥接方式。 三、 禁止两个虚拟网卡。 四、 配置windows的ip和linux的ip在同一个网段到但IP地址不能相同,也就是最后的那个数不同,网关和DNS和子网掩码都相同。这样应该就能ping通了。主要linux在配置好后在激活网卡时要先点击不激活(那个红色的)再点击激活。在重新启动linux 配置TFTP服务器(用来把内核uImage映像下载到开发板的内存执行) 打开终端,vi /etc/xinetd.d/tftp回车打开tftp配置文件。在里面输入如下内容: /home/work/tftpboot就是tftp服务器的下载目录。可随你更改。输入完后保存退出。 在使用前最好修改/home/work/tftpboot的权限,在终端输入chmod 777 /home/work/tftpboot回车。重新启动TFTP服务器。、service xinetd restart =================================================== 配置NFS服务器(用来挂载虚拟机linux上面的网络网络文件系统) 在终端输入vi /etc/exports,输入如下内容: /opt/filesystem * (subtree_check, rw, no_root_squash,async)保存退出 重启nfs service nfs restart 主意:修改目录后除了重启NFS还要在/etc目录下执行exports –rv 配置samba服务器(用来windows和linux共享文件) 配置samba让windows和linux共享文件 在配置samba前先设置好主机和虚拟机的IP:虚拟机IP,和主机的IP设置在同一个网段(也就是192.168.xx.**)xx的地方要一样,但是**的地方不能一样,还有子掩码和主机的一样(如:255.255.255.0)》》》》虚拟机的DNS和网关及主机的的DNS和网关都是相同的,并和主机在同一网段(如:192.168.0.2)》》》》关闭虚拟机的防火墙(/etc/rc.d/init.d/iptables stop)》》》》关闭主机的防火墙(控制面板的windows防火墙,选择关闭)》》》》 虚拟机选择桥接,虚拟网卡1和8,可以关闭,这时主机和虚拟机应该可以相互PING通了。接着就可以进行下面的配置了。 修改虚拟机DNF的方法:在终端输入vi /etc/resolv.conf 在文件里写入DNF就可以了然后保存(按ESC 输入:输入wq 回车就行了)。 配置IP:在终端输入 redhat-config-network,在里面设置保存就行了。然后重新启动网络:在终端输入service network restart 查看IP是否设置好了:在终端输入ifconfig 查看DNS cat /etc/resolv.conf =================================================== 好了,下面就开始配置samba服务器吧: 第一步: 更改smb.conf
[root @localhost ~]# cd /etc/samba /* 进入samba服务器配置文件所在的目录*/
[root@localhost samba]# mv smb.conf smb.confback /* 备份samba服务器的配置文件*/
[root@localhost samba]#touch smb.conf /* 重新建立samba服务器的配置文件*/ [root@localhost samba]#vi smb.conf/*用VI编辑器编辑smb.conf*/ 在smb.conf/中写入如下内容
[global]
workgroup = Linuxsamba
netbios name = Linuxsambaname
server string = Linux Samba Server
security = share
[linuxsamba]
path = /opt/linuxsamba
writeable = yes
browseable = yes
guest ok = yes
注解:
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是Windows中显示的工作组;在这里我设置的是LinuxSir
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
[linuxsir] 这个在Windows中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否可以浏览,可以;
guest ok 匿名用户以guest身份是登录;
第二步:建立相应目录并授权;
[root@localhost ~]# mkdir -p /opt/linuxsamba
[root@localhost ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
[root@localhost ~]# chown -R nobody:nobody /opt/linuxsir
注释:关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以这个为准。有些系统nobody用户组并非是nobody ;
第三步:重新启动smbd和nmbd服务器;
[root@localhost ~]# service smb restart
第四步:查看smbd进程,确认Samba 服务器是否运行起来了;
[root@localhost ~]# pgrep smbd
13564
13568
第五步:访问Samba 服务器的共享;
在Linux 中您可以用下面的命令来访问;
[root@localhost ~]# smbclient -L //Linuxsambaname
Password: 注:直接按回车
在Windows中,您可以用下面的办法来访问;
//Linuxsambaname/ 或者在windows 里面 \ IP 的形式就可以访问了。 我们在开发ARM的时候需要修改代码和在linux下编译,比如移植U-BOOT,我们可以把u-boot解压在共享目录linuxsamba下面,在windows下用source insight编辑修改代码,保存后再到linux下编译uboot。 好的现在所有的服务器都配置好了,如果没出上面意外就可以正常使用了。假设我设置linux和windows的共享目录是linux文件系统下面的/opt目录里的filesystem目录这个filesystem其实就是做好了的文件系统。他可以被开发板的linux用挂载网络文件系统的方式去挂载他,把他当做开发板自己的文件系统使用。这样linux可以操作filesystem里的所有内容,windows也能操作filesystem了的所有内容,开发板挂载他之后也能操作filesystem里的所有内容。并且是三者是同步的。这样在windows下用Source Insigh等工具编辑好代码后,进入虚拟机的liunx进行编译然后转到开发板控制台下进行运行。这里为了方便还有一个远程登录的软件Putty用他通过ssh协议登录虚拟机的linux进行操作虚拟机。用他的串口功能进行开发板的linux控制 主意: 1、使用前要把所有服务都启动了。Tftp nfs samba sshd 使用一下命令: 先启动网络: Service network start 再启动服务器: Service nfs start Service smb start Service sshd start Service xinetd start 2、如果你的电脑的没有接上网线或网络断开了,是ping不通的。 3、如果发现windows无法对samba服务器的共享目录进行写操作,那么要设置共享目录的权限为777,还是不行的话,就把selinux关掉。方法是在终端输入 vi /etc/selinux/condig回车。把中间那个变量SELINUX= xxx xxx改为disabled 然后重新启动linux系统。 4、假如把一个虚拟机上的linux从一台电脑拷贝到另一台电脑去运行,fedora9会出现网卡无法启动的情况,要把/etc/udev/rules.d/70-persistent-net.rules这个文件删除掉。最好把他重命名为其他名字(方便以后恢复),这样他就不受这个文件影响了,还有在终端下输入ifconfig 回车,看看那个网卡的物理地址(上一台电脑的)和你现在电脑的网卡的物理地址是不是一样,不一样就改过来。
|