發表文章

目前顯示的是 2014的文章

[iOS] 解除 LINE 的電話號碼綁定,與備份資料庫

由於 LINE 在綁定了電話號碼之後,就不能使用 VPN 跨國下載其他有趣的貼圖了, 但現在又有很多當地的新圖需要綁定電話號碼才可下載,如果想要解除綁定的話怎麼辦呢? 不管用什麼方法,更新過後的 LINE 都要重新下載貼圖喔! 而且要記得原本的換機密碼喔! == 方法一 == 我個人比較愛用這個方法 XD === 解除綁定 === 0. 在綁定狀態下,先下載好你要的貼圖。 1. 將 iPhone 連接到電腦,並打開你的 iTools / iFunBox (解除綁定開始)(這裡以 iTools 為例)。 2. 選取本機應用程式 LINE -- 瀏覽 -- 進入 Library -- Preferences 資料夾。 3. 「備份」並「刪除」 "jp.naver.line.plist" 檔案(記得一定要備份,丟到電腦的桌面也可以)。 4. 將 LINE 從 iOS 的多工列關閉,並重新打開,然後重新登入。 === 重新登入 === 5. 登入 -- 透過 Email 來登入並輸入換機密碼。 6. 然後在設定 -- 個人資料內,就可以看到電話號碼已經刪除囉。 == 方法二 == 首先用 iTools 備份聊天與對話記錄: 1. 進入 LINE -- Documents 資料夾。 2. 備份裡面的「talk.sqlite」、「talk.sqlite-shm」、「talk.sqlite-wal」三個檔案 3. 刪除 LINE 並重新安裝,然後登入。 4. 安裝好後,將上述三個檔案重新丟進去原目錄即可。 Enjoy it!

如何在 rename() 過後持續使用 inotify 來監控文件?

由於工作上遇到此問題,請教了咕狗大神半天也找不太到合適的答案,只好自己研究了。 平常使用 inotify() 可以拿來監控文件的變更,最常見的就是透過 IN_CLOSE_WRITE 這個 mask 來監視,範例如下:

如何在 Linux Kernel 下偵測網路的連線狀態?

借用一下參考資料的標題。 今天如果想要在 Linux Kernel 內得知實體網路的 Link Status,只需要去 /sys/class/net/ 然後直接去 cat 這兩個 node,以 eth0 來當範例。 這是網路線有插入的狀況: eth0/carrier:1 eth0/operstate:unknown 這是網路線拔除的狀況: eth0/carrier:0 eth0/operstate:down 當再次插入時,原本的 carrier 會從 unknown 變成 1: eth0/operstate:up eth0/carrier:1 不然直接去 grep eth0/ 底下的東西也可以: grep "" eth0/* 很遺憾的是,在 user level 內支援的 inotify,在 kernel level 是不能用的, 所以要借助 socket 的力量,直接在 ethernet driver 內使用 sock_create_kern 來 create socket, 然後透過 connect 與 sock_sendmsg 將要傳的資料填寫在 buf 內就好。(如果要傳 struct 就 &struct) 參考資料: http://stackoverflow.com/questions/808560/how-to-detect-the-physical-connected-state-of-a-network-cable-connector http://stackoverflow.com/questions/10340145/get-event-for-nic-ethernet-card-link-status-on-linux

Net-Snmp 5.7.2.1 Porting and Testing Commands

由於工作需求...呃應該不用什麼前言了。 本篇主要介紹如何將 net-snmp 5.7.2.1 (LTS) 做完 CROSS-Compile 並 Porting 到 Embedded 平台上。 以下將以 Ti 的 DM368 平台來做示範。

在 Ubuntu Server 上安裝自己的 WikiMedia

由於在工作上有需求(遠目),需要安裝 Wiki 在 Server 上, 這邊便簡單記錄一下在 Ubuntu 上安裝 Wiki - MediaWiki 的心路歷程。 系統環境: 1. Ubuntu 14.04 server 2. MediaWiki 1.19.14 3. VirtualBox 4.3.12 確保安裝相關套件: sudo apt-get install mysql-server mysql-client sudo apt-get install php5 php5-mysql sudo apt-get install libgd2-xpm libgd2-xpm-dev php5-gd sudo apt-get install mediawiki 設定 MediaWiki 的 config 檔: sudo vi /etc/mediawiki/apache.conf - #Alias /mediawiki /var/lib/mediawiki + Alias /mediawiki /var/lib/mediawiki service apache2 restart 在 Ubuntu 14.04 之後的版本,需要額外執行下面這一行, 才能看到 MediaWiki 的設定畫面(記得 Apache 要重啟): sudo a2enconf mediawiki 之後連入 http://localhost/mediawiki ,跟著設定畫面一一設定, 最後會在網頁上自動產生一個 LocalSettings.php 以供下載,這時就這樣做: sudo cp /var/lib/mediawiki/config/LocalSettings.php /etc/mediawiki/LocalSettings.php sudo chown www-data /etc/mediawiki/LocalSettings.php sudo chmod 600 /etc/mediawiki/LocalSettings.php sudo rm -Rf /var/lib/mediawiki/config 如果找不到 ~/mediawiki/config/ 這個資料夾,那就開啟 samba 把檔案丟進去即可。 如

[Patch] TLV320AIC3X Driver Patch Code with MICBIAS

由於工作需求,因此需要針對 tlv320aic3x 的 driver 做 MICBIAS 的修改 (官方到了新版這部份還是沒改...) 然後在網路上找到了這份 Patch,趁著這個機會來記錄 & 說明一下: 這份 Patch 主要在新增 320AIC driver 內,提供 MICBIAS 的 voltage widget, 並且設定在 target board 內。這樣就可以有效的調整 MICBIAS 的值了! 完整 Patch Code 如下,有需要的就自行取用吧:

如何在 SVN 新增/刪除大量的檔案

感謝 Wolfer 大大提供教學,在此記錄一下: 最近遭遇一個問題,就是廠商提供的SDK,在套用了patch之後, 除了修改檔案之外,還可能會新增/刪除檔案。 而這些新增/刪除的檔案,可能數量不少,而且散在目錄結構的各處, 使得手動新增/刪除也既方便也容易造成錯誤。 因此從網路上找到了方法,說明如下: 1. svn status svn status 這個指令,可以列出目前目錄下的檔案狀態。 它會把所有被 修改/新增/刪除 的檔案列出來。 畫面最左邊會列出這個檔案的狀況: M:此檔案被修改過 ?:此檔案不在 SVN 的管控下(通常是新增檔案) !:檔案遺失(通常是被刪除) A:新增(透過 SVN add 指令加入) D:刪除(透過 SVN del 指令刪除) 2. grep 使用 grep ^? (或 grep ^!)來找出 新增 (或刪除)的檔案 3. sed 使用 sed ‘s/?//g’ (或 sed ‘s/!//g’) 來把 ‘?’ (或 ‘!’)移除 4. svn add (或 svn del) 使用 svn add (或 svn del) 來 新增/刪除 檔案 把四個步驟整合在一起就變成: 新增用 svn status | grep ^? | sed 's/?//g' | xargs svn add $1 刪除則用 svn status | grep ^! | sed 's/!//g' | xargs svn del $1

[Iperf] Iperf Porting and Testing Bandwidth Commands

這篇主要介紹的是 Iperf 要如何透過 cross-compile 來 porting 到不同的平台上。 Iperf 下載網址: http://iperf.fr/ 第一個範例是 Porting 到 Cavium 的 ECONA 平台上,第二個是 Porting 到 Ti 的系列平台上, 在文章最後並會介紹 Iperf 的簡單用法,現介紹如下: == Porting == ** ECONA Platform ** 1. get iperf-2.0.5.tar.gz from http://sourceforge.net/projects/iperf/ 2. tar zxvf iperf-2.0.5.tar.gz 3. cd iperf-2.0.5$ 4. export PATH=$PATH:/opt/cnstools/arm-linux-le-uclibc-gcc-4.3.3-2010.05/usr/bin 5. chmod 777 configure 6. chmod 777 config.h 7. ./configure –host=arm-linux CC=arm-linux-gcc” 8. comment “#define malloc rpl_malloc” in config.h (if you have ac_cv_func_malloc_0_nonnull=yes in previous line, you don’t need to do this) 9. make 10. you can find binary “iperf” in directory “src” ** Ti Platform ** 1. Download and un-pack the source code. 2. ./configure --host=arm-arago-linux-gnueabi CC=arm-arago-linux-gnueabi-gcc CXX=arm-arago-linux-gnueabi-g++ CXXCPP="arm-arago-linux-gnueabi-g++ -E" 3. make 4. comment “#define malloc rpl_malloc” in config.h

[iOS] iTunes 無法備份 iPhone,因為無法以 iPhone 來啟始同步階段

最近在透過 iTunes 來備份 / 回覆我的 iPhone 時,常常會出現這個字眼: 「iTunes 無法備份 iPhone,因為無法以 iPhone 來啟始同步階段」 原因不明,但 Apple 也知道這個情況,並在官網上提供了解決辦法: http://support.apple.com/kb/TS2529?viewlocale=zh_TW&locale=zh_TW 如果無法以新使用者的身分進行備份,請嘗試重置 Lockdown 檔案夾。重置 Lockdown 檔案夾後,您也許就可以啟動或儲存備份。 1. 從電腦拔下所有 iOS 裝置,然後結束 iTunes。 2. 重置(刪除、更名) Lockdown 檔案夾。 3. 重新開機 4. 插入 iOS 裝置。 5. 打開 iTunes 並嘗試進行備份。 Lockdown 資料夾的位置: 1. Vista / Win 7 / Win 8 的位置在: C: \p rogramdata \a pple \l ockdown  2. XP 的位置在: C: \D ocuments and Settings \A ll Users \A pplication Data \A pple \l ockdown 如果找不到資料夾的位置,可以這樣做: 1. 選擇 開始 -> 執行 -> 輸入 %ProgramData% 並按一下執行 -> 連按兩下 Apple 檔案夾 -> 即可找到 Lockdown 檔案夾。 2. 由於 ProgramData 是隱藏資料夾,因此先在檔案總管的工具列的「工具」>「 資料夾選項」中的「檢視」頁籤,將「隱藏檔案和資料夾」改為「顯示隱藏的檔案、資料夾及磁碟機」,這樣就能找到了。 參考資料: 1.  http://allennotebook.blogspot.tw/2013/10/itunes-iphone-iphone.html 2.  http://www.mobile01.com/topicdetail.php?f=383&t=3554867&p=1