要在OMAP3530上运行Linux,首先要知道如何启动OMAP3530,并且将MLO,XDLR,UBOOT,UImage以及文件系统等镜像程序下载到OMAP3530的芯片中去。
OMAP3530提供了两种启动方式,NAND FLASH启动和SD卡启动。对于第一次烧写程序,在没有JTAG的情况下,我们采用了SD卡启动的方式较为方便。
Linux下的SD启动和WINCE下的SD卡启动大为不同。启动WINCE的SD卡直接用FAT32格式化就可以了,而启动Linux的SD卡需要格式化分区成两个区:FAT32区和EXT3文件系统区(Linux)。第一个分区作为系统引导区,包含了MLO(引导XDLR),XLDR(引导UBOOT),UBOOT(引导UImage Linux系统镜像)UImage,RamDisk;第二个分区用于存放文件系统。所以不仅要在Windows下格式化,还要在Linux下格式化分区。
1)言归正传,首先在Windows下使用FAT32格式化整个SD卡,SD卡的大小尽量大些,我用的512MB。(请不要使用快速格式化)
2)启动Linux,卸载掉Windows下的SD卡。在Linux下加载,最好是用读卡器(虚拟机下)。
加载成功后,可以看到你的SD卡。
3)查看文件系统信息和SD卡的挂载点
输入命令: dmesg|tail
输入命令:df -h
从上面的信息来看,该SD的文件系统是 /dev/sdb1和/dev/sdb2,挂载点为/media/LABEL1和/media/LABEL2。
这里的参数会根据你的自身系统环境而定,产生细节的不同。比如你的显示是 /dev/sdc1, 挂载点位 /media/disk等等。
4)卸载SD卡
在格式化SD卡之前需要卸载SD卡,输入命令:umount /media/LABEL1和umount /media/LABEL2,或者直接在图形化界面中卸载。
5)格式化SD卡
输入命令:sudo fdisk /dev/sdb(如果你的文件系统显示为 /dev/sdc,就替换为/dev/sdc)。
从上面的信息看,当前的SD卡总共有501MB,501219328bytes,255个heads,63个sectors/track,60个cylindes
并且有两个分区(这是我之前分好的,这些信息会根据自己的情况而定)。
8) 删除所有的SD卡分区
输入命令 d
9) 如果SD卡不是255 heads,63 sectors/track,按照以下步骤建立扇区。
输入命令扩展命令x,然后输入m,输出扩展命令列表。
然后输入命令 h,改变heads = 255
接着输入命令 s,改变sectors/track = 63
输入命令 c,计算出cylinders = (SD卡的字节数目)/255/63/512 = 501219328bytes/255/63/512 = 60.936445689,这里取整数60.
输入命令 r,返回普通命令页面。
输入命令 p,显示SD卡信息
10)建立两个分区FAT32和EXT3,按照如下图示输入,首先建立第一个分区,其中空白区命令表示ENTER键
改变分区的系统ID,输入命令t,并且选择第一分区,输入分区类型码c(FAT32)。
激活第一分区的bootable标志,输入命令a,选择第一分区
到此,FAT32和EXT3分区建立完毕,输入命令p,输出分区信息:
11)输入命令w,将分区信息写入到SD卡并推出格式化菜单
到此创建Linux的启动SD卡完成,需要注意的一点是,有时需要重新再Windows下再次使用FAT32格式化第一个引导分区LABEL1,才能成功引导Linux。(请不要使用快速格式化)