嵌入式Linux学习笔记(1) 开发环境搭建

整理最近的嵌入式Linux学习笔记,巩固知识,分享提高。
首先说明我使用的学习环境,因为一开始是按照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
来自为知笔记(Wiz)
分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/%e5%b5%8c%e5%85%a5%e5%bc%8flinux%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b01-%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba%e5%92%8cled%e9%a9%b1%e5%8a%a8/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名