跳至正文

Yen-Chin, Lee

關於 Emacs、Clojure、Linux 與開發工具的筆記。

coldnew's blog

讓你的 Android init 可以掛載 UBIFS 檔案系統

在 Android 的 init.rc 中,可以看到掛載檔案系統使用的 mount 命令,而 這命令和我們一般在 Linux 下使用的 mount 命令不同,是個提供給 init 運作的描 述句,你可以在 system/core/init/builtins.c 找到他的實現。 在大多數的 Android 設備中,常常可以看到掛載 yaffs2 的描述,卻很少看到 ubifs 的掛載描述 為什麼理應效能比較好的 ubifs 卻未被 Android 系統廣泛使用?個人推測有以下原 因 1. Android 採用 yaffs2 作為 MTD NAND Flash 檔案系統 2. 大多數的 Andro…

閱讀全文 »

如何升級/降級 HTC One X 的 HBOOT

警告 刷機有變磚的風險,請自行負責刷機失敗的責任。 在前面的文章中,曾經提到了如何自己動手建立 CM9 或是 CM10.2 的 image 給 HTC One X 手機使用,但是並未提及最關鍵的步驟: 如何升級/降級 HBOOT 。 為何或說升級/降級 HBOOT 是非常關鍵的步驟呢?事實上,HTC 提供的 firmware 裡 面,用於 Android 4.0 (ICS) 和 Android 4.2 or 4.3 (JellyBean) 的 HBOOT 是 不相容的,因此若你想要使用 ICS 的版本,你就必須使用舊一點的 HBOOT,反之, 若你要使用 JellyBean,你就需要比較新的 …

閱讀全文 »

編譯 CyanogenMod 10.2 (JellyBean) 並安裝到 HTC One X 手機

CyanogenMod 是目前最為風行的 Android 第三方改版,原本由 Steve Kondik 創 辦開發,並加入了許多 xda 社群的改版,該團隊也在最近成立了公司 CyanogenMod Inc. 本篇文章以 CyanogenMod 10.2 (簡稱 CM10.2) 為主,並使用 HTC One X (Endeavoru) 作為編譯的目標機型。 若您有興趣的是如何編譯 CM9 到你的 HTC OneX,請參考拙作: 編譯 CyanogenMod 9 (ICS) 並安裝到 HTC One X 手機 建立你的開發環境 要能夠編譯 CyanogenMod, 首先要先把開發環境建立好,才能…

閱讀全文 »

如何訂閱 Linux Kernel mailing-list

身為 Linux Kernel 開發者,趕流行是很重要的,在 mailing-list 上面可以看到 很多 Linux Kernel 新的改進、修正資訊,但是 Linux Kernel mailing-list 的 訂閱方式並未像 GNU 專案的 mailing-list 那樣直覺,對於初學者可能會覺得摸 不著邊。 本文將實例介紹 Linux Kernel mailing-list 的訂閱方式,除了 Linux Kernel 以外,本文的作法亦可以套用在 Majordomo lists at VGER.KERNEL.ORG 上面 所列的和 Linux Kernel 相關的 mailing-li…

閱讀全文 »

去除 org-mode 輸出 HTML 時產生多餘的空格

使用 org-mode 產生 HTML 網頁的時候,偶而會看到中文字中間會夾雜著一個空 白符號,其狀況如下圖,這到底是怎麼一回事? 會出現這個問題,是因為在 org-mode 中啟用了 auto-fill-mode,會自動將一 行控制在 80 的文字以內,而換行符號則會在 org-mode 轉換成 HTML 的過程中, 被置換為空白符號。這個空格在英文中並不是問題,但是在非英語系的語言中, 可能就會產生令人討厭的感覺。 由於目前這個問題尚未被 org-mode 官方修正,因此讓我們透過 emacs 的 defadvice 功能,來 修正 一下這個問題吧,請在你的 .emacs 加上 這樣使用 …

閱讀全文 »

使用 raspberry.local 連到你的 Raspberry Pi

在測試 Google Coder 的時候,我發現到他預先建立好的 SD Card 映像檔可以 直接使用瀏覽器透過 http://coder.local 連線進去,這到底是怎麼辦到的? 經過了一些資料的收集,原來這就是 Zeroconf 。大約在 2008 年 前後,Gentoo Linux 突然增加了 zeroconf 與 avahi 的 USE flag,當時一直 無法理解這兩個 flag 的用途,現今終於豁然開朗。 Avahi 是開源的 Zeroconf 協定的實現,Zeroconf 全名為 Zero configuration networking,是一種用於自動生成可用 IP 地址的網…

閱讀全文 »

為你的 Raspberry Pi 裝上 Watchdog

你是否遇過 Raspberry Pi 異常死掉呢? 我遇過,而且非常多次 會造成 Raspberry Pi 當掉的原因有很多,比如電源供電不足、電源線阻抗 太大,造成提供的電壓不夠、有零件故障、瑕疵品......等,當然也有可能是 Raspberry Pi 在台灣水土不服所導致,有興趣的話使用 Raspberry Pi freeze 這樣的關鍵字去收尋,就可找到非常多的討論串。 那既然手邊的 Raspberry Pi 會當掉,那要怎辦呢?總不能一旦他掛掉,就手動 重新啟動吧? 這時候就是 watchdog 出馬的時候啦 ~ Watchdog,中文譯為 看門狗 ,這是一種用於判斷系統是否有正常運…

閱讀全文 »

自己動手編譯 Raspberry Pi 的 Kernel

Raspberry Pi 除了是個很方便的小玩具之外,同時也非常適合用他來學習和 Linux 以及 Linux Kernel 的相關知識,本篇將講解如何自己編譯最新的 Linux Kernel 給你的 Raspberry Pi 使用。 取得編譯用的 toolchain 與工具 若要進行跨平台編譯,相對應的 toolchain 是必要的,讓我們來說說如何取得 toolchain。 若你是 Gentoo Linux 的使用者,你可以透過 crossdev 建立專用的 toolchain,更完整的資訊,請參考 Raspberry Pi - Gentoo Wiki 。 除此之外,在 GitHub 也有…

閱讀全文 »

在 Gentoo Linux 下開發 Launchpad MSP430 程式

Launchpad MSP430 是德州儀器 TI 所推出的 8-bit 微控器開發版,和知名的 Arduino 相比,Launchpad 價錢相對便宜 (約 NT $300),並且可以自由更換板子 上面的 IC 進行燒錄。 大部分人進行 MSP430 開發的時候都會使用 TI 或是其他廠商所提供的整合開發 環境(IDE),比如 CCS、IAR Embedded,這一類工具使用方式與介紹網路上非常 多。對於一個 Emacs 與 Linux 慣用者而言,我傾向於最簡單乾淨的方式,使用 Makefile 和 msp430-gcc 來達成我所期望的 Launchpad 開發。 msp430-gcc …

閱讀全文 »

解決 org-mode 表格內中英文對齊的問題

在 org-mode 中使用表格非常簡潔明快,唯一的缺點是在表格中,中英文會出現對齊不良的 狀況,這是因為我們設定的中英字體大小無法匹配,導致如下圖左的狀況: 原始的 org table 中英文對齊狀況 修改後 org table 中英文對齊狀況 要解決這樣的問題,有以下幾種方案: 1. 修改字體,製作出中英文大小匹配的字體 2. 使用終端版本的 emacs 3. 調整字體的大小,使其匹配 第一種方案非常不優雅,因為你必須自己製作新的字體,產生所謂的 混種字體 ,很可惜的,網路上流傳的解法以第一種居多。為了更加優雅的解決這個問題, 我採用第三種方案,先找尋中英字體可以匹配的大小,在使用 eli…

閱讀全文 »
© 2012–2026 Yen-Chin, LeeRSSPowered by Astro