( امیدوارم از عنوان نترسیده باشین ! به جان خودم از اول تا آخر این قسمت فقط کپی پیسته ! )
با فرض وجود یک نسخه ی تازه نصب شده از توزیع fedora این دستورات را به ترتیب در کنسول اجرا کنید :
( به عنوان نکته یاد آوری کنم هرجا توی این آموزش # بود یعنی من دارم اون دستور رو توی terminal اجرا می کنم )
کد:
# sudo dnf update
# sudo dnf groupinstall "Development Tools"
# sudo dnf install python-pefile python-devel redhat-rpm-config libffi-devel python-libxml2 openssl-devel ssdeep-devel ssdeep-libs bridge-utils intltool perl-XML-XPath supermin python-ipaddr libvirt-python iasl
# sudo dnf builddep qemu-kvm
# sudo dnf builddep libvirt
دستورات بالا تمام نیازمندی های لازم برای کار ما رو نصب می کنند . پس از اجرای تمامی دستورات بالا و تکمیل نصب ، حتما سیستم را ری استارت کنید .
برای جلوگیری از مشکلات احتمالی در ارتباط با دسترسی ، ما selinux رو غیرفعال می کنیم. دستور زیر رو در ترمینال وارد کنید :
کد:
# sudo gedit /etc/selinux/config
این خط رو بیابید :
مقدار enforcing رو تغییر بدین به disabled . سپس سیستم رو ری استارت کنید .
------------------------------------
خوب حالا ما می خوایم سورس کد هارو دانلود و از حالت فشرده خارج کنیم . من دوست داشتم یک پوشه در مسیر اصلی ~ به نام Devl بسازم و تمامی فایل های دانلودی که قراره باهاش کار کنم رو اونجا بریزم . شما اگر دوست داشتین نام این پوشه رو در دستورات تغییر بدین تاثیری نداره ( واقعا نمی دونم چرا گذاشتم Devl این همه اسم ! )
کد:
# cd ~
# mkdir Devl
# cd Devl
# wget http://wiki.qemu-project.org/download/qemu-2.6.0-rc0.tar.bz2
# wget https://virt-manager.org/download/sources/virt-manager/virt-manager-1.3.2.tar.gz
# wget https://libvirt.org/sources/libvirt-1.3.3-rc1.tar.gz
# wget https://code.coreboot.org/p/seabios/downloads/get/seabios-1.9.1.tar.gz
دستورات بالا سورس کد هارو دانلود می کنند . حالا باید از حالت فشرده خارجشون کنیم :
کد:
# tar -xvjf qemu-2.6.0-rc0.tar.bz2
# tar -xvzf libvirt-1.3.3-rc1.tar.gz
# tar -xvzf seabios-1.9.1.tar.gz
# tar -xvzf virt-manager-1.3.2.tar.gz
حال باید بریم سراغ کامپایلشون. وارد پوشه ی qemu میشیم ( اگر دوست ندارین گیج نشین ، تا بهتون نگفتم ترمینال رو نبندین فقط کپی پیست کنید ! ) :
کامپایل qemu
خوب یادتون هست که ما هاردمون و درایو نوریمون اسم qemu جلوشون بود . حال باید در خطوط بگردین ببینیم کجا هستن :
دستور:
کد:
# grep -nr "HARDDISK" hw/*
# grep -nr "QEMU DVD" hw/*
من دستورات بالا رو توی سیستم خودم اجرا کردم نتیجش این شد:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
همونطور که می بینین نوشته کدوم فایل و کدوم خط این کد ها هستند . خوب حالا باید این خطوط رو ویرایش کنیم . چون می دونم حوصله گشتن ندارین ، دستورات میانبر زیر رو بزنین:
( فقط یک توضیح مهم : من هارد جدیدی که قراره به سیستم معرفی کنیم ATA ST1000LM024 HN-M نوشتم و سازنده شرکت درایو نوری هم LG گذاشتم . شما اگر دوست داشتین این خطوط رو ویرایش کنید ، اگر ویرایش نکردین فقط کپی پیست کردین هم اشکالی ایجاد نمی کنه
همچنین دو مقدار MBSS و MBSA هم اختیاری هستند ، این دو مقدار رو به دلخواه خودتون ویرایش کنید فقط نپرسید چرا این اسمو انتخاب کردم ! خودمم نمی دونم)
کد:
# sed -i 's/QEMU HARDDISK/ATA ST1000LM024 HN-M/g' hw/ide/core.c
# sed -i 's/QEMU HARDDISK/ATA ST1000LM024 HN-M/g' hw/scsi/scsi-disk.c
# sed -i 's/QEMU DVD-ROM/DVD-ROM/g' hw/ide/core.c
# sed -i 's/QEMU DVD-ROM/DVD-ROM/g' hw/ide/atapi.c
# sed -i 's/s->vendor = g_strdup("QEMU");/s->vendor = g_strdup("LG");/g' hw/scsi/scsi-disk.c
# sed -i 's/QEMU CD-ROM/CD-ROM/g' hw/scsi/scsi-disk.c
# sed -i 's/padstr8(buf + 8, 8, "QEMU");/padstr8(buf + 8, 8, "LG");/g' hw/ide/atapi.c
# sed -i 's/BXPC/MBSA/g' include/hw/acpi/aml-build.h
# sed -i 's/BOHS/MBSS/g' include/hw/acpi/aml-build.h
خوب حالا اگر من مجددا دستورات
کد:
# grep -nr "HARDDISK" hw/*
# grep -nr "QEMU DVD" hw/*
رو بزنم دیگه نباید خروجی ببینم . اگر تا اینجا درست پیش رفتین بریم مرحله بعد . بازم دستور واسه کپی پیست :
کد:
# ./configure --prefix=/usr --sysconfdir=/etc --docdir=/usr/share/doc/qemu --target-list=x86_64-softmmu
# make
# sudo make install
این مرحله کمی زمان می بره صبور باشید . در آخر اگر اروری دریافت نکردین و کامپایل با موفقیت انجام شد ، شما دستور زیر رو توی ترمینال وارد می کنین :
کد:
# sudo ln -s /usr/bin/qemu-system-x86_64 /usr/libexec/qemu-kvm
خوب هنوز ترمینال رو نبندین ! کلی کد واسه کپی پیست داریم !
باید الان libvirt رو کامپایل کنیم :
کامپایل libvirt
کد:
# cd ../
# cd libvirt-1.3.3
# ./autogen.sh --system --prefix=/usr --sysconfdir=/etc
# make
# make check
# sudo make install
اینم زیاد زمان می بره . پس از اینکه فرآیند کامپایل تکمیل شد دستور زیر رو برای راه اندازی libvirt daemon بزنین
کد:
# sudo systemctl start libvirtd
# sudo systemctl start virtlogd
و در ادامه :
کد:
# sudo systemctl status libvirtd
باید خروجی مشابه عکس من بده که تایید کنه libvirtd به درستی راه اندازی شده :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اگر بدون مشکل راه اندازی شده بود میریم سراغ ادامه ی کپی پیست ( و همچنان شما نباید اون پنجره ترمینال رو بسته باشین ! )
کامپایل virt-manager
کد:
# cd ../
# cd virt-manager-1.3.2
# sudo python setup.py install
# cd ../
اگر اینم بدون مشکل طی بشه می مونه فایل آخر برای کامپایل ، که برای کامپایلش طبیعتا باید کپی پیست کنید :
کامپایل seabios
کد:
# cd seabios-1.9.1
# gedit src/config.h
خوب یک مقدار ویرایش نیاز هستش . خطوطی که نیاز به ویرایش دارند رو توی عکس زیر می تونین ببینین :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مقادیر bochs , BOHSCPU , BOCHS و BXPC رو به دلخواه ویرایش کنید . سپس فایل رو ذخیره کنید .
در آخر دستور زیر رو در ترمینال می زنیم تا کارمون تموم بشه :
بهتون یه فایل با نام bios.bin در پوشه ی out میده . این فایل رو بعدا نیاز داریم حتما در مسیر مناسبی نگه داریش کنید .
تا اینجا کار کامپایل هامون تموم شد !