作者:晏渭川
隨著Linux2.6的發(fā)布,由于2.6內(nèi)核做了教的改動,各個設(shè)備的驅(qū)動程序在不同程度上要
進(jìn)行改寫。為了方便各位Linux愛好者我把自己整理的這分文檔share出來。該文當(dāng)列舉
了2.6內(nèi)核同以前版本的絕大多數(shù)變化,可惜的是由于時間和精力有限沒有詳細(xì)列出各個
函數(shù)的用法。
特別聲明:該文檔中的內(nèi)容來自http:/lwn.net,該網(wǎng)也上也有各個函數(shù)的較為詳細(xì)的
說明可供各位參考。如果需要該文檔的word版的朋友, 請mail到weiriver@sohu.com索
取。
1、 使用新的入口
必須包含
module_init(your_init_func);
module_exit(your_exit_func);
老版本:int init_module(void);
void cleanup_module(voi);
2.4中兩種都可以用,對如后面的入口函數(shù)不必要顯示包含任何頭文件。
2、 GPL
MODULE_LICENSE("Dual BSD/GPL");
老版本:MODULE_LICENSE("GPL");
3、 模塊參數(shù)
必須顯式包含
module_param(name, type, perm);
module_param_named(name, value, type, perm);
參數(shù)定義
module_param_string(name, string, len, perm);
module_param_array(name, type, num, perm);
老版本:MODULE_PARM(variable,type);
MODULE_PARM_DESC(variable,type);
4、 模塊別名
MODULE_ALIAS("alias-name");
這是新增的,在老版本中需在/etc/modules.conf配置,現(xiàn)在在代碼中就可以實現(xiàn)。
5、 模塊計數(shù)
int try_module_get(&module);
module_put();
老版本:MOD_INC_USE_COUNT 和 MOD_DEC_USE_COUNT
6、 符號導(dǎo)出
只有顯示的導(dǎo)出符號才能被其他模塊使用,默認(rèn)不導(dǎo)出所有的符號,不必使用EXPORT_NO
_SYMBOLS
老板本:默認(rèn)導(dǎo)出所有的符號,除非使用EXPORT_NO_SYMBOLS
7、 內(nèi)核版本檢查
需要在多個文件中包含
老版本:在多個文件中包含
_NO_VERSION__,防止版本重復(fù)定義。
8、 設(shè)備號
kdev_t被廢除不可用,新的dev_t拓展到了32位,12位主設(shè)備號,20位次設(shè)備號。
unsigned int iminor(struct inode *inode);
unsigned int imajor(struct inode *inode);
老版本:8位主設(shè)備號,8位次設(shè)備號
int MAJOR(kdev_t dev);
int MINOR(kdev_t dev);
9、 內(nèi)存分配頭文件變更
所有的內(nèi)存分配函數(shù)包含在頭文件
老版本:內(nèi)存分配函數(shù)包含在頭文件
10、 結(jié)構(gòu)體的初試化
gcc開始采用ANSI C的struct結(jié)構(gòu)體的初始化形式:
static struct some_structure = {
.field1 = value,
.field2 = value,
..
};
老版本:非標(biāo)準(zhǔn)的初試化形式
static struct some_structure = {
field1: value,
field2: value,
..
};
11、 用戶模式幫助器
int call_usermodehelper(char *path, char **argv, char **envp,
int wait);
新增wait參數(shù)
12、 request_module()
request_module("foo-device-%d", number);
老版本:
char module_name[32];
printf(module_name, "foo-device-%d", number);
request_module(module_name);
13、 dev_t引發(fā)的字符設(shè)備的變化
1、取主次設(shè)備號為
unsigned iminor(struct inode *inode);
unsigned imajor(struct inode *inode);
2、老的register_chrdev()用法沒變,保持向后兼容,但不能訪問設(shè)備號大于256的設(shè)備
。
3、新的接口為
a)注冊字符設(shè)備范圍
int register_chrdev_region(dev_t from, unsigned count, char *name);
b)動態(tài)申請主設(shè)備號
int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, char
*name);
看了這兩個函數(shù)郁悶吧^_^!怎么和file_operations結(jié)構(gòu)聯(lián)系起來???別急!
c)包含
struct cdev *cdev_alloc(void);
void cdev_init(struct cdev *cdev, struct file_operations *fops);
int cdev_add(struct cdev *cdev, dev_t dev, unsigned count);
(分別為,申請cdev結(jié)構(gòu),和fops連接,將設(shè)備加入到系統(tǒng)中!好復(fù)雜?。。?
d)void cdev_del(struct cdev *cdev);
只有在cdev_add執(zhí)行成功才可運行。
e)輔助函數(shù)
kobject_put(&cdev->kobj);
struct kobject *cdev_get(struct cdev *cdev);
void cdev_put(struct cdev *cdev);
這一部分變化和新增的/sys/dev有一定的關(guān)聯(lián)。
14、 新增對/proc的訪問操作
以前的/proc中只能得到string, seq_file操作能得到如long等多種數(shù)據(jù)。
相關(guān)函數(shù):
static struct seq_operations 必須實現(xiàn)這個類似file_operations得數(shù)據(jù)中得各個成
員函數(shù)。
seq_printf();
int seq_putc(struct seq_file *m, char c);
int seq_puts(struct seq_file *m, const char *s);
int seq_escape(struct seq_file *m, const char *s, const char *esc);
int seq_path(struct seq_file *m, struct vfsmount *mnt,
struct dentry *dentry, char *esc);
seq_open(file, &ct_seq_ops);
等等
15、 底層內(nèi)存分配
1、
Linux2.6內(nèi)核驅(qū)動移植參考
相關(guān)推薦
LInux驅(qū)動詳細(xì)教程--想學(xué)這塊的人可以看看
配置PC 機Linux 的ftp服務(wù)4 配置PC機Linux 的telnet5 建立交叉編譯環(huán)境6 編譯內(nèi)核Linux的移植1 Bootloader 的移植2 Linux 內(nèi)核移植3 linux 2.6
2013-04-08 18:46:53
Linux2.6與2.4內(nèi)核驅(qū)動程序的區(qū)別是什么
設(shè)備驅(qū)動程序設(shè)計的基本概念與模型Linux2.6與2.4內(nèi)核驅(qū)動程序的區(qū)別
2021-04-25 08:21:52
Linux2.6在內(nèi)存管理有哪些問題需要注意?
Linux2.6引入了基于對象的反向映射機制,這種方法為物理頁面設(shè)置一個用于反向映射的鏈表,但是鏈表上的節(jié)點并不是引用了該物理頁面的所有頁表項,而是相應(yīng)的虛擬內(nèi)存區(qū)域(vm_area_struct結(jié)構(gòu))。
2020-04-09 07:08:17
Linux 2.6 內(nèi)核中的最新電源管理技術(shù)綜述
本系列文章將結(jié)合近年來不斷在各種硬件(包括 CPU、芯片組、PCI Express 等各種最新總線標(biāo)準(zhǔn)以及外設(shè))上新增的節(jié)能技術(shù),從 Linux? 2.6內(nèi)核及整個 software stack
2011-09-28 14:15:42
Linux 2.6內(nèi)核具有哪些特性優(yōu)勢?
本文著重介紹Linux 2.6內(nèi)核的新特性及其嵌入式應(yīng)用中的優(yōu)勢,并將其移植到嵌入式平臺中,成功支持H.264編解碼多媒體系統(tǒng)。
2021-04-25 08:18:49
Linux 2.6內(nèi)核在嵌入式開發(fā)的應(yīng)用
為更優(yōu)秀的嵌入式操作系統(tǒng)。 Linux的低成本和開放性,為其在嵌入式系統(tǒng)領(lǐng)域的應(yīng)用營造了肥沃的土壤。本文著重介紹Linux 2.6內(nèi)核的新特性及其嵌入式應(yīng)用中的優(yōu)勢,并將其移植到嵌入式平臺中,成功支持H.264編解碼多媒體系統(tǒng)。
2019-06-24 08:26:54
Linux 2.6內(nèi)核針對嵌入式開發(fā)的特點是什么
本文著重介紹Linux 2.6內(nèi)核的新特性及其嵌入式應(yīng)用中的優(yōu)勢,并將其移植到嵌入式平臺中,成功支持H.264編解碼多媒體系統(tǒng)。
2021-04-22 07:13:41
Linux2.4與Linux2.6內(nèi)核調(diào)度器的比較研究
了Linux2.4和Linux2.6的調(diào)度器,全面剖析了Linux2.6對調(diào)度器的改進(jìn)。 一個成功的調(diào)度器的基本要求可以概括為以下三點:(1)減少花在調(diào)度上的時間,以增加花在執(zhí)行程序上的時間;(2)在
2008-06-17 12:04:46
Linux2.4和Linux2.6的調(diào)度器對比分析,Linux2.6對調(diào)度器的改進(jìn)有哪些方面?
Linux2.4和Linux2.6的調(diào)度器對比分析,Linux2.6對調(diào)度器的改進(jìn)有哪些方面?Linux2.4調(diào)度器性能低下的原因是什么
2021-04-27 06:42:00
Linux內(nèi)核移植
Linux內(nèi)核移植 上一節(jié)介紹了u-boot的移植,這一節(jié)來介紹Linux內(nèi)核移植。 工具和源碼在路徑:F:\韋東山\CD1_主光盤\system。 通過Samba,將工具和源碼拷貝到共享目錄
2015-12-25 14:43:28
Linux學(xué)習(xí)
`#Linux培訓(xùn)#華清遠(yuǎn)見Linux學(xué)習(xí)資料《Linux3.4內(nèi)核USB驅(qū)動的移植》,USB接口是現(xiàn)在計算機系統(tǒng)中最通用的一種接口,通過移植USB驅(qū)動,了解Linux3.4內(nèi)核與Linux2.6
2013-07-10 10:40:22
Linux系統(tǒng)移植篇9:Linux內(nèi)核eMMC驅(qū)動移植
Linux系統(tǒng)移植篇外,還包括其他多系列教程,包括Cortex-A7開發(fā)篇、Cortex-M4開發(fā)篇、擴(kuò)展板驅(qū)動移植篇、Linux應(yīng)用開發(fā)篇、FreeRTOS系統(tǒng)移植篇、Linux驅(qū)動開發(fā)篇、硬件設(shè)計篇
2021-09-13 10:30:25
Linux設(shè)備驅(qū)動的硬件操作方法分享
內(nèi)核到 Linux 2.6 內(nèi)核,Linux 在可裝載模塊機制、設(shè)備模型、一些核心 API 等方面發(fā)生了較大改變,隨著公司產(chǎn)品的過渡,驅(qū)動工程師會面臨著將驅(qū)動從Linux 2.4 內(nèi)核移植到
2022-05-09 10:17:16
linux內(nèi)核的移植
這節(jié)進(jìn)行一個linux內(nèi)核的移植。一.內(nèi)核源碼的下載內(nèi)核源碼官網(wǎng)進(jìn)入官網(wǎng)點擊 紅框 下載我們這里選用linux3.14版本,移植的思路是相同的。二.內(nèi)核的配置編譯1.現(xiàn)在我們有官方源碼了,通過共享
2021-07-28 08:56:35
linux平臺設(shè)備驅(qū)動
區(qū))在設(shè)備驅(qū)動程序中經(jīng)常會見到和platform相關(guān)的字段,分布在驅(qū)動程序的多個角落,這也是2.6內(nèi)核中比較重要的一種機制,把它原理弄懂,對以后分析驅(qū)動程序很有幫助:在linux2.6設(shè)備模型中,關(guān)心
2017-09-01 14:40:51
移植rtl8821cu wifi驅(qū)動到Linux-5.4內(nèi)核出現(xiàn)編譯錯誤如何解決?
移植Linux-4.9或之前的內(nèi)核版本下的wifi驅(qū)動到 Linux-5.4內(nèi)核版本時會出現(xiàn)編譯和運行錯誤,遇到這種情況應(yīng)該如何解決?
2021-12-29 07:39:47
STM32MP157 Linux系統(tǒng)移植開發(fā)篇15:Linux內(nèi)核7寸觸摸屏驅(qū)動移植
FS-MP1A開發(fā)板,除了Linux系統(tǒng)移植篇外,還包括其他多系列教程,包括Cortex-A7開發(fā)篇、Cortex-M4開發(fā)篇、擴(kuò)展板驅(qū)動移植篇、Linux應(yīng)用開發(fā)篇、FreeRTOS系統(tǒng)移植篇
2021-09-29 08:45:20
Samsung S5PV210 Cortex-A8---OK210軟件手冊(linux2.6)-V1.8
,最高支持32GB支持JPEG 硬件編解碼,最大支持8192×8192 分辨率...............OK210軟件手冊(linux2.6)-V1.8-下載地址:更新日期2015.05.11下載鏈接鏈接:http://pan.baidu.com/s/1kTBtwyz
2015-05-19 11:04:57
[分享資料]linux設(shè)備驅(qū)動開發(fā)詳解_宋寶華
Linux2.6 版本內(nèi)核為藍(lán)本,詳細(xì)介紹自旋鎖、信號量、完成量、中斷頂/底半部、定時器、內(nèi)存和I/O映射以及異步通知、阻塞I/O、非阻塞I/O等Linux設(shè)備驅(qū)動理論;字符設(shè)備、塊設(shè)備、TTY設(shè)備、I2C設(shè)備
2015-09-11 23:36:44
u-boot引導(dǎo)啟動Linux 2.6的內(nèi)核
2019-05-27 00:38:59
uClinux內(nèi)核與驅(qū)動開發(fā)
uCLinux 是Linux 2.0核心的分支,是針對沒有MMU管理單元的微控制器? 繼承了Linux的大多數(shù)特性? 多數(shù)的Linux下應(yīng)用程序和驅(qū)動程序都可以在uClinux下運行? 內(nèi)核精簡
2017-11-10 09:52:26
《嵌入式Linux系統(tǒng)開發(fā)標(biāo)準(zhǔn)教程》7_配置編譯Linux_2.6內(nèi)核
《嵌入式Linux系統(tǒng)開發(fā)標(biāo)準(zhǔn)教程》7_配置編譯Linux_2.6內(nèi)核
2012-08-20 07:45:27
【NetRouter申請】測試移植的linux內(nèi)核
申請理由:原來有塊板子,自己根據(jù)linux驅(qū)動開發(fā)書籍《宋寶華 linux設(shè)備驅(qū)動開發(fā)詳解第四版》做的移植內(nèi)核,但是無奈上次板子無法刷入(串口連不上去),不知道什么原因。書也看到結(jié)尾了,但是實踐卻
2016-02-01 15:32:36
【分享】4412開發(fā)板-嵌入式Linux開發(fā)需要掌握的基礎(chǔ)知識和技能
了解移植的概念 能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9開發(fā)板6、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux應(yīng)用軟件開發(fā)流程 Linux系統(tǒng)的文件和設(shè)備
2015-07-16 14:08:08
基于ARM的linux內(nèi)核裁剪與移植
。Linux的程序源碼全部公開,任何人都可以根據(jù)自己的需要裁剪內(nèi)核,以適應(yīng)自己的系統(tǒng)。文章以將linux移植到ARM920T內(nèi)核的s3c2410處理器芯片為例,介紹了嵌入式linux內(nèi)核的裁剪以及移植過程
2011-05-04 15:48:46
如何向Linux內(nèi)核提交驅(qū)動
測試或者因為一些其他原因未能進(jìn)入內(nèi)核的新增驅(qū)動程序和新增文件系統(tǒng)。Linux staging tree的URL是"git://git.kernel.org/pub/scm/linux
2015-09-08 16:53:54
如何編譯linux驅(qū)動模塊
是如何別被構(gòu)造的。模塊的構(gòu)造過程與用戶空間的應(yīng)用程序的構(gòu)造過程有顯著不同;內(nèi)核是一個大的、獨立的程序,對于它的各個部分如何組合在一起有詳細(xì)的明確的要求。Linux2.6內(nèi)核的構(gòu)造過程也與以前版本的內(nèi)核構(gòu)造過程...
2021-11-04 08:45:37
嵌入式Linux學(xué)習(xí)步驟
ARM平臺 了解移植的概念 能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9開發(fā)板 6、嵌入式 Linux 下串口通信 串行I/O的基本概念 嵌入式Linux應(yīng)用軟件開發(fā)流程 Linux系統(tǒng)
2018-07-03 00:56:23
嵌入式Linux學(xué)習(xí)步驟
Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9開發(fā)板6、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux應(yīng)用軟件開發(fā)流程 Linux系統(tǒng)的文件和設(shè)備 與文件相關(guān)的系統(tǒng)調(diào)用 配置
2015-03-24 10:41:29
嵌入式Linux學(xué)習(xí)步驟
Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9開發(fā)板 6、 嵌入式 Linux 下串口通信 串行I/O的基本概念 嵌入式Linux應(yīng)用軟件開發(fā)流程 Linux系統(tǒng)的文件和設(shè)備 與文件相關(guān)的系統(tǒng)
2011-05-04 15:01:53
嵌入式Linux開發(fā)學(xué)習(xí)如何入門、如何深入?
移植的關(guān)鍵技術(shù)移植Linux內(nèi)核到 ARM平臺 了解移植的概念能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9開發(fā)板5、嵌入式 Linux 下串口通信串行I/O的基本概念嵌入式Linux
2014-07-08 11:03:55
嵌入式Linux開發(fā)學(xué)習(xí)如何入門、如何深入?
介紹平臺移植的關(guān)鍵技術(shù)移植Linux內(nèi)核到 ARM平臺 了解移植的概念能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9開發(fā)板 5、嵌入式 Linux 下串口通信串行I/O的基本概念嵌入式
2016-10-14 14:37:33
嵌入式Linux開發(fā)學(xué)習(xí)推薦書籍
詳解》 (宋寶華編) 人民郵電出版社定價:89 linux2.6字符驅(qū)動講的比較好 llinux設(shè)備驅(qū)動程序(第三版) (驅(qū)動的一些理論講的比較好,但是比較深) 《構(gòu)建嵌入式LINUX系統(tǒng)》 (美)雅
2018-07-05 02:30:35
嵌入式linux學(xué)習(xí)步驟
Linux內(nèi)核代碼 平臺相關(guān)代碼分析 ARM平臺介紹 平臺移植的關(guān)鍵技術(shù) 移植Linux內(nèi)核到 ARM平臺 了解移植的概念 能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到ARM9開發(fā)板5、嵌入式
2016-09-12 14:23:18
嵌入式linux學(xué)習(xí)步驟
、嵌入式系統(tǒng)移植Linux內(nèi)核代碼 平臺相關(guān)代碼分析 ARM平臺介紹 平臺移植的關(guān)鍵技術(shù) 移植Linux內(nèi)核到 ARM平臺 了解移植的概念 能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9
2017-10-25 10:12:39
嵌入式linux學(xué)習(xí)步驟
、嵌入式系統(tǒng)移植Linux內(nèi)核代碼 平臺相關(guān)代碼分析 ARM平臺介紹 平臺移植的關(guān)鍵技術(shù) 移植Linux內(nèi)核到 ARM平臺 了解移植的概念 能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9
2021-09-08 11:51:06
新手必看--嵌入式Linux學(xué)習(xí)步驟
、嵌入式系統(tǒng)移植Linux內(nèi)核代碼 平臺相關(guān)代碼分析 ARM平臺介紹 平臺移植的關(guān)鍵技術(shù) 移植Linux內(nèi)核到 ARM平臺 了解移植的概念 能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9
2016-03-25 14:53:55
新手必看--嵌入式Linux學(xué)習(xí)步驟,教你怎么入門
、嵌入式系統(tǒng)移植Linux內(nèi)核代碼 平臺相關(guān)代碼分析 ARM平臺介紹 平臺移植的關(guān)鍵技術(shù) 移植Linux內(nèi)核到 ARM平臺 了解移植的概念 能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9
2014-06-30 11:23:21
現(xiàn)在分享一個大四做的一個基于Cortex A8和linux2.6的廣告機
現(xiàn)在分享一個大四做的一個基于Cortex A8和linux2.6的廣告機,利用多線程編程,實現(xiàn)圖片循環(huán)播放,同時播放音樂,此項目涉及jpg和mp3格式解碼,所以必須在PC端linux系統(tǒng)安裝這兩個解碼庫,解碼庫自己找,這里只提供原碼,如果需要的話可以找我要
2015-10-21 10:51:14
編譯linux2.6時make uImage出現(xiàn)如下錯誤
首次編譯linux2.6時 make uImage 出現(xiàn)如下錯誤:sound/soc/s3c24xx/s3c2410-uda1341.c:26:32: asm/arch/regs-gpio.h
2019-05-30 01:38:30
認(rèn)識Linux內(nèi)核移植
(一)為什么要移植內(nèi)核?這也是嵌入式的特點,因為不像x86的機器,隨便一臺機器就能安裝個ubuntu的linux操作系統(tǒng),針對不同的arm開發(fā)板,有很多的硬件設(shè)置都不一樣,所以linux不可能每個
2016-04-16 14:43:23
請問microblaze可以跑linux2.6.X的內(nèi)核嗎?
我想試著在支持MMU的microblaze7.0上跑個linux2.6內(nèi)核,應(yīng)該如何配置交叉編譯環(huán)境?我看到網(wǎng)上有人提到microblaze-gcc,我裝過arm-linux的交叉編譯環(huán)境,那個
2012-08-23 10:38:50
面對不斷升級的內(nèi)核,我們該如何學(xué)習(xí)LINUX設(shè)備驅(qū)動?
面對不斷升級的linux內(nèi)核、GNU開發(fā)工具、linux環(huán)境下的各種圖形庫,很多linux應(yīng)用程序開發(fā)人員和linux設(shè)備驅(qū)動開發(fā)人員即興奮,又煩躁。興奮的是新的軟件軟件、工具給我提供了更強大的功能
2018-09-29 11:04:26
μClinux-kernel-2.6芯片級移植分析與實現(xiàn)
本文介紹并分析了將基于最新一代Linux 內(nèi)核kernel-2.6 的μClinux-kernel-2.6,移植到尚未被具體支持的處理器芯片Philips-LPC2294 的全過程。給出了2.6 版本內(nèi)核向具體處理器的芯片級移
2009-06-16 09:22:0813
嵌入式Linux2.6在S3C2410上的移植技術(shù)探析
移植操作系統(tǒng)是開發(fā)嵌入式系統(tǒng)的前提和基礎(chǔ),通過將Linux 2.6 內(nèi)核移植到S3C2410目標(biāo)板上,提出了嵌入式Linux 移植的方法與具體實現(xiàn)過程。編譯生成的內(nèi)核在嵌入式系統(tǒng)中運行穩(wěn)
2009-08-31 10:03:4915
Linux-2.6.25移植
Linux-2.6.25移植
4月17號linux-2.6.25穩(wěn)定版發(fā)布,我們(偉研科技)http://www.gzweiyan.com 將該內(nèi)核移植到S3C2440平臺上,下面是我們移植的第一步:
編譯內(nèi)核:1) 解壓
2009-09-20 18:15:0848
基于eCos的無線網(wǎng)卡驅(qū)動設(shè)計與實現(xiàn)
本文詳細(xì)介紹了eCos 下無線網(wǎng)卡驅(qū)動程序的體系結(jié)構(gòu)及其設(shè)計方法,并將linux2.6內(nèi)核所提供的無線配置工具移植到eCos 下,擴(kuò)展了eCos 下的無線配置管理功能。
2009-12-23 16:21:1132
嵌入式Linux下的實時性增強方案
分析了嵌入式Linux在實時性方面的不足,針對Linux2.6內(nèi)核的中斷運行機制、內(nèi)核不可搶占性、自旋鎖及大內(nèi)核鎖等問題進(jìn)行研究,提出相應(yīng)的實時性改進(jìn)方法。測試表明,改進(jìn)后的嵌
2010-11-17 11:37:4234
Linux2.6環(huán)境下USB設(shè)備的驅(qū)動實現(xiàn)
Linux2.6環(huán)境下USB設(shè)備的驅(qū)動實現(xiàn)
0 概述嵌入式linux系統(tǒng)環(huán)境以其易于移植裁減、內(nèi)核小、效率高、完整、原代碼開放及性能優(yōu)異等特點,在嵌入式領(lǐng)域得到了
2010-04-09 10:44:571185
移植MPlayer到linux 2.6的方法
使用的linux內(nèi)核為2.6.14.1 MPlayer版本為MPlayer-1.0pre7try2.bz2目前雖然已經(jīng)添加了mad的mp3庫,但播放聲音文件回
2010-06-08 14:55:021849
嵌入式Linux在s3c2440上的移植研究
針對嵌入式Linux在s3c2440上的移植目的,通過將嵌入式Linux 內(nèi)核移植到 S3C2440 處理器的目標(biāo)板上, 提出了嵌入式Linux 移植的方法與具體實現(xiàn)過程。編譯生成的內(nèi)核在嵌入式系統(tǒng)中運行穩(wěn)定
2011-08-15 11:30:1267
Android的Linux內(nèi)核與驅(qū)動程序開發(fā)教程
Android內(nèi)核是基于Linux 2.6內(nèi)核的,它是一個增強內(nèi)核版本,除了修改部分Bug外,它提供了用于支持Android平臺的設(shè)備驅(qū)動,這里介紹了Android內(nèi)核和驅(qū)動程序開發(fā)的基礎(chǔ)知識。 第一部分 Lin
2011-09-05 14:24:13335
編譯Linux2.6內(nèi)核并添加一個系統(tǒng)調(diào)用
本文以實例來詳細(xì)描述了從準(zhǔn)備一直到使用新內(nèi)核的Linux2.6 內(nèi)核編譯過程,然后介紹了添加系統(tǒng)調(diào)用的實現(xiàn)步驟,最后給實驗結(jié)果。
2011-12-01 15:54:5546
Linux設(shè)備驅(qū)動模型摘抄
Linux2.6 內(nèi)核提供了新的設(shè)備模型,目的是為了對計算機上的所有設(shè)備進(jìn)行統(tǒng)一地表示和操作,包括設(shè)備本身和設(shè)備之間的連接關(guān)系。這個模型是在 分析了 PCI 和 USB 的總線驅(qū)動過程中得到
2012-03-19 15:15:5239
基于Linux內(nèi)核輸入子系統(tǒng)的驅(qū)動研究
Linux因其完全開放的特性和穩(wěn)定優(yōu)良的性能深受歡迎,當(dāng)推出了內(nèi)核輸入子系統(tǒng)后,更方便了嵌入式領(lǐng)域的驅(qū)動開放。介紹了Linux的設(shè)備驅(qū)動基礎(chǔ),詳細(xì)闡述了基于Linux內(nèi)核輸入子系統(tǒng)下
2012-09-12 16:38:5223
基于Linux 2.6內(nèi)核Makefile分析
基于2.4內(nèi)核的,可以說關(guān)于2.6內(nèi)核Makefile相關(guān)的文章鳳毛麟角,筆者抽時間完成了這篇分析文章,讓讀者迅速熟悉Linux最新Makefile體系,從而加深對內(nèi)核的理解,同時也希望能對Linux在公司的推廣起到一定的推動作用,算是拋磚引玉吧!
2017-09-18 19:09:090
Linux2.6內(nèi)核解析及其移植應(yīng)用分析
隨著多媒體技術(shù)與通訊技術(shù)相結(jié)合的信息技術(shù)的快速發(fā)展和互聯(lián)網(wǎng)的廣泛應(yīng)用,PC時代也過渡到了后PC時代。在數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后PC時代,嵌入式技術(shù)越來越與人們的生活緊密結(jié)合。 操作系統(tǒng)為用戶使用計算機及其外部設(shè)備提供最基本的接口程序,管理計算機上的資源。隨著應(yīng)用領(lǐng)域的擴(kuò)大,為了適應(yīng)不同的應(yīng)用場合,考慮到系統(tǒng)的靈活性、可伸縮性以及可裁剪性,一種以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟硬件可裁剪、適應(yīng)應(yīng)用系
2017-10-25 10:05:300
基于OMAP的PDA的Linux 2.6移植 Linux 2.6 Porting to PDA based on OMAP
基于OMAP的PDA的Linux 2.6移植 Linux 2.6 Porting to PDA based on OMAP
2017-10-27 10:29:526
《Linux設(shè)備驅(qū)動開發(fā)詳解》第23章、Linux設(shè)備驅(qū)動的移植
《Linux設(shè)備驅(qū)動開發(fā)詳解》第23章、Linux設(shè)備驅(qū)動的移植
2017-10-27 10:58:139
《Linux設(shè)備驅(qū)動開發(fā)詳解》第4章、Linux內(nèi)核模塊
《Linux設(shè)備驅(qū)動開發(fā)詳解》第4章、Linux內(nèi)核模塊
2017-10-27 14:15:510
關(guān)于Linux 2.6內(nèi)核Makefile的分析
的介紹文章都是基于2.4內(nèi)核的,可以說關(guān)于2.6內(nèi)核Makefile相關(guān)的文章鳳毛麟角,筆者抽時間完成了這篇分析文章,讓讀者迅速熟悉Linux最新Makefile體系,從而加深對內(nèi)核的理解,同時也希望能
2017-11-02 10:12:551
基于FPGA嵌入式系統(tǒng)的設(shè)備驅(qū)動開發(fā)
的資源注冊進(jìn)內(nèi)核,由內(nèi)核統(tǒng)一管理。在參照Linux2.6內(nèi)核源碼有關(guān)平臺設(shè)備驅(qū)動的基礎(chǔ)上,編寫和測試了GPIO設(shè)備的驅(qū)動程序。該驅(qū)動程序已在Xilinx公司FPGA開發(fā)板ML403上驗證,并且穩(wěn)定運行。
2017-11-18 11:32:572134
基于Linux2.6內(nèi)核的實時性增強方案設(shè)計
性能的若干方面進(jìn)行研究,并利用相應(yīng)的解決方法基于標(biāo)準(zhǔn)Linux2.6內(nèi)核加以實現(xiàn),最后通過測試,驗證了此改進(jìn)方法的效果。
2018-08-17 15:01:02833
s3c2410移植MPlayer到linux2.6
s3c2410移植MPlayer到linux2.6 我使用的linux內(nèi)核為2.6.14.1 MPlayer版本為MPlayer-1.0pre7try2.bz2 目前雖然已經(jīng)添加了mad的mp3
2018-09-21 14:36:01189
Linux 內(nèi)核/sys 文件系統(tǒng)介紹
linux2.6內(nèi)核引入sysfs文件系統(tǒng),sysfs可以看成與proc,devfs和devpty同類別的文件系統(tǒng),該文件系統(tǒng)是虛擬的文件系統(tǒng),可以更方便對系統(tǒng)設(shè)備進(jìn)行管理。
2019-04-25 16:20:344007
Linux 2.6內(nèi)核的設(shè)備模型
inux 2.6內(nèi)核的一個重要特色是提供了統(tǒng)一的內(nèi)核設(shè)備模型。隨著技術(shù)的不斷進(jìn)步,系統(tǒng)的拓?fù)浣Y(jié)構(gòu)越來越復(fù)雜,對智能電源管理、熱插拔以及plug and play的支持要求也越來越高,2.4內(nèi)核已經(jīng)難以滿足這些需求。
2019-05-06 16:41:13463
linux下bus、devices和platform的基礎(chǔ)模型
kobject是Linux2.6引入的設(shè)備管理機制,在內(nèi)核中由struct kobject結(jié)構(gòu)表示,這個結(jié)構(gòu)使所有設(shè)備在底層都具有統(tǒng)一的接口.kobject提供了基本的對象管理能力,是構(gòu)成Linux2.6設(shè)備模型的核心結(jié)構(gòu),它與sysfs文件系統(tǒng)緊密聯(lián)系
2019-05-15 09:01:421618
Linux 2.6內(nèi)核的精彩世界
2003年歲末,Linux社區(qū)最鼓舞人心的消息莫過于期盼已久的Linux內(nèi)核2.6版正式推出。作為一個主要發(fā)布版本,2.6相對于2.4有很大的改動;它引入了許多新的特性,同樣也去除
2019-04-02 14:38:55242
Linux2.6 內(nèi)核的 Initrd 機制解析
中的"某個文件",完成加載驅(qū)動模塊等任務(wù),第二階段才會執(zhí)行真正的根文件系統(tǒng)中的 /sbin/init 進(jìn)程。這里提到的"某個文件",Linux2.6 內(nèi)核會同以前版本內(nèi)核的不同,所以這里暫時使用了"某個
2019-04-02 14:39:19452
Linux2.6內(nèi)核中提高網(wǎng)絡(luò)I/O性能-epoll
/*********************************引用開始******************************/Linux2.6內(nèi)核epoll介紹---我的blog 2005/3/30 [作者]:滕昱,2005
2019-04-02 14:39:20187
Linux最新2.6內(nèi)核的Makefile體系詳細(xì)資料分析
基于2.4內(nèi)核的,可以說關(guān)于2.6內(nèi)核Makefile相關(guān)的文章鳳毛麟角,筆者抽時間完成了這篇分析文章,讓讀者迅速熟悉Linux最新Makefile體系,從而加深對內(nèi)核的理解,同時也希望能對Linux在公司的推廣起到一定的推動作用,算是拋磚引玉吧!
2019-09-06 08:00:000
Linux內(nèi)核驅(qū)動的platform機制是怎樣的
從Linux 2.6起引入了一套新的驅(qū)動管理和注冊機制:platform_device和platform_driver。
2019-11-06 14:12:501322
嵌入式linux編譯 ko,嵌入式linux:編譯linux驅(qū)動模塊
是如何別被構(gòu)造的。模塊的構(gòu)造過程與用戶空間的應(yīng)用程序的構(gòu)造過程有顯著不同;內(nèi)核是一個大的、獨立的程序,對于它的各個部分如何組合在一起有詳細(xì)的明確的要求。Linux2.6內(nèi)核的構(gòu)造過程也與以前版本的內(nèi)核構(gòu)造過程...
2021-11-01 16:31:278
嵌入式Linux系統(tǒng)移植(Linux內(nèi)核配置)
嵌入式Linux系統(tǒng)移植(Linux內(nèi)核配置)Linux移植是把Linux操作系統(tǒng)針對具體的目標(biāo)平臺做必要改寫之后,安裝到該目標(biāo)平臺使其正確的運行起來?;緝?nèi)容:1.獲取某版本的Linux內(nèi)核源碼
2021-11-02 10:51:0513
[深度理解嵌入式linux系統(tǒng)移植]深度理解嵌入式linux系統(tǒng)移植
-linux內(nèi)核工程與編譯系統(tǒng)第七章-linux內(nèi)核啟動流程分析第八章-linux移植準(zhǔn)備及最小系統(tǒng)構(gòu)建第九章-linux網(wǎng)卡驅(qū)動移植第十章-linux混雜設(shè)備驅(qū)動第十一章-linuxI2C驅(qū)動移植第十二章-linuxSPI驅(qū)動移植第十三章-Nand Flash 驅(qū)動移植第十四章-SD.
2021-11-02 13:21:2116
完整的linux系統(tǒng)包括哪些部分?
Linux的驅(qū)動程序可以說是五花八門,linux2.4和linux2.6的編寫有相當(dāng)大的區(qū)別,就是同為linux2.6但是不同版本間的驅(qū)動程序也有區(qū)別,因此編寫linux的驅(qū)動程序變都不是那么容易的事情,對于最新版本的驅(qū)動程序的編寫甚至還沒有足夠的參考資料。
2022-12-02 11:51:42362
Linux內(nèi)核移植教程
半導(dǎo)體廠商會從 Linux內(nèi)核官網(wǎng)下載某個版本,將其移植到自己的 CPU上,測試成功后就會將其開放給該半導(dǎo)體廠商的 CPU開發(fā)者。開發(fā)者下載其提供的 Linux內(nèi)核,然后將其移植到自己的產(chǎn)品上。
2023-04-19 11:20:32701
Linux內(nèi)核代碼60%都是驅(qū)動?
為什么Linux內(nèi)核代碼60%都是驅(qū)動? 如果每支持新的設(shè)備就加入驅(qū)動,內(nèi)核會不會變得越來越臃腫?
2023-07-11 11:48:15415
Linux驅(qū)動移植 Linux系統(tǒng)架構(gòu)優(yōu)點
系統(tǒng)移植 linux 驅(qū)動移植 移植是說同樣的一個 linux 操作系統(tǒng),我們可以跑到不同的硬件上面,我們把操作系統(tǒng)移植到不同的硬件上面,這個過程叫做移植。設(shè)備驅(qū)動移植步驟,如下圖所示: 應(yīng)用軟件
2023-07-27 17:06:06516
rk3399移植Linux內(nèi)核
RK3399是一款由中國廠商瑞芯微推出的高性能處理器芯片,被廣泛用于嵌入式系統(tǒng)開發(fā)。在進(jìn)行應(yīng)用程序開發(fā)之前,我們需要將Linux內(nèi)核移植到RK3399上,以支持硬件的驅(qū)動和功能。本文將詳細(xì)介紹如何將
2024-01-08 09:56:13217
評論
查看更多