快速使用ubuntu14对龙芯开发板内核编译
[tag type="primary"]内核交叉编译步骤[/tag]
(针对不同的开发板使用交叉编译器不相同,参考前面提到的根据时间段和开发板进行选择):
1、下载源码,进入内核源码目录,以linux-2.6.32-el6为例:
git clone git://cgit.loongnix.org/kernel/linux-2.6.32-el6.git
cd linux-2.6.32-el6
2、拷贝对应的配置文件,然后进行配置,主要是读入.config中的配置信息,生成内核配置图形界面,可以根据需要手动的对kernel进行裁剪:
如果编译龙芯3系列板卡,kernel则按照下面方式拷贝配置文件:
cp arch/mips/configs/loongson3_defconfig .config
如果龙芯最新的3A2000系列板卡,kernel则按照下面方式拷贝配置文件:
cp arch/mips/configs/loongson3a2000_defconfig .config
如果龙芯2Hsoc板卡,kernel则按照下面方式拷贝配置文件:
cp arch/mips/configs/loongson2h_defconfig .config
选择完毕,可以执行下面命令进行内核配置:
make menuconfig ARCH=mips CROSS_COMPILE=mips64el-linux- //如果执行出错,请根据出错提示,yum update最新的包
可能会有的错误提示:
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1
错误提示: 系统缺少ncurses libraries。解决办法:
yum install ncurses-devel 或者 yum update ncurses-devel
3、编译内核,成功后会在当前目录下生成vmlinux.32(32位)、vmlinux(64位,我们使用的是vmlinux)
make ARCH=mips CROSS_COMPILE=mips64el-redhat-linux- -j 16
提示:在服务器上,-j参数可以大幅度提高编译速度
4、模块安装,默认会把编译的模块安装到/lib/modules/,由于我们是在x86服务器上交叉编译龙芯的kernel源码,所以建议创建一个新目录,然后将模块编译到自己指定的目录
mkdir ~/mymodules
make modules_install INSTALL_MOD_PATH=~/mymodules ARCH=mips CROSS_COMPILE=mips64el-redhat-linux-
注:编译3.10内核和2.6.32内核步骤相同,只是使用配置文件不同。3.10内核在3a1000板卡和3a2000板卡使用如下通用配置文件:
cp arch/mips/configs/loongson3_defconfig .config
5.上传内核文件
对于编译出来的内核,需要使用下面的3个文件:
vmlinuz(或者vmlinux)
mymodules 目录
System.map
把这些文件都上传到龙芯机器上。
把/dev/sda1挂载到 /mnt 下,
# mount /dev/sda1 /mnt
把内核文件放置到相应目录下:
# cp vmlinuz /mnt
# cp System.map /mnt/System.map-3.10.0+
# cp mymodules/lib/* /lib -rf
6.修改操作系统的引导菜单
[scode type="red"]这一步非常容易出错,注意:
如果硬盘有多个分区,一定要修改第一个分区(sda1)下的boot.cfg
如果是昆仑固件,则是改grub.cfg
修改boot.cfg时,为了防止写错,一般是保留原来的所有title,复制出一个新的title进行修改。
[/scode]
这样即使新加的title写的不正确,仍然可以选择原来的title正常进入系统。
boot.cfg的典型内容(只改kernel一行):
title Loongnix
kernel (wd0,0)/vmlinuz
initrd (wd0,0)/initramfs-3.10.84-17.fc21.loongson.mips64el.img
args root=UUID=f8cc9919-415f-427d-8cdd-1feae1fdf55e ro rhgb quiet loglevel=0 LANG=zh_CN.UTF-8
grub.cfg也是只改linux一行。
7.重启计算机验证内核
开机的操作系统选择菜单,选择新添加的一项
验证确实启动的是新内核:
# uname -a
看内核的编译时间,应该是最新的时间
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »