2014/05/14

Ubuntu 與 Wake on LAN

Wake on LAN (WOL) 就是透過網路指定某一台 PC 開機。

被叫者的設定

需要被叫醒的 PC 必須完成以下設定:
  • BIOS 需啟動相關叫醒功能,譬如 Asus P5K 主機板的設定項目是:
    • Power > APM Configuration
      • Power on By PCI Devices [Enable]
      • Power on By PCIE Devices [Enable]
  • 然後網路卡 (NIC) 必須啟動 WOL 功能:
    • 在 Windows 底下,直接去查網路卡有沒有相關設定
    • 在 Ubuntu 底下,可用 ethtool 查詢和改變網路卡的設定
      • sudo ethtool eth0 來查看網路卡有哪些功能
        • "Supports Wake-on:"g 就是支援 WOL
        • 有沒有啟動 WOL 就看 "Wake-on:" 有沒有 g
      • sudo ethtool -s eth0 wol g 來啟動 WOL
      • sudo ethtool -P eth0 查出網路卡位址 (ether address 或 mac address),等一下會用到
  • 最後一點,就是要讓 PC 處於可被叫醒的狀態。譬如,我的 Asus P5K 先斷電再復電後是叫不醒的。一定要先做一次:手動按開機鍵,不用開完機,幾秒之後再按一次開機鍵關機,感覺好像是讓 BIOS 有機會將機器設成待命狀態。最簡單的檢查方法就是檢查網路埠的 link 燈號。可被 WOL 叫醒的機器,關機時 link 燈必須是亮著的,這樣才可以收到 WOL 封包。

叫人者的設定

執行叫醒任務的 PC 一般比較沒有限制,只要有合適的工具即可。以下只介紹 Ubuntu 的部份。請先安裝 wakeonlan 套件,然後執行以下命令即可:
wakeonlan 00:11:22:33:44:55 #這裡請改成被叫者的網路卡位址
沒有成功?請查被叫者的電源線是否接好且有電,以及網路線是否有 link 燈號且跟叫人者有連接起來。若以上都確認沒問題,也許查查叫人者 PC 是否有兩張網路卡。wakeonlan 似乎不能控制由哪張網路卡送出 WOL magic packet,以下方法可解決這個問題:
  • 方法一是指定哪個 subnet 的 broadcast:
    wakeonlan -i 192.168.0.255 00:11:22:33:44:55
  • 方法二是設定 static arp entry:
    sudo arp -i eth1 -s 192.168.0.1 00:11:22:33:44:55
    wakeonlan -i 192.168.0.1 00:11:22:33:44:55
還是沒有成功?我建議查網路相關連結,可以的話先試試將被叫者和叫人者直接連結起來。

參考資料

2014/03/14

[warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)

[Simple translation for English only visitors]
The way to remove the warning log is to modify /etc/ssl/openssl.cnf before using openssl to generate the keys.

建置 https 伺服器時,/var/log/apache2/error.log 出現如標題一樣的警告訊息?

解決方法是在執行 openssl 產生 key 之前,修改 openssl.cnf:

--- /etc/ssl/openssl.cnf    2012-04-20 00:29:01.000000000 +0800
+++ /etc/ssl/openssl.cnf    2014-03-14 16:11:58.225994353 +0800
@@ -237,7 +237,7 @@
 # extensions.
 #basicConstraints = critical,CA:true
 # So we do this instead.
-basicConstraints = CA:true
+basicConstraints = CA:false

 # Key usage: this is typical for a CA certificate. However since it
 # prevent it being used as an test self-signed certificate it is best
我不確定這樣改有多少影響。建議 key 產生完畢後再改回原來的設定。

2014/03/07

去除影片檔聲音的方法

錄下的影片有不想要的背景音?可用 avconv (即 ffmpeg,Linux & Windows 都有) 去除聲音的部份,指令如下:
avconv -i IN-FILE -vcodec copy -an OUT-FILE
其中:
  • -vcodec copy 代表影像編碼照舊
  • -an 代表不要聲音
若只要聲音不要影像呢?沒錯,就是將這兩個參數改成 -acodec-vn 即可。

2014/02/25

用 lame 批次將 .wav 轉成 .mp3

在 Ubuntu 底下,批次將 .wav 轉成 .mp3 的方法如下:

先安裝轉檔工具:

sudo apt-get install lame

再執行 lame 將 .wav 檔一個一個轉成 .mp3:

ls *.wav | sed -e 's/\.wav//' | xargs -i -n 1 lame -h -b 128 "{}.wav" "{}.mp3"

2014/02/19

刪除 PDF 檔的旁註和重點標示

拿到一份 PDF 檔,用功的前人在上面又是底線又是螢光筆的重點畫得滿滿多是,看得眼花撩亂。終於找到一個方法,可將這些 annotation 清理的乾乾淨淨:

sed -i -e 's:/Annots\[[^]]\+\]::g' FILENAME.PDF
上述指令看來很玄,簡單說就是將文件中 "/Annots[....]" 的資料片段都給刪了。

若你不想全部刪,或者只想一個個刪,在 Ubuntu 上可以找一個 pdfedit。開啟檔案後,點「樹」的「頁面」可列出每一頁,每頁的「註釋」就是插入的這些重點標示。

參考資料