Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)

林有容

  • 出版商: 博碩文化
  • 出版日期: 2021-11-02
  • 定價: $680
  • 售價: 7.0$475 (限時優惠至 2024-05-07)
  • 語言: 繁體中文
  • 頁數: 384
  • 裝訂: 平裝
  • ISBN: 9864349171
  • ISBN-13: 9789864349173
  • 相關分類: LinuxRaspberry Pi
  • 立即出貨 (庫存 < 10)

  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-1
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-2
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-3
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-4
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-5
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-6
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-7
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-8
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-9
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-10
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-11
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-12
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-13
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-14
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-15
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-16
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-17
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-18
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-19
  • Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-20
Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)-preview-1

買這商品的人也買了...

商品描述

  • 「Ok,你買了幾本 Linux 驅動程式的書,然後呢?」

    在學習一個新技術時,往往會期待先從一些簡單的例子出發,再逐漸延伸。
    不過,如果這個新技術跟 Linux 核心相關,「一些簡單的例子」可能沒那麼簡單。
    如果直接從核心改起,從一些作業系統課常見的名詞出發:行程管理、同步機制、記憶體等,往往會因為更動帶來的影響遍佈整個作業系統,而不知該如何下手。而如果從裝置驅動程式開始,個人電腦的硬體往往缺乏彈性,嵌入式系統則需要另外準備軟、硬體實驗環境、交叉編譯工具鏈等等,也很有可能需要另外使用 QEMU 之類的模擬器除錯。
    要開始寫程式,才能驗證所學。但似乎很難找到簡單實驗環境與例子,那該怎麼辦呢?

    別擔心!這本書就是來回答這個問題!


    本書內容改編自第12屆iT邦幫忙鐵人賽IoT組冠軍系列文章──《Modern Maker : 從那些 Maker 的大小事看 Linux 核心》。本書旨在替理解 Linux 內部提供一個略為不同的切入點,使用創客手邊的 Raspberry Pi 與 Arduino,搭配最普遍使用的 Ubuntu,作為實驗 Linux 核心功能的環境。除此之外,本書援引近五年來的諸多研討會作為第一手材料。手上拿著這本書的你,不用買更多材料,今天回家就可以立刻實驗!

    本書內容
    Chapter 1:Ftrace 與 eBPF ,介紹 Linux 中的兩個動態追蹤機制:由「即時」分支來的 ftrace ,與近幾年討論度極高的 eBPF。這些工具使得讀者僅使用命令列,就能觀察 Linux 內部的運作。這樣做也容易有「外溢」的效果:如果你在追蹤結果中一直看到某些東西重複出現,自然會好奇這是什麼。於是你就有了一個學新東西的好情境。

    Chapter 2:裝置樹與 Linux 裝置框架,介紹裝置樹與 Linux 裝置模型。一方面是更貼近 Maker 的經驗:Maker 們可能常常在一些感測器、ADC、觸控螢幕的硬體供應商提供說明中,看到疊加裝置樹的指示。介紹裝置樹對於 Maker 來說,可以更深入理解這件事的目的,是非常有幫助的知識。另一方面,核心模組也可以因為結合裝置模型,許多函式可以使用自動資源管理的版本,也有助於讓程式更精簡。

    Chapter 3:GPIO ,介紹如何在核心中使用 GPIO 。有了 GPIO 之後,就能在 Chapter 4:IRQ 中使用 GPIO 觸發各種 IRQ,搭配 Chapter 1 的動態追蹤工具,讓讀者可以親自實驗中斷上半部與下半部機制的執行機制、執行前後文、發生時機等等。本書涵蓋的下半部機制包含了 workqueue、softirq、tasklet 與 threaded IRQ。在理解 IRQ 之後,相信讀者在閱讀核心文件時,碰到如「該函式無法在不能休眠的情境使用」之類的敘述時,就不會容易感到困惑。

    Chatper 5:I2C ,在介紹核心與使用者空間的 I2C 相關功能之後,Chatper 6:與使用者交換資料中,介紹了字元驅動程式,並且把前述的 I2C 的傳輸包裝成字元驅動程式。 最後則是介紹了專為感測器設計的 IIO 子系統。多數的 ADC、加速規、距離感測器等,有不少可以在 IIO 子系統中找到驅動程式。

    本書使用的硬體
    這本書使用 Raspberry 4B 與 Arduino Uno。當然,還需要幾條杜邦線。除此之外,為了不讓使用 3.3V 邏輯電壓的 Raspberry Pi 4B 被使用 5V 邏輯電壓的 Arduino Uno 破壞,部分實驗需要使用到邏輯準位轉換器(logic level shifter)。以及在最後的 IIO 實驗中,還需要一個 TCRT5000 紅外線距離感測器,但實際上也可以 Arduino Uno 替代。除此之外,你不需要更多硬體了。

    Ok,準備好了,我們就直接開始吧!

作者簡介

  • 林有容

    臺灣大學機械工程學系畢業,常用的暱稱是 0xff07。
    除了玩貓之外,也是個筆記控。平常喜歡把學過的東西整理在 HackMD上,內容從在學時的必修課,到研討會的影片整理都有。
    如果想看看我最近在弄什麼,歡迎來我的 HackMD 個人頁面看看。
    hackmd.io/@0xff07。或者也可以由 0xff07@gmail.com 找到我。

目錄大綱

  • 前言

    CHAPTER 1 - Ftrace 與 eBPF
    前言
    實驗一:使用 Ftrace 追蹤核心內部
    實驗二:使用 bpftrace 追蹤

    CHAPTER 2 - 裝置樹與 Linux 裝置框架
    前言
    實驗三:核心的規格書小抄— 裝置樹
    實驗四:Linux Driver Model (LDM)

    CHAPTER 3 - GPIO
    前言
    實驗五:在裝置樹中描述 GPIO
    實驗六:在核心模組中使用 GPIO

    CHAPTER 4 - IRQ
    實驗七:Hard IRQ 與 Soft IRQ
    實驗八:以 GPIO 觸發 IRQ
    實驗九:Threaded IRQ

    CHAPTER 5 - I2C
    實驗十:I2C — 由 User 到 Kernel

    CHAPTER 6 - 與使用者交換資料
    實驗十一:以字元驅動程式包裝 I2C 傳輸
    實驗十二:IIO 子系統簡介

    附錄 - 環境與開發工具安裝
    附錄一:在樹莓派安裝 Ubuntu 20.04
    附錄二:使用 cscope 與 ctags 搜尋原始程式碼