jollen.org

Jollen 網路學院 2007 !!

Embedded Linux 技術分享與研究網站。

這是一個 Jollen 的分享平臺,這裡有一些 embedded Linux、Linux device driver 與 Linux kernel 的教學文件,也有一些個人想法的分享,都在我的 Blog 裡。

Jollen 的 Linux training 課程領域:Linux kernel、Linux device driver、cross toolchains、root filesystem build-up、ARM9/PowerPC hardware bring-up (U-Boot)。

Jollen's BlogEmbedded Linux 教育訓練

July 4, 2008: 千呼萬喚 Neo FreeRunner 正式上市

千呼萬喚始出來,第一個開放式的行動通訊平臺 Openmoko 今天正式展開第二代手機產品 Neo FreeRunner 的線上銷售。Openmoko 的官方新聞稿已經發佈在這裡了 [Openmoko Declares Independence for the Mobile Phone],特別選在獨立紀念日開放 Neo FreeRunner 訂購,正意味著 Openmoko 將在手機市場裡「獨立」走出自己的路,Openmoko 在行動通訊界做了一個革新,這個革新代表的是手機終於獲得真正的自由。 與之前銷售 Neo1973 不同的地方是,Openmoko 這次除了透過線上直銷外,在印度、德國、法國與英國的朋友也能向當地代理商購買 Neo FreeRunner。 距離上次 Openmoko 推出第一代產品 Neo1973 已經過了好長一段時間了,這些日子裡,行動通訊產業發生了許多大事,像是開放手機平臺(如 Android)概念的興起,以及觸控螢幕手機(如 iPhone)的流行,都讓大家有一種耳目一新的感覺。 Openmoko 呢? 這段時間,Openmoko 除了面臨外在的挑戰外,內部也有很大的調整與改變,但不管怎麼樣,我們相信結果是好的,社群開發者也更積極參與 Openmoko 平臺的開發,而且我們也看到了 Openmoko...(more)

June 24, 2008: Google 手機計畫的腳步慢下來了

在 The Wall Street Journal 上的一篇文章指出「Google 手機計畫的腳步慢下來了」,有興趣的朋友可參考原文 [Google's Mobile-Handset Plans Are Slowed]。原因是 carrier 仍與 Android 平臺奮戰中。以下是一些重點掃描,還有些許自已的想法。 Wireless carriers 要的是可以支援自家網路服務的行動裝置,而不是銷售支援其他網路服務的手機,或是自已的網路服務只是該手機的「附加功能」。由此文章也可以看出,這樣的需求,讓 wireless carriers 也開始要求手機製造商製造「branded phones」。即使像 Samsung 這樣的手機製造大廠,也面臨 carrier 要求掛品牌的問題,這方面 Samsung 並沒有什麼回應。 手機品牌廠面臨的一個問題是,當使用者需要的是能提供網路服務的手機時,勢必要和 carrier 建立良好的合作關係。當 carrier 提出的規格,是要求掛自家品牌時,像 Samsung 這樣的手機廠就會面臨一些壓力。從另一個角度來看,手機製造商(handset makers)有了另一個不錯的機會。 提供客製化的應用程式與 UI,以支援不同的網路服務,這是 carrier...(more)

June 22, 2008: [教育訓練紀錄] 從 kernel-space 讀取 user-space 的字串

User application 使用 write() 函數將字串寫到裝置檔,所以在 driver 裡頭,就要實作 write system call。當字串的傳遞是透過 write system call 寫至 kernel-space 時,driver 就要使用 copy_from_user() 來讀取 user-space 的字串。以下是一個簡單的 write driver function 實作參考,此實作提供由 kernel-space 讀取 kernel-space 字串的方法,當然這裡頭包含諸多隱含在程式裡的重要關念,例如: 1. user-space page 是 valid 或 invalid。 2. 讓不同 device file...(more)

使用 kmalloc() 時,要特別注重的是「可重覆進入」的觀念。kmalloc() 的第二個參數稱為 allocation flag,用來控制 kmalloc() 的行為,當此參數有指定 GFP_KERNEL 旗標時,kmalloc() 就是一個 blocking function。 使用 GFP_KERNEL 旗標來配置記憶體時,為什麼會有可重覆進入的議題呢?主要的關鍵在於,當 kmalloc(..., GFP_KERNEL) 無法配置記憶體時,便會做「等待」的動作,這個等待的動作是對「current process」做重排程,並等候記憶體空間。 以 open driver function 來看,通常我們會在 open driver function 裡做記憶體的配置,當記憶體目前無法取得時,open driver function 便會停止(等待),因此不會完成這一次的函數呼叫(沒有 return),此時,同一個 open driver function 會不會再被「重覆」呼叫執行呢?當然會。因為,可能會有另一個 process 去開啟 major...(more)

Embedded Linux Free Learning (自由學習)

說明 1.:把 Jollen's Blog 的心得儘量系統化起來(變成專欄形式),讓大家更有效率的使用日誌。目前已經整理好的專欄如下表,請由右邊鍊結進入。

說明 2.:專欄只是儘量把內容系統化,所有的日誌麻煩大家到 Blog 的歸檔查閱 :)

嵌入式 Linux 自由專欄分類 子專欄 最後更新時間
Embedded Linux Nano-X 2007-01-13
  BSS Section Concepts 2006-12-29
  System Calls 2006-12-01
  uClinux-dist 2006-12-28
  Executable and Linking Format 2006-12-12
  Linux System Calls' Forum 2006-11-26
  Linux Video Streaming 2006-11-26
  Embedded Linux Administration 2006-11-26
  Name Service Switch 2006-11-27
Linux Device Driver Linux Device Driver 入門:架構層 2006-12-02
  Linux Device Driver 入門:I/O 處理 2006-12-29
Web-enabled PHP 2006-11-22

訂閱 jollen.org 電子報: 最新消息與專欄動態
Email:

Jollen.org 專注於 Embedded Linux

◎ 核心課程 ◎
1. Embedded Linux / x86: 基礎能力與系統管理  
2. GNU Toolchains 與 Embedded Linux Programming  
3. Embedded Linux / ARM9: 移植與開發實戰  
4. Linux Device Driver 入門  
5. Linux Device Driver 進階  
6. U-Boot 入門與進階-以 ARM9/PowerPC 為例  
◎ Jollen 講座 ◎
7. Linux 驅動程式: MMC/SD 驅動程式架構分析
8. Linux 驅動程式: SDIO 驅動程式案例講解
9.  Linux 驅動程式: Framebuffer 驅動程式-以 Jollen-Kit! 的 Panel 為例
10. Linux 驅動程式: Interrupt I/O 驅動程式-以 Jollen-Kit! 的 GPIO 為例
11. Linux 驅動程式: I2C 驅動程式-以Jollen-Kit!的 I2C EEPROM 和 LM75 溫度 IC 為例
12. Linux 驅動程式: 類比處理驅動程式-以 Jollen-Kit! 的 ADC 為例 (溫度與速度之 Sensor)
13. Linux 驅動程式: NIC 驅動程式-以 BROADCOM 54xx GigaLAN與 GMII 為例
14. Linux 驅動程式: Console 驅動程式-以VGA fbcon為例
15. Linux 系統下的視訊影像擷取: /dev/video0
16. GNU Automake 與 GNU Autoconf
17. 使用 Monotone
* 整體課程關係,可先了解「Jollen 的課程規劃」。

Jollen-Kit! 開發板 (專為 Embedded Linux Training 課程打造)

Jollen 的 Embedded Linux 電子出版

Copyright(c) 2006,2007 www.jollen.org