嵌入式Linux基础开发环境搭建

主机环境

开发主机环境:Ubuntu16.04

samba:

sudo apt-get install samba
sudo vi /etc/samba/smb.conf
在最后添加:

1
2
3
4
5
6
[share] 
comment = samba
path = /home/xxx
public = yes
writeable = yes
browseable = yes

添加samba用户:
#sudo adduser xxx
sudo smbpasswd -a xxx
重启:
路径: //192.168.1.44/share usr和pwd为上面设置的

tftp:

sudo apt-get install tftpd-hpa tftp-hpa
sudo vim /etc/default/tftpd-hpa #修改里面的路径 tftp路径:/home/xxx/tftpboot
重启:
service tftpd-hpa restart

ssh:

sudo apt-get install openssh-server

NFS:

开发主机配置

sudo apt-get install nfs-common nfs-kernel-server
创建文件夹:rootfs_nfs
修改/etc/exports,添加:
/home/xxx/rootfs_nfs *(rw,sync,no_root_squash,no_subtree_check)
重启:
/etc/init.d/nfs-kernel-server start
路径:/home/xxx/rootfs_nfs

设备端配置

支持NFS挂载

  1. 配置网络部分,主要是使能CONFIG_IP_PNP以在2中能够看到Root file system on NFS选项

    1
    2
    3
    4
    5
    6
    Networking support 
    Networking options
    TCP/IP networking
    IP: kernel level autoconfiguration
    [*] IP: DHCP support
    [*] IP: BOOTP support
  2. 配置开启nfs服务

    1
    2
    3
    4
    5
    6
    7
    File systems --->	
    Network File Systems --->
    <*> NFS client support
    [*] NFS client support for NFS version 3 [*] NFS client support for the NFSv3 ACL protocol extension
    [*] NFS client support for NFS version 4 (EXPERIMENTAL)
    [*] NFS client support for NFSv4.1 (DEVELOPER ONLY)
    [*] Root file system on NFS

在uboot中设置如下启动参数(IP根据实际使用更改)

1
setenv bootargs root=/dev/nfs nfsroot=192.168.1.105:/mnt/rootfs/rootfs ip=192.168.1.88:192.168.1.105:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200

注:

1:uboot通过bootargs传递参数给内核,让内核以特定方式启动
2:console=ttySAC0,115200 表示使用串口0,波特率为115200
3:root=/dev/nfs rw 表示使用/dev/nfs 作为根文件系统,可读可写
4:nfsroot:指明NFS服务器的地址(就是linux主机的IP)
5:/home/rootfs:根文件在主机的路径
6:192.168.1.102:这个是开发板的ip地址
7:192.168.1.101:这个是linux主机的ip地址
8:192.168.1.1:网关地址
9:255.255.255.0:子网掩码
10:ARM11:开发板主机名,可以省略
11:eth0:内核启动之后,把IP地址复制给eth0这个网卡
12:off:关闭动态IP获取功能