跳至内容

Puredyne/自动启动到您首选的设置

来自维基教科书,开放书籍,开放世界

自动启动到您的应用程序

[编辑 | 编辑源代码]

如果您有一个艺术装置,您希望能够打开并自动运行您的程序,或者您希望从不同的设置中进行选择(例如,从不带图形桌面的状态开始),这将很有用。

简单方法

[编辑 | 编辑源代码]

是在 xfce 中使用自动启动的应用程序列表,该列表位于主菜单中。您可以在此处添加要在 xfce 启动时执行的命令。

更复杂的方法

[编辑 | 编辑源代码]

这种方法使用 GRUB 引导加载程序在称为“运行级别”(将在下面解释)的不同设置之间进行选择。使用这种方法,可以准确地选择要让计算机运行的进程。这主要来自nescivi 关于启动到 SuperCollider 的操作指南,并将展示在没有图形界面的情况下加载“emacs -sclang”的示例。还使用了一个名为 screen 的小型程序,它允许您拥有一个 shell,您可以退出它(但正在运行的任何程序都将继续运行),并且可以在以后恢复,即使您已注销并重新登录。

在 GRUB 中,您必须添加一个条目以启动到所需的运行级别。在 /boot/grub/menu.lst 文件中,复制 pure:dyne 条目的字段,并在内核行的末尾添加要使用的运行级别的数字(3 是一个不错的选择),例如

  title myKoolInstallation
  root(hd0,0)
  kernel /live/vmlinuz1 ramdisk_size=100000 boot=live username=lintian persistent hostname=puredyne vga=791 3
  initrd /live/initrd1.img
  boot

运行级别

[编辑 | 编辑源代码]

运行级别基本上是一系列在启动或停止系统时将执行的脚本。在 Debian 系统上,您会在名为 /etc/rcN.d 的目录中找到这些脚本,其中“N”是运行级别的数字。选择一个没有真正使用的运行级别(Debian 使用 2 作为默认值,6 通常与关机相关联),并调整该运行级别。在该目录中,您必须放置所有需要执行的脚本的符号链接,并且可以移除不需要的脚本(例如,启动图形界面的脚本)。要启动 screen、emacs 和 sc,请创建一个类似于以下内容的符号链接

  sudo ln -s /home/lintian/mystartupscript.sh S99sclangpatch


启动脚本

[编辑 | 编辑源代码]

在您的主目录中创建一个名为 mystartupscript.sh 的文件,并用以下内容填充它

  echo "starting sclang script"
  cd /dev
  /sbin/MAKEDEV console
  echo "made devices"
  chmod 666 /dev/console
  route add -net default gw 129.102.145.254
  cd /home/linitan/
  su lintian -c "/usr/bin/jackd -R -dalsa -dhw:0 -r44100 -p256 -n2 &" #start jack
  su lintian -c "/usr/bin/screen -c /home/lintian/.screenrc"
  echo "sending command"
  su lintian -c "/usr/bin/screen -X screen -t supercollider 1 bash startemacs.sh" #start supercollider
  echo "command sent"


然后使该文件对所有用户可执行

  sudo chmod 755 mystartupscript.sh


在您的主目录中创建一个名为 .screen 的文件,并用以下内容填充它

  startup_message off
  console off
  bash
  detach

然后使该文件对所有用户可执行

  sudo chmod 755 .screen


startemacs.sh

[编辑 | 编辑源代码]

(SuperCollider 专用)在此文件中,您必须设置一些路径,以便可以找到库。您必须使用用户的启动文件启动 emacs,因为您可能已将特殊的 sclang 命令放在该文件中。在您的主目录中创建一个名为 startemacs.sh 的文件,并用以下内容填充它

  LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
  export PATH LD_LIBRARY_PATH PKG_CONFIG_PATH
  emacs -u lintian -sclang


然后使该文件对所有用户可执行

  sudo chmod 755 startemacs.sh
  

.sclang.sc

[编辑 | 编辑源代码]

(SuperCollider 专用)此文件应该已经存在于您的主目录中,并已根据您的需要进行配置。在末尾添加以下部分以加载您的补丁


  fork { 

0.1.wait; s.quit; 0.5.wait; s.boot; 1.wait;

s.doWhenBooted( { { "/home/lintian/SuperCollider/startMyCoolPatch.scd".load }.defer; });

  };


禁用图形桌面

[编辑 | 编辑源代码]

要阻止 xfce 启动,我们必须移除运行级别目录中的一个符号链接

  sudo rm /etc/rc3.d/S30gdm


目前,pure:dyne 要求您“移除托盘中的任何磁盘,然后按 ENTER”,作为关机过程的一部分。这很快就会改变,但在此期间,我们可以通过一个小技巧来解决它。

  sudo nano /etc/rc0.d/S89live-initramfs

并在该文件中,移除以下部分

  if [ -z ${QUICKREBOOT} ]; then
      if [ -x /usr/bin/eject ]
      then
              eject -p -m /live/image >/dev/null 2>&1
              [ "$prompt" ] || return 0
      fi
      stty sane < /dev/console
      # XXX - i18n
      echo "Please remove the disc and close the tray (if any) then press ENTER: " > /dev/console
      if [ -x /sbin/usplash_write ]; then
          /sbin/usplash_write "TIMEOUT 86400"
          /sbin/usplash_write "TEXT-URGENT Please remove the disc, close the tray (if any)"
          /sbin/usplash_write "TEXT-URGENT and press ENTER to continue"
      fi
      read x < /dev/console
  fi


您可能还希望使用电源按钮关闭计算机。在这种情况下,请编辑...

它运行了...

[编辑 | 编辑源代码]

现在,整个程序应该按预期运行,并且您可以在计算机启动后登录到它。键入

  screen -r

以进入您已启动的应用程序。

其他调整

[编辑 | 编辑源代码]

如果您不想将键盘和鼠标连接到计算机,则可能需要在计算机的 BIOS 中进行更改,以确保计算机在没有找到键盘时不会停止。查找与“任何错误时停止”或类似内容相关的选项,并确保它不会停止。

华夏公益教科书