To get Windows 10 running on a Raspberry Pi is actually quite easy, but right now there are a couple of limitations that we know of, and probably a couple more that we don't know about yet. But we wanted to get this out there so our community could start playing with it and help us improve upon what we already have.
Limitations:
- have to run it via VNC-
- Not sure if the RPi's Bluetooth or WiFi is working
What you need:
- RPi 4 B+ 8GB
- 128 GB SD card
- Networking cable
- Laptop (these instructions are for a Mac, and we will soon improve them for Windows and Linux, but you probably can make some adjustments and get it working)
More Detail and where to get the items
- RPi 4 B- 8 GB is better, 4 GB will work, but it is slow.
- This kit has everything that you need, minus the SD card
- 32GB SD card (at least), you will want a fast one for a camera, this one is 128 GB
- You will need your RPi to be plugged into a network at least to start off. I plugged mine into a small 4 port router, and that is plugged into a wireless repeater for my home wifi.
- Networking cable- I have two, one for RPI to the router and one from the router to the wireless repeater (I am running multiple RPis, hence the router)
Instructions for a Mac
Assumptions:
- Need Go installed (version 1.15.3)
- Need docker community (version 2.5.0.1)
Step 0: Setting up your SD card
The first thing that you need to do is to format your SD card. The easiest way is just to go and get the SD Card Formatter app.
Once you have formatted your disk, lets get it ready for EVE.
- find your SD cards disk and unmount it
diskutil list
diskutil unmountDisk /dev/ //mine is diskutil unmountDisk /dev/disk2 - We are going to write 0's (zeros) 100 MB
sudo dd if=/dev/zero of=/dev/ bs=1m count=1000 //mine is sudo dd if=/dev/zero of=/dev/disk2 bs=1m count=1000
The above step can take a couple of minutes with out feedback from the command line (mine took just over one minute)
Step 1: Install EVE on Raspberry Pi
EVE will act as the OS for the RPi. You then can add your own containerized OS and application(s) on top of it.
Prepare Raspberry image
- On your computer, navigate in your terminal application to the location where you would like place EVE and Eden
- Clone Eden's github
git clone https://github.com/lf-edge/eden.git
cd eden Build Eden
make clean <--This cleans up if you have already built something and does nothing if you haven't
make build
./eden config add default --devmodel RPi4Add the xen flag if you want to use Xen as your hypervisor, ignore if you want to use kvm
./eden config add second --devmodel RPi4
./eden config set default --key eve.hv --value=xen
./eden setup
./eden start
The output of 'setup' will produce the file 'live.img, which is the image file that you will put on the RPi's SD card
Copy the Image to the SD Card
MacOS:
diskutil list
diskutil unmountDisk /dev/<your_disk_name> <--your disk might be unmounted already if you haven't removed after step 0
sudo dd bs=1m if=fullpath_of_your_image.img of=/dev/<your_disk_name; sync
sudo diskutil eject /dev/<your_disk_name
Step 2: Onboarding the RPi and Running a Small Application to Test It
- unplug anything attached to the USB on the RPi
- Put in SD card into Raspberry and power it on
- Onboard our RPi into eden so that we can control it remotely
On the terminal window of your computer, type:./eden eve onboard
- Deploy the nginx server, as a test
./eden pod deploy -p 8028:80 docker://nginx
- run eden's status command to get the RPi's IP address
It is listed under "EVE REMOTE IPs"./eden status
- Open a browser and point it to http://EVE's_IP_Address:8028
You can try to boot the Windows 10 ARM64 image on RPi (you need not less than 32GB SD card):
/*
eden pod deploy docker://itmoeve/eci-windows:2004-compressed-arm64 --vnc-display=1 --memory=2GB --cpus=2
*/
./eden pod deploy docker://itmoeve/eci-windows:2004-compressed-arm64 --vnc-display=1 --memory=6GB --cpus=2
$$ deploying windows to the EVE on the RPi will take a while, it is best to go and get some coffee. to check on the status of the deployment you can run
./eden pod ps