2016/06/07

救回 Samsung Galaxy Tab 2 7.0 P3100

朋友家裡一台 Samsung Galaxy Tab 2 7.0 (型號 GT-P3100) 給國小的小朋友玩。小朋友不知從哪裡學到連結一些來路不明的網站下載了很多 app 來玩。後來一開機就出現一堆錯誤,然後記憶體被佔光,機器幾乎無法操作。

恢復出廠設定沒用;按 Volume Up + Power 進入復原模式清掉 user data 也沒用。很明顯的是已經中毒頗深,整部機器已被不肖軟件進駐控制了。看來得把整個 ROM 重新刷乾淨才行。以下記錄搶救的過程,給自己或有興趣的網友參考。

因為是給一般使用者,我決定刷回官方的版本。但現在官方網站已經找不到這麼舊的機型的資料了。禮失,求諸野。收集這些舊資料也是一門生意,google 一下就找到不少。只是內容可不可靠,會不會有木馬,實在很難判斷。根據自己的直覺,我選擇了以下這個版本:
想免費下載完畢約需四小時,要有耐心。下載完畢,請解開到一特定目錄。

刷機還需要另一隻 Windows 的程式,Odin。下載這類程式又是需要懷疑是否為不良軟件 (malware) 的時候了。再度根據自己的直覺 (有沒有可靠的人用過),我選擇了以下的版本:
刷機動作很簡單,主要參考以下網址:
注意! 上述網頁建議用管理員的身份執行 Odin3 比較不會遇到麻煩,但我覺得這樣風險比較大。我在 Windows 10 用一般身份就可以成功刷回官方版本了。

目前還沒有發現任何異常,包含 Odin3。


2015/04/24

縮小影像檔的大小

用 avconv 來縮小影像檔的大小:
avconv -i INPUT.mp4 -s 640x360 OUTPUT.mp4
若影片的聲音是 acc 編碼,上述指令可能會警告你程式的 acc 編碼器還在驗證階段,要求你多加一個參數 ("-strict experimental") 確定你要用這個實驗品:
avconv -i INPUT.mp4 -s 640x360 -strict experimental OUTPUT.mp4
若影片太長,你只要前 N 秒,可以加上參數 "-t N"。若只要影像,不要聲音,請參考 去除影片檔聲音的方法

2015/04/13

以分頁視窗來操作 Cygwin

一直以來,非常困擾 Cygwin 無法讓我像在 Ubuntu 上一樣,開啟多個分頁 (tab) 來切換不同的工作。終於找到一個完美的解法:ConEmu

ConEmu 的主要功能是讓你能在 Windows 上以分頁的方式開啟多個 cmd 或 powershell 視窗。當然,用來開啟 Cygwin 分頁也沒問題。有人說,先安裝 Cygwin 再安裝 ConEmu,就能讓 ConEmu 自己抓到 Cygwin。我沒試出此功能,但自己加也很簡單,方法如下:
  1. 開啟 ConEmu 的設定畫面 (點右上角三條線圖示)
  2. Settings > Startup > Tasks
  3. 點在 Predefined tasks 底下的 "+"
  4. 如下圖所示,自訂定義命令字串: 
    %SystemDrive%\cygwin64\bin\mintty.exe -


這樣可能還會有一個小困擾,就是中文有亂碼的情況。解決方法是在 mitty 執行時按滑鼠右鍵開啟設定視窗,再將 Text 底下的 Local/Character set 設成 zh_TW/Big5 即可 (記得 Apply 後 Save)。

後記: 發現用 mintty  有一個缺點,就是不能利用 ConEmu 搜尋 console 的功能。解法是直接用 Cygwin 的 bash:
C:\cygwin64\bin\bash.exe --login -i -new_console:C:"C:\cygwin64\Cygwin.ico"
-new_console 及之後的那一串是用來設定 icon 的,照抄即可。

2015/03/28

重建不小心刪除的 Ubuntu /dev 目錄

若你跟我一樣不小心做了刪除  /dev 目錄的蠢事,以下是我嘗試重建的記錄。僅供參考,請自行應變。

簡單說,執行以下命令就可大部分重建回來:
cd /dev; sudo /sbin/MAKEDEV generic
若你想先確認這個指令做了哪些動作,可以加 "-n -v" 參數做一次 dry run (也就是沒有實際產生作用的演練,只看看輸出訊息)。

實際情況是,你不見得可以執行上述命令。譬如說,還沒關機就發現此狀況,但 terminal 已經開不起來;或關機了,可能就再也無法開機等等。這些狀況的應變太瑣碎,就不多談了。

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 即可。