Linux 嵌入式系统设计与开发 
 
 
 
 
 
1  第一部分嵌入式系统开发环境 
第一章  嵌入式系统开发环境的搭建,以及相关工具的使用  
1.1  虚拟机+linux redhat9.0 安装 
1.1.1  虚拟机软件的安装及配置。 
虚拟机软件是一种可以在一台电脑上模拟出来若干台 PC,每台 PC 可以运行单独操作
系而互不干扰,实现一台电脑“同时”运行几个操作系统,还可以将这几个操作系统连成一
个网络的软件。 
采用 VMware Workstation5.5例说明如何在 windows 创建一个虚拟机环境。 
VMware Workstation安装后的界面如下: 
创建一个虚拟机 
 
选择 linux 
 
指定虚拟机存放的路径 
 
选择网络配置 
 
 
对于虚拟机的设备进行配置,这里采用虚拟光驱,指定安装linux 镜像的路径 
设备相关信息设置如下,启动虚拟机,开始安装。 
 
进行 linux 安装 
 
1.1.2  Redhat9.0 的安装。 
 
注意不安装防火墙,采用 workstation,确保服务 samba,tftp,tfp,nfs,SSH,DHCP,telnet
都安装上。 
1.2  Linux 系统服务的配置 
配置系统服务时,要使防火墙关闭,或使其为低。 
1.2.1  网络配置 
[root@localhost /]# setup  进入网络配置菜单,设置 ip。 
[root@localhost root]# service network restart  重启网络服务 
察看网络配置 
[root@localhost root]# ifconfig   
 
 
1.2.2  Tftp 服务的配置 
选择 tftp 服务 
[root@localhost /]# setup 
配置 tftp 服务目录 
 [root@localhost /]# vi /etc/xinetd.d/tftp   
service tftp 
{ 
               disable = no 
               socket_type                         = dgram 
 
               protocol                              = udp 
               wait                                  = yes 
               user                                   = root 
               server                                = /usr/sbin/in.tftpd 
                server_args                        = -s /tftpboot 
               per_source                           = 11 
               cps                                      = 100 2 
} 
启动 tftp 服务 
[root@localhost /]# service xinetd restart 
Stopping xinetd:                                                                              [   OK   ] 
Starting xinetd:                                                                                [   OK   ] 
检测 tftp 服务 
[root@localhost /]# netstat -a | grep tftp 
udp               0           0 *:tftp                                   *:* 
1.2.3 
Samba 服务器配置 
选择 samba 服务 
[root@localhost /]# setup 
 
编辑 smb.conf 配置文件,   
[root@localhost /]# vi /etc/samba/smb.conf 
增加用户名以及共享路径,如下: 
[homes] 
     comment = Home Directories 
     path = / 
     browseable = no 
     writable = yes 
     valid users = root 
     create mode = 0664 
     directory mode = 0775 
[root@localhost /]#smbadduser root:admin 
增加 samba 用户 
[root@localhost /]# service smb restart 
激活 samba 服务 
[root@localhost /]# service smb status 
察看 samba 服务 
1.2.4 
telnet 服务器配置 
选择 telnet 服务 
 
[root@localhost /]# vi /etc/pam.d/login 
注释掉 auth required /lib/security/pam_securetty.so 这句话 
重启服务 
[root@localhost /]# service xinetd restart 
至此可以以 root 用户 telnet 登录 
1.2.5 
nfs 服务器配置 
选择 nfs 服务 
 
[root@localhost /]# vi /etc/exports 
增加 nfs 服务输出的路径以及供给的 ip 地址,例如增加如下条目: 
/home/nfsroot 192.168.230.128(rw,sync) 
表示 ip 地址为 192.168.230.128 可以读写本机的目录/home/nfsroot 
[root@localhost /]# service nfs restart 
激活 nfs 服务 
[root@localhost /]# service nfs status 
察看 nfs 服务的状态 
1.2.6  DHCP 服务器配置 
注意:当配置 DHCP 服务时会对于局域网有影响,建议在虚拟机的环境下,网络设备
选择 Host-only 工作方式,如果不是虚拟机,请把网络连接与局域网断开。 
选择 DHCP 服务器 
 
[root@localhost /]# cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf 
创建一个 DHCP 服务的配置文件 
[root@localhost /]# vi /etc/dhcpd.conf 
编辑 dhcpd.conf 配置 DHCP 服务,下面的例子实现了基本的配置,目的是为在虚拟机
上实现 linux 内核在网络上的启动。本机的 ip 是 192.168.230.129 
ddns-update-style interim; 
ignore client-updates; 
 
subnet 192.168.230.0 netmask 255.255.255.0 { 
 
# --- default gateway 
             option routers                          192.168.230.129; 
             option subnet-mask                     255.255.255.0; 
 
             option time-offset                     -18000; # Eastern Standard Time 
 
            range dynamic-bootp 192.168.230.120 192.168.230.128; 
             default-lease-time 21600; 
             max-lease-time 43200; 
             
              # 为实现通过网络启动加载的文件 
             # we want the nameserver to appear at a fixed address 
} 
filename "/pxelinux.0"; 
[root@localhost /]# service dhcpd start 
开启 dhcp 服务 
[root@localhost /]# service dhcpd status 
察看服务是否运行 
1.2.7  支持网络启动内核的配置方法 
基本原理,实现网络启动必须支持 PXE,PXE(Pre-boot Execution Environment) 是由 Intel
设计的协议,它可以使计算机通过网络启动。协议分为 client 和 server 两端,PXE client 在
网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,并显示出命令菜单,
经用户选择后,PXE client 将放置在远端的操作系统通过网络下载到本地运行。 
PXE 协议的成功运行需要解决以下两个问题:   
l  既然是通过网络传输,那么计算机在启动时,它的 IP 地址由谁来配置;     
l  通过什么协议下载 Linux 内核和根文件系统