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