跳至內容

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 中進行更改,以確保計算機在沒有找到鍵盤時不會停止。查詢與“任何錯誤時停止”或類似內容相關的選項,並確保它不會停止。

華夏公益教科書