日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

pcDuino內(nèi)核開發(fā)指南

 xiaofenglib 2013-09-06

      最近在pcDuino上做AP的功能的,但是內(nèi)核不支持NAT,需要改內(nèi)核,添加wifi驅(qū)動,這里把內(nèi)核開發(fā)的方法分享給大家,方便大家以后學(xué)習(xí)調(diào)試其他的驅(qū)動。

一,搭建交叉開發(fā)環(huán)境

按照傳統(tǒng)的開發(fā)方法,我們需要下載交叉編譯器,設(shè)置環(huán)境變量,有些時(shí)候交叉編譯器還不能用,等等一些問題。在pcDuino上搭建很簡單:

1,在電腦安裝ubuntu系統(tǒng),虛擬機(jī)或者硬盤安裝都行,具體的安裝過程我就不在這里贅述了;

2,sudo apt-get update  #更新一下軟件源;

3,sudo apt-get upgrade # 更新一下系統(tǒng);

4,sudo apt-get install g++-arm-linux-guneabihf #安裝交叉編譯器,安裝的過程會設(shè)置好系統(tǒng)的交叉編譯環(huán)境

二,下載pcduino內(nèi)核源碼

構(gòu)建pcDuino系統(tǒng)所有的源碼都在https://github.com/pcduino/kernel里面,我們只需要安裝git下載下來就可以了。

1,sudo apt-get install git-core #下載安裝git工具

2,git clone https://github.com/pcduino/kernel.git #下載所有源碼

這個(gè)源碼比較大加上git管理有2G左右,而且還不斷增加中。這里需要找個(gè)安靜的網(wǎng)絡(luò),可以長時(shí)間下載。下載后源碼如圖所示:

1

三,編譯內(nèi)核源碼

linux-sunxi目錄就是內(nèi)核源碼目錄,我們到這個(gè)目錄下:

make mrproper  #深度清除以前的配置

回到kernel目錄下

make

第一次編譯可能會出現(xiàn)一下問題:

1,提示有些.c文件找不到,其實(shí)這些文件是有的,按照提示,你到出現(xiàn)錯(cuò)誤的目錄里面去找,其實(shí)那個(gè).c文件被加了其他的后綴,把后綴去掉可以了。

2,提示找不到工具mkimage ,這個(gè)工具是在編譯u-boot的時(shí)候生成的所以你需要到

/home/pillar/WORK/kernel/build/pcduino-u-boot/tools

目錄下,把mkimag拷貝到/usr/bin/目錄下

除了以上問題應(yīng)該沒有其他的問題了。

四,配置Linux內(nèi)核

傳統(tǒng)的方法是到Linux 內(nèi)核源碼下面執(zhí)行make menuconfig

由于pcDuino把整個(gè)工程都包裝的很好,這里就不能到內(nèi)核源碼目錄下執(zhí)行了

由于Linux內(nèi)核源碼的圖像化界面是基于ncurses庫的,所以這里需要安裝那個(gè)庫

‘sudo apt-get install libncurses5-dev

安裝完畢后,切換到/home/pillar/WORK/kernel/build/sun4i_defconfig-linux/下

make CROSS_COMPILE=arm-linux-gnueabi-    ARCH=arm    menuconfig

2

 

這樣就看到了久違的Linux內(nèi)核配置界面了。

配置完成后保存退出

執(zhí)行 ls -a 命令就可以看到當(dāng)前目錄下隱藏的,config 文件

從底層的Makefile分析可以知道,編譯的時(shí)候并不是讀取這個(gè)目錄下的.config

cp .config           /home/pillar/WORK/kernel/patch/linux-sunxi/arch/arm/configs/sun4i_defconfig

這樣就會編譯我們配置的內(nèi)核。

五,在內(nèi)核中添加驅(qū)動

這里我以添加雷凌的rt5370 USB wifi驅(qū)動為例介紹如何在內(nèi)核中添加驅(qū)動。具體的內(nèi)核驅(qū)動開發(fā)學(xué)習(xí)過程,請關(guān)注我后期的博客。

拷貝已經(jīng)開發(fā)好的rt5370驅(qū)動到

/home/pillar/WORK/kernel/linux-sunxi/drivers/net/wireless

修改該目錄下的Kconfig 文件,在文件的最后添加一下內(nèi)容

source “drivers/net/wireless/rtxx7x/Kconfig”

修改該目錄下的Makefile文件,在文件的最后加上一下內(nèi)容

obj-$(CONFIG_RTXX7X_SW) += rtxx7x/

最后在剛才介紹的目錄下安裝剛介紹的命令配置內(nèi)核,在內(nèi)核的

Device Drivers  —>

[*] Network device support  —>

[*]   Wireless LAN  —>

<M>   Ralink 3070/3370/5370/5372 USB WiFi for SW

3

 

選擇M表示是動態(tài)加載,編譯完成之后會生成ko文件,你直接把它拷貝到文件系統(tǒng),然后執(zhí)行

insmod *.ko

就可以了,或者你選擇*,這樣就會編譯進(jìn)內(nèi)核。

六,燒寫剛剛修改過的內(nèi)核

pcDuino提供了一個(gè)很簡單的方式修改內(nèi)核,告別了傳統(tǒng)的TF卡,USB等等設(shè)備

編譯生成的內(nèi)核文件在

/home/pillar/WORK/kernel/build/sun4i_defconfig-linux/arch/arm/boot

目錄下,我只需要用U盤拷貝到pcDuino上,或者你沒有U盤執(zhí)行以下命令就可以直接拷貝過去了

scp uImage root@192.168.3.101:/home/ubuntu/

當(dāng)然你執(zhí)行這個(gè)命令你需要在pcduino上執(zhí)行一下命令安裝SSH

sudo apt-get install openssh-server openssh-client

回到pcDuino,我們可以在/home/ubuntu/看到剛才的uImage,執(zhí)行以下命令就可以直接將剛才修改的內(nèi)核燒寫到pcDuino上:

sudo mount  /dev/nanda     /boot

sudo cp uImage   /boot   -f

sudo cp evb.bin    /boot     -f

sudo reboot

這個(gè)evb.bin你需要到pcDuino的官網(wǎng)www.pcduino.com上面去下載。

這樣內(nèi)核就燒寫完成了。

pcDuino很多驅(qū)動都是動態(tài)加載的,因此內(nèi)核里面是沒有驅(qū)動那些驅(qū)動的,你需要把剛才編譯生成的驅(qū)動拷貝到當(dāng)前的文件系統(tǒng)中來。驅(qū)動生成的目錄如下:

/home/pillar/WORK/kernel/output

這個(gè)目錄里面有a10_hwpack_20130417.tar.xz包,具體包的名字會根據(jù)當(dāng)前日期來定。

把這個(gè)包拷貝到pcDuino上解壓,解壓后rootfs/lib/modules里面的3.4.29+里面都是ko文件,你只需替換到當(dāng)前就可以了

首先到pcDuino的/lib/modules目錄下刪掉原來的驅(qū)動,新驅(qū)動和原來的是不兼容的,然后把剛才的3.4.29+拷貝到過來。

這里很多東西需要都需要手動加載,比如你想用USB wifi 你需要到net/wireless下執(zhí)行

insmod rt5370sta.ko

這樣驅(qū)動就加進(jìn)去了,你的wifi模塊就可以用了。 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多