找回密码
 -注册-
楼主: 中关村东路
打印 上一主题 下一主题

无独立主机,无安装依赖,无虚拟机Docker——玩转嵌入式HQPlayer

[复制链接]
41
 楼主| 发表于 2022-11-6 19:37 来自手机 | 只看该作者 来自 北京市
本帖最后由 中关村东路 于 2022-11-6 19:53 编辑
zdlkxlzy 发表于 2022-11-6 18:35
还有两个疑问,:
1:运行hqplayerd之后才能进入web页,但是在SSH中没有办法再控制了
2:这个底子应该还 ...

1:运行hqplayerd之后才能进入web页,但是在SSH中没有办法再控制了

看我后来回复你的完整的代码。
回复

使用道具 举报

42
 楼主| 发表于 2022-11-6 19:40 来自手机 | 只看该作者 来自 北京市
本帖最后由 中关村东路 于 2022-11-6 19:54 编辑
zdlkxlzy 发表于 2022-11-6 18:35
还有两个疑问,:
1:运行hqplayerd之后才能进入web页,但是在SSH中没有办法再控制了
2:这个底子应该还 ...

2:这个底子应该还是一个hqos,运行之后,在linux能执行的命令就无效了,例如我装的lm-sensors,就不能使用了

这个原理上是给hqos隔离了一套环境,之后执行hqplayerd。原来系统的内核态东西在原系统依然有效,例如lm-sensors之类的,就别在hqos里执行了。
回复

使用道具 举报

43
 楼主| 发表于 2022-11-6 20:23 | 只看该作者 来自 北京市
zdlkxlzy 发表于 2022-11-6 18:35
还有两个疑问,:
1:运行hqplayerd之后才能进入web页,但是在SSH中没有办法再控制了
2:这个底子应该还 ...

1:运行hqplayerd之后才能进入web页,但是在SSH中没有办法再控制了

这个问题的另外一个解决办法就是彻底解决hqplayerd运行的依赖关系。如果你用
  1. systemd-nspawn -b -D /mnt/hqplayer
复制代码
进入hqos,执行htop会发现默认的时候hqplayerd并没启动。打开启动文件,
  1. nano /etc/systemd/system/multi-user.target.wants/hqplayerd.service
复制代码
把requires和after都注释掉就可以正常执行了。

事实上,可以把各种和hqplayerd没关系的文件全都删掉。如下是我的/etc/systemd/system文件夹,你可以删到这种地步依然正常给roon播放:
  1. root@hqplayer:~# find /etc/systemd/system
  2. /etc/systemd/system
  3. /etc/systemd/system/multi-user.target.wants
  4. /etc/systemd/system/multi-user.target.wants/hqplayerd.service
复制代码





回复

使用道具 举报

44
发表于 2022-11-6 21:09 | 只看该作者 来自 湖南省长沙市
对于升频类已经不去弄了,没有那种金耳朵。
回复

使用道具 举报

45
 楼主| 发表于 2022-11-6 22:05 | 只看该作者 来自 北京市
tyl1355 发表于 2022-11-6 21:09
对于升频类已经不去弄了,没有那种金耳朵。

说明您的设备高级,低端解码加了HQ提升很大。我现在已经不用HQ了,直接关了解码的OS,听高码率音乐为主,还在听的低码率专辑都是非常喜欢的也就不在意了
回复

使用道具 举报

46
发表于 2022-11-6 22:35 | 只看该作者 来自 山东省烟台市
中关村东路 发表于 2022-11-6 16:10
写一个类似的东西,存成/etc/systemd/system/hqplayerd.service

ExecStart那写填sh /opt/hqplayerd. ...

大佬,关于自启动还是没有搞定,不得不再次请教

我在dietpi下安装好了hqplayer

然后按帖子35楼里给的代码,存成/etc/systemd/system/hqplayerd.service


然后编写了脚本/opt/hqplayerd.sh


实测sh /opt/hqplayerd.sh可以开启hqplayer,说明脚本没问题

最后chmod +x /opt/hqplayerd.sh和systemctl enable hqplayerd我也执行了


但是重启动后,在htop中未发现hqplayer进程


回复

使用道具 举报

47
发表于 2022-11-6 22:51 来自手机 | 只看该作者 来自 上海市
zdlkxlzy 发表于 2022-11-6 22:35
大佬,关于自启动还是没有搞定,不得不再次请教

我在dietpi下安装好了hqplayer

可以用systemctl start hqplayerd看看hqp有没有起来
感觉你可能把楼主提到的两种容器搞混了
回复

使用道具 举报

48
发表于 2022-11-6 22:51 来自手机 | 只看该作者 来自 山东省烟台市
刚才百度了下,貌似开机自启动脚本文件有很多办法,这个systemd在我的系统里不执行,可以换个思路试试
回复

使用道具 举报

49
 楼主| 发表于 2022-11-6 22:58 | 只看该作者 来自 北京市
zdlkxlzy 发表于 2022-11-6 22:51
刚才百度了下,貌似开机自启动脚本文件有很多办法,这个systemd在我的系统里不执行,可以换个思路试试

嗯,你可以试试,我刚才发现我改成这段脚本也没启动。。。我hqplayerd.service里是用systemd-nspawn -b -D 那个命令启动的。但是我和你不一样的是删掉hqos里没关系的service所以直接起来了
回复

使用道具 举报

50
 楼主| 发表于 2022-11-6 23:32 | 只看该作者 来自 北京市
中关村东路 发表于 2022-11-6 16:10
写一个类似的东西,存成/etc/systemd/system/hqplayerd.service

ExecStart那写填sh /opt/hqplayerd. ...

让hqplayer随系统自动启动。
编写如下文件 nano /etc/systemd/system/hqplayerd.service
  1. [Unit]
  2. Description=HQPlayer Embedded daemon
  3. Requires=systemd-networkd.service

  4. [Service]
  5. Type=simple
  6. ExecStart=systemd-nspawn -b -D /mnt/hqplayer
  7. Nice=-10
  8. IOSchedulingClass=realtime
  9. LimitMEMLOCK=1G
  10. LimitNICE=-10
  11. LimitRTPRIO=98

  12. [Install]
  13. WantedBy=multi-user.target
复制代码


修改hqos中hqplayerd的依赖关系
nano /mnt/hqplayer/lib/systemd/system/hqplayerd.service

在Requires和After前面加上#号,
  1. [Unit]
  2. Description=HQPlayer Embedded daemon
  3. #Requires=systemd-networkd.service systemd-networkd-wait-online.service network-online.target sound.target systemd-udev-settle.service
  4. #After=systemd-networkd-wait-online.service network-online.target sound.target systemd-udev-settle.service local-fs.target remote-fs.target

  5. [Service]
  6. Type=simple
  7. ExecStart=/usr/bin/hqplayerd
  8. Restart=always
  9. RestartSec=2
  10. EnvironmentFile=-/etc/default/hqplayerd
  11. #User=hqplayer
  12. Nice=-10
  13. IOSchedulingClass=realtime
  14. LimitMEMLOCK=1G
  15. LimitNICE=-10
  16. LimitRTPRIO=98

  17. [Install]
  18. WantedBy=multi-user.target
复制代码


现在执行 systemctl enable --now hqplayerd 就可以自动启动了。

如果觉得hqos过于臃肿,还可以适当删除hqos里的服务。这些东西都放在 /mnt/hqplayer/etc/systemd/system/ 。我把除了hqplayerd.service之外的全都删掉了,可以正常支持roon
  1. find /mnt/hqplayer/etc/systemd/system
  2. /mnt/hqplayer/etc/systemd/system
  3. /mnt/hqplayer/etc/systemd/system/multi-user.target.wants
  4. /mnt/hqplayer/etc/systemd/system/multi-user.target.wants/hqplayerd.service
复制代码







回复

使用道具 举报

51
 楼主| 发表于 2022-11-6 23:33 | 只看该作者 来自 北京市
zdlkxlzy 发表于 2022-11-6 22:51
刚才百度了下,貌似开机自启动脚本文件有很多办法,这个systemd在我的系统里不执行,可以换个思路试试

你可以看看最新的那条,应该可以解决你的问题。
回复

使用道具 举报

52
发表于 2022-11-7 06:35 来自手机 | 只看该作者 来自 山东省烟台市
systemd-networkd这条命令在ubuntu执行的没问题,换成dietpi之后会提示找不到指令,我没有解决这个问题的能力,因此我昨晚换成了chroot脚本去打开hqplayer
回复

使用道具 举报

53
 楼主| 发表于 2022-11-7 10:33 来自手机 | 只看该作者 来自 北京市
zdlkxlzy 发表于 2022-11-7 06:35
systemd-networkd这条命令在ubuntu执行的没问题,换成dietpi之后会提示找不到指令,我没有解决这个问题的能 ...

可能被精简掉了
回复

使用道具 举报

54
发表于 2022-11-7 10:57 | 只看该作者 来自 湖南省长沙市
中关村东路 发表于 2022-11-6 22:05
说明您的设备高级,低端解码加了HQ提升很大。我现在已经不用HQ了,直接关了解码的OS,听高码率音乐为主, ...

通过测试,我的耳朵基本符合人耳的听力水平,所以升频以后那些不在人耳可听范围内的频率我基本不去追求了。
几千块的解码,几百块钱的树莓派加个达菲就是我目前垃圾设备,听个响算鸟,自娱自乐足矣。。。。
回复

使用道具 举报

55
 楼主| 发表于 2022-11-7 12:08 来自手机 | 只看该作者 来自 北京市
tyl1355 发表于 2022-11-7 10:57
通过测试,我的耳朵基本符合人耳的听力水平,所以升频以后那些不在人耳可听范围内的频率我基本不去追求了 ...

您说的特别对,我和你一起鄙视用hq的那群人
回复

使用道具 举报

56
发表于 2022-11-7 12:26 | 只看该作者 来自 湖南省长沙市
本帖最后由 tyl1355 于 2022-11-7 12:36 编辑
中关村东路 发表于 2022-11-7 12:08
您说的特别对,我和你一起鄙视用hq的那群人

不用去鄙视谁,他们爱怎么折腾那是他们自己的事,可能折腾才是他们的乐趣呢,对吧。而且折腾还有利于技术的提高和知识的普及,所以折腾是好事。
我的意思就是自己觉得好就行了,觉得不好就折腾。
当然你的技术分享还是值得称赞的,这为折腾提供了帮助!

回复

使用道具 举报

57
 楼主| 发表于 2022-11-7 13:28 | 只看该作者 来自 北京市
leonbernieni 发表于 2022-11-6 22:51
可以用systemctl start hqplayerd看看hqp有没有起来
感觉你可能把楼主提到的两种容器搞混了

不一定,可能是diet不一样,我不喜欢debian/ubuntu系没用过这个
回复

使用道具 举报

58
发表于 2022-11-7 14:37 来自手机 | 只看该作者 来自 山东省烟台市芝罘区

不是精简掉了,即使是在ubuntu也需要自己安装一下systemd软件才可以使用,只是在dietpi中,安装完了也提示找不到指令,这就难住我了,不确定这种情况下,你提供的代码能否实现自启动,晚上回家我会尝试一下
回复

使用道具 举报

59
 楼主| 发表于 2022-11-7 14:39 | 只看该作者 来自 北京市
zdlkxlzy 发表于 2022-11-7 14:37
不是精简掉了,即使是在ubuntu也需要自己安装一下systemd软件才可以使用,只是在dietpi中,安装完了也提 ...

哦这样啊,我倒是没想到这种情况,你删了require systemd-networkd那句试试..
回复

使用道具 举报

60
发表于 2022-11-7 17:07 来自手机 | 只看该作者 来自 山东省青岛市
中关村东路 发表于 2022-11-7 14:39
哦这样啊,我倒是没想到这种情况,你删了require systemd-networkd那句试试..

ExecStart=systemd-nspawn -b -D /mnt/hqplayer这一句不知道行不行,昨天就是执行systemd-nspawn -b -D /mnt/hqplayer的时候,提示找不到指令
回复

使用道具 举报

您需要登录后才可以回帖 登录 | -注册-

本版积分规则

Archiver|手机版|粤icp备09046054号|耳机网-耳机大家坛

粤公网安备 44030602000598号 耳机大家坛、www.erji.net、网站LOGO图形均为注册商标

GMT+8, 2024-4-20 04:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表