顯示具有 雜項 標籤的文章。 顯示所有文章
顯示具有 雜項 標籤的文章。 顯示所有文章

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"。若只要影像,不要聲音,請參考 去除影片檔聲音的方法

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/19

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

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

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

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

參考資料

2013/03/31

Remote Desktop 和 Desktop Sharing

這兩個應用很接近,不小心就會混淆。

Remote Desktop 是遠端桌面。也就是在某 PC 上登入並獨自擁有一份遠端主機的桌面,就像你用本地的螢幕鍵盤來登入和操控本地主機的桌面一樣。譬如,你家裡電腦開著,然後在辦公室連回家裡,看到的是和在家裡時一樣的登入畫面。從登入、操作到登出,這個 session 都是你自己在進行。一台主機,通常允許建立很多的遠端桌面,大家各作各的,不會有衝突。

Desktop Sharing 則是桌面分享。也就是你已經登入某一台主機之後,開放權限讓遠端另一個人也可以看到或操作你的桌面。通常這是為了解決某些問題,譬如你不會安裝某個軟體,請遠端的朋友代勞。桌面只有一份,所以要先講好某個時間由誰操作,不然會亂成一團。

Ubuntu 上的 Remote Desktop,server 端可以安裝 xrdp/vnc4server (背景執行),client 則用 tsclient/rdesktop (應用程式 > 網際網路 > 終端伺服器客戶端)。

Ubuntu 上的 Desktop Sharing,server 端可以用 vino-server (系統 > 設定 > 遠端桌面),client 則用 vingare (應用程式 > 網際網路 > 遠端桌面檢視器)。

2012/07/06

xdg-open

Windows 有個命令列指令 start。在此指令之後可以接執行檔檔名,也可以接其他各式各樣的文件檔,start 會自動找出對應的程式開啟此文件。

聽說 MacOS 也有類似的指令,open。那 GNU/Linux 上呢?當然也有,不過比較不好記:xdg-open

2012/01/20

Oneiric Ocelot 的 mpeg4ip-utils 套件

Ubuntu 更新到 Oneiric Ocelot 之後,有些套件已經不支援了,例如 mpeg4ip-utils。臨時有急用,所以只好跟 Natty Narwhal 借。

方法是從 https://launchpad.net/ubuntu/+source/mpeg4ip 下載以下套件:
  • libmp4v2-0_1.6dfsg-0.2ubuntu9_amd64.deb
  • libmpeg4ip-0_1.6dfsg-0.2ubuntu9_amd64.deb
  • mpeg4ip-utils_1.6dfsg-0.2ubuntu9_amd64.deb
然後用 dpkg 依序安裝即可:
dpkg -i libmp4v2-0_1.6dfsg-0.2ubuntu9_amd64.deb
dpkg -i libmpeg4ip-0_1.6dfsg-0.2ubuntu9_amd64.deb
dpkg -i mpeg4ip-utils_1.6dfsg-0.2ubuntu9_amd64.deb

2011/10/26

在 Ubuntu 上使用玉山銀行的 WebATM

玉山銀行的 WebATM 是極少數不但支援 Windows + IE 平台,也支援 Linux + Firefox/Chrome 等平台的網路銀行。單這一點,就值得大力推薦。

WebATM 安裝方法還算簡單,請參考:
可以歸納為三個步驟:
  1. 安裝 Ubuntu 提供的 pcscd 套件
  2. 安裝讀卡機提供的驅動程式
    • cd driver_ezusb_v1.5.3_for_64_bit/
    • sudo ./install
  3. 在 Firefox 安裝玉山銀行提供的 WebATM plugin (看第六點)
不過,根據我在 Ubuntu 11.10 和 12.10 上的經驗,這樣的安裝程序似乎還不夠。可到 WebATM 健診頁面跑檢測程式:
我的情況是前三關都順利通過,但就是抓不到讀卡機。且在 /var/log/syslog 會出現以下錯誤訊息:
pcscd: readerfactory.c:965:RFInitializeReader() Open Port 0x200000 Failed (USB:0CA6/0010:LIBUDEV:0:/DEV/BUS/USB/004/002)
pcscd: readerfactory.c:275:RFAddReader() CASTLES EZ100PU init failed.
pcscd: hotplug_libudev.c:377:HPAddDevice() Failed adding USB device: CASTLES EZ100PU
這問題有兩個解法:第一個較簡單,第二個較安全。

解法一是舊式的作法,需以 root 身份執行 pcscd。請先修改 /etc/init.d/pcscd,將以下片段的 "exit 0" 註解掉,再重開機即可:
# DO NOT start the daemon on startup
# comment the line to have the same behavior as in version < 1.6.0
#exit 0
解法二是較安全的方式,是以使用者身份動態執行 pcscd,但你必須賦予這台讀卡機特殊的權限。作法是新建一個檔案:/etc/udev/rules.d/92-pcscd-ccid.rules。內容如下:
# If not adding the device, go away
ACTION!="add", GOTO="pcscd_ccid_rules_end"
SUBSYSTEM!="usb", GOTO="pcscd_ccid_rules_end"
ENV{DEVTYPE}!="usb_device", GOTO="pcscd_ccid_rules_end"

# Castles Technology Co., Ltd EZUSB PC/SC Smart Card Reader
ATTRS{idVendor}=="0ca6", ATTRS{idProduct}=="0010", GROUP="pcscd"

# All done
LABEL="pcscd_ccid_rules_end"
注意上面的 idVendor 和 idProduct 必須對應到讀卡機的 USB ID。你可用 lsusb 查出 USB ID,譬如:
Bus 003 Device 003: ID 0ca6:0010 Castles Technology Co., Ltd EZUSB PC/SC Smart Card Reader
改完後 sudo service udev restart,應該就大功告成了。

參考資料

2011/09/30

綠色網頁 -- 網頁設計也能做環保

跟朋友借了一台 海韻 Power Angel 來測量家裡電器的用電情況。我的 Asus X61Z 筆電 (Ubuntu 11.04) 在開完機等待一小段時間後的發呆狀態下 (螢幕稍變暗) 消耗功率是 26W。將 Firefox 6.0.2 開啟後,繼續做了以下實驗。
  1. 連到 http://www.google.com.tw 後不做任何操作,等到螢幕變暗後觀察到消耗功率是 26W。
  2. 連到 http://news.chinatimes.com 後不做任何操作,等到螢幕變暗後觀察到消耗功率在 27W~32W 之間跳動。我的 Firefox 有裝 Flash Block,所以網頁上的 flash 是沒有啟動的。
  3. 繼續前一個實驗,但將網頁上的 flash 全部啟動後不做任何操作,等到螢幕變暗後觀察到消耗功率在 31W~37W 之間跳動。
  4. 繼續前一個實驗,將 Firefox 最小化後不做任何操作,等到螢幕變暗後觀察到消耗功率在 27W~28W 之間跳動。
  5. 連到 http://tw.yahoo.com 後不做任何操作,等到螢幕變暗後觀察到消耗功率在 27W~46W 之間跳動。我的 Firefox 有裝 Flash Block,所以網頁上的 flash 是沒有啟動的。
  6. 繼續前一個實驗,但將網頁上的 flash 全部啟動後不做任何操作,等到螢幕變暗後觀察到消耗功率在 28W~48W 之間跳動。
  7. 繼續前一個實驗,將 Firefox 最小化後不做任何操作,等到螢幕變暗後觀察到消耗功率在 27W~32W 之間跳動。
根據上面的實驗,有以下簡單的結論:
  • Google 這種靜態網頁最省電,放著也不會多耗電,堪稱綠色網頁。
  • 中時電子報Yahoo 之類的網站,為了吸引你的眼球,放了一堆 Ajax 或 Flash 在網頁上面跑。不管你看不看,都會消耗多餘的功率。
  • 不同的網頁,功率消耗也不一樣。但最小化後可以省掉畫面更新的消耗,多少省一點。
  • 看起來 Flash 消耗不少功率,裝個 Flash Block 既省頻寬又省電,值得推薦。
我家那台不知品牌的純有線 IP 分享器,消耗功率是 4W。若各大網站能多用點心,少點花俏,那麼省下來的功率就夠這台 IP 分享器用了。

2010/04/13

MIME HTML (.mht)

最近收過幾封朋友轉來的履歷表,看起來是直接從 104 人力銀行下載存檔的。檔名都叫 RESUME.doc,既然是 .doc,就直接用 OpenOffice 來開啟,結果卻都失敗。

查看檔案內容,不像是一般我所認知的 .doc 檔。仔細研究之後,才知道這叫做 MHTML 格式,或者 .mht。規格還定義成 RFC 2557。

雖然 OpenOffice 不支援此種格式,但 FireFox 加上 UnMHTMozilla Archive Format 外掛之後,就能夠讀取這種檔案。不過檔名要先改成 .mht。

2010/03/16

我的 alias 設定

我們可用 alias 這個指令來訂製常用的指令,非常方便。alias 設定通常是寫在 ~/.bashrc,以下是我目前的設定:
  • alias diff='colordiff -x .svn'
  • alias grep='grep --color=auto --exclude-dir=.svn'
  • alias ls='ls --color=auto'
  • alias svn='LANG=C /usr/bin/colorsvn'
其中:
  • diff 換成 colordiff,這樣顯示出來的結果比較容易判讀。另外,因為常有 Subversion 的專案,所以排除 .svn 這個不需比較的目錄。
  • grep 比較單純,預設就有顏色顯示。我只是加上排除 .svn 的設定。
  • ls 預設的就很好用了。
  • svn 換成 colorsvn,這樣顯示出來的結果比較容易判讀。

2010/02/06

用 shell script 產生全是 0xFF 的檔案

要產生全是 0x00 的檔案很容易,借助 /dev/zero 或 /dev/full 即可。要產生全是 0xFF 的檔案就要借助其他工具。目前找到以下方法 (allone.dat 為輸出檔;1024 為檔案大小,可自行調整):
awk 'BEGIN { while (1) printf("%c", 255) }' \
| dd of=allone.dat bs=1 count=1024
PS: 你問我為什麼要產生這種檔案?是為了填補 flash ROM 的內容。Flash ROM 的空的狀態就是 0xFF。

2009/04/27

辨認 GNU/Linux 的發行版本 (distro)

網路上有多少 GNU/Linux 的發行版本 (distro)?看看這張令人眼花撩亂的 族譜 吧,我相信沒有幾個人有興致去數清楚的。但弄清楚你正在使用的 GNU/Linux 是哪一個版本可能是相當重要的課題 (透過 ssh 去登入主機的使用者,不見得知道該主機作業系統的詳細資料)。

由於 GNU/Linux 的發行版本很多,多數又有繼承演化的關係,要辨認出每個版本不是一件容易的事。以下是一些簡單的辨別方法,越前面的越精確,但不見得都適用,若該方法行不通,請退而求其次,試試下一個方法。

執行 lsb_release -a


這是最精確的方法,以下是一些輸出範例:

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.10
Release: 8.10
Codename: intrepid
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 4.0 (etch)
Release: 4.0
Codename: etch
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.2 (Final)
Release: 5.2
Codename: Final
執行 ls /etc/*release 再執行 cat /etc/*release

有許多發行版本的資訊都寫在 /etc/*release 的檔案之中,例如:
  • /etc/lsb-release (Ubuntu)
  • /etc/SuSE-release (SuSE)
  • /etc/redhat-release (RedHat, CentOS)
  • /etc/mandrake-release (Mandrake)
  • /etc/distro-release (AsteriskNOW)
執行 ls /etc/*version 再執行 cat /etc/*version

有另一些發行版本的資訊是寫在 /etc/*version 的檔案之中,例如:
  • /etc/debian_version (Debian, Ubuntu)
  • /etc/slackware-version (Slackware)
執行 cat /etc/issue

嚴格說來,這不是正確的方法,因為此檔案是用來儲存一些要秀給使用者登入時看的訊息。但很多 distro 都會在這個檔案寫上自己的發行名稱,所以也是不錯的參考資料。例如:
  • Ubuntu 8.10 \n \l
  • Ubuntu 8.04.2 \n \l
  • Debian GNU/Linux 4.0 \n \l
  • CentOS release 5.2 (Final) Kernel \r on an \m
執行 cat /proc/version

此方法的訊息更不明確,但也不失為一個判斷的依據。例如:
  • Ubuntu 8.10 => Linux version 2.6.27-11-generic (buildd@yellow) (gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11) ) #1 SMP Wed Apr 1 20:53:41 UTC 2009
  • Ubuntu 8.04.2 => Linux version 2.6.24-23-server (buildd@vernadsky) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Mon Jan 26 00:55:21 UTC 2009
  • Debian 4.0 => Linux version 2.6.22-3-vserver-amd64 (Debian 2.6.22-6) (maks@debian.org) (gcc version 4.1.3 20071019 (prerelease) (Debian 4.1.2-17)) #1 SMP Sun Nov 4 18:41:00 UTC 2007
  • CentOS 5.2 => Linux version 2.6.18-92.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)) #1 SMP Tue Jun 10 18:49:47 EDT 2008

2009/04/10

我的 Ubuntu 軟體點點名

用 Ubuntu 越久,就越覺得方便。需要甚麼功能的軟體,絕大部分用 Synaptic 就可以下載安裝。將好用的軟體記錄如下,也推薦給大家 (不含 Ubuntu 固定會安裝的)。
  • KchmViewer 電子書 .chm 檔案的檢視器。套件:kchmviewer (曾試過 GnoCHM 和 ChmSee,這兩者的搜尋功能都不好用)
  • hexedit 非文字檔的編輯工具。套件:hexedit
  • unrar 解壓縮程式,可與 file-roller 整合。網路上有那麼多免費、公開的壓縮軟體,搞不懂為什麼那麼多人喜歡將檔案壓成 .rar。套件:unrar
  • minicom 終端機模擬軟體 (terminal emulator),透過 RS232 連到某些設備的 console。套件:minicom (進一步介紹)
  • Wire Shark 封包抓取和分析軟體。套件:wireshark (進一步介紹)
  • Virtual Box 虛擬機器。套件:virtualbox-ose,但我推薦 官方網站 的版本,不管用哪一套都需安裝 scim-bridge-client-qt (進一步介紹)
  • Sox 聲音檔轉換工具 (命令列模式)。套件:sox、libsox-fmt-all
  • VLC media player 影音播放軟體。套件:vlc
  • Wave Surfer 聲音檔處理、分析工具,可檢視聲音波形、區間播放等。套件:wavesurfer

2009/03/10

Subversion, Grep, Diff

我很習慣用 grep 來找 source code 當中的字串;也很習慣用 diff 來比較兩個 source tree 的差異。如:
grep -r STRING *
diff -ur DIR1 DIR2
這兩個指令很好用。但是遇到 Subversion 的 working copy 時,就會受到 .svn 目錄的干擾。所幸這兩個指令都提供排除非必要目錄的方法:
grep --exclude-dir=.svn -r STRING *
diff -x .svn -ur DIR1 DIR2

老實說,常會忘記這些參數,也常弄混。因此建議在 .bashrc 當中加上以下設定,這樣以後不管是不是 working copy 都可以安心使用 grep -r 和 diff -r 了:
alias grep='grep --exclude-dir=.svn'
alias diff='diff -x .svn'

2009/01/15

好康推薦:PrintWhatYouLike.com

網路世界的資源非常豐富,但不一定長久。不管是書籤還是最愛,留下 URL 並不能保證將來你還可以再找到相同的資料。所以,當發現有些值得保存的資料時,我會想辦法留下副本。

另存新檔?詳實用 HTML 紀錄原始的資料,但垃圾多又不方便管理。所以我習慣輸出成 PDF 文件。不過網頁上通常充斥廣告等不相干的內容,令人想去之而後快。還好,Firefox 有許多外掛程式提供這類編輯網頁的功能,如:Nuke Anything EnhancedPage Hacker 等。

這次要推薦的不是以上那些 extension,而是一個有同樣功能的服務網站:
透過這個網站,編修網頁更加容易上手。當然,缺點就是不是所有的網頁都可以利用這項服務,例如公司內部網站。如果,printwhatyoulike 能夠改寫成 extension,那就是太完美了。

Firefox 的 PDFescape Extension

唉... 可能寫筆記不夠用心,竟然跟上時代潮流放起無薪假來了。趁著悠閒,上網看看 Firefox 有什麼新鮮的外掛程式可用,發現 PDFescape 是蠻有意思的服務。

裝上這個 extension 之後,你可以將網路上的 PDF 文件送到 http://www.pdfescape.com 作線上編輯,如:用空白蓋掉原有的內容、加上新的文字和簡易的方圓等圖形,甚至可以加上文字輸入方塊和 checkbox 等。等改好之後,就可以下載這份修改過的文件。

我想到一個使用場合。有時我們必須下載 PDF 格式的表格,印出、填寫然後拿去申請任何東東。有了這服務,寫字難看的我就可以先加工過再印出來,頂多留下簽名欄位就可以了。

我承認用到的場合不多,所以我不會安裝這個 extension。因此隨手記下,以備將來之需...

2008/01/30

原來沒有 System Tray 這一回事

很多人都 知道 Windows 上有個地方叫做 System Tray 吧?就是一般在畫面下面工作列右手邊的那個區塊。

其實,在 Microsoft 的正式術語當中,是沒有 System Tray 這個詞的。這個詞的出現源自於誤解,正式的說法應該是 Taskbar Notification Area。也就是說,工作列是由 Start menu (開始功能表)、quick launch bar (快速啟動列)、taskbar buttons (工作列按鈕) 和 notification area (通知區域) 所組成的。

有興趣的人可以看看以下的第一則參考資料。

參考資料

2008/01/01

楔子: Softsmith = 軟體工匠

還未進入社會,就以寫軟體謀取微薄的報酬維生。在工作時程最緊的時候,常覺得寫軟體就跟黑手工匠一樣累,甚至有過之而無不及。

Softsmith 是我自創的詞 (但並非首創,Google 一下就知道)。一般來說,-smith 是用於金屬工匠的詞綴。如:goldsmith, silversmith, blacksmith, locksmith, gunsmith 等等,這些都是一般人所認知的黑手工匠。

其實,wordsmith, tunesmith 也使用 -smith 這個詞綴。我想這些寫作或作曲的人在熬夜趕工的時候,也是覺得自己比黑手工匠還累吧?這樣看來,softsmith 也是挺合理的組合。

另外,應該沒人沒聽過 sourceforge 吧?Source 都能放進 forge 了,software 當然要有 smith 來敲敲打打。

我就是那些敲敲打打的 smith 之一,而且還老大不小了。因為年紀一大,記憶力就變差,所以在這個部落格整理工作所需的筆記,自娛娛人。