操作系统:Ubuntu14.04 或 red hat 9(推荐)
如果用red hat 9 则需要在系统软件更新里安装gtk:
选择主菜单->系统设置->添加或删除应用程序->选择开发工具和内核开发,点击更新
安装期间会提示你插入光盘,在虚拟机设置里更改CD/DVD(IDE)->使用ISO影像文件,选择对应的安装磁盘即可、
光盘网址:
ftp://openware.byr.edu.cn/pub/embedded/SkyEye-BOOK-CDROM/cdrom
ftp://ftp.bupt.edu.cn/pub/embedded/SkyEye-BOOK-CDROM/
(两个网址内容一样,第二个网址是内网)
假设:
您已经将随书附带的光盘的全部内容复制到一个目录下,例如:
#mkdir /mnt/cdrom
#mkdir /opt/skyeye-cdrom
#mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom(或mount -t iso9660 -o ro /dev/hdc
/mnt/cdrom)
#cp -a /mnt/cdrom/* /opt/skyeye-cdrom
第0步:观看skyeye-ep7312-armlinux-minigui-same.avi,
也可以自己动手在自己的机器上再现视频中的画面,开始自己的SkyEye之旅:
#cd /opt/skyeye-cdrom/SkyEye/testsuit/
#tar jxfv skyeye-binary-testutils-1.0.7.1.tar.bz2
#cd skyeye-binary-testutils-1.0.7
#cd ep7312
#cd ep7312_with_framebuffer_touchscreen_minigui
#./skyeye-v0.7.8.rh9.bin vmlinux-8-332
(SkyEye)target sim
(SkyEye)load
(SkyEye)run
(ARMLinux内核开始启动... ...)
/>/bin/same/same
这是用minigui做的一个游戏程序,enjoy it!
光盘中含有开源项目minigui 1.3.0的源码包,并增叫了针对skyeye的配置脚本。
今后各位还可以移植更多的嵌入式GUI系统到SkyEye上,例如QT/Embedded,PicoGUI,Tiny-X,ucGUI
,GTK/FB。
第一步:建立交叉编译环境(参看build_cross_compile_enviroment.avi)
(1)为编译ucosii,uclinux建立交叉编译环境
#cd /opt/skyeye-cdrom/DevelopTools/uClinux_gnutools/arm/
#sh arm-elf-tools-20030314.sh (此处如果出错,解决方法请看:往后看)
#ls /usr/local/bin/arm-elf-* (可以看到arm-elf-gcc等编译工具已经安装到您的机器上)
(2)为编译armlinux建立交叉编译环境
1)安装3.3.2版本
#cd /opt/skyeye-cdrom/DevelopTools/ARMlinux_gnutools/arm/
#cp arm-linux-gcc-3.3.2.tar.bz2 /
#cd /
#tar jxfv arm-linux-gcc-3.3.2.tar.bz2
#ls /usr/local/arm/3.3.2/bin/arm-linux-* (可以看到3.3.2版本的arm-linux-gcc等编译工具已经
到您的机器上)
1)安装2.95.3版本
#cd /opt/skyeye-cdrom/DevelopTools/ARMlinux_gnutools/arm/
#cp cross-2.95.3.tar.bz2 /usr/local/arm/
#cd /usr/local/arm/
#tar jxfv cross-2.95.3.tar.bz2
#ls /usr/local/arm/2.95.3/bin/arm-linux-* (可以看到2.95.3版本的arm-linux-gcc等编译工具已
经到您的机器上)
第二步:编译安装skyeye(参看build_install_skyeye.avi)
#cd /opt/skyeye-cdrom/SkyEye/skyeye/
#tar jxfv skyeye-0.8.0.tar.bz2
#cd skyeye
#./configure --target=arm-elf --prefix=/usr/local(请先仔细阅读README文件)
#make
#make install
#skyeye(现在就可以在任何路径下运行skyeye了,键入quit退出skyeye)
第三步:编译嵌入式操作系统--ucosii(参看build_ucosii_4_skyeye.avi)
#cd /opt/skyeye-cdrom/SkyEye/ucosii4skyeye
#tar zxf ucosii4skyeye-1.8.4.tgz
#cd ucosii4skyeye
#make cleanall(请先仔细阅读readme文件)
#export OSTYPE=linux-gnu(根据您实际运行的操作系统而定)
#make config
#make dep
#make
#cd sameples
#cd simple_test
#skyeye simple_test.elf
(SkyEye)target sim
(SkyEye)load
(SkyEye)run
ucosii的一个简单的程序开始在SkyEye上运行,按Ctrl+C终止运行,键入quit退出skyeye
#cd ..
#cd ucos_test
#skyeye ucos_test.elf
(SkyEye)target sim
(SkyEye)load
(SkyEye)run
enjoy it! 按Ctrl+C终止运行,键入quit退出skyeye
第四步:编译带有网络支持的嵌入式操作系统--uclinux(参看build_uclinux_4_skyeye.avi)
#cd /opt/skyeye-cdrom/uClinux
#tar zxf uClinux-dist-20030522.tar.gz
#cp /opt/skyeye-cdrom/SkyEye/uclinux4skyeye/uclinux4skyeye-v0.2.3.tgz .
#tar zxf uclinux4skyeye-v0.2.3.tgz
#cd uclinux4skyeye
#cp example/uclinux-dist-20030522/vendor__GDB_ARMulator/* ../uClinux-
dist/vendors/GDB/ARMulator/
#cp example/uclinux-dist-20030522/linux-2.4.x__drivers__net/* ../uClinux-
dist/drivers/net/
#cd ..
#cd uClinux-dist
#make menuconfig(若是在X window上,终端窗口的尺寸必须大于19行80列,否则Menuconfig无法正
常运行)
#make dep
#make
#ls linux-2.4.x/linux
#cd ..
#ln -s uClinux-dist/linux-2.4.x/linux linux
#cp /opt/skyeye-cdrom/SkyEye/testsuit/skyeye-binary-testutils-
1.0.7/at91/uclinux3/boot.rom .
#cp /opt/skyeye-cdrom/SkyEye/testsuit/skyeye-binary-testutils-
1.0.7/at91/uclinux3/skyeye.cof .
#skyeye linux
(SkyEye)target sim
(SkyEye)load
(SkyEye)run
(uCLinux内核开始启动... ...)
/>sbin/ifconfig
另主机上开一个终端
#ifconfig 可以看到多了一个网络设备tpa0 10.0.0.1
#ping 10.0.0.2 -c 4 你将看到主机和SkyEye模拟器之间的网络操作。
各位按照还可以/opt/skyeye-cdrom/SkyEye/testsuit/skyeye-binary-testutils-
1.0.7/at91/installguide.txt的说明试一下
#telnet 10.0.0.2
/〉mount -t nfs 10.0.0.1:/target /tmp
第五步:编译带有framebuffer和TouchScreen支持的嵌入式操作系统--armlinux(参看
build_armlinux_4_skyeye.avi)
#cd /opt/skyeye-cdrom/SkyEye/armlinux4skyeye/ep7312
#tar jxfv linux-2.4.13-patched-4-ep7312.tar.bz2
已经打好了补丁,做好了配置,可以直接编译出带有framebuffer和触摸屏驱动的armlinux内核
在其上可以运行minigui应用程序。
#cd linux
#make
#ll vmlinux
#cd ..
#ln -s linux/vmlinux vmlinux
#cp /opt/skyeye-cdrom/SkyEye/testsuit/skyeye-binary-testutils-
1.0.7/ep7312/ep7312_with_framebuffer_touchscreen_minigui/ywcromfs-minigui.img .
#cp /opt/skyeye-cdrom/SkyEye/testsuit/skyeye-binary-testutils-
1.0.7/ep7312/ep7312_with_framebuffer_touchscreen_minigui/skyeye.cof .
#skyeye vmlinux
(SkyEye)target sim
(SkyEye)load
(SkyEye)run
(ARMLinux内核开始启动... ...)
/>/bin/same/same
或
/>/bin/housekeeper/housekeeper
和第0步不同的是,这一次用到的skyeye和vmlinux都是自己编译的。
注意:skyeye-binary-testutils-1.0.7.1.tar.bz2软件包中带了许多已经编译好的各种操作系统内核,如果
相关目录下的skyeye.conf文件中有boot=yes的选项,则这个目录下的skyeye模拟运行步骤为:
#skyeye
(SkyEye)target sim
(SkyEye)run
(各种内核开始启动... ...)
安装过程出现的问题及解决方法:
问题1:
tail: cannot open `+43‘ for reading: No such file or directory
解决方法: 在Linux下(注:不要在Win下) 重新下载一个arm-elf-tools-20030314.sh
建议用VIM(注:不要在Win下)
将第39行的代码:
tail +${SKIP} ${SCRIPT} | gunzip | tar xvf -
改成如下:
tail -n +${SKIP} ${SCRIPT} | gunzip | tar xvf -
问题2:
gunzip: stdin: unexpected end of file
解决方法: 要在arm-elf-tools-20030314.sh 最后一行加入一空行(注,不要在Win下修改,建议用VIM)