Was this page helpful?

Custom Kernel

    內容表格
    沒有標頭

    Edit by OSSLab :thx

    特別感謝數位天堂 Hippo and Jserv

    本篇文章目地是讓一般用戶瞭解 一些高手怎樣始用一些原始碼 如openwrt 自己編寫網通設備軔體.
    初淺瞭解網通設備的開發過程

    建議先瞭解Linux 開機程序:
    http://linux.vbird.org/linux_basic/0...#startup_intro
    而embedded system 則以
    uboot (bootloader),Kernel ,rootfs

    這邊自行編譯 uboot 會比較有點難度 ,
    Kernel 重點是要把驅動包進去
    rootfs 則可選擇想要的Linux 套件.
    ALARM, Gentoo, Fedora, OpenWrt

    對於uboot  比較不瞭解的人  請先參考這

    運作環境 ubuntu 11.04 Desktop 版  以linux-3.1.10 原始碼 為範例

      1.下載Linux sources code 跟安裝mkimage

    $ wget ftp://ftp.isu.edu.tw/Linux/kernel/v3.x/patch-3.1.10.gz #取得Kernel 原始碼
    $ tar -xJf linux-3.1.10.tar.xz -C Source 
    $ sudo ln -s /home/使用者/Source/linux-3.1.10 /usr/src/linux-3.1.10
    $ apt-get install uboot-mkimage  # 安裝mkimage
    

     


    2. 交叉編譯器Cross Compiler 與toolchain

    Arm與X86 CPU 指令集不同 ,要準備交叉編譯器與Toolchain,
    要準備安裝 binutils,gcc ,gdb,newlib 會太慢
    快速方法到CodeSourcery下載現成的.

    這邊  Kernel使用CodeSourcery arm-2011.03-42-arm-none-eabi.bin 安裝


    編譯器安裝

     

    wget https://sourcery.mentor.com/GNUToolchain/package8736/public/arm-none-eabi/arm-2011.03-42-arm-none-eabi.bin
    tar -xjf arm-2011.03-42-arm-none-eabi.bin
    chmod +x arm-2011.03-42-arm-none-eabi.bin
    接下來再執行以下指令,之後選否
    sudo dpkg-reconfigure dash
    .\arm-2011.03-42-arm-none-eabi.bin

    就會執行安裝了

    sudo vi /etc/profile
    在最後一行增加:
    PATH=$HOME/user/CodeSourcery/Sourcery_G++_Lite/bin:$PATH

    保存退出。
    logout  後再登入 .

     arm-none-linux-gnueabi-gcc -v
    


    出現版本訊息 環境變數就正常

    Sourcery_G++_Lite 裝在這目錄底下

    $home/CodeSourcery/Sourcery_G++_Lite/bin
     

     3. 編譯Kernel 用wget 下載Hippo 大做的Script

      $ ./nas-34.x86.sh    # 執行為編譯核心 script


    機板型號:選Marvell Orion-NAS Reference Design


    Flash, 取消Memory Technology Device (MTD) support


    若要使用NFS server上的rootfs, 將NFS client support編入核心. (建議使用)
    如果要支持一些USB  裝置, 記得要勾選(比如說USB 網路卡,3G 網路卡 ,USB 音效卡)

    編譯成功後, 將/usr/src/linux-3.1.10/xxxxx/arm/boot/uImage, 上傳到TFTP server.

    假設以上都閒煩  請直接抓已經編譯好 的Kernel
     

    4.使用U-Boot 從TFTP server 上傳Kernel
    準備一台 TFTP server,
    NAS-34接上TTL console線, 開機後 要在COM  Console 下快速按下 Enter  , 中斷U-Boot.
    Console 目地是控制uboot 指令,傳送Kernel 還是用 網路的tftp協定

    setenv serverip 192.168.7.57   # 設定 傳送kernel tftp  ip server
    setenv ipaddr 192.168.7.11     # 設定 傳送kernel  NAS 本機IP 
    printenv  #顯示設定組態
    tftpboot 800000 uImage  #  (傳送uimage 到DRAM 800000 位置)
    bootm 800000#             (從80000 位置啟動) 

    ok  完成tftp 上傳Kernel ....
     

    核心都沒問題後, 準備rootfs.(待續)

     

     

    參考
    http://digiland.tw/viewtopic.php?id=1942
    http://buffalo.nas-central.org/index...M9_Kernel_Port
    http://computingplugs.com/index.php/..._custom_kernel
    http://www.nslu2-linux.org/wiki/Optware/PlugComputers
    http://plugcomputer.org/plugwiki/ind...nel_and_U-Boot
    http://linux.vbird.org/linux_basic/0...#startup_intro

    Was this page helpful?
    標籤 (Edit tags)
    • No tags

    文件 2

    文件大小日期附件上傳者 
     nas-34.x86.sh
    無描述
    262 位元14:13, 12 Jun 2012thx動作
     uImage-3.1.10-11-Orion
    無描述
    2.27 MB23:42, 11 Jun 2012thx動作
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core