根据参照RedPill的介绍,我们一共有两种方式来编译。第一种为通过群晖开放的Linux源代码编译,第二种为通过群晖的toolkit编译。不过按照此文档的介绍,RedPill的作者TTG推荐使用群晖开放的Linux源代码进行编译,但是目前群晖并未开放DSM7的源代码的情况下(截至2021/10/5号),我们可以使用toolkit进行编译

编译的系统推荐Ubuntu20.04(本人就是在此系统下编译的)。

本文编译过程参照redpill的readme.md的介绍、演示编译使用DS3615xs机型的源代码/toolkit.

并且不提供任何现成编译完成的redpill.ko文件(因为目前为测试版,存在不稳定因素。不放出现成文件是为了过滤一些半桶水的小白。当redpill的稳定版发布后,我将会在我的下载站提供现成的redpill.ko以及引导)

目前本人下载站已经提供编译完成的redpill.ko下载,请前往此处,并尽量选择最新版本!

0.安装各种需要的依赖

这里仅举例我在编译时缺少的依赖,如果你编译时报错,请自行通过报错查找依赖信息

1
2
apt update
apt install make gcc

1.通过Linux源代码编译

本编译方式可以用于DS918+/DS3615xs的DSM6.2.4版本的redpill.ko编译

1.1.克隆RedPill仓库

使用git clone命令克隆RedPill的最新仓库

1
git clone https://github.com/RedPill-TTG/redpill-lkm

1.2.准备Linux源代码

编译所需的源代码可从SourceForge未知下载站下载。

我们下载你机型对应的源代码。DS918+下载apollolake架构的;DS3615xs下载bromolow架构的

并放入redpill-lkm目录下解压(解压可使用tar xvf xxx.txz命令解压)

1.3.下载工具链

由于Ubuntu系统自带的gcc好像版本过高,导致编译失败

我们需要下载官方提供的工具链进行编译,可以 从SourceForge未知下载站下载。

使用官方提供的工具链编译时,需在make参数后加入CROSS_COMPILE=[你工具链的路径]/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-

1.4.准备编译redpill.ko

首先,使用cd目录到你的Linux源码根目录

如果你是Linux v3 (bromolow),那么则执行

1
cp synoconfigs/bromolow .config

如果你是Linux v4 (apollolake),那么则执行

1
cp synoconfigs/apollolake .configecho '+' > .scmversion

接着,输入命令

在最新lkm版本中,必须指定生成类型(dev-v6、dev-v7、test-v6、test-v7、prod-v6、prod-v7)

  - dev:会输出所有的debug信息,包括info、warning和error
  - test::还会输出warning和error,但不会输出info
  - prod:不会输出任何debug信息
看起来这些参数对lkm的功能没有任何影响

1
2
make oldconfig CROSS_COMPILE=[你工具链的路径]/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-
make modules_prepare CROSS_COMPILE=[你工具链的路径]/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- [生成类型]

完成上述命令后返回redpill-lkm的目录

1.5.开始编译redpill.ko

直接输入

1
make LINUX_SRC=<你Linux源代码的路径> CROSS_COMPILE=[你工具链的路径]/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-

1.6.成功得到redpill.ko

最最后redpill-lkm的根目录中,会出现redpill.ko。

但是,我们需要输入一下命令来处理ko文件

1
strip -S *.ko

最后使用ttg提供的redpill-load即可制作出黑裙引导

2.使用toolkit编译

本编译方式可以用于DS918+/DS3615xs的DSM7版本及以上版本群晖未开放Linux源代码的redpill.ko编译

2.1.克隆RedPill仓库

使用git clone命令克隆RedPill的最新仓库

1
git clone https://github.com/RedPill-TTG/redpill-lkm

2.2.下载toolkit

编译所需的源代码可从SourceForge未知下载站下载。

我们下载你机型对应的toolkit。DS918+下载apollolake架构的;DS3615xs下载bromolow架构的(比如ds.bromolow-7.0.dev.txz)

并放入redpill-lkm目录下解压(解压可使用tar xvf xxx.txz命令解压)

2.3.下载工具链

由于Ubuntu系统自带的gcc好像版本过高,导致编译失败

我们需要下载官方提供的工具链进行编译,可以 从SourceForge未知下载站下载。

使用官方提供的工具链编译时,需在make参数后加入CROSS_COMPILE=[你工具链的路径]/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-

2.4.开始编译redpill

输入

在最新lkm版本中,必须指定生成类型(dev-v6、dev-v7、test-v6、test-v7、prod-v6、prod-v7)

  - dev:会输出所有的debug信息,包括info、warning和error
  - test::还会输出warning和error,但不会输出info
  - prod:不会输出任何debug信息
看起来这些参数对lkm的功能没有任何影响

1
make LINUX_SRC=[你的toolkit位置]/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-7.0/build CROSS_COMPILE=[你的工具链位置]/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- [生成类型]

2.5.成功得到redpill.ko

最最后redpill-lkm的根目录中,会出现redpill.ko。

但是,我们需要输入一下命令来处理ko文件

1
strip -S *.ko

最后使用ttg提供的redpill-load即可制作出黑裙引导


广告
广告正在加载中...
暂不开放评论,如对本文有任何疑问,请联系i#mr-wu.top(#替换为@)