开发环境搭建

来源:互联网 发布:欧舒丹护手霜味道知乎 编辑:程序博客网 时间:2024/05/01 14:56

开发环境搭建

首先说明我使用的学习环境,因为一开始是按照Mini2440的手册和光盘搭建的系统,后来看韦东山老师的视频,又按视频搭建了环境,所以虚拟机还是用的 Fedora.

硬件:Micro2440

虚拟机:VMware6.5 + Fedora9

交叉编译器:arm-linux-gcc-3.4.5-glibc-2.3.6

开发板的系统:linux2.6.22.6内核(韦东山光盘)

关于这个笔记的规划:

打算用这个笔记记录自己的Linux学习记录,遇到的问题,解决的方法,自己的理解。

第一部分为Linux驱动开发入门,主要包括LED驱动、按键驱动、异常处理、中断处理、poll机制、异步通知、同步互斥阻塞,主要就是韦东山老师视频的第一期内容。

今天这篇笔记主要是环境搭建中遇到的一些问题。

安装gcc编译器

a.复制 arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 到某个目录

b.解压 tar xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2

c.把编译器路径加入系统环境变量,运行命令  #gedit /root/.bashrc 

d.编辑/root/.bashrc 文件,在最后一行添加(或修改)为 export PATH=$PATH:/某个目录/gcc-3.4.5-glibc-2.3.6/bin 

e.退出root,重新登录root即可(不用重启)

编译uboot

$ tar xjf u-boot-1.1.6.tar.bz2 

$ cd u-boot-1.1.6 

$ patch -p1 < ../u-boot-1.1.6_jz2440.patch 

$ make 100ask24x0_config 

$ make 

修改编译内核

tar xjf linux-2.6.22.6.tar.bz2

cd linux-2.6.22.6

patch -p1 < ../linux-2.6.22.6_jz2440.patch

把 mini2440源码\drivers_and_test\10th_lcd\4th\lcd.c复制到内核driver/video,并修改driver/video/Makefile

obj-$(CONFIG_FB_S3C2410) += lcd.o # s3c2410fb.o

把 mini2440源码\drivers_and_test\DM900 网卡驱动复制到内核 对应目录,由于对应Makefile已经修改,故无需修改

内核根目录 cp config_厂家 .config

内核根目录下执行 make uImage

解决不生成uImage问题

“mkimage” command not found – U-Boot images will not be built

在编译的uboot目录下tools目录下,拷贝mkimage文件到gcc编译器的bin目录/gcc-3.4.5-glibc-2.3.6/bin

烧录uboot

Micro2440设置到nor flash启动,使用norflash中的superVivi 将uboot烧录到NandFlash

设置NandFlash启动,按PC空格键进入uboot

烧录内核

在uboot下烧录编译得到的uImage文件

烧录根文件系统,主光盘 bin目录下的fs_qtopia.yaffs2 文件

网络文件系统启动

step1.在虚拟机创建目标 根文件系统

tar xjf fs_qtopia.tar.bz2

step2.在虚拟机中配置网络文件系统NFS服务

设置共享目录

运行命令 #gedit /etc/exports 

编辑 nfs 服务的配置文件(注意:第一次打开时该文件是空的),添加以下内容: 

/opt/FriendlyARM/mini2440/root_qtopia    *(rw,sync,no_root_squash) 

其中: 

/opt/FriendlyARM/mini2440/root_qtopia 表示 nfs 共享目录,它可以作为开发板的根文件系统通过 nfs 挂接;所以把这个路径改为你要挂在的根文件系统目录路径 

*  表示所有的客户机都可以挂接此目录 

rw  表示挂接此目录的客户机对该目录有读写的权力 

no_root_squash  表示允许挂接此目录的客户机享有该主机的 root 身份 

通过命令启动和停止 nfs 服务 

在命令行下运行: #/etc/init.d/nfs start 

可以输入以下命令检验 nfs 该服务是否启动

# mount -t nfs localhost:/opt/weidongshan/fs_qtopia /mnt/ 

挂载成功即可进入该目录 cd /mnt,能进入该目录即说明挂接成功。

停止 nfs 服务: #/etc/init.d/nfs stop 

由于我的虚拟机从来都不关机,所以我也不用设置nfs服务开机启动,反正用于是开着的。

step3.设置开发发板uboot中的系统启动参数

重启系统,按电脑的空格键,让系统停在uboot中

[s] Set the boot parameters

[s] Set parameter 

输入参数 Name:bootargs

输入参数 Value:noinitrd console=ttySAC0 root=/dev/nfs init=/linuxrc nfsroot=192.168.1.180:/opt/weidongshan/fs_qtopia ip=192.168.1.17:192.168.1.180:192.168.1.1:255.255.255.0:mini2440:eth0:

退出设置

[]     把参数写到Flash,这样每次开机内核都会自动挂接NFS启动,如果NFS不存在,则会挂载本地根文件系统。

[b] reboot the system

 

0 0
原创粉丝点击