在GRUB加载之前或之后播放声音

我从linux后卫或者knoppix(或者别的,我不记得哪一个)那里得到了一个很酷的声音,说“启动启动序列”我希望尽可能早地在启动过程中使用它。 有它说,当我登录时没有多大意义,所以在GRUB启动时使用它会是最好的。 可以吗?

根据GRUB手册,第一个音符是“速度”,每个后面的数字都是持续时间和音高。

音高以赫兹为单位,所以为了演奏听起来很好听的音符(调音),你需要西方平等音阶的音符频率:

http://pastebin.com/rJY30FmM

顺便说一下,这是我在编写和使用我粘贴的Java代码后想出的:

GRUB_INIT_TUNE="480 220 1 277 1 330 1 440 1 185 1 220 1 277 1 370 1 294 1 370 1 440 1 587 1 330 1 415 1 494 1 659 1" 

这将演奏A,F#m,D,E的四音符琶音。

怎么样

在文件/etc/default/grub ,将变量GRUB_INIT_TUNE设置为GRUB_INIT_TUNE的曲调。

例如: GRUB_INIT_TUNE="2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6"

完成后,使用sudo update-grub2应用您的更改。


现有的曲调

(我能找到的)

  • Mario Bros. Mushroom Powerup : 1750 523 1 392 1 523 1 659 1 784 1 1047 1 784 1 415 1 523 1 622 1 831 1 622 1 831 1 1046 1 1244 1 1661 1 1244 1 466 1 587 1 698 1 932 1 1195 1 1397 1 1865 1 1397 1
  • 星球大战’帝国死亡三月 : 480 440 4 440 4 440 4 349 3 523 1 440 4 349 3 523 1 440 8 659 4 659 4 659 4 698 3 523 1 415 4 349 3 523 1 440 8
  • xiè-jìléi的曲调 (升序): 2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6
  • 亚当斯的曲调 (对我来说是响声): 480 220 1 277 1 330 1 440 1 185 1 220 1 277 1 370 1 294 1 370 1 440 1 587 1 330 1 415 1 494 1 659 1

他们中的更多人。


理解一首曲子

语法为: GRUB_INIT_TUNE=" tempo [pitch1 duration1] [pitch2 duration2] ... "

节奏是所有音符持续时间的基础。 60给出1秒基数,120给出半秒基数等。音高是Hz。 将音高设置为0以产生rest。

来源: grub文档 ,grub play命令文档(同一页面)。


预览/测试一首曲子

如果你想测试曲调:安装sox并使用该ubuntuforum.org线程中的脚本(稍微修改一下以删除警告):

平头playtune

 #!/bin/dash if [ $# -lt 3 ]; then echo "Usage: $0 tempo freq dur [freq dur freq dur...]" >&2 exit 1 fi tempo=$1; shift tmpdir=$(mktemp -d) while [ -n "$*" ]; do freq=$1; shift dur=$1; shift dur=$(echo "$dur*(60/$tempo)"|bc -l) sox -e mu-law -r 8000 -n -t raw - synth $dur sine $freq >>$tmpdir/grubtune.ul 2> /dev/null done play -q -c1 -r 8000 $tmpdir/grubtune.ul rm -r $tmpdir 

使其可执行chmod +x grub-playtune

使用示例:

 grub-playtune 2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6 

笔记的频率

一个基于python3的脚本来计算笔记的频率:

沥青

 #!/bin/bash python3 -c "print(*(int(0.5 + 440 * 2 ** (note/12)) for note in (${*/%/,})))" 

使用示例:

 $ pitch 0 # gives you A_4 440 $ pitch 2 # gives you B_4 494 $ pitch -2 # gives you G_3 392 $ pitch -12 0 12 # gives you A_3, A_4 and A_5 220 440 880 

频率表

一个可以在这里 。 它也可以使用上面的脚本生成,如下所示:

 $ pitch {-12..0} # A_3 to A_4 220 233 247 262 277 294 311 330 349 370 392 415 440 $ pitch {0..12} # A_4 to A_5 440 466 494 523 554 587 622 659 698 740 784 831 880 $ pitch {12..24} # A_5 to A_6 880 932 988 1047 1109 1175 1245 1319 1397 1480 1568 1661 1760 

你问,能做到吗? 简单的答案? 是的,显然。 怎么做到呢? 您需要在插槽中投入更多资金才能获得答案。 只是我的小笑话。 我能做的最好的就是:

GRUB手册

转到5.1简单配置处理部分并查找GRUB_INIT_TUNE行。 您需要按照播放和文件名语法的链接进行操作。 您将手动编辑Grub文件。

  1. 编辑文件/etc/default/grub以包含以下行(这是我的初始化调):

    GRUB_INIT_TUNE =“2000 400 4 0 1 500 4 0 1 600 4 0 1 800 6”

  2. 运行sudo update-grub2以应用更改。