在文件/etc/apt/sources.list 添加源
http://dev.lemote.com/debian lenny main contrib nonfree
http://dev.lemote.com/debianloongson loongson main
安装编译工具:
aptget install gcc
下载内核源码
git clone git://dev.lemote.com/linux_loongson.git #将 git 仓库克隆下来
git checkout origin/linux2.6.27.1lemote –b linux2.6.27.1lemote #使用 2.6.27.1 分支源码
使用默认配置编译
cp arch/mips/configs/ls2f_notebook_config .config #使用 yeeloong 的默认配置
cp arch/mips/configs/ls2f_fuloong_defconfig .config #如果为 fuloong2f 编译内核请使用这个配
置。
读入.config中的配置信息,生成以下的界面,可以手动的对kernel进行裁剪。例如可以选择把某个选项是编译进kernel,还是编译成模块的形式,也可以裁剪掉该选项等。
make CROSS_COMPILE=/home/liuqi/toolchain/gcc-cross-4.4/install/bin/mips64el-linux- (编译器路径)
交叉编译器下载地址:gcc编译器下载地址:http://www.loongson.cn/dev/ftp/toolchain/gcc/gcc4.4forKernel.tgz
在编译的过程中出错,第一个就是unrecognized option '-mfix-loongson2f-nop'
这个bug loongson已经解决了,用http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5636919b5c909fee54a6ef5226475ecae012ad02
地址处的5个文件替换原目录中文件
之后出现,undefined 的符号,修改delay.h , 在最后添加 #ifdef __SMP__
#define __udelay_val cpu_data[smp_processor_id()].udelay_val
#else
#define __udelay_val loops_per_sec
#endif
之后出现undefined symbol "loops_per_sec",在delay.h开头定义 unsigned long loops_per_sec
之后编译成功
make modules_install
执行该命令会把编译的模块安装到/usr/lib/modules/,由于我们是在x86服务器上交叉编译龙芯的kernel源码,所以不要执行该命令。可以创建一个目录,然后执行下面命令,就可以把编译的模块安装到自己指定的目录。
mkdir ~/mymodules
make modules_install INSTALL_MOD_PATH=~/mymodules