给龙芯 loong64 移植思源笔记

最近在使用龙芯 3A5000, 但是苦于寻找开源的可以自己编译的笔记软件。寻找了不少开源产品比如 Anytype。但都因为依赖过于复杂,无法很好的移植在龙芯平台上运行 QAQ

好在最后尝试了一下思源笔记的编译,比较顺利地完成了,简单分享一下编译过程:

  1. 第一步,获取源码,可以在 github 上直接获取: https://github.com/siyuan-note/siyuan

  2. 设置龙芯可以使用的 electron 源:

    export ELECTRON_MIRROR=https://github.com/darkyzhou/electron-loong64/releases/download/ export electron_use_remote_checksums=1
  3. 由于平台支持原因,此时不能直接执行 pnpm install,需要安装有编译好的龙芯版本的 electron:

    pnpm install electron@v35.4.0 -D
  4. 下一步是安装修改过的 electron-builder,以支持龙芯 CPU 的构建

    "devDependencies": { + "@darkyzhou-powered/electron-builder": "25.1.8", - "electron-builder", "xxxx.xxx.xxx" }
  5. 此处修改后进行 pnpm install,可能会出现依赖问题,按照提示降级即可,暂时未出现问题

  6. 编译 kernel,在执行 build 之前,修改 kernel 目录下的 go.mod,更改如下:

    + github.com/go-ole/go-ole v1.3.1-0.20250305162226-6867ec158e36 - github.com/go-ole/go-ole v1.3.0

    老版本依赖不支持 loong64 架构,新版添加了支持。由于 siyuan 仓库未更新,只好手动更新一下。 更新完成后,即可使用 cd kernel && go build --tags "fts5" -o "../app/kernel-linux-loong64/SiYuan-Kernel" 进行构建了。

  7. 随后,重新切换到 app 目录下,创建一个名为 electron-builder-linux-loong64.yml 的文件,内容如下:

    productName: "SiYuan" appId: "org.b3log.siyuan" asar: false compression: "store" copyright: "© 2024 Yunnan Liandi Technology Co., Ltd." artifactName: "siyuan-${version}-${os}-loong64.${ext}" extraMetadata: main: "electron/main.js" directories: output: "build" files: - "electron" extraFiles: - from: "../LICENSE" to: "LICENSE" linux: icon: "src/assets/icon.icns" category: "Utility" executableName: "siyuan" desktop: { entry: { Name: "SiYuan", Comment: "Refactor your thinking", Type: "Application", Categories: "Utility;" } } extraResources: - from: "kernel-linux-loong64" to: "kernel" target: - target: "tar.gz" arch: "loong64" # - target: "AppImage" # arch: "loong64" - target: "deb" arch: "loong64" extraResources: - from: "changelogs" to: "changelogs" - from: "stage" to: "stage" - from: "guide" to: "guide" filter: "!**/{.DS_Store,.git,.gitignore,.idea}" - from: "appearance/boot" to: "appearance/boot" filter: "!**/{.DS_Store}" - from: "appearance/icons" to: "appearance/icons" filter: "!**/{.DS_Store}" - from: "appearance/langs" to: "appearance/langs" filter: "!**/{.DS_Store}" - from: "appearance/emojis" to: "appearance/emojis" filter: "!**/{.DS_Store}" - from: "appearance/themes/midnight" to: "appearance/themes/midnight" filter: "!**/{.DS_Store,custom.css}" - from: "appearance/themes/daylight" to: "appearance/themes/daylight" filter: "!**/{.DS_Store,custom.css}" - from: "appearance/fonts" to: "appearance/fonts" filter: "!**/{.DS_Store}" - from: "pandoc/pandoc-linux-loong64.zip" to: "pandoc.zip"
  8. 注意:对于龙芯平台上运行构建,其中,压缩 tgz 用到了 7zip,由于随包分发的 7za 不支持 loongarch64,因此需要手动替换一下:cp /usr/bin/7za app/node_modules/.pnpm/7zip-bin@5.2.0/node_modules/7zip-bin/linux/loong64。请根据实际情况创建文件夹!其次,deb 打包由于使用了第三方可执行文件,暂时没有龙芯架构的可执行文件,要想成功打包 deb 可能需要 latx 二进制翻译的支持。交叉编译时无需关注。

  9. 修改 package.json,添加我们自定义的构建配置:

    "scripts": { "dist-linux-loong64": "ELECTRON_MIRROR=https://github.com/darkyzhou/electron-loong64/releases/download/ electron-builder --linux --config electron-builder-linux-loong64.yml --publish=never" }
  10. 最后,执行 pnpm run build && pnpm run dist-linux-loong64 就可以完美打包啦~

附上截图:

image.png

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26041 引用 • 108097 回帖 • 1 关注
  • 龙芯
    5 引用 • 2 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • elysiabest 2 via Linux
    作者

    我构建的这个龙芯新世界版本已经上传星火应用商店了

推荐标签 标签

  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    5 引用 • 16 回帖 • 1 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 644 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 735 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 192 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • danl
    173 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 179 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    93 引用 • 122 回帖 • 619 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 645 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 628 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    187 引用 • 830 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    345 引用 • 754 回帖
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 820 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    77 引用 • 37 回帖
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 445 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    172 引用 • 534 回帖
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 615 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖 • 3 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    246 引用 • 1338 回帖
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 661 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    554 引用 • 675 回帖
  • 浅吟主题

    Jeffrey Chen 制作的思源笔记主题,项目仓库:https://github.com/TCOTC/Whisper

    1 引用 • 28 回帖 • 3 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    10003 引用 • 45474 回帖 • 74 关注