龙芯2K1000开发板编译Linux内核

发布时间:2022-1-10 11:55    发布者:就是塔塔
龙芯目前主推的内核版本有 linux‐2.6.32 和 linux‐3.10 两个版本,其中 linux‐2.6.32 主要用于龙芯1号CPU、龙芯 2H 和龙芯 3A , linux‐3.10 主要用于龙芯 3A2000和2K以上的 CPU 版本。
LS2K1000使用的内核版本为linux‐3.10。交叉编译器版本为gcc‐4.9.3‐64‐gnu。
1、安装Linux内核交叉编译器
编译Linux内核使用的是“gcc-4.9.3-64-gnu.tar.gz”,大家可以在迅为龙芯开发板资料中找到,位置:LS2K1000开发板资料\02_开发及烧写工具
将编译器拷贝到Ubuntu的任意目录下,接着使用命令sudo tar -xvf gcc-4.9.3-64-gnu.tar.gz -C /”解压编译器,如下图所示:
图片1.png
注意:解压命令必须为这个命令,目录是保证脚本里面的交叉编译器环境变量的路径跟编译器实际解压的路径一致。因为我们在编译的时候使用的是均为绝对路径并已经在编译脚本中写好,大家只要按照这个路径解压即可,也就不用给编译器设置环境变量了。解压完成后会在/opt下得到解压生成的编译器文件夹,如下图所示:
图片2.png
2、编译内核
内核镜像分为俩种,一种是带ramdisk文件系统的内核镜像,一种是不带ramdisk文件系统的镜像。下面我们就一起来看一下要怎么编译这俩种内核镜像。编译带文件系统的内核镜像和编译不带文件系统的内核镜像,他们的内核源码都是一样的。
内核源码包位置:LS2K1000开发板资料\04_pmon&Linux内核源码
2.1、编译不带文件系统内核
首先,我们将龙芯2k1000的内核源码拷贝到Ubuntu的任意目录下,使用命令sudo tar -xf linux-3.10-loongsonpai_20210601.tar.gz 解压源码包得到内核源码并使用命令cd linux-3.10-loongsonpai进到内核源码下,注:源码日期大家使用最新的即可。如下图所示:
图片3.png
在Linux内核源码根目录下有配置文件“config-ls2k”,该文件就是不带文件系统的内核配置文件,如下图所示:
图片4.png
接着我们输入“sudo cp config-ls2k .config”命令生成内核配置文件“.config”,运行结果如下图所示:
图片5.png
配置好.config文件以后,我们就可以直接输入命令sudo ./create.sh执行create.sh编译脚本来编译内核了,如下图所示:
图片6.png
编译过程如下:
图片7.png
编译完成后,会在Linux源码根目录下生成“vmlinuz”内核镜像文件,如下图所示:
图片8.png
至此,不带ramdisk的内核镜像编译完成。
2.2、编译带文件系统内核
1、准备ramdisk文件系统源码
编译带文件系统的内核,首先需要准备一个制作好的ramdisk文件系统,可以使用busybox或者buildroot来制作。这里已经给大家制作好了,位置:LS2K1000开发板资料\06_文件系统源码\3_ramdisk源码
然后我们把这个文件系统源码拷贝到和内核源码所在的同一级目录下,注意:该文件系统压缩包必须要和linux的内核源码放在同一个目录下面目录下,拷贝完成后如下图所示:
图片9.png
然后输入“sudo tar -xvf ramdisk_2.tar.gz”命令,解压文件系统,解压完成后会生成“ramdisk_2”文件夹,如下图所示:
图片10.png
2、生成config配置文件
我们进入到Linux内核源码目录下,Linux内核源码根目录下有配置文件“config-ls2k_ramdisk”,该文件就是带最小文件系统的内核配置文件,如下图所示:
图片11.png
我们输入“sudo cp config-ls2k_ramdisk .config”命令生成内核配置文件“.config”,运行结果如下图所示:
图片12.png
3、配置ramdisk路径
准备好ramdisk文件系统源码以后,我们记住他的路径,作者这里的路径为/home/topeet/LS2K1000/kernel/ramdisk_2,后面我们要用到这个路径。
在进行配置内核的操作之前,我们需要先安装图像化配置依赖工具Ncurses如果这里大家安装过了则不必再次安装,安装命令:sudo apt‐get install libncurses5‐dev
接着我们进到内核源码所在的目录,输入命令sudo ./mymake menuconfig打开内核的图像化配置界面,如下图所示:
图片13.png
打开成功如下图所示:
图片14.png
接着我们进到General setup 选项里面,保证Initial RAM filesystem and RAM disk (initramfs/initrd) support选项是勾选上的,然后在Initramfs source file(s)填入ramdisk文件系统所在的绝对路径,作者这里的路径为/home/topeet/LS2K1000/kernel/ramdisk_2。设置完成后如下图所示:
图片15.png
设置完成后,我们保存退出图形化界面。如下图所示:
图片16.png
4.1、编译内核镜像
在内核源码下,我们输入“sudo ./create.sh”命令,开始编译Linux内核,如下图所示:
图片17.png
编译完成后,会在Linux源码根目录下生成“vmlinuz”镜像文件,我们输入命令ls  -alh  vmlinuz 来查看的生成的带文件系统的内核镜像的大小,如果大小大于10M说明已经编译成功了,如下图所示:
图片18.png
至此,编译带文件系统的内核就编译完成了。

本文地址:https://www.eechina.com/thread-782380-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 无线充电基础知识及应用培训教程2
  • PIC18-Q71系列MCU概述
  • 了解一下Microchip强大的PIC18-Q24 MCU系列
  • 5分钟详解定时器/计数器E和波形扩展!
  • 贸泽电子(Mouser)专区
关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表