开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
kernel-builder
/
install_kernel2.cpp
kernel-builder
/
install_kernel2.cpp
install_kernel2.cpp 4.04 KB
一键复制 编辑 原始数据 按行查看 历史
XXTXTOP 提交于 2023年11月12日 01:33 +08:00 . fix build.yml
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <filesystem>
#include <unistd.h>
namespace fs = std::filesystem;
int compileKernel(const std::string& versionFolder, const std::string& versionFileName) {
// 构建文件路径
std::string fullPath = versionFolder + "/" + versionFileName;
// 从文件读取内核下载链接
std::ifstream file(fullPath);
if (!file.is_open()) {
std::cerr << "Error: Unable to open " << fullPath << std::endl;
return 1;
}
std::string kernelUrl;
std::getline(file, kernelUrl);
file.close();
// 下载内核源代码
std::string downloadCommand = "curl -O " + kernelUrl;
int downloadResult = system(downloadCommand.c_str());
if (downloadResult != 0) {
std::cerr << "Error: Unable to download kernel source code" << std::endl;
return 1;
}
// 获取下载文件名
size_t lastSlash = kernelUrl.find_last_of('/');
std::string fileName = kernelUrl.substr(lastSlash + 1);
// 输出一些信息以便调试
std::cout << "Downloaded kernel source code: " << fileName << std::endl;
// 解压缩内核源代码
std::string extractCommand = "tar -xvf " + fileName;
int extractResult = system(extractCommand.c_str());
if (extractResult != 0) {
std::cerr << "Error: Unable to extract kernel source code" << std::endl;
return 1;
}
// 输出一些信息以便调试
std::string kernelDir = fileName.substr(0, fileName.find_last_of('.'));
std::cout << "Extracted kernel source code: " << kernelDir << std::endl;
// 进入解压缩后的目录
chdir(kernelDir.c_str());
// 拷贝启动目录到源代码目录
system("cp -v /boot/config-$(uname -r) .config");
// 额外的配置命令
system("scripts/config --set-str SYSTEM_TRUSTED_KEYS \"\"");
system("scripts/config --set-str SYSTEM_REVOCATION_KEYS \"\"");
system("scripts/config --undefine DEBUG_INFO");
system("scripts/config --undefine DEBUG_INFO_COMPRESSED");
system("scripts/config --undefine DEBUG_INFO_REDUCED");
system("scripts/config --undefine DEBUG_INFO_SPLIT");
system("scripts/config --undefine GDB_SCRIPTS");
system("scripts/config --set-val DEBUG_INFO_DWARF5 n");
system("scripts/config --set-val DEBUG_INFO_NONE y");
// 使用 CPU 核心数量进行并行编译
int cpuCores = std::atoi(std::getenv("CPU_CORES"));
std::string compileCommand = "sudo make bindeb-pkg -j" + std::to_string(cpuCores);
int compileResult = system(compileCommand.c_str());
if (compileResult != 0) {
std::cerr << "Error: Compilation failed" << std::endl;
return 1;
}
// 安装当前目录下所有的 Debian 包
for (const auto& entry : fs::directory_iterator(".")) {
if (entry.path().extension() == ".deb") {
std::string installCommand = "sudo dpkg -i " + entry.path().filename().string();
int installResult = system(installCommand.c_str());
if (installResult != 0) {
std::cerr << "Error: Installation of Debian packages failed" << std::endl;
return 1;
}
}
}
// 更新引导
system("sudo update-grub");
return 0;
}
int main() {
// 执行 Python 脚本获取最新版本和 URL
for (int i = 0; i <= 2; ++i) {
std::string pythonScript = "python3 get-newest-version.py " + std::to_string(i);
int pythonExitCode = system(pythonScript.c_str());
if (pythonExitCode != 0) {
std::cerr << "Error: Failed to run Python script" << std::endl;
return 1;
}
}
const std::vector<std::string> versionFileNames = {
"longtermurl.txt",
"mainlineurl.txt",
"stableurl.txt"
};
for (const auto& versionFileName : versionFileNames) {
int compileResult = compileKernel("/tmp", versionFileName);
if (compileResult != 0) {
std::cerr << "Error: Compilation failed for version: " << versionFileName << std::endl;
return 1;
}
}
return 0;
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

暂无描述
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/XXTXTOP/kernel-builder.git
git@gitee.com:XXTXTOP/kernel-builder.git
XXTXTOP
kernel-builder
kernel-builder
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /