


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基礎(chǔ)安裝 Linux 系統(tǒng)( 1) 語言選擇: 簡(jiǎn)體中文( 2)鍵盤配置: 美國(guó)英語式( 3)鼠標(biāo)配置: 3 鍵鼠標(biāo)( PS/2 )( 4)選擇安裝還是升級(jí): 新安裝( 5) 安裝類型個(gè)人桌面:工作站:服務(wù)器:定制:(6)磁盤分區(qū)設(shè)置自動(dòng)分區(qū):手工分區(qū):( 7)為系統(tǒng)分區(qū): 顯示當(dāng)前分區(qū),下一步(8)添加分區(qū):掛載點(diǎn)固定大小指定空間大小使用全部可用空間強(qiáng)制為主分區(qū)檢查磁盤壞塊(9)引導(dǎo)裝載程序配置:選擇引導(dǎo)裝載程序: GRUB選擇要引導(dǎo)的操作系統(tǒng)引導(dǎo)裝載程序是否使用口令配置高級(jí)引導(dǎo)裝載程序選項(xiàng)10)網(wǎng)絡(luò)配置:編輯網(wǎng)絡(luò)設(shè)備是否引導(dǎo)時(shí)激活設(shè)備名IP/ 子網(wǎng)掩碼設(shè)置主機(jī)名通過 DHCP 自動(dòng)設(shè)置手工
2、設(shè)置其他設(shè)置網(wǎng)關(guān)次要第三(11)防火墻配置: 選擇安全級(jí)別高級(jí)中級(jí) 無防火墻選擇防火墻規(guī)則默認(rèn)定制信任的設(shè)備容許進(jìn)入其他端口( 12 )語言支持的選擇:Chinese (P.R. of china)( 13 )時(shí)區(qū)配置:亞洲 /上海(14)設(shè)置根口令(15)選擇軟件包組:(16)準(zhǔn)備安裝:應(yīng)該看到一個(gè)安裝 Red Hat Linux 做準(zhǔn)備的屏幕。 當(dāng)你重新引導(dǎo)系統(tǒng)后,一份完整的安裝日志可在 /root/install.log 中找到,以備今后參考。要取消安裝進(jìn)程,按計(jì)算機(jī)的重新啟動(dòng)按鈕,或者使用 Control-Alt-Delete 組合鍵來重啟計(jì)算機(jī)。(17)安裝軟件包:(18)創(chuàng)建引導(dǎo)盤
3、: ( 19 )視頻卡配置: 自動(dòng)檢測(cè),若檢測(cè)不到,請(qǐng)手工配置 ( 20 )配置顯示器: 自動(dòng)檢測(cè),若檢測(cè)不到,請(qǐng)手工配置21)定制配置:色彩深度:真色 24 位屏幕分辨率:1024 X768(22)安裝完成基本使用登錄和注銷 啟動(dòng)和關(guān)機(jī) 顯示屬性的設(shè)置 改變桌面背景顯示設(shè)置分辨率色彩深度配置日期和時(shí)間光盤的使用(1)在文件管理器中使用光盤(2)在終端提示下使用光盤用戶還可以手工地在 shell 提示下掛載和卸載光盤。在光盤驅(qū)動(dòng)器內(nèi)插入一張光盤,打開 終端,然后鍵入以下命令:# mount /mnt/cdrom 這樣,光盤就會(huì)被掛載,便可以用文件管理器來使用它了。還可以通過點(diǎn)擊桌面上的主目 錄
4、圖標(biāo),并在位置欄內(nèi)鍵入 “/mnt/cdrom ”來訪問光盤。光盤上工作完畢后,在把它從驅(qū)動(dòng) 器內(nèi)彈出之前必須卸載它。 關(guān)閉所有使用光盤的應(yīng)用程序或文件管理器, 然后在終端提示下 鍵入以下命令:# umount /mnt/cdrom 現(xiàn)在,便可以安全地按光盤驅(qū)動(dòng)器上的彈出按鈕來取出光盤。打印機(jī)的安裝與設(shè)置 使用 RPM 來管理軟件包 RPM 的設(shè)計(jì)目標(biāo)可升級(jí)性強(qiáng)大的查詢功能系統(tǒng)校驗(yàn)純凈源碼RPM 基本操作模式安裝 RPM 包rpm -vh RPM包的全路徑文件名刪除 RPM 包rpm -e RPM 包名稱升級(jí) RPM 包rpm -U RPM 包的全路徑文件名查詢 RPM 包rpm -q校驗(yàn)已安
5、裝的軟件包rpm -V命令及相關(guān)概念 命令的使用方式 在 Linux 系統(tǒng)中打開終端的方式有以下兩種:種是在桌面上依次單擊主程序t系統(tǒng)工具t終端”可打開如圖2-1的終端窗口;另一種是在Linux 桌面上單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇 “終端 ”命令,也可打開終端窗口 鍵盤上大多數(shù)字符是普通打印字符, 它們沒有特殊含義。 只有少數(shù)特殊字符指示計(jì)算機(jī)做專 門的操作。其中最常見的特殊字符是回車鍵 RETURN ,它表示輸入行結(jié)束;系統(tǒng)收到回車 信息便認(rèn)為輸入的當(dāng)前行結(jié)束,系統(tǒng)的響應(yīng)是讓屏幕光標(biāo)回到下一行行首?;剀嚪皇强刂品囊粋€(gè)例子。 控制符是指控制終端工作方式的非顯示字符。 輸入一般 控制
6、符必須先按下控制鍵,或稱作 CTRL 鍵,然后再按所對(duì)應(yīng)的字符鍵。例如,輸入回車 符可以直接按回車鍵,也可以先按控制鍵,再按 m 鍵。 CONTROL-m 或 CTL-m 也是回車 符。一些常用的控制符有: CTL-d ,它表示終端的輸入結(jié)束; CTL-g 控制終端響鈴; CTL-h 稱為退格鍵,用于改正輸入的錯(cuò)誤 .此外還有兩個(gè)特殊鍵,一個(gè)是 DELETE 鍵,另一個(gè)是 BREAK 鍵。大多數(shù) LINUX 系統(tǒng) 中,DELETE鍵表示立即終止程序。 在有些系統(tǒng)里,也用CTL-c終止程序。一般說來,BREAK 鍵與 DELETE 鍵、 CTL-c 的功能基本相同。另外, 在終端上還有一個(gè)命令補(bǔ)
7、齊 (Command-Line Completion) 的操作技巧, 所謂命令補(bǔ)齊 是指當(dāng)鍵入的字符足以確定目錄中一個(gè)唯一的文件時(shí), 只須按 Tab 鍵就可以自動(dòng)補(bǔ)齊該文 件名的剩下部分,例如要把目錄 /freesoft 下的文件 gcc-2.8.1.tar.gz 解包,當(dāng)鍵入到 tar xvfz /freesoft/g 時(shí),如果此文件是該目錄下唯一以 g 開頭的文件,這時(shí)就可以按下 Tab 鍵,這時(shí)命令會(huì)被自動(dòng)補(bǔ)齊為: tar xvfz /freesoft/gcc-2.8.1.tar.gz ,非常方便文件概念及操作命令 ls 選項(xiàng) 文件目錄列表 文件類型-:常規(guī)文件? d :目錄? b :塊
8、特殊設(shè)備? c:字符特殊設(shè)備? p:有名管道? s :信號(hào)燈? m :共享存儲(chǔ)器文件類型的字符表示文件的權(quán)限, 權(quán)限由三個(gè)字符串組成, 這三個(gè)字符串分別表示: 該文件所有者的權(quán)限、 組中其他人的權(quán)限和系統(tǒng)中其人的權(quán)限; 每個(gè)字符串又由三個(gè)字符組成, 次表示對(duì)文件的讀(用字符 r 表示)、寫(用字符 W 表示)和執(zhí)行權(quán)限(用字符 x 表示) 當(dāng)用戶沒有相應(yīng)的權(quán)限時(shí),該權(quán)限的對(duì)應(yīng)位置用短線“-”來表示。#find 目錄列表 匹配標(biāo)準(zhǔn) cat 選項(xiàng) 文件列表grep 選項(xiàng) 匹配字符串 文件列表 sort 選項(xiàng) 文件diff 參數(shù) 原文件 目標(biāo)文件 cp 選項(xiàng) 源文件 目標(biāo)文件 rm 選項(xiàng) 文件列表m
9、v -f -i 文件 1 文件 2安裝和登錄命令: login 、 shutdown 、 halt、 reboot、 mount 、 umount、 chsh 文件處理命令: file 、 mkdir 、 dd 、 mv、ln系統(tǒng)管理相關(guān)命令: df、 top、 free、 quota、 at、 lp、 adduser、 groupadd kill 、 crontab、 tar 、 unzip 、gunzip 、 last網(wǎng)絡(luò)操作命令: ifconfig 、ip、ping、netstat、telnet、ftp、route、rlogin rcp 、finger、mail 、nslookup 系統(tǒng)
10、安全相關(guān)命令: passwd、 su、umask、 chgrp 、 chmod、 chown 、 chattr、 sudo、 pswhoShell 編程建立嵌入式開發(fā)環(huán)境軟件開發(fā)環(huán)境建立交叉開發(fā)工具鏈 使用現(xiàn)有的交叉開發(fā)工具鏈 建立交叉開發(fā)工具鏈1. 從 ARM Linux 站點(diǎn)得到 cross-3.3.2.tar.bz22. 對(duì) cross-3.3.2.tar.bz2 解壓$ tar - jxvf cross-3.3.2.tar.bz23. 通過相關(guān)文檔得到具體安裝路徑$ ./3.3.2/bin/arm-linux-gcc- v-prefix=/usr/local/arm/3.3.24. 建
11、立相關(guān)目錄,并將解壓后的文件移到此相關(guān)目錄$ mkdir - p /usr/local/arm$ mv ./2.95.3 /usr/loca/arm/5. 在環(huán)境變量 PATH 中添加路徑$ export PATH=$PATH:/usr/local/arm/3.3.2/bin3.3.2因?yàn)?GCC 編譯器的運(yùn)行是依賴于其他工具和庫,通常不能把這些工具放在任意目錄下。只 好向下載的站點(diǎn)求教,一般通過相關(guān)的 README 或者說明文檔可以得到具體的安裝路徑。Arm-linuxBinEtcIncludeInfoLibLibexecSbinShareSys-includeusrBinIncludeIn
12、foLibLibexecMantmp3.4.1因?yàn)?GCC 編譯器的運(yùn)行是依賴于其他工具和庫,通常不能把這些工具放在任意目錄下。只 好向下載的站點(diǎn)求教,一般通過相關(guān)的 README 或者說明文檔可以得到具體的安裝路徑。Arm-linuxBinEtcIncludeInfoLibLibexecSbinShareSys-includeusrBinIncludeInfoLibLibexecMantmp手工制作交叉開發(fā)工具鏈編譯 binutils$ tar -jxf ./source/binutils-2.14.tar.bz2$ cd binutils-2.14$ mkdir build-arm-lin
13、ux$ cd build-arm-linux$ ./configure -target=arm-linux -prefix=/usr/local/arm/3.3.2$ make$ make install編譯 GCC 的輔助編譯器 編譯生成 glibc 庫 編譯生成完整的 GCC 編譯器 制作交叉調(diào)試器 使用交叉開發(fā)工具鏈 編輯器 vi 二進(jìn)制工具 編譯器 gcc 調(diào)試器 gdb 工程管理器 make配置 TFTP 服務(wù)配置 NFS 服務(wù)配置超級(jí)終端 /minicom硬件開發(fā)環(huán)境串口KermitMinicomwindows 超級(jí)終端以太網(wǎng)簡(jiǎn)單的文件傳輸協(xié)議 TFTP網(wǎng)絡(luò)文件系統(tǒng) NFS動(dòng)態(tài)主機(jī)
14、配置協(xié)議( DHCPUSBJTAG綜合以上熟悉開發(fā)流程部署 Linux 系統(tǒng)移植 U-Boot理解嵌入式 linux 引導(dǎo)程序的原理, 掌握如何在 FS2410 硬件平臺(tái)上 移植 u-boot2.1 Bootloader 介紹2.2 u-boot 工程介紹2.3 u-boot 的編譯使用2.4 u-boot 源碼分析2.5 u-boot 資源分配2.6 u-boot 移植過程【實(shí)驗(yàn)】(1) u-boot 常用命令(2) 添加 u-boot 新命令設(shè)置u-boot環(huán)境變量(4) 配置編譯 u-boot(5) 移植 FS2410 的 u-boot-1.3.4 支持網(wǎng)卡、串口功能 支持從 nor、n
15、andflash 啟動(dòng)支持 nor、nandflash 燒寫 支持 yaffs2、jffs2 文件系統(tǒng)燒寫 支持 u 盤文件讀取定制 uboot安裝 uboot裁剪內(nèi)核 /usr/src/linux-x.y-z 內(nèi)核源碼樹driversarch makefilearch=armCROSS_COMPILE=.config.config 文件被處理生成一個(gè) C 語言頭文件 autoconf.h輸出文件 system.map vmlinux 鏈接器腳本文件 mlinux.ldsarch/arm/kernel/head.o arch/arm/kernel/init-atask.oinitkernelm
16、mfsipcsecuritylib/lib.aarch/arm/liblibdriversnet配置編譯 Linux 內(nèi)核目標(biāo):熟悉內(nèi)核的原碼結(jié)構(gòu)和 kbuild Makefile 語法;掌握和內(nèi)核、驅(qū)動(dòng)模塊編譯相關(guān)的原理及方法。3.1 Linux 內(nèi)核介紹3.2 Linux 內(nèi)核特點(diǎn)3.3 Linux 內(nèi)核源代碼結(jié)構(gòu)3.4 Linux 內(nèi)核選項(xiàng)解析3.5 Linux 內(nèi)核編譯鏈接3.6 內(nèi)核模塊編譯、使用方法【實(shí)驗(yàn)】(1) 配置交叉開發(fā)環(huán)境(2) 熟悉菜單配置文件的組織結(jié)構(gòu)(3) 熟悉內(nèi)核配置過程選項(xiàng)(4) 加入 Kconfig 新選項(xiàng)(5) 編譯交叉開發(fā)環(huán)境所需要的內(nèi)核(6) 在內(nèi)核中加入
17、自己的字符設(shè)備程序移植 Linux 內(nèi)核源碼 目標(biāo):通過今天課程的學(xué)習(xí),學(xué)員能夠熟悉內(nèi)核啟動(dòng)流程、掌握內(nèi)核移植的一般方法、分析平臺(tái)相關(guān)代碼 結(jié)構(gòu),并能夠自己動(dòng)手移植高版本內(nèi)核支持 FS2410 開發(fā)板。4.1 Linux 內(nèi)核移植介紹4.2 Linux 內(nèi)核移植平臺(tái)相關(guān)代碼分析4.3 動(dòng)手修改 Linux 內(nèi)核源代碼4.4 分析編譯過程錯(cuò)誤和宏定義的關(guān)系4.5 Linux 啟動(dòng)過程源代碼分析4.6 2.6 內(nèi)核平臺(tái)設(shè)備結(jié)構(gòu)介紹【實(shí)驗(yàn)】(1) 配置編譯高版本的 Linux 內(nèi)核(2) 移植高版本( linux-2.6.26 )內(nèi)核支持 FS2410 板 網(wǎng)卡驅(qū)動(dòng)移植 mtd 支持及 flash
18、分區(qū)方法 yaffs2 文件系統(tǒng)移植 sd 卡驅(qū)動(dòng) 液晶支持u 盤功能(3) 分析解決編譯過程中的錯(cuò)誤調(diào)試 Linux 內(nèi)核及優(yōu)化 linux 內(nèi)核目標(biāo):掌握內(nèi)核調(diào)試的常用方法、內(nèi)核優(yōu)化的方法策略。6.1 Linux 內(nèi)核調(diào)試概述6.2 Linux 內(nèi)核的打印函數(shù)6.3 Linux 內(nèi)核啟動(dòng)過程錯(cuò)誤分析6.4 解析 oops 信息6.5 常用調(diào)試方法和工具6.6 基本的驅(qū)動(dòng)程序分析6.7 系統(tǒng)啟動(dòng)時(shí)間優(yōu)化6.8 電源管理方法 動(dòng)態(tài)、靜態(tài)功耗介紹 嵌入式處理器對(duì)電源管理的支持 嵌入式 linux 電源管理結(jié)構(gòu) 用戶層電源管理策略 設(shè)備驅(qū)動(dòng)層電源管理策略【實(shí)驗(yàn)】(1) 通過基本調(diào)試手段解決內(nèi)核啟動(dòng)
19、過程錯(cuò)誤(2) 分析、處理 oops 錯(cuò)誤(3) 優(yōu)化系統(tǒng),加快系統(tǒng)啟動(dòng)速度(4) 優(yōu)化系統(tǒng),降低系統(tǒng)功耗定制內(nèi)核映像安裝內(nèi)核映像Linux 內(nèi)核修煉1) 全面認(rèn)識(shí)和了解 Linux 內(nèi)核的框架 ,并以此為基礎(chǔ)掌握學(xué)習(xí) Linux 內(nèi)核、分析閱讀 Linux 內(nèi)核源碼的方法,真正地邁過那道無形的門坎。2)掌握、分析、鉆研某個(gè)子系統(tǒng)在Linux 內(nèi)核中實(shí)現(xiàn)機(jī)制的方法 ,并了解 Linux 內(nèi)核中的進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)。3)了解如何參與 Linux 內(nèi)核的開發(fā)和測(cè)試,以及一些常用的調(diào)試手段和工具。4)掌握 Linux 設(shè)備驅(qū)動(dòng)的開發(fā)方法。5)掌握 Android 運(yùn)行所需要的 Linux
20、內(nèi)核開發(fā)和技巧。全面認(rèn)識(shí)和了解 Linux 內(nèi)核的框架,掌握學(xué)習(xí) Linux 內(nèi)核、分析閱讀 Linux 內(nèi)核源碼的方法。第1章 Linux 內(nèi)核的基本面1.1 Linux 內(nèi)核成長(zhǎng)史1.2 多變的 Linux 內(nèi)核版本號(hào)1.3 獲取 Linux 內(nèi)核的源代碼1.4 ALinux 內(nèi)核與那些發(fā)行版1.5 Linux 內(nèi)核是如何工作的Linux虛擬機(jī)”系統(tǒng)調(diào)用臺(tái)前文件系統(tǒng).幕后進(jìn)程調(diào)度幕后一一內(nèi)存管理模塊化的Kernel第2章 Linux 內(nèi)核的按需配置與編譯2.1 按需配置 Linux 內(nèi)核配置方式的多種選擇認(rèn)識(shí)常見的配置選項(xiàng)-重視config文件2.2 為 Linux 內(nèi)核打補(bǔ)丁2.3 編譯
21、 Linux 內(nèi)核認(rèn)識(shí)一些與編譯有關(guān)的目錄與文件構(gòu)建編譯環(huán)境備份是重要得編譯步驟一些實(shí)用的小技巧2.4 Linux 內(nèi)核的文檔及編譯2.5 【實(shí)驗(yàn)】配置、編譯 Linux 2.6 內(nèi)核 第3章 瀏覽 Linux 內(nèi)核源碼3.1 所需的技術(shù)基礎(chǔ)3.2 Linux 內(nèi)核的體系結(jié)構(gòu)3.3 Linux 內(nèi)核源碼樹3.4 使用 vim+cscope+ctags3.5 Linux 內(nèi)核代碼的特點(diǎn)gcc 擴(kuò)展的使用內(nèi)嵌匯編3.6 Linux 內(nèi)核中的鏈表3.7 代碼樣例3.7 【實(shí)驗(yàn)】配置 vim 瀏覽內(nèi)核源碼第4 章 如何分析 Linux 內(nèi)核源碼4.1 Linux 內(nèi)核學(xué)習(xí)的心理問題4.2 kernel
22、 地圖: Kconfig 與 Makefile看懂Kconfig 與 Makefile利用Kconfig與Makefile定位目標(biāo)代碼4.3 分析 Linux 內(nèi)核源碼如何入手分析README分析Kconfig 與 Makefile態(tài)度決定一切:從初始化函數(shù)開始4.4 【實(shí)驗(yàn)】定位并分析某個(gè)子系統(tǒng)或模塊在內(nèi)核中的實(shí)現(xiàn) 掌握分析鉆研某個(gè)子系統(tǒng)在內(nèi)核中實(shí)現(xiàn)機(jī)制的方法,了解內(nèi)核中的進(jìn)程管理、內(nèi)存管理、文件系統(tǒng) 第5 章 開始之前 Before we begin5.1 系統(tǒng)初始化5.2 Linux 內(nèi)核中的時(shí)間5.3 系統(tǒng)調(diào)用5.4 中斷與中斷處理5.5 Linux 內(nèi)核中的同步第6 章 子系統(tǒng)的初始
23、化6.1 Linux 內(nèi)核選項(xiàng)解析Linux 內(nèi)核選項(xiàng)注冊(cè)Linux內(nèi)核選項(xiàng)兩次解析6.2 那些入口函數(shù).initcall.init 節(jié)do_initcalls()函數(shù)6.3 以 PCI 子系統(tǒng)為例6.4 【實(shí)驗(yàn)】分析某個(gè)子系統(tǒng)的初始化過程第7 章 進(jìn)程管理與調(diào)度7.1 Linux 中的進(jìn)程7.2 進(jìn)程的來源: fork 和 clone7.3 所有美好的事物都會(huì)結(jié)束:進(jìn)程退出7.4 內(nèi)核線程7.5 進(jìn)程調(diào)度O(1)調(diào)度CFS調(diào)度7.6 不確定的 Multi-thread第8 章 內(nèi)存管理8.1 物理地址、邏輯地址與虛擬地址8.2 分頁8.3 內(nèi)存在內(nèi)核中的分配8.4 進(jìn)程的內(nèi)存組織8.5 內(nèi)存
24、映射 mmap8.6 頁面緩存第9 章 虛擬文件系統(tǒng) VFS9.1 VFS 的體系結(jié)構(gòu)9.2 理解 VFS 的那些數(shù)據(jù)結(jié)構(gòu)9.3 VFS 的緩存機(jī)制9.4 文件系統(tǒng)的注冊(cè)與安裝9.5 文件系統(tǒng)的日志管理了解如何參與 Linux 內(nèi)核的開發(fā)和測(cè)試,以及一些常用的調(diào)試手段和工具 第 10 章 Intent Receiver10.1 工具鏈及其生成10.2 Linux 內(nèi)核中的 Makefile10.3 嚴(yán)格遵守 Linux 內(nèi)核的編碼風(fēng)格10.4 添加代碼到 Linux 內(nèi)核10.5 為什么 Linux 內(nèi)核沒有穩(wěn)定的 API ?10.6 如何提交補(bǔ)丁10.7 學(xué)會(huì)使用 Git10.8 【實(shí)驗(yàn)】安
25、裝 Git 并用它來來獲取最新的 Linux 內(nèi)核源碼第 11 章 一些最上鏡的 Linux 內(nèi)核調(diào)試手段與工具11.1 Linux 內(nèi)核對(duì)調(diào)試的支持11.2 二分法與 printk11.3 獲取 Linux 內(nèi)核信息11.4 調(diào)試福音之 oops11.5 神奇的 SysRq11.6 調(diào)試?yán)髦?GDB11.7 調(diào)試?yán)髦?Systemtap11.8 Linux 內(nèi)核崩潰轉(zhuǎn)儲(chǔ)11.9 利用模擬器11.10 【實(shí)驗(yàn)】分析一個(gè) oops11.11 【實(shí)驗(yàn)】配置 GDB 調(diào)試環(huán)境并調(diào)試 Linux 內(nèi)核第 12 章 子系統(tǒng)的初始化12.1 Linux 內(nèi)核測(cè)試的 4 個(gè)階段12.2 性能分析與調(diào)優(yōu)工
26、具CPU性能分析與調(diào)優(yōu)Memory性能分析與調(diào)優(yōu)IO性能分析與調(diào)優(yōu)Network性能分析與調(diào)優(yōu)12.3 oprofile12.4 啟動(dòng)速度調(diào)優(yōu)12.5 【實(shí)驗(yàn)】 Linux 內(nèi)核性能測(cè)試并提交 Linux 內(nèi)核測(cè)試報(bào)告 掌握驅(qū)動(dòng)的開發(fā)方法,掌握 Android 運(yùn)行所需要的 Linux 內(nèi)核開發(fā)和技巧 第 13 章 驅(qū)動(dòng)開發(fā)的方法論13.1 模塊化的 Linux 內(nèi)核13.2 第一個(gè)模塊 “Hello World! ”13.3 重中之重:設(shè)備模型總線、設(shè)備和驅(qū)動(dòng)在USB子系統(tǒng)上的投影13.4 驅(qū)動(dòng)開發(fā)三件寶: spec 、 datasheet 與 Linux 內(nèi)核源碼13.5 sysfs13.
27、6 【實(shí)驗(yàn)】結(jié)合設(shè)備模型分析一個(gè) Linux 內(nèi)核中現(xiàn)有的驅(qū)動(dòng)13.7 【實(shí)驗(yàn)】編寫一個(gè)簡(jiǎn)單的模塊第 14 章 Android 環(huán)境的相關(guān)介紹14.1 Android 的歷史和介紹14.2 Android 和 Linux 的扯不清理還亂的關(guān)系14.3 取得 Android 的源代碼和編譯生成可執(zhí)行環(huán)境14.4 Android 源代碼構(gòu)成和運(yùn)行原理14.5 加入新的處理器支持到 Android 框架第 15 章 移植 Android 所需要的 Linux 內(nèi)核15.1 Android 運(yùn)行所需要對(duì) Linux 內(nèi)核作的修改15.2 Android 對(duì)現(xiàn)有驅(qū)動(dòng)所必須做的修改鍵盤、鼠標(biāo)驅(qū)動(dòng)和鍵值映射
28、顯示驅(qū)動(dòng)audio馬驅(qū)動(dòng)15.3 編譯和拓展 Android 的啟動(dòng)分區(qū) boot.img15.4 Android 的啟動(dòng)過程分析和調(diào)試技術(shù)15.5 【實(shí)驗(yàn)】生成一個(gè)可供 Android 啟動(dòng)的 Linux 內(nèi)核15.6 【實(shí)驗(yàn)】制作和生成一個(gè)可運(yùn)行的 boot.img第 16 章 實(shí)現(xiàn) Android 的硬件抽象層16.1 Android 的硬件抽象層的原理和構(gòu)成16.2 實(shí)現(xiàn) ril ,完成 Android 的移動(dòng)網(wǎng)絡(luò)功能支持16.3 libhardware_legacy 接口16.4 libhardware 接口16.5 藍(lán)牙支持16.6 【實(shí)驗(yàn)】將一個(gè) wifi 驅(qū)動(dòng)加入 Androi
29、d 硬件抽象層構(gòu)建文件系統(tǒng)集成部署 Linux 系統(tǒng)u-boot目標(biāo):理解嵌入式 linux 引導(dǎo)程序的原理,掌握如何在 FS2410 硬件平臺(tái)上移植5.1 Linux 文件系統(tǒng)制作5.2 Linux 系統(tǒng)集成測(cè)試5.3 文件系統(tǒng)和存儲(chǔ)設(shè)備的選擇5.4 部署 Ramdisk 文件系統(tǒng)的過程5.5 部署 JFFS2 文件系統(tǒng)的過程5.6 部署 Yaffs2 文件系統(tǒng)的過程【實(shí)驗(yàn)】(1) 制作最小的文件系統(tǒng)(2) 添加 udev 支持(3) 部署 ramdisk 文件系統(tǒng)(4) 部署 cramfs 文件系統(tǒng)(5) 部署 jffs2 文件系統(tǒng)(6) 部署 yaffs2 文件系統(tǒng)(7) 配置 u-bo
30、ot 使系統(tǒng)獨(dú)立運(yùn)行定制文件系統(tǒng)裁減文件系統(tǒng)安裝文件系統(tǒng)理解啟動(dòng)過程內(nèi)核引導(dǎo) (u-Boot)目標(biāo)板硬件初始化初始化內(nèi)存等硬件把壓縮的內(nèi)核映像 加載 到內(nèi)存在嵌入式 Linux 開發(fā)中,經(jīng)常用到網(wǎng)絡(luò)加載的方式,就是通過 TFTP 協(xié)議把內(nèi)核映像加載到 目標(biāo)板內(nèi)存。那么目標(biāo)板的Bootloader還應(yīng)該能夠驅(qū)動(dòng)網(wǎng)絡(luò)接口,配置IP地址。不同的Bootloader 還有一系列命令進(jìn)行配置跳轉(zhuǎn)到內(nèi)核映像入口執(zhí)行解壓內(nèi)核映像完成自解壓或者重定位跳轉(zhuǎn)到解壓后的內(nèi)核代碼入口跳轉(zhuǎn)到內(nèi)核映像入口 head.o 內(nèi)核啟動(dòng) main.c start_kernel Setup_arch 參數(shù)為指向內(nèi)核命令行的指針初始
31、化設(shè)備驅(qū)動(dòng) 掛接根文件系統(tǒng) 從文件系統(tǒng)的目錄下找到init程序,啟動(dòng)init進(jìn)程在交叉開發(fā)環(huán)境中,通常采用 NFS文件系統(tǒng)。在內(nèi)核啟動(dòng)過程可以掛接 NFS根文件系統(tǒng)。 這種方式將極大地方便嵌入式 Linux 交叉開發(fā)。使目標(biāo)板掛接 NFS 根文件系統(tǒng)在主機(jī)端配置相應(yīng)的網(wǎng)絡(luò)服務(wù)TFTPDHCPNFS配置目標(biāo)板的內(nèi)核選項(xiàng)配置相應(yīng)的網(wǎng)絡(luò)驅(qū)動(dòng)程序“Network device support ”配置內(nèi)核啟動(dòng)命令行參數(shù)配置內(nèi)核掛接 NFS 根文件系統(tǒng)應(yīng)用程序啟動(dòng)完成系統(tǒng)初始化啟動(dòng)相關(guān)服務(wù)管理用戶登錄程序開發(fā)驅(qū)動(dòng)程序開發(fā)LINUX 字符設(shè)備驅(qū)動(dòng)程序開發(fā)從用戶設(shè)備 I/O 編程角度深入了解設(shè)備驅(qū)動(dòng)的原理;通
32、過了解字符設(shè)備驅(qū)動(dòng)框架和具體硬件設(shè)備I/O 操作,能夠進(jìn)行字符設(shè)備驅(qū)動(dòng)開發(fā);了解 linux2.6 內(nèi)核的設(shè)備模型及掌握 udev 的使用1.1 LINUX 字符設(shè)備驅(qū)動(dòng)基礎(chǔ)1.2 字符設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)框架與典型驅(qū)動(dòng)分析1.3 用戶空間與內(nèi)核空間的數(shù)據(jù)傳輸1.4 同步、互斥、阻塞、睡眠機(jī)制1.5 Linux-2.6 設(shè)備模型與 sysfs 文件系統(tǒng)1.6 udev 與 devfs 文件系統(tǒng)【實(shí)驗(yàn)】1 、驅(qū)動(dòng)開發(fā)編程環(huán)境與內(nèi)核配置、編譯2 、編寫模塊化字符設(shè)備驅(qū)動(dòng)程序與測(cè)試3 、如何為內(nèi)核程序傳遞參數(shù)4 、在驅(qū)動(dòng)代碼中加入創(chuàng)建 proc 結(jié)點(diǎn)方法5 、蜂鳴器驅(qū)動(dòng)程序編寫與測(cè)試6 、編寫驅(qū)動(dòng)實(shí)現(xiàn)包
33、含等待隊(duì)列、信號(hào)量、 fifo 等功能7 、學(xué)會(huì)利用 udev 和 sysfs 文件系統(tǒng)動(dòng)態(tài)創(chuàng)建設(shè)備結(jié)點(diǎn)設(shè)備驅(qū)動(dòng)中常用的內(nèi)核機(jī)制掌握在基本字符設(shè)備驅(qū)動(dòng)的基礎(chǔ)上增加復(fù)雜的內(nèi)核機(jī)制; 了解 1inux 內(nèi)核中斷子系統(tǒng)的實(shí)現(xiàn)原理, 掌握 linux 中斷處理程序編寫方法;掌握內(nèi)核延時(shí)機(jī)制及內(nèi)存管理機(jī)制2.1 Poll 和 select 操作2.2 異步通知機(jī)制2.3 1inux 內(nèi)核中斷子系統(tǒng)2.4 中斷處理程序編寫2.5 驅(qū)動(dòng)程序上 / 下半部處理與延緩執(zhí)行機(jī)制2.6 內(nèi)核定時(shí)器與延遲機(jī)制2.7 內(nèi)核內(nèi)存管理機(jī)制【實(shí)驗(yàn)】1 、編寫驅(qū)動(dòng)實(shí)現(xiàn)包含等待隊(duì)列、信號(hào)量、 fifo 等功能2 、編寫驅(qū)動(dòng)實(shí)現(xiàn)包
34、含 poll 功能3 、編寫驅(qū)動(dòng)實(shí)現(xiàn)包含異步通知功能4 、編寫秒表字符設(shè)備,掌握定時(shí)器用法5、編寫驅(qū)動(dòng)實(shí)現(xiàn) tasklet 功能6 、編寫驅(qū)動(dòng)實(shí)現(xiàn)工作隊(duì)列功能7 、按鍵中斷實(shí)驗(yàn)8、 A/D 轉(zhuǎn)換實(shí)驗(yàn)LINUX 塊設(shè)備驅(qū)動(dòng)程序開發(fā)明白 Linux 中塊設(shè)備驅(qū)動(dòng)的特點(diǎn)及框架, 獨(dú)立分析 Linux 中大部分塊設(shè)備的驅(qū)動(dòng)方法, 并熟悉 MTD 設(shè)備驅(qū) 動(dòng)的特點(diǎn)與框架,具備 MTD Nand Flash 驅(qū)動(dòng)程序開發(fā)的能力。通過實(shí)驗(yàn),學(xué)員還可以掌握IDE、 Ramdisk驅(qū)動(dòng)移植方法。3.1 塊設(shè)備及其驅(qū)動(dòng)的特點(diǎn)3.2 塊設(shè)備驅(qū)動(dòng)程序中兩個(gè)關(guān)鍵結(jié)構(gòu)體 GEN_DISK 與 REQUEST3.3 塊設(shè)備
35、驅(qū)動(dòng)程序的注冊(cè)與請(qǐng)求處理3.4 MTD 設(shè)備的特點(diǎn)以及與塊設(shè)備的關(guān)系3.5 MTD 設(shè)備驅(qū)動(dòng)的框架及關(guān)鍵結(jié)構(gòu)體分析3.6 S3C2410 (S3C2440)中的 NAND FLASH 控制器分析3.7 S3C2410 (S3C2440) NAND FLASH MTD 驅(qū)動(dòng)分析【實(shí)驗(yàn)】1 、編寫簡(jiǎn)單的塊設(shè)備驅(qū)動(dòng)程序2、實(shí)現(xiàn) RAMDISK 驅(qū)動(dòng)3、IDE 硬盤的驅(qū)動(dòng)移植4、移植 S3C2410 閃存控制器驅(qū)動(dòng)5 、配置 MTD 內(nèi)核選項(xiàng)6、移植嵌入式文件系統(tǒng)LINUX 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序開發(fā)網(wǎng)絡(luò)設(shè)備是嵌入式產(chǎn)品開發(fā),特別是基于網(wǎng)絡(luò)的產(chǎn)品開發(fā)中最重要的內(nèi)容之一。通過本課學(xué)習(xí),學(xué)員可以深入理解Linu
36、x網(wǎng)絡(luò)驅(qū)動(dòng)程序中有關(guān)套接字(socket)、套接字緩沖區(qū)(sk_buff)等概念,了解網(wǎng)絡(luò)驅(qū)動(dòng)程 序的數(shù)據(jù)交換過程。通過實(shí)際的動(dòng)手操作,學(xué)員將掌握如何移植或編寫具體網(wǎng)卡的驅(qū)動(dòng)程序,并在此基礎(chǔ) 上實(shí)現(xiàn)更為高級(jí)的網(wǎng)絡(luò)功能。 了解 MMC/SD 卡的物理及電氣特性, 熟悉相關(guān)的工作協(xié)議, 并在此基礎(chǔ)上能 夠移植或編寫 Linux 下的 MMC/SD 控制器的驅(qū)動(dòng)程序。4. LINUX 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序開發(fā)4.1 OSI 網(wǎng)絡(luò)參考模型4.2 套接字( SOCKET )簡(jiǎn)介4.3 套接字緩沖區(qū)( SK_BUFF )4.4 NET_DEVICE 結(jié)構(gòu)分析4.5 數(shù)據(jù)包傳送與接收4.6 網(wǎng)絡(luò)驅(qū)動(dòng)的中斷處理4
37、.7 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序的基本實(shí)現(xiàn)5. LINUX 下 MMC/SD 卡驅(qū)動(dòng)開發(fā)5.1 嵌入式系統(tǒng)中幾種常見存儲(chǔ)介質(zhì)的比較( NOR/NAND FLASH 、 CF、 MMC/SD )5.2 MMC/SD 卡物理及電氣規(guī)范簡(jiǎn)介5.3 MMC/SD 卡工作中的關(guān)鍵命令及關(guān)鍵結(jié)構(gòu)信息5.4 S3C2410( S3C2440)中 MMC/SDHOST 控制器分析5.5 LINUX 中 MMC/SD 存儲(chǔ)卡驅(qū)動(dòng)程序結(jié)構(gòu)分析5.6 S3C2410( S3C2440)中 MMC/SD HOST 控制器的驅(qū)動(dòng)實(shí)現(xiàn)【實(shí)驗(yàn)】1 、編寫簡(jiǎn)單的虛擬以太網(wǎng)卡驅(qū)動(dòng)程序2、移植并編寫 CS8900A 網(wǎng)卡驅(qū)動(dòng)程序3、移植并
38、編寫 DM9000 網(wǎng)卡驅(qū)動(dòng)程序4、配置網(wǎng)絡(luò)參數(shù),測(cè)試網(wǎng)卡驅(qū)動(dòng)程序行為5、MMC/SD 協(xié)議分析6、在 LINUX 源碼中加入針對(duì) ARM 平臺(tái)的 MMC/SD 主控制器驅(qū)動(dòng)的支持LINUX 幀緩沖驅(qū)動(dòng)程序開發(fā)掌握嵌入式 Linux 顯示驅(qū)動(dòng)程序的開發(fā)方法,理解嵌入式 Linux 圖形驅(qū)動(dòng)程序?qū)崿F(xiàn)機(jī)制,能夠移植或編寫 嵌入式顯示控制器驅(qū)動(dòng)程序,并完成針對(duì)各種 LCD 硬件的定制。6. LINUX 幀緩沖驅(qū)動(dòng)程序開發(fā)6.1 幀緩沖顯示技術(shù)6.2 幀緩沖驅(qū)動(dòng)程序顯示原理6.3 幀緩沖驅(qū)動(dòng)程序的數(shù)據(jù)結(jié)構(gòu)6.4 幀緩沖驅(qū)動(dòng)程序的 API6.5 幀緩沖驅(qū)動(dòng)程序的基本實(shí)現(xiàn)6.6 使用高級(jí)圖形庫7. 觸摸屏
39、驅(qū)動(dòng)開發(fā)7.1 觸摸屏工作原理7.2 S3C2410 觸摸屏控制器工作原理7.3 觸摸屏驅(qū)動(dòng)程序編寫【實(shí)驗(yàn)】1 、熟悉 FRAMEBUFFER 驅(qū)動(dòng)的結(jié)構(gòu)2 、熟悉 FRAMEBUFFER 中的重要數(shù)據(jù)結(jié)構(gòu)3 、編寫 S3C2410 彩色 LCD 控制器驅(qū)動(dòng)程序4 、編寫測(cè)試程序控制屏幕顯示5 、編譯高級(jí)圖形庫例子,顯示圖形6 、熟悉觸屏驅(qū)動(dòng)程序7 、寫觸屏測(cè)試代碼LINUX 下 USB 驅(qū)動(dòng)開發(fā)基礎(chǔ)掌握 USB 通訊規(guī)范及拓?fù)浣Y(jié)構(gòu)中的主機(jī)控制器、 HUB 、USB 設(shè)備的工作流程;掌握 S3C2410 USB device 控制器的工作原理;最后在 S3C2410 開發(fā)板上編寫 usbtra
40、nsfer 固件程序,結(jié)合 PC 機(jī)上 windows 環(huán)境下的 DNW 軟件,實(shí)現(xiàn)基于 usb 的文件下載功能。 通過 Linux 下 USB 驅(qū)動(dòng)開發(fā)內(nèi)容的學(xué)習(xí), 學(xué)員將深入理解 Linux 內(nèi)核 USB 子系統(tǒng),掌握 USB 驅(qū)動(dòng)程序編寫技術(shù)。經(jīng)過學(xué)習(xí)后的學(xué)員能夠移植或編寫 USB 主機(jī) OHCI 和設(shè) 備驅(qū)動(dòng)程序,最后通過對(duì) usbtransfer 設(shè)備的驅(qū)動(dòng)編程,實(shí)現(xiàn)在 linux 環(huán)境下的文件下載功能(替換 DNW 的 下載功能)。8. LINUX 下 USB 驅(qū)動(dòng)開發(fā)基礎(chǔ)8.1 USB 規(guī)范介紹8.2 USB 主機(jī)控制器8.3 USB HUB8.4 USB 設(shè)備狀態(tài)8.5 USB
41、 描述符8.6 USB 請(qǐng)求8.7 USB 通訊數(shù)據(jù)格式8.8 S3C2410 USB device 控制器8.9 編寫 usbtransfer 固件程序9. LINUX 下 USB 驅(qū)動(dòng)高級(jí)開發(fā)9.1 Linux USB 驅(qū)動(dòng)層次9.2 Linux USB 主機(jī)控制器驅(qū)動(dòng)介紹9.3 Linux USB HUB 驅(qū)動(dòng)介紹9.4 Linux USB 設(shè)備驅(qū)動(dòng)程序9.5 編寫 usbtransfer 設(shè)備驅(qū)動(dòng)程序9.6 編寫 usbtransfer 設(shè)備應(yīng)用程序 【實(shí)驗(yàn)】1 、在開發(fā)板上燒寫并測(cè)試 USB 固件程序2、 usbtransfer 固件程序分析與編寫3 、使用 usbview 工具觀察
42、 USB 設(shè)備4 、使用 sysfs 分析 USB 層次結(jié)構(gòu)5、LINUX 下編寫 usbtransfer 設(shè)備驅(qū)動(dòng)實(shí)現(xiàn) USB 下載步驟register_chrdev ( register_chrdev ) 選擇主設(shè)備號(hào)動(dòng)態(tài)分配定義設(shè)備名稱定義一組文件操作標(biāo)記化格式聲明 file_operation 結(jié)構(gòu)應(yīng)用程序開發(fā)文件 I/O 編程基于文件描述符 不帶緩存不帶緩存是指每一個(gè)函數(shù)都只調(diào)用系統(tǒng)中的一個(gè)函數(shù)函數(shù)說明openreadwritelseekclose基于流緩沖3 種類型的緩沖存儲(chǔ)全緩沖行緩沖不帶緩沖函數(shù)說明OpenFILE * fopen(const char * path,const char * mode)FILE * fdopen(int fd,const char * mode)FILE * freopen(const char *path,const char * mode,FILE * stream) int fclose (FILE * stream)size_t fread (void * ptr,size_t size,size_t nmemb,F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 總裝化造船生產(chǎn)均衡性的多維度解析與優(yōu)化策略研究
- 小學(xué)課堂強(qiáng)化行為:理論實(shí)踐與策略探究
- 大鼠社交孤立誘發(fā)焦慮異常及其神經(jīng)機(jī)制解析:基于多巴胺系統(tǒng)與腦區(qū)功能的研究
- 多重視角下英語電影片名漢譯的策略與實(shí)踐研究
- 2025年信息系統(tǒng)項(xiàng)目管理師考試項(xiàng)目知識(shí)應(yīng)對(duì)計(jì)劃試卷
- 品牌營(yíng)銷中的個(gè)性化策略計(jì)劃
- 租房外地老人合同范本
- 2025年信息系統(tǒng)監(jiān)理師考試信息系統(tǒng)工程合同管理實(shí)際案例分析試卷
- 租房合同轉(zhuǎn)租補(bǔ)充協(xié)議書
- 2025年小學(xué)教師資格考試《綜合素質(zhì)》易錯(cuò)點(diǎn)專項(xiàng)訓(xùn)練題庫及答案
- 2024年湖南省高考化學(xué)試卷真題(含答案解析)
- 《鉸鏈四桿機(jī)構(gòu)》(課件)
- 通信企業(yè)協(xié)會(huì)網(wǎng)絡(luò)安全人員能力認(rèn)證考試復(fù)習(xí)題庫(含答案)
- 化學(xué)家門捷列夫課件
- 小學(xué)一年級(jí)體育教案全集
- 2024年新人教版七年級(jí)數(shù)學(xué)下冊(cè)期末考試數(shù)學(xué)試卷-含答案
- 運(yùn)動(dòng)健康管理智慧樹知到答案2024年上海師范大學(xué)
- 2024年廣東省預(yù)防接種技能競(jìng)賽理論考試題庫(含答案)
- GB/T 4706.24-2024家用和類似用途電器的安全第24部分:洗衣機(jī)的特殊要求
- DLT 1529-2016 配電自動(dòng)化終端設(shè)備檢測(cè)規(guī)程
- 2018年四川省中職學(xué)校技能大賽建筑CAD賽項(xiàng) 樣題
評(píng)論
0/150
提交評(píng)論