使用skyeye運行uboot, linux-2.6.31和busybox

來源:互聯網
上載者:User

LDD6410工程網址為:

http://code.google.com/p/ldd6410

代碼通過svn管理,擷取方法:

# Non-members may check out a read-only working copy anonymously over HTTP. svn checkout http://ldd6410.googlecode.com/svn/trunk/ ldd6410-read-only

本頁講解如何使用LDD6410工程的代碼在skyeye中運行uboot、2.6.31核心及檔案系統。由於目前skyeye還不支援s3c6410,所以我們產生的映像都是s3c2410的。 支援如何功能:

cs8900網卡

320*240 16bpp LCD

tftp

nfs

u-boot

linux-2.6.31

busybox

從u-boot引導linux-2.6.31

主機端配置

安裝skyeye

在主機端執行:

  sudo apt-get install skyeye

安裝配置tftp伺服器

在主機端執行:

  sudo apt-get install tftpd-hpa  sudo mkdir /home/tftp  sudo chmod 777/home/tftp

sudo vim /etc/default/tftpd-hpa修改檔案內容為:

  RUN_DAEMON="yes  OPTIONS="-l -c -s /home/tftp"

開啟tftp服務:

  sudo /etc/init.d/tftpd-hpa start  Starting HPA's tftpd: in.tftpd.

skyeye target從主機下載檔案的方式是:

  tftp -r file -g 10.0.0.1

安裝配置NFS伺服器

在主機端執行:

  apt-get install nfs-kernel-server  cd /home  sudo ln -s tftp nfs

sudo vim /etc/exports修改該檔案內容為:

  /home/nfs *(sync,rw)

運行exportfs -rv  開啟NFS服務:

   /etc/init.d/nfs-kernel-server restart

在skyeye target上mount nfs的方法是:

   mount -t nfs -o nolock 10.0.0.1:/home/nfs /mnt

編譯uboot、核心和檔案系統

編譯u-boot

進入工程原始碼目錄ldd6410/s3c-u-boot-1.1.6,運行make smdk2410_config,接著運行make得到u-boot映像。

編譯核心

將ldd6410項目ldd6410/patches/2410-skyeye_ldd6410-project.patch拷貝到linux 2.6.31原始碼目錄,打patch:

  patch -p0 <2410-skyeye_ldd6410-project.patch

接著運行: make smdk2410_skyeye_defconfig配置核心 make vmlinux得到核心的vmlinux映像。

製作根檔案系統initrd.img

進入ldd6410工程代碼的如下目錄:ldd6410/utils/busybox-1.15.1 運行make menuconfig選擇必要的項目,然後運行make,make install。make install啟動並執行結果是會產生install,busybox對應的linuxrc, /bin, /sbin, /usr就在該目錄了。 有了 busybox 後製作 initrd.img 就容易多了,只是說起來比較煩瑣。以命令示範如下: 建立映像檔案並掛到 initrd 目錄

  mkdir initrd  dd if=/dev/zero of=initrd.img bs=1k count=4096  mke2fs -F -v initrd.img  mount -o loop initrd.img initrd

將添加 busybox 到此映像檔案

  cd initrd  cp -r ../_install/* .

建立必要的目錄

  mkdir proc lib etc dev root home var tmp  chmod 777 tmp

建立裝置檔案

  cd dev  mknod -m 644 console c 51  mknod -m 644null c 13  mknod -m 640 ram b 11  mknod -m 644 mem c 11  cd ..

建立指令碼檔案 etc/inittab, 內容如下:

  ::sysinit:/etc/init.d/rcS  ::askfirst:-/bin/sh  ::restart:/sbin/init  ::ctrlaltdel:/sbin/reboot  ::shutdown:/bin/umount -a -r  ::shutdown:/sbin/swapoff -a

設定此指令碼執行許可權

  chmod 644 etc/inittab

建立指令碼檔案 etc/init.d/rcS, 內容如下:

  #!/bin/sh  /bin/mount -t proc none /proc  /sbin/ifconfig lo 127.0.0.1 up  /sbin/ifconfig eth0 10.0.0.2 netmask 255.0.0.0 up  hostname skyeye  mkdir /var/tmp  mkdir /var/log  mkdir /var/run  mkdir /var/lock  /bin/ash

設定此指令碼執行許可權

  chmod 755 etc/init.d/rcS

最後一步,執行實際的寫入操作,產生 initrd.img

  cd ..  umount initrd

運行

將編譯得到的u-boot、vmlinux、initrd.img放入同一目錄,將vmlinux拷入tftp伺服器根目錄。 可以直接運行Linux,使用http://ldd6410.googlecode.com/files/ldd6410-skyeye-pack.tar.gz 中的skyeye-standalone.conf設定檔,結合核心映像vmlinux: sudo skyeye -e vmlinux -c skyeye-standalone.conf也可以先啟動u-boot,然後在uboot中下載vmlinux並啟動它,使用http://ldd6410.googlecode.com/files/ldd6410-skyeye-pack.tar.gz 中的skyeye-with-uboot.conf 設定檔,結合先前編譯得到的u-boot:

   sudo skyeye -e u-boot -c skyeye-with-uboot.conf

在u-boot正常啟動後,從tftp伺服器下載vmlinux:

   tftp 0xc0000000 vmlinux

接著運行bootelf 0xc0000000,Linux核心開始啟動。

http://ldd6410.googlecode.com/files/ldd6410-skyeye-pack.tar.gz 包含了已經做好的映像,可以直接運行。

本文出自 “宋寶華的部落格” 部落格,請務必保留此出處http://21cnbao.blog.51cto.com/109393/213771

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.