这是用于Joggler移植通用Linux的文件覆盖包,其中包括以下内容:
1、2.6.37.2版内核,基于Meego内核修改,包含config文件,存放于/boot目录下
2、上述内核的kmod模块,存放于/lib/modules目录下
3、Emgd1.8_2001版驱动,存放与/usr目录下
4、适用与Joggler的Emgd配置文件,存放与/etc/X11目录下
如果你对linux引导部分了解比较多,看看文件结构应该就知道如何使用了,如果不是很了解,我以移植slitaz作为例子作一个说明:
就像大家以前了解的,Joggler首先加载的是grub.efi引导文件,当efi加载了grub.cfg中指定的kernel之后,kernel开始接管系统,并且将grub.cfg中intrd部分指定的微型文件系统加载到内存(也有可能是完整的文件系统,比如slitaz这类加载进ram的OS),再通过执行intrd中的脚本来引导系统分区中的其他文件。
所以我们首先要做的,就是保证joggler能够加载efi引导文件。具体内置和外置,以及boot.nsh文件和startup.nsh文件的设置我就不说了,里面只是简单的命令脚本,只要第一分区为FAT格式(引导分区),并且存在grub.efi(或者其他的引导efi),grub.cfg,boot.nsh,startup.nsh这部分就算完成。
然后我们希望grub.efi能够引导我们为joggler定制的内核,所以我们应该将通用内核包中boot文件夹下的vmlinuz-2.6.37.2-mijuu-joggler文件复制到引导分区里,然后将文件名和路径加入grub.cfg,比如这样
set timeout=0
menuentry “Generic Linux” {
linux /vmlinuz-2.6.37.2-mijuu-joggler rw root=/dev/null rootdelay=3 acpi=force idle=halt autologin
initrd /rootfs.gz
}
其中linux行就是你内核存放的路径与文件名,此行后面都是内核加载的参数,比如root文件存放的分区,以及一些其他内核会调用的参数。initrd行则是前面说的微型文件系统
OK,现在joggler已经能启动kernel并且去寻找initrd来启动系统了,需要的只是按slitaz的定制说明,将slitaz提供的原始rootfs.gz解压开,然后将我的通用内核包文件覆盖进去,再打包回rootfs.gz并且放在引导分区,slitaz的joggler版本就移植好了。
写到一半的时候突然发现,要是没有经常折腾linux安装的朋友可能还是没法明白这些步骤是做什么用的,而经常折腾的也不用我说了…… 总之聊胜于无吧,有什么不明白的再跟贴问好了。
下载地址 http://www.mporting.com/download/
之后将整理放出Joggler与官方开发源同步的Meego定制方法,以及Joggler的Android源代码patch.