Custom Kernel

    內容表格
    沒有標頭

    版本為 00:14, 29 Jul 2026

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    Edit by OSSLab :thx

    本文特別感謝數位天堂 Hippo and Jserv
    本篇文章目地是讓一般用戶瞭解 一些高手怎樣始用一些原始碼 如openwrt 自己編寫網通設備軔體.
    瞭解網通設備的開發過程

    建議先瞭解Linux 開機程序:
    http://linux.vbird.org/linux_basic/0...#startup_intro

    本台NAS  ARM embedded system bootloaer 為 uboot 
    Kernel 重點是要把驅動包進去..

    運作環境 ubuntu 11.04 Desktop 版以linux-3.1.10 舉例.

      1.下載Linux sources code 跟安裝mkimage

    $ wget ftp://ftp.isu.edu.tw/Linux/kernel/linux-3.1.10.tar.xz #取得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. 交叉編譯器與toolchain

    Arm與X86 CPU 指令急不同 ,要準備交叉編譯器與Toolchain,快速方法到CodeSourcery下載現成的.,

    Kernel 韌體核心使用CodeSourcery ARM 2005q3-2編譯.


    編譯器安裝

     

     

    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/thx/CodeSourcery/Sourcery_G++_Lite/bin:$PATH

    保存退出。
    logout  後再登入 .
    arm-none-linux-gnueabi-gcc -v
    出現版本訊息 環境變數就正常

    Sourcery_G++_Lite 裝在這目錄底下

    $home/CodeSourcery/Sourcery_G++_Lite/bin

     3. 編譯Kernel

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


    機板型號:選Marvell Orion-NAS Reference Design
    Flash, 取消Memory Technology Device (MTD) support
    若要使用NFS server上的rootfs, 將NFS client support編入核心. (建議使用)
    編譯成功後, 將/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.

    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

    Powered by MindTouch Core