1 构建嵌入式开发平台
1.嵌入式linux 软件系统由bootloader、kernel、root filesystem 构成,如下:
Bootloader(一次固化) + 内核(多次更新) + 根文件系统制作
2.资料拷贝:
资料存放路径(24 机)如下:
2.6.35.7_tools
将上面路径下用到的文件拷到自己虚拟机中,存放在自建目录下:
例如(推荐):/home/edu/share/linux_platform2.6.35.7/
注意:以上资料一定要拷贝放入linux 虚拟机目录下,且目录有一切权限,
一定不能放到/mnt/hgfs 所映射的磁盘中
1.1 安装交叉编译器arm-linux-gcc-4.3.2(如果4.3.2 已经安装不必做此步骤)
Step1:进入虚拟机中找到你上步自建的目录中,找到arm-linux-gcc-4.3.2.bz2 文件:
# cd /home/edu/share/linux_platform2.6.35.7/
Step2:查看自己的虚拟机是否安装交叉编译工具链:
#echo $PATH
Step3:安装以下交叉编译工具:(4.3.2: 用于交叉编译各种镜像)
#mkdir –p /usr/local/arm (如果有这个目录就不用建了)
#tar jxvf arm-linux-gcc-4.3.2.bz2 –C /usr/local/arm
其中4.3.2 需要假加入环境变量
#sudo vim ~/.bashrc (在最后加入下面这行)
export PATH=/usr/local/arm/4.3.2/bin:$PATH
#source ~/.bashrc (使环境变量设置立即生效)
1.2 配置编译u-boot
Step1:在虚拟机中解压unsp210_u-boot.tar.bz2 文件
#tar jxvf unsp210_u-boot.tar.bz2
Step2:进入解压后的文件目录中
#cd unsp210_u-boot
Step3:编译前清除旧的配置文件
#make distclean
Step4:生成新的配置文件
#make unsp210_config
Step5:编译生成u-boot 可执行文件
#make
在当前目录下会生成一个u-boot.bin 的文件
将tools 目录下生成的mkimage 文件拷贝到/bin 目录中,后面用于制作u-boot 所需格式
的内核
#cp u-boot/tools/mkimage /bin (这一步也可以不做,主要用于生成uImage)
1.3 配置编译内核
Step1:在虚拟机中解压unsp210_linux_2.6.35.tar.gz 文件
#tar zxvf unsp210_linux_2.6.35.tar.gz
Step2:进入解压后的文件目录
#cd unsp210_linux_2.6.35
Step3:清除旧的内核配置文件
#make distclean
Step4:重命名内核配置文件
#cp unsp210_config_20121211 .config
Step5:配置内核
#make menuconfig
注意:如果执行“make menuconfig”提示找不到“ncurses 库”,那么执行更新命令:
sudo apt-get install libncurses5-dev
由于采用的是配置好的脚本,因此对配置界面不用做任何修改,直接保存退出即可。
Step6:生成内核镜像文件
#make 或make zImage
在/arch/arm/boot 下会生成zImage 文件
1.4 yaffs 根文件系统的制作
yaffs 格式的根文件系统是可读可写的文件系统,没有经过压缩
Step1:解压根文件系统文件
#tar zxvf rootfs_qt210_QT4.7.0_20121210.tar.gz
Step2:更改文件夹的名称
#mv rootfs_qt210_QT4.7.0_20121210 rootfs
Step3:给mkyaffs2image 添加可执行权限
#chmod +x mkyaffs2image
Step4:拷贝mkyaffs2image 文件到/bin 下
#sudo cp mkyaffs2image /bin
Step5:生成根文件系统镜像
#mkyaffs2image rootfs rootfs.yaffs
1.5 镜像烧写方法(两种)
1.5.1 使用网络的方法进行烧写
Step1:首先保证我们的网线连接正确,电源线,串口线同样准备好。
Step2:上电使用我们的开发板进入U-boot 命令行模式。
Step3:这时输入命令:print 会有下面的提示信息:
Step4:这时需要我们进行设置"serverip(windows‘s IP)" and "ipaddr(开发办的IP)"
Step5:分别使用的命令是:setenv serverip 172.20.223.XX(windows IP) 或10.221.X.XX(windows IP)
setenv ipaddr 172.20.223.XX(开发板的IP)或10.221.X.XX(开发板的IP)
Step6:此时需要保存刚才的设置:使用命令进行设置:saveenv
Step7:使用ping 命令查看两者之间的网络是否连通:(可在开发板上ping PC 机)
#ping *.*.*.(windows 的IP 地址)
Step8:这时需要我们打开tftpd32.exe 文件
路径(北京):
\\172.20.220.24\软件共享\00_嵌入式课程所需软件\1_Linux 基础\board_update\TFTP+DHCP_Server
路径(深圳):
\\10.221.0.24\00_嵌入式课程所需软件\1_Linux 基础\board_update\TFTP+DHCP_Server
如下图所示:
并指定相应的文件路径:
指定的文件路径为:三个镜像的存在的路径。
Step8:然后输入命令:update 会有下面的提示信息:
Step9: 如果烧写U-boot 然后输入命令:update boot u-boot.bin
如果烧写kernel 然后输入命令:update image zImage
如果烧写rootfs 然后输入命令:update yaffs rootfs.yaffs
如果烧写三个镜像然后输入命令:update image
1.5.2 使用USB 方式进行烧写
先拷贝以下路径的fastboot 文件夹到本机:
路径(北京):\\172.20.220.24\软件共享\00_嵌入式课程所需软件\1_Linux 基础\board_update\fastboot
路径(深圳):\\10.221.0.24\00_嵌入式课程所需软件\1_Linux 基础\board_update\fastboot
执行步骤:
Step1:首先连接上USB 线,串口线,电源线
Step2:然后给开发板上电,并进入U-boot 命令行模式
Step3:在U-boot 命令行中输入fastboot 命令后点击回车键
Step4:桌面上会自动弹出对话框,提示安装驱动,如下图:
Step5:选择从列表或指定位置安装,单击下一步,出现下图:
Step6:选择在搜索中包括这个位置,单击浏览按钮,选择路径,如下图:
Step7:选择完后点击确定,然后点击下一步,出现下图(此过程可能需要几分钟):
Step8:弹出此对话框时单击确定即可
Step9:安装完成出现下面图片,点击完成即可完成驱动安装
Step10:在fastboot 文件夹中创建文件夹all_image,把刚才制作的三个镜像文件拷贝到all_image 中
【注意】红色方框圈起来的all_image 文件夹中的内容为:
Step11:右键编辑上面文件夹中的"auto_linux.bat"(方框标识的批处理文件),将其内容由
fastboot.exe flash bootloader ../image_linux/u-boot.bin
fastboot.exe flash kernel ../image_linux/zImage
fastboot.exe flash system ../image_linux/rootfs.yaffs
fastboot.exe -w
改为:
fastboot.exe flash bootloader ./all_image/u-boot.bin
fastboot.exe flash kernel ./all_image/zImage
fastboot.exe flash system ./all_image/rootfs.yaffs
fastboot.exe -w
保存关闭
Step12:双击批处理文件"auto_linux.bat",这时会在我们的u-boot 命令行中由串口打印出相关信息