嵌入式环境搭建之开发板软件环境

标签: 嵌入式 环境 开发 | 发表时间:2015-04-14 17:27 | 作者:u013584315
出处:http://blog.csdn.net

转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/44995039


开发板软件环境:uboot(用官方给的,后续我会考虑分析移植)

                            内核(本来想用官方的降低难度,但给的不支持nfs,简单更改下吧,后续考虑移植精简新内核)

                            文件系统(移植最小文件系统)

1.修改开发板官方内核支持nfs

          a.用ftp工具从主机拷贝内核到虚拟机,然后解压

          b.copy 官方配置文件 .config(不同开发板配置文件不同,我的操作是cp config_for_linux .config)

          c.make menuconfig

             出错:我碰见过两种,第一种错误是终端太小,装不下图形配置。

                                                第二种是缺少ncurses库,解决办法$sudo apt-get install libncurses5-dev

          d. 修改配置选项如图

                 

                

               

                            选中  IP: kernel level autoconfiguration

                 更改后保存,然后make

            e.将生成的内核烧进开发板

            f.测试nfs功能

                  mount -t nfs -o nolock 192.168.6.2:/work /mnt

                  如果开发板文件系统的/mnt 挂在到了虚拟机的/work上则证明成功

2.制作最小网络文件系统

           a.下载BusyBox(直接百度,然后进入官网,我下载是最新的稳定版本1.23.2)然后解压

           b.make menuconfig

                   1.修改系统安在哪,叫什么名,如图,这个是我的配置:

                      

                     

                  2.用什么编译器

                       

                      

             c.make 然后  make install之后你的系统应该已经生成了。

             d.把交叉编译器里面的库文件,拷贝到我们的最小网络文件系统中(注意-d选项)

                       cp /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib/* /work/nfs_sys/mini_sys

             e.接下来需要创建几个文件,如果懒得创建的话,我后续把我的文件系统传上来,大家copy下也可以

                 在/etc下创建三个文件 etc/initab   etc/init.d/rcS etc/fstab三个文件内容如下:



etc/fstab             

::sysinit:/etc/init.d/rcS
ttySAC2::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r




etc/init.d/rcS

#!/bin/sh
ifconfig eth0 192.168.6.4
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
<p>echo 0 > /proc/sys/kernel/hung_task_timeout_secs</p> mdev -s




etc/initab

# dev    mount   type      options  dump  fsck   order
proc    /proc    proc      defaults 0      0
tmpfs   /tmp     tmpfs     defaults 0      0
sysfs   /sys     sysfs     defaults 0      0
tmpfs   /dev     tmpfs     defaults 0      0




           除此之外还需要创建/dev文件夹。然后在下面创建这两个设备文件

                   mknod consol c 5 1

                   mknod null c 1 3

                  f.启动开发板uboot修改启动参数,如下:

              set bootargs console=ttySAC2,115200 init=/linuxrc rootfstype=ext4 root=/dev/nfs rw nfsroot=192.168.6.2:/work/nfs_sys/mini_sys ip=192.168.6.4:192.168.6.2:192.168.6.1:255.255.255.0:ruoyun:eth0:off

              如果OK的话,可以保存环境变量,每次开机就可以直接挂在文件系统了。

           g.创建其余目录

              mkdir  proc mnt tmp sys root

             

        h.如果能顺利进入系统,看到这句话Please press Enter to activate this console.那么恭喜你成功了。测试下创建文件,看虚拟机和开发板是否同步(注意不要在tmp文件夹下创建,我发现在此文件夹下,数据不能同步,不知道什么原因)


3.编写第一个驱动

          a.编写驱动文件

#include<linux/init.h>
#include<linux/module.h>
#include<linux/kernel.h>

static int hello_init(void)
{
	printk(KERN_ALERT "hello world.\n");
	return 0;	
}

static void hello_exit(void)
{
	printk(KERN_ALERT "exit hello world.\n");	
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");


          b.编写Makefile

KERN_DIR = /work/kernel/itop/iTop4412_Kernel_3.0

all:
	make -C $(KERN_DIR) M=`pwd` modules 

clean:
	make -C $(KERN_DIR) M=`pwd` modules clean
	rm -rf modules.order

obj-m	+= hello_drv.o


          c.测试

                   在虚拟机上先make ,生成.ko文件。然后将.ko文件放在开发板启动的网络文件系统中,然后insmod

如果出现hello world。那么证明你成功了。

                   然后rmmod,我在做的时候出现了一个错误。如下:

                               rmmod: can't change directory to '/lib/modules': No such file or directory

                   解决办法就是mkdir /lib/modules/3.0.15       (最后面的是你的内核版本号)

                  如果rmmod出现了exit hello world.  那么恭喜你成功了。


到这里环境已经搭建好了,大家可以继续接下来的驱动去学习了,后续我会继续写一些驱动相关的文章的。

作者:u013584315 发表于2015/4/14 17:27:00 原文链接
阅读:25 评论:0 查看评论

相关 [嵌入式 环境 开发] 推荐:

嵌入式环境搭建之开发板软件环境

- - CSDN博客推荐文章
转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/44995039. 开发板软件环境:uboot(用官方给的,后续我会考虑分析移植).                             内核(本来想用官方的降低难度,但给的不支持nfs,简单更改下吧,后续考虑移植精简新内核).

苹果Xcode 4开发环境发布

- 阿贡 - ITeye资讯频道
伴随着iOS 4.3的发布,苹果推出了新版开发环境Xcode 4. Xcode 4最早于去年6月的WWDC 2010开发者大会上宣布,经过近一年的测试后才终于问世. Xcode 是为Mac、iPhone、iPad、iPod touch开发软件的必备工具. Xcode 4包含Xcode IDE、Instruments调试工具、iOS模拟器以及最新版Mac OS X/iOS SDK.

安装MSYS+MinGW开发环境

- jipeng.sun - tombkeeper的和谐Blog
安装MSYS+MinGW开发环境.     SourceForge上的MinGW项目里有很多软件包,这些软件包之间互有重叠,相当混. 实际上,要构建一个MinGW 的开发环境,只需要安装下面四个.     下面是这些软件包的说明:.     一个Unix仿真Shell环境,类似Cygwin. 安装后会提示定位MinGW的目录,也可以.

利用Docker构建开发环境

- - UC技术博客
最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境,感觉生活在PAAS时代的程序员真是幸福,本文会简要介绍下Docker是什么,如何利用Docker来搭建自己的开发环境(本文主要是面向Mac OS X),以及期间所遇到的一些坑和解决方案. (本文会要求你对PAAS、LXC、CGroup、AUFS有一定的了解基础,请自行Google ).

eclipse配置nodejs开发环境

- - CSDN博客云计算推荐文章
首先说明一下本人的开发环境,个人兴趣爱好问题,这边使用的很多环境都是基于Linux系统下做的,这次也不例外. 前提条件:NodeJs已经在系统中正确安装. 1、下载安装eclipse,地址: http://www.eclipse.org/downloads/. Eclipse Standard 版本即可.

mac 开发环境常用技巧

- - 操作系统 - ITeye博客
话说Mac一般来讲不需要什么重装啊,不过世事无绝对啊,有时候人就是喜欢作死. 比如前几天的我~~~算了,具体情况就不说了,反正就是作死,Mac系统出了问题. 本来想着用Time Machine恢复一下就得了,也省事. 不过仔细想了一想,很想自己安装一遍(博主的折腾精神有时候很是让自己“佩服”),然后就开始了Mac系统重装之旅.

使用 Node.js 作为完整的云环境开发堆栈

- jiaosq - IBM developerWorks 中国 : 文档库
本文探讨 Node.js,这是一个用于 UNIX 类平台上 V8 JavaScript 引擎的事件驱动的 I/O 框架,设计这一框架的目的是为了编写可伸缩的网络程序,如 Web 服务器. 本文通过一个完整的例子说明如何在 Node.js 中构建聊天服务器,分析了这个框架以及围绕它的生态系统(包括云计算产品),并对这个框架进行了总结.

Kinect for Windows SDK开发初体验(一)环境配置

- Pei - 博客园-首页原创精华区
万众期待的Kinect for Windows SDK终于在广大开发者的千呼万唤中发布了beta版,作为历史上销售最快的消费电子产品,早就有无数人想将其用于其他领域了. 微软虽然在硬件接口上制造了一点小障碍,但并没有对Kinect的输出做任何加密. 于是,基于Kinect的各种应用层出不穷,也有开源社区提供了针对Kinect的USB驱动程序,比如OpenKinect等.

Ubuntu11.10 64Bit版上的Android 4.0 开发环境搭建

- 华子 - CSDN博客推荐文章
据说Android以后新版本只支持64bit版本开发,所以搭建一个64bit系统的Android开发环境为将来的Android4.0 及更高版本 开发打好基础. PC 一台(支持64bit),内存最好4G,硬盘最好1T,CPU最好4核心,显卡无所谓,光驱一个. 1.2.1 Ubuntu 11.10 64bit desktop版光盘一张.

iPhone开发技巧---确认网络环境3G/WIFI

- - CSDN博客推荐文章
确认网络环境3G/WIFI. 添加源文件和framework. 开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息. 如果没有处理它们,是不会通过Apple的审(我们的)查的. Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法. 要在应用程序程序中使用Reachability,首先要完成如下两部:.