抛砖引玉,发个群晖自行编译套件的教程

2020-11-30 18:37:19 25点赞 120收藏 26评论

拿iperf3举例吧,这个是用来测试带宽的,其实用docker也可以实现,但是编译套件,所占用的空间更小。

但我只学会了spksrc自带的一些套件的编译,外来的软件代码还不知道怎么弄,也希望这篇文章能够抛砖引玉,能够利用起更多的linux程序源代码。

一切都在docker下使用,利用的就是 synocommunity/spksrc 这个容器,

眼熟不眼熟不


这个容器就是我们安装transmission的时候添加的 套件安装源这个容器就是我们安装transmission的时候添加的 套件安装源

从docker上,搜索spksrc,把这个镜像拉取下来,可能会有些慢, 一共880MB。

下载完后,我们要开工了。

先用自己的工具 SSH上群晖

然后执行:

docker run -it -v /volume3/docker/spksrc:/spksrc --name spksrc synocommunity/spksrc /bin/bash

这里解释下。 -v /volume3/docker/spksrc:/spksrc 是影射目录。效果如下图

冒号前是本机目录,后边是docker容器里的目录。请根据情况修改冒号前是本机目录,后边是docker容器里的目录。请根据情况修改

运行完命令后,我就就进入到 spksrc容器的开发环境了

抛砖引玉,发个群晖自行编译套件的教程

先获取开发工具 ,执行

git clone

下载完后,执行cd spksrc/进入套件编译目录。在执行 make setup 生成配置文件local.mk

可以看到,默认版本为DSM6.1可以看到,默认版本为DSM6.1

如果要修改默认版本,可以修改目录里的local.mk文件(这个文件在映射的本机目录里面可以找到),倒数第二是是这样的,只修改后边的6.1就行。

当然也可以不修改,在编译的时候直接指定版本。

DEFAULT_TC=6.1

在这里说一下,这个开发工具里自带了两类spk的编译配置文件,一个在spk文件夹,这里头就包含下载工具transmission,这一部分在synocommunity套件源里都有,也没必要自己编译;还有一部分在diyspk文件夹里,这里面有带宽测试工具iperf3,网络扫描工具nmap,还有个列目录树的工具tree,这三个我都试了一遍,都是命令行下的工具,没有GUI界面

两类spk编译配置两类spk编译配置

这里编译一个iperf3,安装后,iperf3命令直接内置,就不用臃肿的docker镜像了

root@578d37c01d39:/spksrc/spksrc# cd diyspk #进入iperf3所在的目录
root@578d37c01d39:/spksrc/spksrc/diyspk# ls #只是看看预置了哪些套件的编译配置,不执行也行
arp-scan dar detox fritzctl iperf3 less mc nmap rmlint ser2net testdisk zstd
autossh davfs2 diskutils htop jdupes links nano nmon rnm socat tmux
bc ddrescue file iperf2 js lsscsi ncdu rhash screen sshfs tree
root@578d37c01d39:/spksrc/spksrc/diyspk# cd iperf3 #进入iperf3目录,编译配置文件都在这里
root@578d37c01d39:/spksrc/spksrc/diyspk# make arch-apollolake-6.2.3 编译执行机型指定版本

我的是DS918+系统版本是6.2.3,代码是apollolake;DS3615代码是bromolow。更多的可以到这里来查询。

请注意,第一次编译某个机型,编译脚本会下载对应机型的工具链,群晖发布在sourceforge.net网盘上,速度较慢。此后在编译该机型,就不用在下载工具链。速度应该会快不少。

套件编译好之后会保存在spksrc/package目录下, 可以直接登陆DSM网页去对应的影射目录下载,然后进入套件中心手动安装即可。

抛砖引玉,发个群晖自行编译套件的教程

安装成功安装成功

命令已经内置,无需再用docker命令已经内置,无需再用docker

总结:虽然iperf3用处并不大,用到的地方也不多,只是用这个举例子,来说明下如何运用synocommunity/spksrc 工具编译套件。希望有感兴趣的一起研究,对没有预置开发工具里的程序源代码,编写编译配置文件,实现更多源代码的利用,比如 qbittorrent等。

展开 收起
26评论

  • 精彩
  • 最新
  • 置顶 发布审核完成后发现 git clone 那条命令不全了,不知道为啥,难道是给审核掉了?
    git clone 去看看

    校验提示文案

    提交
  • 我想尝试编译一个网卡驱动,应该怎么入手呢

    校验提示文案

    提交
    这个还真不清楚,驱动都在黑群的引导里吧

    校验提示文案

    提交
    收起所有回复
  • qb有套件的,不知道是哪个大佬编译好的,我忘记在哪里下的了

    校验提示文案

    提交
    我也见过,而且下了几个版本,不是装不上就是装上不能运行 [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 一定要这个容器吗?ubuntu行不

    校验提示文案

    提交
    不清楚,可以试试看

    校验提示文案

    提交
    收起所有回复
  • 这玩意能编译 qbittorrent?现在网上的QB套件感觉有夹带私货,不太敢用!

    校验提示文案

    提交
    没搞过,可以试试

    校验提示文案

    提交
    搞定了,发个教程! [龇牙]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 请提供一下编译好的iperf3套件,谢谢了!

    校验提示文案

    提交
    好久了,我得找一下看还有没有

    校验提示文案

    提交
    还有ds918上6.2.3版本的,别的版本不保证能用,怎么给你

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 大佬怎么把已经安装的套件打包成spk

    校验提示文案

    提交
    没有打包,就是编译出来spk再安装的

    校验提示文案

    提交
    收起所有回复
  • 喜欢用docker 套件版本总感觉会到处残留***文件,沙盒机制的docker就没有这个问题,所以我也喜欢iOS的沙盒 [龇牙]

    校验提示文案

    提交
  • Stripping lib/engines-1.1/afalg.so... chmod: cannot access '/spksrc/spksrc/diyspk/iperf3/work-broadwell-6.2.3/staging/lib/engines-1.1/afalg.so': No such file or directory

    我跟着教程走,编译出现一个缺文件的错误

    校验提示文案

    提交
  • 楼主的帖子为我打开了一扇门,我研究下qb的编译。

    校验提示文案

    提交
  • 因为命令不全,完整教程请移步 去看看 提取码: 1111

    校验提示文案

    提交
  • 文章因为某些原因不完整,请看这里 s/1vVinvi4eFN5DwgHjD0K3fw 提取 1111

    校验提示文案

    提交
  • 审核发布出来,发现 git clone那条命令不全,后边的连接咩有了,也没法修改,真是悲剧 [喜极而泣]

    校验提示文案

    提交
  • 收藏先zsbd

    校验提示文案

    提交
  • 谢谢作者,很硬核的文章,十分不错! [棒棒哒]

    校验提示文案

    提交
  • 大佬,很感谢你这片文字,我卡在先获取开发工具了。 输入命令后,就提示 -ash: git: command not found

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
120
扫一下,分享更方便,购买更轻松