设为首页 收藏本站
查看: 1550|回复: 0

[经验分享] 基于PC搭建CoretexA15 KVM环境(1)——host环境搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-10 12:21:05 | 显示全部楼层 |阅读模式
  我好像每年都要倒腾一次这种东西。由于需要学习KVM在ARM上的虚拟化技术,缺乏必要的硬件支持,所以必须在PC上模拟ARM平台。。大约是安装若干个操作系统,然后模拟下看性能。。。
  参考http://www.virtualopensystems.com/media/kvm-resources/kvm-arm-guide.pdf进行配置。
  平台搭建,是个极其需要耐心的活儿==|
  
1、安装所需要的工具链
DSC0000.png





2、安装FastModels。直接去ARM官方网站下载。解压之后运行./setup.bin即可。注意需要注册获得license,是个evaluate的,没有破解的方法。。。






3、运行sgcanvas
之前要首先进行环境变量的设置:
首先是liscense.dat的位置

exportARMLMD_LICENSE_FILE=/home/himiko/IBM/ARM/license.dat

路径写你自己的license.dat的路径
其次是FastModelsTools_7.1的安装地址

exportMAXCORE_HOME=/home/himiko/ARM/FastModelsTools_7.1

同样的,写你自己的FastModelsTools_7.1的安装路径~
然后是Protfolio那个地址的设置

exportPVLIB_HOME=/home/himiko/ARM/FastModelsPortfolio_7.1



最后终于可以运行了



建议同志们直接将setup_all.sh添加到~/.bashrc的最后一句中。如下
gedit ~/.bashrc
source~/ARM/FastModelsTools_7.1/etc/setup_all.sh
DSC0001.png





4、按照那个Guide里面的指示,选取已有的Examples进行编译~
/home/himiko/ARM/FastModelsPortfolio_7.1/examples/RTSM_VE/Build_Cortex-A15x1/里面那个唯一的项目加载到FastModels,加载完成的结果是这个样子的(至少我加载出来是这样。。。)
DSC0002.png





5Project->BuildSystem
显然出现了GCC错误的信息。设置GCCGCC,不要指定版本
DSC0003.png


设置完毕之后再Project->BuildSystem
然后传说中的Arm-CoretexA15就模拟编译好了,接下来就是装Linux的任务了



6、首先安装arm上的gcc4.6之类的crosscompiler环境


sudo apt-getinstall gcc-4.6-arm-linux-gnueabi binutils-arm-linux-gnueabilibc6-armel-cross linux-libc-dev-armel-cross libncurses5-devgcc-arm-linux-gnueabi libc6-dev-armel-cross cpp-arm-linux-gnueabi


  
然后等他装就好了,看你网速了



7、下载kvm映像


wgethttp://www.virtualopensystems.com/media/kvm-resources/uImage
  
8、下载git然后需要gitKVM代码
下载git


sudo apt-getinstall git
git clonegit://github.com/virtualopensystems/linux-kvm-arm.git


  
此步时间相当长,做好心里准备……


cd ~/linux-kvm-arm
  
9、下载uboot制作image


sudo apt-getinstall uboot-tools
  
10、设置ARCHCROSS_COMPILE变量。文档中的意思是直接使用已经有的那个
先装curl


sudo apt-getinstall curl
  
然后获得配置文件


curlhttp://www.virtualsystems.com/media/kvmresources/kernel-config>.config
  
下面生成配置文件


CROSS_COMPILE=arm-linux-gnueabi-ARCH=arm make menuconfig
  
执行完毕后如下:
我打开了networkingvirtualization~反正要是不够的话下次再进来配置好了~



最后编译hostkernel(等~)。好吧,没多久就会有问题的。。。



百度一下,我就知道。。。。直接执行这个命令,因为缺少了mkimage工具


sudo apt-get install uboot-mkimage
  
然后再编译吧


CROSS_COMPILE=arm-linux-gnueabi-ARCH=arm make uImage
  
很快就结束了。。。



11、然后抓FDT

git clonegit://github.com/virtualopensystems/arm-dts.git
./scripts/dtc/dtc-O dtb -o host-a15.dtb./arm-dts/fast_models/rtsm_ve-cortex_a15x1.dts
./scripts/dtc/dtc-O dtb -o guest-a15.dtb./arm-dts/versatile_express/vexpress-v2f-2xv6-ca15x2.dts
  
12、抓新的bootloader

git clonegit://github.com/virtualopensystems/boot-wrapper.git
clean之后make
make clean
CROSSS_COMPILE=arm-linux-gnueabi-ARCH=arm make
  
  13、这个bootwrapper是后面启动host时候需要使用的
  

make clean
CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm make


会生成linux-semi-system.axf文件,是semihost启动方式下需要的  
  14、通过nfs server方式搭建host的root文件
  

sudo apt-get install nfs-kernel-server nfs-common

再/etc/exports最后一行添加  
  

/srv/nfsroot 192.168.0.0/255.255.0.0(rw,sync,no_root_squash,no_subtree_check,insecure)
每次修改完成这个文件之后必须重新启动nfs server  
  

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


15、准备linux的文件系统  
  

wget http://www.virtualopensystems.com/media/kvm-resources/fs-alip-armel.cramfs


所谓的cramfs是一个ram的file system,是一个简单的文件系统,linux在启动的时候会首先将其加载到内存当中。Android的文件系统格式是yaffs2,其实这个和我们所熟知的ext3/4/2没有本质上的区别~~  
  

sudo mount -o loop -t cramfs fs-alip-armel.cramfs /mnt
sudo cp -a /mnt/* /srv/nfsroot/
sudo umount /mnt


解压出来之后就可以清楚的看出来实际上就是一个很小的文件系统,只包括必要的命令。
  
  16、编写fast models的启动参数。cd到刚刚编译出来的Cortex-a15下

cd ~/ARM/FastModelsPortfolio_7.1/examples/RTSM_VE/Build_Cortex-A15x1/Linux-Release-GCC-4.1
gedit params

  在params文件中写以下参数
  

motherboard.smsc_91c111.enabled=1
motherboard.hostbridge.userNetworking=1
cluster.cpu0.semihosting-cmd_line="--kernel /home/himiko/uImage --dtb /home/himiko/linux-kvm-arm/host-a15.dtb -- earlyprintk console=ttyAMA0 mem=2048M root=/dev/nfs nfsroot=192.168.63.117:/srv/nfsroot/ rw ip=dhcp"

保持再当前的目录,执行命令  
  

model_shell cadi_system_Linux-Release-GCC-4.1.so -f params ~/boot-wrapper/linux-system-semi.axf

   DSC0004.png


  注意,路径需要根据自己的实际情况进行修改!!!!
  

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-125077-1-1.html 上篇帖子: QEMU KVM 提纲 下篇帖子: 实现将VirtualBox 虚拟机转换为KVM虚拟机的步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表