交叉开发环境搭建


本文介绍传统的嵌入式开发环境搭建,基于局域网.
硬件要求,有双绞线连接的网络
软件要求,bootloader 能够联网.内核能够驱动网卡.

1/在主机上装nfs-sever

  • 参考NFS服务器的安装

2/在主机上装tftpd

  • 参考 TFTP服务器与客户端的安装

3/编译内核(注意配置nfs-client)

  • 参考 编译内核
	在 make menuconfig的时候配置 nfs 客户端.

[*]   IP: kernel level autoconfiguration

<*>   NFS client support
    <*>     NFS client support for NFS version 2 // 配置哪个版本,可以根据pc机上的nfs-kernel-server版本 //nfsstat 查看  宿主机 nfs server 版本
[*]   Root file system on NFS // 依赖于 IP: kernel level autoconfiguration

4/制作文件系统

  • 参考 根文件系统的制作

5/设置uboot环境

使用的bootloader 已经支持联网
且支持命令 setenv
查看支持的命令可以用 ? 来看
  • 参考 uboot boot ags
setenv gatewayip 192.168.1.1
setenv ipaddr 192.168.1.252
setenv serverip 192.168.1.250

setenv bootcmd 'tftp 0x82000000 uImage;bootm 0x82000000'
setenv bootargs 'mem=32M root=/dev/nfs rw  nfsroot=192.168.1.250:/home/pop/rootfs_root/rootfs_uclibc console=ttyAMA0,115200 init=/linuxrc ip=192.168.1.252'
sa
参数解释:
1/bootcmd
	tftp到serverip,到配置目录下下载名为uImage的文件到以地址0x82000000起始的内存
	并从该地址启动
2/bootargs
	内核所占内存32M
	从nfs启动,可读写,根目录为250地址下的/home/pop/rootfs_root/rootfs_uclibc目录
	控制台为ttyAMA0,波特率115200//ttyAMA0一般是指串口0 ,相应的ttyAMA1指串口1
	加载文件系统后执行linuxrc
	板子ip为252

6/启动

能够进入根文件系统,算是启动成功.

  • 没有配置 nfs-client 的情况
//在系统启动过程中,出现下面打印信息,并卡在这里
VFS: Cannot open root device "nfs" or unknown-block(0,255)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,255)

你可能感兴趣的:(linux-build,交叉开发环境,nfs,tftp,uboot,参数)