黄色一级毛片网站_日韩在线国产_国产一级a在线观看_亚洲综合一区在线_99av视频_久久久7

當前位置:首頁 > 學習資源 > 講師博文 > 基于3.14內核rtl8188eu驅動移植

基于3.14內核rtl8188eu驅動移植 時間:2018-10-28      來源:華清遠見

近的項目上要用到3.14的內核,我們需要一個可以使用wifi連接外網的文件系統,我們的wifi模塊使用的是rtl8188eus,所以需要移植一個rtl8188eu的驅動。

首先去網上找相關8188eu的驅動源碼,我這里使用的是rtl8188EUS_rtl8189ES_linux_v4.1.1_4235.20120606。

還需要使用到linux-3.14內核的源碼,這兩樣準備完畢后,源碼就齊了。

將rtl8188的驅動解壓后,需要添加一個適合于我們平臺的編譯選項,操作如下:

vi Makefile

將原Makefile中關于CONFIG_PLATFORM_I386_PC = y改成 n

根據其他arm平臺添加一個 CONFIG_PLATFORM_ARM_SMDK4x12 = y

然后在適當位置添加如下(356-362行內容):

退出保存后,執行make

在linux/osdep_service.h下,注釋掉1360行對應的daemonize(“%s”,”RTKTHREAD);

繼續編譯,錯誤如下:

這個錯誤的原因是3.14內核不支持這些函數,這些函數的名稱被換成了其他名稱的函數,這里的主要功能是實現proc文件系統,這里我們選擇注釋掉。

vi os_dep/linux/os_intfs.c

注釋掉rtw_proc_init_one()函數內部所有代碼

注釋掉rtw_proc_remove_one()函數內部所有代碼

注釋完成后,繼續編譯

如果編譯時出現這種錯誤,是因為在配置Makefile時,我們指定的內核在配置時不支持802.11的無線設備驅動。

../os/linux/sta_ioctl.c:2227: error: unknown field 'private' specified in initializer

../os/linux/sta_ioctl.c:2227: warning: initialization from incompatible pointer type

../os/linux/sta_ioctl.c:2228: error: unknown field 'num_private' specified in initializer

../os/linux/sta_ioctl.c:2228: warning: excess elements in struct initializer

../os/linux/sta_ioctl.c:2228: warning: (near initialization for 'rt28xx_iw_handler_def')

../os/linux/sta_ioctl.c:2229: error: unknown field 'private_args' specified in initializer

../os/linux/sta_ioctl.c:2229: warning: excess elements in struct initializer

../os/linux/sta_ioctl.c:2229: warning: (near initialization for 'rt28xx_iw_handler_def')

../os/linux/sta_ioctl.c:2230: error: unknown field 'num_private_args' specified in initializer

../os/linux/sta_ioctl.c:2230: warning: excess elements in struct initializer

../os/linux/sta_ioctl.c:2230: warning: (near initialization for 'rt28xx_iw_handler_def')

解決辦法:重新配置編譯指定的Linux Kernel,將Device Drivers==>Network deivce support==>Wireless LAN==><*> USB ZD1201 based Wireless device support,編譯即可

繼續編譯

如果有以下的錯誤:

error: 'struct net_device' has no member named 'wireless_handlers'

//如下是原因,講到了定義的地方

struct net_device is defined in include/linux/netdevice.h, which includes

this ifdef:

#ifdef CONFIG_WIRELESS_EXT

/* List of functions to handle Wireless Extensions (instead of ioctl).

* See for details. Jean II */

const struct iw_handler_def * wireless_handlers; <======== NOTE

/* Instance data managed by the core of Wireless Extensions. */

struct iw_public_data * wireless_data;

#endif

解決方法:在Makefile加上如下

繼續編譯:

編譯到后出現了undefined的情況,是因為現在版本的內核kernel_thread函數并沒有定義它的符號,我們把這個函數換成856行的kthread_run(),如下圖:

這個函數需要一個頭文件,這個頭文件時kthread.h,他可以從3.14內核源碼中拷貝,位置是include/linux/kthrea.h。

拷貝到os_dep/linux/下以后,在os_dep/linux/os_intfs.c中添加如下代碼

之后就可以編譯成功了,如下圖

上一篇:Genymotion使用說明

下一篇:System v 和Posix

戳我查看嵌入式每月就業風云榜

點我了解華清遠見高校學霸學習秘籍

猜你關心企業是如何評價華清學員的

干貨分享
相關新聞
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 中文字幕亚洲精品无码 | 国产精品久久久久久av公交车 | 一级黄色爱爱视频 | 激情小说另类小说亚洲欧美 | 亚洲激情偷拍 | 精品国产sm最大网免费站 | 色综合二区 | 乱爱性全过程免费视频 | 57pao国产成人最近更新时间 | 国产色诱视频在线播放网站 | 欧美日韩中文字幕在线 | 一区 亚洲 | 97欧美一乱一性一交一视频 | 久久久久9999国产精品 | 中文字幕精品视频在线 | 成年人视频在线免费看 | 久久久久国精品产熟女久色 | 国产亚洲日韩在线三区 | 亚洲一区二区三区免费在线 | 殴美在线一区二区不卡 | 国产精品高潮呻吟av久久4虎 | 国产精品色欲AV蜜臀麻豆 | 精品一区二区无码免费在线观看 | 一本久久a久久精品合男女 久久久精品99久久精品36亚 | 99久久视频 | 脱了美女内裤猛烈进入gif | 夜夜摸夜夜添夜夜添破 | 亚洲中文字幕乱码一区二区三区 | 在线免费av片 | 久久一级黄色 | 久久爽久久爽久久av东京爽 | 国产成人综合欧美午夜不卡 | 人与禽一级一级毛片 | 中文字幕我不卡 | 性欧美大战久久久久久久久 | 亚洲国产精品无码一区二区 | 国产一国产二 | 久久久久久中文字幕2020 | 精品国产鲁一鲁一区二区三区 | 一区二区三区视频播放 | 国产精品午夜爆乳美女视频 |