嵌入式Linux开发环境搭建ping、nfs的解决方法
一. 嵌入式软件层次
1) bootloader->引导加载程序
整个嵌入式系统的加载启动任务完全交给bootloader完成,它的主要任务是将内核映象从硬盘读到ram中,然后跳转到内核入口启动内核(操作系统)!通俗来讲,bootloader的作用就是初始化硬件,启动操作系统。
u-boot是bootloader最常用的一种,将uboot下载至开发板的nand flash(rom)中,即可通过仿真软件secure crt对开发板进行初始设置。 包括开发板的环境变量、ip等设置项,为后面下载内核、加载文件系统做基础。
2)linux内核
实现不同的硬件、软件需求配置不同的系统内核。一般基于已有的内核进行修改
配置内核 -> 编译内核 -> 安装内核 -> 清理内核过程文件(make clean)
配置内核: make menuconfig arch=arm 菜单式交互界面选择所需的驱动、协议文件
编译内核:make uimage(内核名) arch=arm cross_compile=arm-linux-
安装内核:通过tftp服务器,在基于uboot下下载uimage至 20000fc0(210开发板启动地址) "tftp uimage 20007fc0"
3)文件系统
文件系统简单说就是一种目录结构,由于linux操作系统的设备在系统中是以文件的形式存在,将这些文件分类管理以及提供和内核交互的接口,就形成了一定的目录结构也就是文件系统。
基本流程:
- a.设置根文件系统目录rootfs及内部存储文件目录bin、dev、lib、sbin、sys、usr、mnt等;
- b.文件系统添加内核模块,在linux内核目录下"/home/s4-driver/linux-smart210/";
" make modules arch=arm cross_compile=arm-linux- " 内核编译
" make modules——install arch=arm install_mod_path=/home/s5-/rootfs " 内核文件复制到根文件目录下
- c.根目录"/.../rootfs"下安装交叉编译器busybox,配置内核->编译内核->安装拷贝make install;
- d.挂载根文件系统,使用nfs方式,可实时在线根文件系统rootfs;
securecrt -> 通过uboot对开发板进行参数配置(nfs配置项) -> tftp服务器下载linux内核 -> bootm 20007fc0运行挂载即可!
二.偶遇问题
1. 开发板ping的系列问题
1) 模型结构搭建:pc机 -> 有线网卡 -> 路由器 -> 直连网线 -> 开发板网口;
2)a. 设置虚拟机为桥接模式,以保证外网可寻找到linux虚拟机ip;
b. pc机使用的是有线网卡,则pc机及linux虚拟网络适配器觉选择realtak usb(有线网口);
c. 保证linux虚拟机、pc机、开发板三者ip处于同一网段;
3)关闭linux虚拟机、pc机的防火墙,使得pc可ping通linux和开发板
再排除硬件接口问题,即可通讯。
2.nfs挂载问题
nfs挂载出现如:"server is not responding"、" unable to mount root"等问题,其主要原因是nfs的挂在设置参数、下载地址有问题。如smart210下载地址为20007fc0(并非20008000),nfs默认是使用udp通信协议,挂载参数网上都可哟搜索到,多试一试就没问题,前提是保证linux的nfs服务器能正常使用。
以上就是本次介绍的嵌入式linux开发环境搭建,问题ping、nfs的解决全部知识点内容,感谢大家对的支持。
下一篇: CentOS搭建FTP文件服务的步骤