0. 序言
为什么要编译内核?
一些外设的支持,需要增加外设驱动后更新内核实现。
PC操作系统:Ubuntu 20.04
内核版本:linux-3.10.tar.gz
交叉工具链:gcc-4.9.3-64-gnu.tar.gz
1. 编译龙芯派内核
-
龙芯派Kernel下载
下载网址:http://ftp.loongnix.cn/embedd/ls2k/
选择的内核为:linux-3.10.tar.gz
在上位机解压Kernel代码压缩包,在~目录下
mkdir -p loongson cd loongson tar -zxvf 压缩包名 -C ~/loongson
复制龙芯派的内核配置文件到当前目录(注意,是“.config”,记得输入开头的点号)
sudo cp arch/mips/configs/loongson2k1000_defconfig .config
-
引入已经下载好的交叉编译工具链
下载网址:http://ftp.loongnix.cn/embedd/ls3a/toolchain/
我选择的型号为:gcc-4.9.3-64-gnu.tar.gz
将打包文件夹进行解压:
tar -xvf gcc-4.9.3-64-gnu.tar.gz
然后进入到解压的目录下:
cd ./opt/gcc-4.9.3-64-gnu/bin pwd ls
可以通过ls查看该文件夹下有哪些文件,以怎样的方式,命名。
将pwd生成的”路径“进行复制,替换以下命令的路径,用来添加环境变量。
export PATH=路径:$PATH export PATH=/home/caistrong/loongson/opt/gcc-4.9.3-64-gnu/bin:$PATH
-
打开图形界面
首先切换到内核所下载的文件夹,然后输入以下命令
cd ~/loongson/linux-3.10 sudo apt-get install libncurses5-dev make menuconfig ARCH=mips
-
参数调整
具体调整方式可查看《用芯探核 龙芯派开发实战》P122或https://www.bilibili.com/video/BV1DJ411e7Se?spm_id_from=333.880.my_history.page.click&vd_source=427133ec405e7923eb9d5bbc83d58d1e
参数多了貌似会提示编译失败。 -
开始编译
方法一:
在命令行中依次输入以下命令:
make vmlinuz CROSS_COMPILE=mips64el-linux- ARCH=mips DEBUG=-g mips64el-linux-strip vmlinuz
第一行:CROSS_COMPILE中文件的参数就是/home/caistrong/loongson/opt/gcc-4.9.3-64-gnu/bin文件夹文件的前缀。
第二行:mips64el-linux-strip为交叉编译工具链的一个工具,让它再编译vmlinuz
方法二:
建立一个脚本文件进行编译
touch cmd.sh vim cmd.sh
cmd.sh的内容
#!/bin/bash export PATH=/home/caistrong/loongson/opt/gcc-4.9.3-64-gnu/bin:$PATH make vmlinuz CROSS_COMPILE=mips64el-linux- ARCH=mips DEBUG=-g -j4 mips64el-linux-strip vmlinuz
运行脚本
chmod 777 cmd.sh sudo ./cmd.sh
-
将生成的vmlinuz文件拷贝到U盘
sudo cp vmlinuz /media/caistrong/382E-C0A8/
后面的路径是我U盘挂在的位置
-
将U盘插入龙芯派
插入U盘之后,串口么打开失败,命令我也开始看不懂了,勉强做下去还是失败了
参考链接
文章评论