乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       xiaofenglib 2013-09-06

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

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

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

      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 #安裝交叉編譯器,安裝的過程會(huì)設(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ò),可以長(zhǎng)時(shí)間下載。下載后源碼如圖所示:

      1

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

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

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

      回到kernel目錄下

      make

      第一次編譯可能會(huì)出現(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

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

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

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

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

      /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表示是動(dòng)態(tài)加載,編譯完成之后會(huì)生成ko文件,你直接把它拷貝到文件系統(tǒng),然后執(zhí)行

      insmod *.ko

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

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

      pcDuino提供了一個(gè)很簡(jiǎn)單的方式修改內(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ū)動(dòng)都是動(dòng)態(tài)加載的,因此內(nèi)核里面是沒有驅(qū)動(dòng)那些驅(qū)動(dòng)的,你需要把剛才編譯生成的驅(qū)動(dòng)拷貝到當(dāng)前的文件系統(tǒng)中來。驅(qū)動(dòng)生成的目錄如下:

      /home/pillar/WORK/kernel/output

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

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

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

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

      insmod rt5370sta.ko

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

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多