Beagleboard上运行ARM/MeeGo的整理
[2] Beagleboard上运行ARM/MeeGo的整理
[3] Beagleboard上运行ARM/MeeGo的整理
[4] Beagleboard上运行ARM/MeeGo的整理
编译内核和内核模块
编译内核和内核模块,你需要为ARM平台进行交叉编译.通过安装 Codesourcery ARM toolchain你将获得一个最近的ARM编译工具链.
下载那个包,解压到任意一个地方,接着将这个解压的路径加到系统的PATH环境变量中然后编译内核.
下载和编译内核
一旦编译器和连接器被下载,你就可以开始下载和编译内核了.一个简单的获取内核的途径是使用Beagleboard kernel scripts.确认你的系统中安装有bazaar源码管理工具(bzr),然后输入以下命令:
bzr branch lp:~beagleboard-kernel/+junk/2.6-stable
对于beagleboard XM来说,你需要一个最新的开发内核.使用下列的命令来下载编译这个内核的工具:
bzr branch lp:~beagleboard-kernel/+junk/2.6.35-devel
在结果目录中拷贝system.sh文件.仿照system.sh调整指定编译器的那一行.如果你的用户名是"test"并且你使用的是codesourcery编译器,那么这行命令大概看起来就像这样:
CC=/home/test/arm-2010q1/bin/arm-none-linux-gnueabi
如果你使用的是2.6.35-devel这个版本,那么你也将不得不启用git命令行并且在你的当前path中设置LINUX_GIT变量指向一个2.6-stable目录.
你可以注释You can comment the git line once you've successfully pulled the kernel.
备注:
一旦你编辑完成system.sh文件,cd进入内核目录(以2.6-stable为例)并运行build_kernel.sh脚本;
./build_kernel.sh
这个脚本将会下载和编译内核.
定制内核配置文件
在上一个脚本执行时,在屏幕中将显示内核配置界面.你可以按两次ESC键来退出界面然后继续编译缺省配置的内核.
然而,你应该会想要定制你的内核
减少预留的视频内存
特别是当你试图在RevB版本的板子上使用你的内核时,你应该知道你的屏幕是800x600或者更低,然而你可以通过减少视频的RAM缓存来保证有12MB的RAM.具体选项如下:
Device Drivers ---> Graphics Support ---> OMAP2/3 Display Subsystem support (EXPERIMENTAL) ---> VRAM size (MB)
设置为2MB.
注意如果必须调整boot.cmd或者boot.scr的设置的话要特别小心.如果你的boot.cmd包含一些显存设置的话,你需要去调整它以映射你新的视频RAM的大小(别超过了!).在我的设置中,我使用了如下的命令行:
vram '2M omapfb.vram=0:2M,1:0M,2:0M'
这样就将整个2M的空间放到了第一个视频缓存中,而第二个和第三个缓存不予分配.
如果你的boot.cmd中不包含任何的视频内存相关的内容,那也是可以的.
其他内核版本
如果你试图使用(2.6-)内核去编译一个不同的版本,请更新你获取到的脚本,如下:
bzr up -r tag:<tagname>
你能看到一个如下所示的所有可用标签的列表:
$ bzr tags
[...]
2.6.33.3-x1 78
2.6.33.3-x2 82
2.6.33.4-x3 84
2.6.33.5-x3 85
2.6.33.x-end 85
2.6.34-x1 90
2.6.34.1-x2 96
$
(标签名与内核发布或补丁的级别相一致)