📒
Loongbian
  • Loongbian 操作系统
  • 系统
    • 安装指南
    • 安装本地 GCC 编译器
    • 安装交叉 GCC 编译器
    • 定制 Linux 内核:交叉编译
    • 更新 PMON 固件(危险)
  • IO
    • Loongpio 库
    • Adafruit Blinka 库
      • 安装
      • 引脚命名
      • 样例程序
        • 板载 GPIO 输出:有源蜂鸣器
        • 板载 GPIO 输出:闪烁 LED 灯
        • 板载 GPIO 输入:按钮模块
        • 板载 GPIO:HC-SR04 超声波传感器
        • 板载 PWM:呼吸灯
        • PCA9685 PWM:舵机
        • 板载 I2C:PN532 RFID 模块
Powered by GitBook
On this page
  • 1. 准备编译环境
  • 1.1. 安装龙芯交叉编译器
  • 1.2. 安装其他构建依赖
  • 2. 获取内核源码
  • 3. 配置内核编译配置
  • 3.1. 加载龙芯 2k 默认配置
  • 3.2. 配置内核构建选项(可选)
  • 4. 构建内核
  • 4.1. 构建内核镜像 vmlinuz
  • 4.2. 构建并导出内核模块(可选,但强烈建议)
  • 4.3. 导出内核头文件(可选)
  • 5. 打包内核文件并传至龙芯派
  • 6. 安装内核文件
  • 6.1. 解压压缩包
  • 6.2. 安装内核本身
  • 6.3. 安装内核模块
  • 6.4. 生成 initramfs
  • 6.5. 更新 PMON 启动项

Was this helpful?

  1. 系统

定制 Linux 内核:交叉编译

Previous安装交叉 GCC 编译器Next更新 PMON 固件(危险)

Last updated 4 years ago

Was this helpful?

1. 准备编译环境

准备一 x86_64 Debian 环境。

1.1. 安装龙芯交叉编译器

1.2. 安装其他构建依赖

进入 root 用户 shell,运行

$ apt install git-core bc bison flex libssl-dev make libncurses5-dev

2. 获取内核源码

$ git clone https://github.com/Loongbian/linux -b loongson-2k --depth 1
$ cd linux

3. 配置内核编译配置

3.1. 加载龙芯 2k 默认配置

$ make ARCH=mips CROSS_COMPILE=mips64el-linux-gnuabi64- ls2k_defconfig debian.config

3.2. 配置内核构建选项(可选)

$ make ARCH=mips CROSS_COMPILE=mips64el-linux-gnuabi64- menuconfig

4. 构建内核

4.1. 构建内核镜像 vmlinuz

$ make ARCH=mips CROSS_COMPILE=mips64el-linux-gnuabi64- vmlinuz -j6

构建出的内核镜像文件名为 vmlinuz。

4.2. 构建并导出内核模块(可选,但强烈建议)

$ make ARCH=mips CROSS_COMPILE=mips64el-linux-gnuabi64- modules -j6
$ make ARCH=mips CROSS_COMPILE=mips64el-linux-gnuabi64- INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=kernel_modules modules_install

构建出的内核模块将位于 kernel_modules文件夹下,您可以更改上述命令中的 INSTALL_MOD_PATH 变量来自定义内核模块导出位置。

4.3. 导出内核头文件(可选)

$ make ARCH=mips CROSS_COMPILE=mips64el-linux-gnuabi64- INSTALL_HDR_PATH=kernel_headers headers_install

构建出的内核头文件将位于 kernel_headers文件夹下,您可以更改上述命令中的 INSTALL_HDR_PATH 变量来自定义内核头文件导出位置。

5. 打包内核文件并传至龙芯派

第二条 scp 命令执行前需要构建机器和龙芯派在同一个内网里,并在龙芯派上先安装好 openssh-server,可以通过 root 下运行 apt install openssh-server 来安装。或者你可以使用 u 盘将 linux-build.tar.gz 文件拷贝到龙芯派上来替代 scp 命令。

$ tar zcvf linux-build.tar.gz vmlinuz kernel_headers kernel_modules
$ scp linux-build.tar.gz loongson@ls2k:

若你没有导出内核模块,你需要将 tar 命令参数中的 kernel_modules 删去。若你没有导出内核头文件,将 kernel_headers 删去。

此外,你可能需要将 scp 命令中的 ls2k 替换为龙芯派的 IP 地址。

6. 安装内核文件

在龙芯派上登入 root 用户。

在以下命令中我们假定内核版本为 5.7.0-rc1+,内核版本可能有变化。

6.1. 解压压缩包

$ mkdir kernel
$ cd kernel
$ tar xvf ~loongson/linux-build.tar.gz

6.2. 安装内核本身

$ mv vmlinuz /boot/vmlinuz-5.7.0-rc1+
$ chmod 644 /boot/vmlinuz-5.7.0-rc1+

6.3. 安装内核模块

如果你此前导出了内核模块,则运行,否则不用运行。

$ mv kernel_modules/lib/modules/5.7.0-rc1+ /lib/modules
$ chmod -R 644 /lib/modules/5.7.0-rc1+

6.4. 生成 initramfs

$ update-initramfs -c -k 5.7.0-rc1+

6.5. 更新 PMON 启动项

$ pmon-update

现在你可以输入 reboot 命令重启龙芯派。启动过程中 PMON 启动菜单应会出现刚刚编译的新内核。

安装交叉 GCC 编译器