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