Changes

Jump to: navigation, search

Pidora 2014 qemu

2,965 bytes added, 13:47, 4 June 2014
Pidora QEMU
= Pidora QEMU =
{{Admon/important| Security Warning! |This page is a work in progress. The page is not formatted correctly and Please read the information instructions carefully, there may be errors or may not lead to breaking your computer. Donwrong information, be careful if you don't use this page till it is complete, or you really know what you are doing.}}
This page is here to assist people who would like to run Pidora 2014 in a QEMU environment. This tutorial has been adapted from this website: http://xecdesign.com/compiling-qemu/
== Pidora QEMU Compose ==
Using pidora Pidora in a qemu QEMU environment has some important restrictions to note. The model that is used to emulate pidora Pidora has a hard coded restriction on how much ram RAM it can use(256mb256 MB). However the The programs that we use(livemedia-creator) for composing new images require much more RAM, which makes the Pidora QEMU Environment a bad place to try and create images. (See compose on Fedora Arm QEMU)
= Pidora QEMU Setup =
The two stages to setting up Pidora QEMU involve, getting all the files (kernel, image) and installing the QEMU environment.
== Getting The Files ==
<pre>
# Choose the directory to put both the image and the compiled qemu QEMU software
pidora_dir=/data/pidora-qemu
cd ${pidora_dir}
# Download the qemu QEMU kernel
wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu
# Download the pidora Pidora image
wget http://pidora.ca/pidora/releases/20/images/Pidora-2014-R1.zip
unzip Pidora-2014-R1.zip
</pre> == Getting QEMU ==  There are multiple ways to get qemu-system-arm. You can compile a new version with a few select flags, or you can try installing the version that your distribution has already compiled. It is possible that the QEMU packaged in your distro was not compiled with the proper flags, however it seems to work on the latest Fedora 20. === Package Install ===This method should probably be good enough to run Pidora in Qemu. I have only tested on Fedora 20, and it works. <pre>yum install qemu-system-arm</pre> === Manual Compile ===If the above package does not allow you to boot Pidora through QEMU, you can try the manual instructions below. This will allow you to use the QEMU software without actually installing it on your system (I don't like installing source files that are not managed by yum). The manual compile will require the dependencies for the program to already be installed. Below is a list of packages that might be required (I think only the devel ones are needed?).<pre># Install Dependencies (not sure if the non-devel packages are required?)yum install gcc-++ zlib zlib-devel SDL SDL-devel pixman pixman-devel libfdt-devel libtool glib2 glib2-devel</pre> Compile qemu-system-arm: <pre># Choose the directory for the compiled QEMU softwarepidora_dir=/data/pidora-qemu # Make a new directory for qemu QEMU and enter it
mkdir ${pidora_dir}/raspidev/
cd ${pidora_dir/raspidev/
</pre>
 
There are multiple ways to get qemu-system-arm. You can compile a new version with a few select flags, or you can try installing the version that your distribution has already compiled.
git clone git://git.qemu-project.org/qemu.git
cd ${pidora_dir}/raspidev/qemu/
</pre>
# Configure the options for raspberry pi
./configure --target-list="arm-softmmu arm-linux-user" --enable-sdl --prefix=/usr
# Finally, compile it
make
</pre>
= Boot Pidora in QEMU =
Make sure you run the steps in "Before Booting" and "The First Boot" before you start Pidora for the first time to avoid issues.
== Before Booting =={{Admon/important| Warning! | Running the command "dd" can be dangerous and could result in data loss if not used properly.}}Make sure that you add some more space to the image file. Depending on what you want to do with the Pidora image you may want more space. Replace the value in the variable size, with the number of GB to increase the size of the image with.<pre># Choose the directory for the compiled QEMU softwarepidora_dir=/data/pidora------------------------------qemu
This tutorial is basically just using the tutorial found on this site(http://xecdesign.com/compiling-qemu/), with some added steps specifically for pidora.# Size = GBsize=4
This setup is done completely on fedora 20. If you are using ubuntu/debian it might be easier to use the site above.
This setup avoids the installation of the newly compiled qemu, so that your system stays clean, and keeps your system and any already install qemu instances managed by yumdd if=/dev/zero bs=1G count=${size} >> ${pidora_dir}/Pidora-2014-R1.img</pre>
Some == The First Boot ==At this step we need to boot Pidora, start first boot, and allow it to automatically resize the partition inside the image to the right size. This will only work if you already increase the size of the commands may need rootimage in the previous steps.
<pre># use whatever Choose the directory you'd likefor the compiled QEMU software
pidora_dir=/data/pidora-qemu
mkdir ${pidora_dir}# This is the command to boot the Pidora Image using the compiled version of QEMUcd ${pidora_dir}wget http:/raspidev/xecdesign.comqemu/downloadsarm-softmmu/linuxqemu-system-arm -qemukernel ${pidora_dir}/kernel-qemuwget http:-cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/pidora.ca/pidora/releases/20/imagessda2 panic=1 rootfstype=ext4 rw" -hda ${pidora_dir}/Pidora-2014-R1.zipimg</pre> == Pidora Graphical Boot ==Run the commands below.
unzip Pidora-2014-R1.zipmkdir ${pidora_dir}/raspidev/cd ${pidora_dir/raspidev/git clone git://git.qemu-project.org/qemu.gitcd ${pidora_dir}/raspidev/qemu/OR
# Before you can continue, you will probably need Copy the commands below to install a bunch of build depsfile called: start_pidora_graphical# I will show all the packages I needed to install for And execute the configure/make to finish successfully# Notefile: I do NOT make installbash start_pidora_graphical
<pre>#!/bin/bash# I think you might only need to install Choose the devel packages in directory for the below command.compiled QEMU softwareyum install gcc-++ zlib zlib-devel SDL SDL-devel pixman pixman-devel libfdt-devel libtool glib2 glib2pidora_dir=/data/pidora-develqemu
# Hopefully now, you have all This is the dependencies on command to boot the Pidora Image using the compiled version of QEMU${pidora_dir}/raspidev/qemu/arm-softmmu/qemu-system-arm -kernel ${pidora_dir}/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda ${pidora_dir}/Pidora-2014-R1.img</pre>
./configure --target-list="arm-softmmu arm-linux= Pidora Multi-user" --enable-sdl --prefixBoot ==/usrRun the commands below
makeOR
# The newly compiled qemu program should now have compiled successfullyCopy the commands below to a file called: start_pidora_multi_userAnd execute the file: bash start_pidora_multi_user
<pre># The binary can be found in: ${!/bin/bash# Choose the directory for the compiled QEMU softwarepidora_dir}/raspidev=/qemudata/armpidora-softmmu/qemu-system-arm
# As per XEC's instructions I did This is the following(though I used vi)command to boot the Pidora Image using the compiled version of QEMU${pidora_dir}/raspidev/qemu/arm-softmmu/qemu-system-arm -kernel ${pidora_dir}/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw 3" -hda ${pidora_dir}/Pidora-2014-R1.img</pre>
${pidora_dir}/raspidev/qemu/arm-softmmu/qemu-system-armqemu-system-arm -kernel ${pidora_dir}/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstypeBoot with SSH Enabled =ext4 rw init=/bin/bash" There is a option you can specify in the boot command that will allow a port to be forwarded from a localhost to the port on the pidora machine. For example, to connect to the raspberry pi qemu environment with ssh you would add this line:<pre>-hda ${pidora_dir}redir tcp:2222::22</Pidora-2014-R1.imgpre>
# Wait for This will redirect all traffic from localhost on your main machine through the port 2222 to the raspberry pi qemu machine port 22. Make sure ssh is running on the new qemu instance to machine:<pre>systemctl enable sshd # To make sshd start at boot for the first time, then do the below instructionsnano /etcsystemctl start sshd # To start sshd</ld.so.preloadpre>
# Put a # in front of So you can connect with ssh by running the first line so that it looks like thisfollowing command:<pre>ssh -p 2222 root@localhost #Connect to raspberry pi qemu over ssh</usr/lib/arm-linux-gnueabihf/libcofi_rpi.sopre>
Press ctrl=== Multi-x then y then enter User Boot With SSH ===This is an example of the above multi user boot with the added redirect option to save and exitenable ssh.(Optional) Use steps 2 to 4 above to create a file <pre>#!/etcbin/udevbash# Choose the directory for the compiled QEMU softwarepidora_dir=/rules.ddata/90pidora-qemu.rules with the following content:KERNEL=="sda", SYMLINK+="mmcblk0"KERNEL=="sda?", SYMLINK+="mmcblk0p%n"KERNEL=="sda2", SYMLINK+="root"
# Now just close This is the window or shut it downcommand to boot the Pidora Image using the compiled version of QEMU${pidora_dir}/raspidev/qemu/arm-softmmu/qemu-system-arm -redir tcp:2222::22 -kernel ${pidora_dir}/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw 3" -hda ${pidora_dir}/Pidora-2014-R1.img</pre>
=== Graphical Boot With SSH ===
This is an example of the above graphical boot with the added redirect option to enable ssh.
<pre>
#!/bin/bash
# Choose the directory for the compiled QEMU software
pidora_dir=/data/pidora-qemu
# At this point it's probably a good idea This is the command to increase boot the Pidora Image using the size compiled version of the QEMU${pidora_dir}/raspidev/qemu/arm-softmmu/qemu-system-arm -redir tcp:2222::22 -kernel ${pidora_dir}/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda ${pidora_dir}/Pidora-2014-R1.img file. If you don't it might cause some errors when you start first boot and it tries to resize your partitions and filesystem.</pre>
# WARNING: This next command = Issues =Some issues can be very dangerous, use at your own risk! Change the count=# number to the number of GB you would like to add to the size of occur during the imageabove processes. The command Some fixes are listed below should increase the size by 4 GB.# You may be fine with 1GB more or maybe, if you are going to try composing your own images, much much more!dd if=/dev/zero bs=1G count=4 >> ${pidora_dir}/Pidora-2014-R1.img
# == Manually Resize Pidora =={{Admon/important| Warning! | Please make sure you follow all instructions properly, do NOT run fdisk on your main system. fdisk should now only be able to run this command to start on the pidora instance and get to first boot. This is the same command above, except without the init=/bin/bash part.${pidora_dir}/raspidev/qemu/arm-softmmu/qemu-system-armqemu-, otherwise you may break your system-arm -kernel ${pidora_dir.}/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda ${pidora_dir}/Pidora-2014-R1.img
If for some reason the Pidora Partitions did not resize after running first boot and you did run the dd command above to increase the size of the image, then we will manually resize the file system here.
# PROBLEMS: When I wrote this tutorial I accidentally ran first boot before I resized my image file, which cause a bunch of problems. I shut down the qemu instance after running first boot, and rebooted it First start up Pidora QEMU in multiMulti-user mode. This is done by adding a 3 to :<pre># Choose the arguments like in directory for the below command.compiled QEMU software${pidora_dir}=/raspidevdata/qemu/armpidora-softmmu/qemu-system-armqemu-system-arm -kernel ${pidora_dir}/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw 3" -hda ${pidora_dir}/Pidora-2014-R1.img
#WARNING: The following This is done on the qemu machine. This only needs command to be done if you need to manually resize boot the partitions on the image because you forgot to increase Pidora Image using the compiled version of QEMU${pidora_dir}/raspidev/qemu/arm-softmmu/qemu-system-arm -kernel ${pidora_dir}/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw 3" -hda ${pidora_dir}/Pidora-2014-R1.img file size before you started first boot.</pre>
# Assuming that you ran the dd command above Log in to increase root on Pidora, the images size, default root password should be "raspberrypi" if it was not changed. Make sure you now need to manually modify are running the partitions size next commands on the pidora imageQEMU Pidora environment.
<pre># On the pidora qemu instance that is booted in multi user modestart fdisk program
fdisk /dev/sda
># list all partitions, note the start location of partition 2p# delete a partitiond># select partition 22># create a new partitionn# select partition 22# select start location, default should be the start location from above<press enter for default>(# select end location<press enter for default)># write/save the changeswreboot<pre>
>(press enter for default)>(press enter for default) >w# Shutdown After the pidora qemu machine # Start the pidora qemu instance again and Pidora restarts, run the following command when it bootsto finish the resize setup:<pre>
resize2fs /dev/sda2
</pre>
# Now the Pidora should now have QEMU environment has been successfully extended to the proper root filesystem max sizeof the image file.
198
edits

Navigation menu