PowerPC平台Linux的移植(三)
如果你想使用ram disk,那么用以下命令进行编译:make zImage.initrd否则用以下命令:make以前编译2.4内核的时候之前都要用make dep 命令保证编译内核时所有的依赖,例如头文件,都存在。不过对于2.6来讲已经不需要了,直接一个make命令把make dep和make zImage的事请就做了。如果你之前编译过,想重新编译的话,最好用一下make clean,它能够去除所有的object文件以及一些别的遗留文件。当然你也可以用make mrproper,这个比make clean清理得更加彻底,不过小心你的.config文件了,它会一起删除的,所以还是首先备份一下,或者就用make clean吧。现在我们是第一次编译,所以还不用考虑这些。为了保险,我们使用第二组指令来进行编译。时间蛮长的,如果一切顺利,编译出来的内核会放在 arch/ppc/boot/images/目录下,可能叫zImage.elf或者zImage.initrd.elf,用目前这种编译方式编译的是 zImage.elf。理论上讲,完毕之后就可以把这个执行文件拷贝到EDK工程目录下,并进入创建ACE文件的步骤了。但是,在上面的讲解中,我们并没有使用内核模块,而在进一步应用中,很可能有一些内核选项是要以模块形式编译进去的,此时,接下来的工作就是建立及安装模块,用命令make modulesmake modules_install来编译,成功后,系统会在/lib/modules目录下生成一个按你所编译内核的版本号命名的子目录,里面存放着新内核的所有可加载模块。将来要使用时用insmod命令进行加载即可。目前的的Linux 2.6x版本内核是自动解决依赖关系,所以暂时不用关注depmod了。CF的配置CF卡分区其实不分区也可以,但是我们在这里分区的原因是最大限度模拟正常的Linux,想想,一般的人安装Linux系统的时候是怎么分区的?/根分区,swap分区以及/boot分区。ok,我们在这里也给我们的CF卡分三个区。暂时先以我这里的8G CF卡举例子。将CF卡插到系统上,使用命令mount | column -t看看CF卡对应的mount目录的dev名称是是什么。我计算机上的信息如图所示:Screenshot-coloum@windstorm: ~.png可以看出,CF卡在我这里是/dev/sdc。然后我们使用fdisk将其分区:fdisk /dev/sdc具体的分区过程我就不讲了,如果你觉得不习惯fdisk的命令行操作形式,也可以使用gparted这个图形化分区工具,总之,最后要分成的效果是:1. ParTITIon 1 - Type = FAT16 (6) - Size = 32MB (只需要能够放得下你的system.ace文件即可)2. ParTITIon 2 - Type = Linux Swap (82) - Size = 256MB (这个其实看情况了,不分swap也可以)3. Partition 3 - Type = Linux (83) - Size = ??? (CF还剩多少就分多少,用来存放根文件系统)可以看出,上面三个区分别对应常说的/boot,/swap和/三个分区。创建CF卡文件系统Xilinx的SystemACE控制器比较特殊,并不是说随便一个CF卡插上去就可以使用的,必须专门为CF卡创建特定文件系统。能够完成这个任务的是mkdosfs这个软件。用下面的命令对CF卡进行操作即可:mkdosfs -s 8 -F 16 -R 1 F:-s后面跟的数字表示每簇扇区数目,一般是2的整数次方。下面是FAT16文件格式通常容量对应的每簇扇区数目。16–128MB 4128–256MB 8256–512MB 16512–1024MB 321024–2048MB 64不过我发现这个-s后面的数字其实可以大一些,比如我用64,除了在执行命令的时候会出现一个warningWARNING: Not enough clusters for a 16 bit FAT! The filesystem will bemisinterpreted as having a 12 bit FAT without mount option "fat=16″.其它没有什么问题。-F表示FAT的大小,这里是FAT16,-R的值这里不要改动,保留扇区的数目,老问题了,有兴趣的可以去网上搜索。最后一个F:是在 windows下的CF卡卷标,根据你自己的系统来调整它。如果是Linux环境,将这个卷表换成是/dev/fdx这种形式。具体设备名自行查询。下载内核文件OK,到这里,我假设你已经编译成功,产生了你所需要的zImage文件,好,现在该怎么用这个文件呢?有三种方式:1 把该文件和硬件bit流合成ace文件,放到flash上面自行加载2 通过自己编写的bootloader将flash上面的elf文件加载到内部ram中3 通过xmd的dow命令来下载elf文件第二种方法我还没有研究,嘿嘿,所以就先不介绍了,要是哪位朋友对bootloader比较熟的,恳请指教一下~~好了,首先详细介绍一下很多人使用的ace方式。创建ACE我们可以通过XMD工具来进行ACE文件的创建,命令
- PowerPC平台Linux的移植(一)(02-11)
- PowerPC平台Linux的移植(二)(02-11)
- 工控机在IC卡加油工程中的应用(05-13)
- 联网汽车为什么选择Linux开源平台?(07-10)
- 多网络和Linux代理的Android无线远程控制系统(02-02)
- 基于嵌入式Linux的家居监控系统设计(02-22)