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吧。
make modules来编译,成功后,系统会在/lib/modules目录下生成一个按你所编译内核的版本号命名的子目录,里面存放着新内核的所有可加载模块。将来要使用时用insmod命令进行加载即可。目前的的Linux 2.6x版本内核是自动解决依赖关系,所以暂时不用关注depmod了。
make modules_install
mount | column -t看看CF卡对应的mount目录的dev名称是是什么。我计算机上的信息如图所示:
fdisk /dev/sdc具体的分区过程我就不讲了,如果你觉得不习惯fdisk的命令行操作形式,也可以使用gparted这个图形化分区工具,总之,最后要分成的效果是:
1. Partition 1 - Type = FAT16 (6) - Size = 32MB (只需要能够放得下你的system.ace文件即可)可以看出,上面三个区分别对应常说的/boot,/swap和/三个分区。
2. Partition 2 - Type = Linux Swap (82) - Size = 256MB (这个其实看情况了,不分swap也可以)
3. Partition 3 - Type = Linux (83) - Size = ??? (CF还剩多少就分多少,用来存放根文件系统)
mkdosfs -s 8 -F 16 -R 1 F:-s后面跟的数字表示每簇扇区数目,一般是2的整数次方。下面是FAT16文件格式通常容量对应的每簇扇区数目。
16–128MB 4不过我发现这个-s后面的数字其实可以大一些,比如我用64,除了在执行命令的时候会出现一个warning
128–256MB 8
256–512MB 16
512–1024MB 32
1024–2048MB 64
WARNING: Not enough clusters for a 16 bit FAT! The filesystem will be其它没有什么问题。
misinterpreted as having a 12 bit FAT without mount option “fat=16″.
xmd -tcl genace.tcl -opt genace.optgenace.tcl是存在于xps安装目录下的data/xmd目录下,而genace.opt需要自己创建,内容如下:
-jprog-hw和-elf这两行是需要你根据自己的情况修改的,唯一需要注意的是,如果你的开发环境是Linux系统,则
-board user
-target ppc_hw
-hw implementation/download.bit
-elf zImage.elf
-configdevice devicenr 1 idcode 0×1127e093 irlength 14 partname xc2vp30
-debugdevice devicenr 1 cpunr 1
-ace system.ace
-jprog你只需要告诉EDK板子是ml403就可以了,很多参数都不用自己配置。具体哪些开发板是被xmd直接支持的,可以参考genace.tcl文件。
-board ml403
-hw implementation/download.bit
-elf TestApp_memory/executable.elf
-ace system.ace
Error: Executable TestApp_Memory/executable.elf does not contain start address..我在遇到这个错误之后查了一些资料,并按working harddfen照资料所述的修改办法来修改,都没有作用,最后是在朋友的安装了sp的edk环境中将ACE文件生成成功的。因此,我怀疑可能是edk无 sp的9.1版本的bug。如果你和我一样头疼于sp的下载,还在使用没有sp的环境……恭喜你,或者想办法去下载sp,或者就找安装了sp的机器来生成吧。其实基于windows的sp比较好找,主要是基于Linux的sp太难下了……默哀ing,如果有哪位Linuxer知道有别的方法能够修正这个错误,烦请告知,谢谢了。
loaded at: 00400000 0066D19C这就表示基本内核建立成功了,我们可以接下去创建root文件系统了。呵呵,我认为最艰难的一步已经被你搞定了,恭喜。
board data at: 0066B120 0066B19C
relocated to: 00404060 004040DC
zimage at: 00404ED5 0066A3DD
avail ram: 0066E000 08000000
Linux/PPC load: console=ttyS0,9600 root=/dev/xsysace/disc0/part3 rw
Uncompressing Linux…done.
Now booting the kernel
……..(以下信息省略)
inflate returned FFFFFFFB, error is caused by the size of the uncompressed image这表示你的内核解压缩之后大小超过了你的存储空间,通常这种情况出现在你的存储空间定位于bram上。怎么解决呢?很简单,修改ld,把程序定位到ddr上不就行了~~
Linux/PPC load: console=ttyS0,9600这个时候检查一下
Uncompressing Linux…done.
Now booting the kernel
loaded at: 00400000 005331A0
board data at: 40000000 4000007C
relocated to: 00404084 00404100
zimage at: 00404EB9 00530A50
avail ram: 00534000 00000000
Linux/PPC load: console=ttyS0,9600
Uncompressing Linux…oops… out of memory
pause
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |