Loongson Kernel编译与使用

Loongson Kernel编译与使用

原文:http://wiki.loongnix.org/index.php/Loongson_Kernel%E7%BC%96%E8%AF%91%E4%B8%8E%E4%BD%BF%E7%94%A8




龙芯处理器使用的是开源Linux操作系统,同时结合龙芯处理器的特点进行了移植优化。Kernel源码的编译采用的是交叉编译方式,研发中心目前进行bios与kernel开发的服务器是http://www.loongnix.org/gitweb/。
目前龙芯kernel全部基于git进行管理,下载kernel前需要熟悉一下git版本管理工具的使用,常用命令为git-clone、git-diff、git-status、git-format-patch、git-apply等。

注意:目前龙芯的编译器分为两种:
1.旧编译器:2012-11-26 Meng xiaofu loongson3 serial set baudrate will clear ier register...(不包含次patch)之前的用户和编译龙芯2hsoc kernel的用户使用。编译器下载地址:http://ftp.loongnix.org/toolchain/gcc/release/CROSS_COMPILE/loongson-clean-gcc-4.4.0.tar.gz
2.新编译器:2012-11-26 Meng xiaofu loongson3 serial set baudrate will clear ier register...此patch之后的用户使用:
编译器下载地址http://ftp.loongnix.org/toolchain/gcc/release/CROSS_COMPILE/loongson3-gcc4.4.tar.gz

Kernel的下载网址为:http://www.loongnix.org/gitweb,查看git版本库中源码信息。
kernel源码下载方式为:git clone http://www.loongnix.org/gitweb/linux-loongson-all

新编译器配置方式:将编译器解压到/opt/目录下,执行loongson3-gcc4.4下的path脚本设置相应的环境变量(path 设置了PATH和LD_LIBRARY_PATH 环境变量)

export PATH=/opt/loongson3-gcc4.4/install/bin:$PATH 

export LD_LIBRARY_PATH=/opt/loongson3-gcc4.4/library/mpfr/lib:/opt/loongson3-gcc4.4/library/ppl/lib:
/opt/loongson3-gcc4.4/library/gmp-5.0.1/lib:/opt/loongson3-gcc4.4/library/cloog/lib:
/opt/loongson3-gcc4.4/install/i686-linux/mips64el-linux/lib:/opt/loongson3-gcc4.4/source/gmpmpfr/lib/:$LD_LIBRARY_PATH


测试使用编译器的方法:
1)下载测试小程序:http://ftp.loongnix.org/toolchain/gcc/release/test/gcc-test.tar.gz

 把a.s编译成a.o,然后反汇编后,看ll前面是否有sync,如果有sync,就是使用的新编译器

    mips64el-linux-objdump -D a.o 

2)直接校验编译好的kernel二进制

  mips64el-linux-objdump -d vmlinux > ../v.s在交叉编译环境下用此命令

 用 awk -f count_sync_ll_pair.awk v.s 校验ll前是否都添加了sync,正确的结果如下所示

9400 ll的数量

9400 sync的数量

出现的两个数字应该相同。
count_sync_ll_pair.awk内容如下:

#check if every LL has one SYNC that exactly placing before LL.

#countsync must equal to countll

BEGIN{

before=0;

countll=0;

countsync=0;

}

{

       if($3~/^ll/)

       {

       countll++;

       if(before~/^sync$/)

       {

               countsync++;

       }

       }

       before= $3;

}

END{

       print(countll);

       print(countsync);

}


注意:需要用新下载的编译器里objdump
旧编译器编译方式(针对2012-11-26号之前的龙芯3系列源码及最新的龙芯2Hsoc源码)
GCC下载地址:http://ftp.loongnix.org/toolchain/gcc/release/CROSS_COMPILE/loongson-clean-gcc-4.4.0.tar.gz
将编译器解压到/opt/目录下,执行loongson-clean-gcc-4.4.0下的path脚本设置相应的环境变量。配置完成后下载源码git clone http://www.loongnix.org/gitweb/linux-loongson-all
源码下载后,进入linux-loongson-all,依次执行如下命令:
cd linux-loongson-all
进入linux-loongson-all目录
编译龙芯3系列板卡kernel则按照下面方式拷贝配置文件

cp arch/mips/configs/loongson3_defconfig .config  

编译龙芯2Hsoc板卡kernel则按照下面方式拷贝配置文件

 cp arch/mips/configs/loongson2h_defconfig .config 


 make menuconfig ARCH=mips CROSS_COMPILE=mips64el-linux-


读入.config中的配置信息,生成以下的界面,可以手动的对kernel进行裁剪。例如可以选择把某个选项是编译进kernel,还是编译成模块的形式,也可以裁剪掉该选项等。

 make ARCH=mips CROSS_COMPILE=mips64el-linux- -j8


新编译器编译方式(针对最新的龙芯3系列源码)

GCC下载地址:http://ftp.loongnix.org/toolchain/gcc/release/CROSS_COMPILE/loongson3-gcc4.4.tar.gz将编译器解压到/opt/目录下,执行loongson3-gcc4.4下的path脚本设置相应的环境变量。配置完成后下载源码git clone http://www.loongnix.org/gitweb/linux-loongson-all源码下载后,进入linux-loongson-all,依次执行如下命令:
cd linux-loongson-all
进入linux-loongson-all目录

cp arch/mips/configs/loongson3_defconfig .config  

把龙芯3系列板卡缺省的配置文件拷贝到.config

 make menuconfig ARCH=mips CROSS_COMPILE=mips64el-linux-


读入.config中的配置信息,生成以下的界面,可以手动的对kernel进行裁剪。例如可以选择把某个选项是编译进kernel,还是编译成模块的形式,也可以裁剪掉该选项等。

 make ARCH=mips CROSS_COMPILE=mips64el-linux- -j8


编译成功后,会在当前目录下生成vmlinux.32(32位)、vmlinux(64位),接下来把vmlinux.32拷贝到硬盘、或者服务器的/tftpboot目录就可以进行测试了。
make modules_install
执行该命令会把编译的模块安装到/lib/modules/,由于我们是在x86服务器上交叉编译龙芯的kernel源码,所以不要执行该命令。可以创建一个目录,然后执行下面命令,就可以把编译的模块安装到自己指定的目录。
mkdir ~/mymodules
make modules_install INSTALL_MOD_PATH=~/mymodules

gcc编译器下载地址: http://ftp.loongnix.org/toolchain/gcc/release/CROSS_COMPILE/loongson3-gcc4.4.tar.gz
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值