Μια εικονική μηχανή είναι ο καλύτερος τρόπος για να δοκιμάσουμε ένα πλήρες λειτουργικό σύστημα μέσα στο δικό μας λειτουργικό. Αν όμως, θέλουμε να δοκιμάσουμε το Raspbian, το VirtualBox ή το VMware δεν μπορούν να εξομοιώσουν έναν ARM επεξεργαστή. Ας δημιουργήσουμε μια Εξομοίωση Raspberry Pi στα Windows με το QEMU.
Προτάσεις συνεργασίας
Τα νέα άρθρα του PCsteps
Γίνε VIP μέλος στο PCSteps
–Read this post in English, on Pcsteps.com—
Μια Εξομοίωση Raspberry Pi είναι ένας εξαιρετικός τρόπος για να δοκιμάσουμε το περιβάλλον του Raspbian, χωρίς πρώτα να αγοράσουμε ένα Raspberry Pi ή ένα Raspberry Pi 2.
Όμως, ακόμα και αν ήδη έχουμε στην κατοχή μας την συσκευή, με την εξομοίωση Raspberry Pi μπορούμε να δοκιμάσουμε νέο λογισμικό στο Raspbian, ή συγκεκριμένες ρυθμίσεις, χωρίς κανένα ρίσκο.
Εγκατάσταση QEMU στα Windows
Αρχικά, χρειαζόμαστε την έκδοση του QEMU (Quick EMUlator) για Windows. Επιλέγουμε τα κατάλληλα binaries για 32-bit ή 64-bit Windows.
Κατεβάζουμε τον QEMU installer στην έκδοση 20150424. Η τελευταία έκδοση αυτή τη στιγμή, 20150503, δεν πρόκειται να λειτουργήσει.
Αφού κατέβει ο installer, δεν τρέχουμε την εφαρμογή. Χρησιμοποιούμε ένα πρόγραμμα αποσυμπίεσης, όπως το 7-zip ή το WinRAR, για να εξάγουμε όλα τα αρχεία που αυτός περιέχει.
Ας πούμε ότι αποσυμπιέζουμε τα αρχεία σε έναν φάκελο QEMU στην Επιφάνεια Εργασίας.
Κατέβασμα Linux Kernel και του τελευταίου Raspbian
Το επόμενο πράγμα που χρειαζόμαστε για την Εξομοίωση Raspberry Pi είναι να κατεβάσουμε έναν Linux Kernel χτισμένο για ARM και την τελευταία έκδοση του Raspbian operating system, αυτή τη στιγμή 2015-02-16.
Μετακινούμε τον Linux Kernel στον φάκελο QEMU, και επίσης αποσυμπιέζουμε τα περιεχόμενα του Raspbian .zip στο ίδιο μέρος.
Μέσα στον φάκελο QEMU, είναι σημαντικό να παρατηρήσουμε το ακριβές όνομα του Image file.
Αλλάζοντας το μέγεθος του Raspbian image
Το image αρχείο του Raspbian που κατεβάσαμε θα περιέχει την πλήρη εξομοίωση Raspberry Pi, και όποια επιπλέον προγράμματα εγκαταστήσουμε.
Οπότε, είναι καλή ιδέα να αλλάξουμε το μέγεθος της εικόνας και να της δώσουμε λίγο περισσότερο χώρο.
Κάνουμε μια αναζήτηση στα Windows για το cmd και ανοίγουμε τη γραμμή εντολών.
Απ' την γραμμή εντολών, πλοηγούμαστε στον φάκελο QEMU. Εάν τον δημιουργήσαμε στην Επιφάνεια Εργασίας, αρκεί να γράψουμε:
cd %userprofile%\Desktop\QEMU
Για να αλλάξουμε το μέγεθος του Raspbian image, τρέχουμε την εντολή:
qemu-img.exe resize 2015-02-16-raspbian-wheezy.img +10G
Παρατηρήστε ότι πρέπει να χρησιμοποιήσουμε το ακριβές όνομα της εικόνας, με την κατάληξη “.img”. Η παράμετρος +10G, θα προσθέσει 10 Gigabytes στην εικόνα, τα οποία είναι παραπάνω από αρκετά.
Τρέχοντας την εντολή θα δούμε μια προειδοποίηση, αλλά αν πάρουμε το μήνυμα “Image resized”, όλα πήγαν καλά.
Δημιουργία startup batch file
Το QEMU δεν έχει κάποιο sexy γραφικό περιβάλλον όπως το VirtualBox και το VMware. Πρέπει να γράφουμε μεγάλες εντολές για να το ξεκινήσουμε. Και θα είναι ευκολότερο αν αντί γι' αυτό δημιουργήσουμε ένα batch file.
Ανοίγουμε το σημειωματάριο, η οποιονδήποτε άλλο συντάκτη κειμένου απλού κειμένου (όχι το Microsoft Word, δηλαδή)…
…και αντιγράφουμε την παρακάτω εντολή. Αγνοήστε το αναδιπλούμενο κείμενο, είναι ολόκληρη σε μία γραμμή.
qemu-system-arm.exe -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash" -hda 2015-02-16-raspbian-wheezy.img
Οι πιο παρατηρητικοί από εσάς ίσως προσέξατε πως η εντολή αναφέρει -m 256, που θα ξεκινήσει την εξομοίωση με 256MB RAM.
Δυστυχώς δεν μπορούμε να αυξήσουμε αυτή την τιμή, όση RAM κι αν έχει το σύστημά μας, διότι η εξομοίωση Raspberry Pi δεν θα ξεκινήσει καθόλου. Πρόκειται για ένα bug στην εξομοίωση του ARM από το QEMU.
Βεβαιωνόμαστε οπωσδήποτε ότι το τελευταίο μέρος της εντολής είναι ολόιδιο με το όνομα του Raspbian image.
Έπειτα, αποθηκεύουμε το αρχείο ως .bat. Βεβαιωνόμαστε ότι το αποθηκεύσαμε μέσα στον φάκελο QEMU, με κατάληξη .bat και ότι διαλέξαμε την επιλογή “All files”.
Αν το κάναμε σωστά, θα έχουμε ένα Windows Batch File μέσα στον QEMU.
Κάνουμε διπλό κλικ σε αυτό το αρχείο για να ξεκινήσει η εξομοίωση Raspberry Pi.
Διαμορφώνοντας την εξομοίωση Raspberry Pi για το QEMU
Ο εξομοιωτής θα ανοίξει μια γραμμή εντολών.
Εκεί πέρα γράφουμε:
nano /etc/ld.so.preload
Αυτή είναι μια γραμμή εντολών Linux, και ως τέτοια, είναι case-sensitive. Το Nano ή NANO ή nAnO δεν θα δουλέψει.
Η παραπάνω εντολή θα ανοίξει το αρχείο ld.so.preload στον συντάκτη nano. Χρειάζεται απλά να προσθέσουμε μια δίαισε “#”στην αρχή της γραμμής.
Έπειτα κλείνουμε τον nano. Πατάμε ctrl+X…
…και μετά y για “Yes”, για να αποθηκεύσουμε τις αλλαγές, και Enter για να επανεγράψουμε το αρχείο.
Αν το κάναμε σωστά, θα πάρουμε το μήνυμα “Wrote 1 line”.
Ύστερα, δημιουργούμε ένα καινούριο αρχείο, με την εντολή:
nano /etc/udev/rules.d/90-qemu.rules
Μέσα σ' αυτό, γράφουμε τις ακόλουθες τρεις γραμμές ακριβώς όπως είναι:
KERNEL=="sda", SYMLINK+="mmcblk0" KERNEL=="sda?", SYMLINK+="mmcblk0p%n" KERNEL=="sda2", SYMLINK+="root"
Βγαίνουμε με ctrl+X και βεβαιωνόμαστε ότι αποθηκεύσαμε το αρχείο (παίρνοντας το μήνυμα “Wrote 3 lines”).
Έπειτα βγαίνουμε και απ' την εξομοίωση Raspberry Pi πατώντας “exit”.
Εξομοίωση Raspberry Pi: Η πρώτη εκτέλεση
Τώρα, είμαστε σχεδόν έτοιμοι για να τρέξουμε την εξομοίωση Raspberry Pi για Windows.
Αρχικά, πρέπει να επεξεργαστούμε το batch file που δημιουργήσαμε νωρίτερα…
Η μόνη αλλαγή που θα κάνουμε είναι να διαγράψουμε την επιλογή init=bin/bash κοντά στο τέλος της εντολής, συμπεριλαμβανομένου του κενού διαστήματος που προηγείται. Προσοχή να μη διαγράψουμε και τα εισαγωγικά.
Μετά απ' αυτό, αποθηκεύουμε το batch file, και κάνουμε διπλό κλικ για να το ανοίξουμε.
Θα πάρει μια στιγμή για να ανοίξει και θα μας δώσει κάποια errors. Αυτό είναι αναμενόμενο όμως.
Πρέπει να δημιουργήσουμε ξανά το αρχείο που φτιάξαμε προηγουμένως, δίνοντας:
nano /etc/udev/rules.d/90-qemu.rules
Ξανά, γράφουμε:
KERNEL=="sda", SYMLINK+="mmcblk0" KERNEL=="sda?", SYMLINK+="mmcblk0p%n" KERNEL=="sda2", SYMLINK+="root"
Αυτή τη φορά όμως, γράφουμε τα εισαγωγικά ” με shift+2, επειδή η Εξομοίωση Raspberry Pi έχει αυτή τη στιγμή διάταξη πληκτρολογίου English UK.
Έπειτα, κλείνουμε ξανά το nano.
Αυτή τη φορά η εντολή “exit” θα οδηγήσει σε επανεκκίνηση, που θα μας φέρει στο Raspberry Pi Software Configuration Tool. Πατάμε “Tab” στο πληκτρολόγιο για να διαλέξουμε “Finish”.
Σαν χρήστης pi@raspberrypi, δίνουμε την εντολή:
sudo reboot
Αυτή η εντολή θα κλείσει την εξομοίωση. Την ξεκινάμε ξανά, κάνοντας διπλό κλικ στο batch file.
Αυτή τη φορά, αφού εκκινήσει, το σύστημα θα μας ζητήσει να συνδεθούμε.
Τα προεπιλεγμένα διαπιστευτήρια είναι:
username: pi password: raspberry
Θυμηθείτε, όταν γράφουμε τον κωδικό μας στο Linux, τίποτα δεν εμφανίζεται από προεπιλογή, ούτε αστεράκια, ούτε τελείες, ούτε τίποτα.
Αφού συνδεθούμε, δίνουμε δύο διαδοχικές εντολές:
sudo ln -snf mmcblk0p2 /dev/root sudo raspi-config
Αυτό θα μας πάει πίσω στο configuration tool. Διαλέξουμε την πρώτη επιλογή, “Expand Filesystem”…
Το configuration tool θα κλείσει στιγμιαία, και σε λίγα δευτερόλεπτα θα ξεκινήσει την επέκταση του root partition, για να καλύψει ολόκληρα τα 10GB στην επόμενη επανεκκίνηση.
Ξανά, πατάμε tab για να επιλέξουμε “Finish”…
…και αυτή τη φορά, επιλέγουμε να κάνουμε επανεκκίνηση.
Η εξομοίωση Raspberry Pi θα κλείσει ξανά. Την ξεκινάμε πάλι με το “Start” batch.
Αυτή τη φορά, η εκκίνηση θα πάρει περισσότερο. Θα μοιάζει κολλημένη στο παρακάτω μήνυμα.
Αυτή είναι η εντολή resize, και θα πάρει κάποια ώρα. Αφήστε το όπως είναι, και σε μερικά λεπτά θα συνεχίσει την εκκίνηση.
Αφού συνδεθούμε σαν χρήστης “pi”, πραγματοποιούμε ένα πλήρες update:
sudo apt-get update && sudo apt-get dist-upgrade -y
Αυτό θα πάρει επίσης χρόνο, τόσο για το κατέβασμα όσο και για την εγκατάσταση των updates. Μόλις οι ενημερώσεις ολοκληρωθούν, γράφουμε:
sudo raspi-config
Η πιο σημαντική ρύθμιση είναι η επιλογή “Enable Boot to Desktop/Scratch”.
Εκεί διαλέγουμε “Desktop Log in as user ‘pi' at the graphical desktop”.
Μπορούμε να ρυθμίσουμε και άλλα πράγματα, όπως τις τοπικές ρυθμίσεις.
Μόλις τελειώσουμε, πατάμε tab για να επιλέξουμε “Finish”.
Γράφουμε:
startx
για να φτάσουμε στο γραφικό περιβάλλον.
Αυτό ήταν. Η εξομοίωση Raspberry Pi για Windows έχει ολοκληρωθεί.
Αντιμετωπίσατε κάποιο πρόβλημα με την εξομοίωση Raspberry Pi?
Αν κάποιο απ' τα παραπάνω δεν δούλεψε όπως περιγράψαμε, και δεν καταφέρατε να δημιουργήσετε μια εξομοίωση Raspberry Pi, γράψτε μας ένα σχόλιο. Αν χρησιμοποιήσατε διαφορετική έκδοση του QEMU ή/και του Raspbian, θα πρέπει να αναφέρετε επίσης και τις ακριβείς τους εκδόσεις.