久久派环境与内核
开始在不熟悉的平台上捣鼓陌生的设备,龙芯久久派WiFi版,在配置完环境后把步骤记录下来,为了方便以后重装系统什么的再搭建环境。
一、基础工具
基础工具包括Git、Vim和CMake。
Git
如果您想通过二进制安装程序在 Linux 上安装基本的 Git 工具,通常可以通过发行版附带的包管理工具进行安装。如果您使用基于 Debian 的发行版(例如 Ubuntu),请尝试apt:
1 |
|
由于我们要用到的仓库使用了LFS(Large File Storage),所以我们需要安装一下,不然会出现克隆下来的大文件只有几百字节的情况,那些文件都只是LFS指针。
1 |
|
使用$ git lfs install
命令可以查看Git LFS是否安装成功,如果正确安装,则会提示Git LFS initialized.
。
Vim
1 |
|
CMake
1 |
|
这条命令安装了以下工具:
1. cmake-gui:CMake的图形用户界面,用于配置和生成构建系统。
2. libncurses-dev:ncurses库的开发文件,用于终端文本界面的开发。
3. bison:GNU的语法分析器生成器,用于解析文本输入。
4. flex:快速词法分析器生成器,通常与bison一起使用。
5. make:GNU make工具,用于自动化构建过程。
6. libncurses5-dev:ncurses库的旧版本开发文件。
7. libssl-dev:OpenSSL库的开发文件,用于加密和安全通信。
二、交叉编译工具链配置
1.获取资料包
使用下面这条命令克隆资料,完整大小6.7GB,在当前终端目录下可以找到Loongson-2K0300-99PAI目录。
1 |
|
这个步骤如果自己用浏览器上那个网站下载zip包可能会出现克隆的资料文件特别小,只有几百字节之类的LFS指针,具体内容可以去网站看一下说明:
1 |
|
2.配置工具链
在久久派内核和LoongOS/gcc/
目录下有一个loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1.tar.xz压缩包,在当前目录下打开终端解压缩,名称可以使用Tab补全,解压后目录大小为两百多MB。
1 |
|
我们需要将解压缩的目录移动到/opt/
目录下,这一操作需要sudo权限,不建议在图形界面操作。
1 |
|
在 Linux 系统中,/opt/
目录是一个用于安装第三方应用程序的目录。它的名称来源于 “optional”,表示这些应用程序是可选的,而不是系统运行所必需的。将第三方软件安装在/opt/
中,可以避免与系统自带的软件包冲突,保持系统的整洁。同时这种结构非常便于管理,卸载或更新软件更加方便,只需删除或替换对应的子目录即可。
下面是/opt/
的目录树:
1 |
|
3.配置环境变量
接着,我们要添加loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin
的位置到环境变量
先将enviroment文件提升权限:
1 |
|
接着使用nano
或vim
编辑enviroment
文件,在PATH末尾添加:/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin
,注意不要添加到双引号外面。保存之后使用$ source /etc/environment
命令载入文件。在终端中输入loong
,然后按Tab自动补全,如果能补全loongarch64-linux-gnu-
则表示交叉编译的环境已经配置完成,输入$ loongarch64-linux-gnu-gcc -v
可查看gcc的版本。编辑完环境建议重启一下,不然可能会遇到重新开个终端就又读不到gcc版本的情况,如果暂时不想重启,可以在终端里重新$ source /etc/environment
一下,接着在这个终端下就能正常用了。
三、编译龙芯2K0300内核
旧世界与新世界
查找资料的时候经常看有人提到“新世界”,好奇查了一下,发现Loongarch生态是有两种的,官方称为ABI1.0和ABI2.0。两个世界互不兼容,具体内容参考这个文章,久久派的内核是旧世界。
1.解压内核源码
找到资料包Loongson-2K0300-99PAI/久久派内核和LoongOS/内核源码和LoongOS安装文件/ABI1.0/内核源码/
目录下的linux-4.19-0802.tar.gz压缩包,解压后九百多MB,这就是内核源码,进入解压出来的目录。
2.修改Makefile文件
我们在这个目录下找到Makefile,双击打开,如果之前安装了Vim,那现在应该在Vim的终端里。在这个文件的最上方添加这两行:
1 |
|
保存后退出。
3.编译内核
将linux-4.19/arch/loongarch/configs
目录下的loongson_2k300_defconfig
文件复制到源码根目录,然后在根目录中打开终端,执行$ make menuconfig
命令,会进入这个界面:
选择下方的Save,接着会让配置一个文件名称,直接使用默认的就行,退回主界面之后连续按俩下ESC退出。
编译内核需要自行选择多少线程,在物理机中CPU有多少核心就能有多少线程,在虚拟机中核心数由自己配置;使用$ nproc
命令查看有多少线程。
在内核源码根目录使用$ make vmlinuz -j10
进行内核编译,其中-j10
中的参数不大于最大线程数就行。
编译结束后内核源码根目录下的vmlinuz文件就是编译好的内核。把vmlinuz文件放入开发板/boot
目录,然后使用chmod
命令提高文件权限,重启开发板后修改的内容就生效了。(第一次改ADC的时候不知道要提高权限,死活不生效)
【本文完】