rewrote quickstart, build-process
[AGL/documentation.git] / docs / 0_Getting_Started / 1_Quickstart / Using_Ready_Made_Images.md
1 ---
2 title: Using Ready Made Images
3 ---
4
5 AGL provides a number of pre-built ready-made images of various versions.
6
7 ## x86 (Emulation and Hardware)
8
9 ### 1. QEMU (Emulation)
10
11 1. Download the [compressed prebuilt image](https://download.automotivelinux.org/AGL/snapshots/master/latest/qemux86-64/deploy/images/qemux86-64/agl-demo-platform-crosssdk-qemux86-64.ext4.xz).
12
13 2. Download the [compressed kernel image](https://download.automotivelinux.org/AGL/snapshots/master/latest/qemux86-64/deploy/images/qemux86-64/bzImage).
14
15 3. Install [QEMU](https://www.qemu.org/download/) :
16
17     ```sh
18     $ apt-get install qemu
19     ```
20
21 4. Install [vinagre](https://wiki.gnome.org/Apps/Vinagre) :
22
23     ```sh
24     $ sudo apt install vinagre
25     ```
26
27 5. Create boot directory and copy compressed images (prebuilt & kernel) into them :
28
29     ```sh
30     $ mkdir ~/agl-demo/
31     $ cp ~/Downloads/agl-demo-platform-crosssdk-qemux86-64.ext4.xz ~/agl-demo/
32     $ cp ~/Downloads/bzImage ~/agl-demo/
33     $ cd ~/agl-demo
34     $ sync
35     ```
36
37 6. Extract prebuilt compressed image :
38
39     ```sh
40     $ xz -v -d agl-demo-platform-crosssdk-qemux86-64.ext4.xz
41     ```
42
43 7. Launch QEMU with vinagre (for scaling), remove `- snapshot \` if you want to save changes to the image files :
44
45 ```sh
46   $ ( sleep 5 && vinagre --vnc-scale localhost ) &
47     qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:35:02 -netdev user,id=net0,hostfwd=tcp::2222-:22 \
48     -drive file=agl-demo-platform-crosssdk-qemux86-64.ext4,if=virtio,format=raw -show-cursor -usb -usbdevice tablet -device virtio-rng-pci \
49     -snapshot \
50     -vnc :0 -soundhw hda -machine q35 -cpu kvm64 -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt -enable-kvm \
51     -m 2048 -serial mon:vc -serial mon:stdio -serial null -kernel bzImage \
52     -append 'root=/dev/vda rw console=tty0 mem=2048M ip=dhcp oprofile.timer=1 console=ttyS0,115200n8 verbose fstab=no'
53 ```
54
55   - Login into AGL :
56
57     ```sh
58     Automotive Grade Linux 9.99.4+snapshot qemux86-64 ttyS1
59
60     qemux86-64 login: root
61     ```
62
63
64   - Shutdown QEMU : `$ poweroff`, otherwise QEMU will run in the background.
65   - To use vnc-viewer instead of vinagre :
66     ```sh
67     $ ( sleep 5 && vncviewer ) &
68        qemu-system-x86_64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:35:02 -netdev user,id=net0,hostfwd=tcp::2222-:22 \
69        -drive file=agl-demo-platform-crosssdk-qemux86-64.ext4,if=virtio,format=raw -show-cursor -usb -usbdevice tablet -device virtio-rng-pci \
70        -snapshot \
71        -vnc :0 -soundhw hda -machine q35 -cpu kvm64 -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt -enable-kvm \
72        -m 2048 -serial mon:vc -serial mon:stdio -serial null -kernel bzImage \
73        -append 'root=/dev/vda rw console=tty0 mem=2048M ip=dhcp oprofile.timer=1 console=ttyS0,115200n8 verbose fstab=no'
74     ```
75
76 ### 2. Virtual Box (Emulation)
77
78   1. Download the [compressed vbox disk image](https://download.automotivelinux.org/AGL/snapshots/master/latest/qemux86-64/deploy/images/qemux86-64/agl-demo-platform-crosssdk-qemux86-64.wic.vmdk.xz).
79
80   2. Install and set up [Virtual Box](https://www.virtualbox.org/wiki/Linux_Downloads).
81
82   3. Extract the vmdk file : `$ xz -v -d agl-demo-platform-crosssdk-qemux86-64.wic.vmdk.xz`
83
84   4. Configure virtual box for AGL :
85     - Click on `New` or `Add`.
86     - Enter Name as `agl-demo`.
87     - Type as `Linux`.
88     - Version as `Other Linux (64-bit)`, click on `Next`.
89     ![vbox-step-1](images/vbox-1.png)
90     - Select Memory size. Recommended is `2048 MB`, click on `Next`.
91     ![vbox-step-2](images/vbox-2.png)
92     - Click on `Use an existing virtual hard disk file`, and select the extracted `agl-demo-platform-crosssdk-qemux86-64.wic.vmdk` file, click on `Create`.
93     ![vbox-step-3](images/vbox-3.png)
94     - Go to `Settings`, and into `System`. Select `Chipset : IHC9`. Check on `Enable EFI (special OSes only)` and click on `OK`.
95     ![vbox-step-4](images/vbox-4.png)
96     - Go to `Storage`, and change the attribute to `Type : AHCI` and click on `OK`.
97     ![vbox-step-5](images/vbox-5.png)
98     - Click on `Start`.
99     - For troubleshooting, you can refer [here](https://lists.automotivelinux.org/g/agl-dev-community/message/8474).
100
101 ### 3. x86 physical system
102
103   **NOTE :** UEFI enabled system is required.
104
105   1. Download the [compressed prebuilt image](https://download.automotivelinux.org/AGL/snapshots/master/latest/qemux86-64/deploy/images/qemux86-64/agl-demo-platform-crosssdk-qemux86-64.wic.xz).
106
107   2. Extract the image into USB drive :
108
109      ```sh
110      $ lsblk
111      $ sudo umount <usb_device_name>
112      $ xzcat agl-demo-platform-crosssdk-qemux86-64.wic.xz | sudo dd of=<usb_device_name> bs=4M
113      $ sync
114      ```
115
116
117   3. Boot from USB drive on the x86 system.
118
119
120 ## Raspberry Pi 4
121
122   1. Download the [compressed prebuilt image](https://download.automotivelinux.org/AGL/snapshots/master/latest/raspberrypi4/deploy/images/raspberrypi4-64/agl-demo-platform-crosssdk-raspberrypi4-64.wic.xz).
123
124   2. Extract the image into the SD card of Raspberry Pi 4 :
125
126     ```sh
127     $ lsblk
128     $ sudo umount <sdcard_device_name>
129     $ xzcat agl-demo-platform-crosssdk-raspberrypi4-64.wic.xz | sudo dd of=<sdcard_device_name> bs=4M
130     $ sync
131     ```
132
133     **IMPORTANT NOTE:** Before re-writing any device on your Build Host, you need to
134         be sure you are actually writing to the removable MicroSD card and not some other
135         device.
136         Each computer is different and removable devices can change from time to time.
137         Consequently, you should repeat the previous operation with the MicroSD card to
138         confirm the device name every time you write to the card.
139
140       To summarize this example so far, we have the following:
141         The first SATA drive is `/dev/sda` and `/dev/sdc` corresponds to the MicroSD card, and is also marked as a removable device.You can see this in the output of the `lsblk` command where "1" appears in the "RM" column for that device.
142
143   3. SSH into Raspberry Pi :
144     - Connect Raspberry Pi to network : `Homescreen > Settings`, IP address mentioned here.
145     - `ssh root@<Raspberry-Pi-ip-address>`
146
147
148   4. Serial Debugging :
149
150     When things go wrong, you can take steps to debug your Raspberry Pi.
151     For debugging, you need a 3.3 Volt USB Serial cable to fascilitate
152     communication between your Raspberry Pi board and your build host.
153
154     You can reference the following diagram for information on the following steps:
155
156     ![](images/RaspberryPi2-ModelB-debug-serial-cable.png)
157
158     1. Connect the TTL cable to the Universal Asynchronous Receiver-Transmitter
159       (UART) connection on your Raspberry Pi board.
160       Do not connect the USB side of the cable to your build host at this time.
161
162           **CAUTION:** No warranty is provided using the following procedure.
163           Pay particular attention to the collors of your cable as they could
164           vary depending on the vendor.
165
166     2. Connect the cable's BLUE wire to pin 6 (i.e. Ground) of the UART.
167
168     3. Connect the able's GREEN RX line to pin 8 (i.e. the TXD line) of
169       the UART.
170
171     4. Connect the cable's RED TX line to pin 10 (i.e. the RXD line) of
172       the UART.
173
174     5. Plug the USB connector of the cable into your build host's USB port.
175
176     6. Use your favorite tool for serial communication between your build host
177       and your Raspberry Pi.
178       For example, if your build host is a native Linux machine (e.g. Ubuntu)
179       you could use `screen` as follows from a terminal on the build host:
180
181       ```sh
182       $ sudo screen /dev/ttyUSB0 115200
183       ```
184
185 ## R-Car H3SK (H3ULCB board)
186
187 **NOTE :** The prebuilt image doesn't support graphics (as of yet) and will run headless. For graphical support, a local build with the neccesary graphics driver is required.
188
189
190   1. Update the [firmware](https://elinux.org/R-Car/Boards/H3SK#Flashing_firmware) using files from [here](https://download.automotivelinux.org/AGL/snapshots/master/latest/h3ulcb-nogfx/deploy/images/h3ulcb/).
191
192   2. Download the [compressed prebuilt image](https://download.automotivelinux.org/AGL/snapshots/master/latest/h3ulcb-nogfx/deploy/images/h3ulcb/agl-image-ivi-crosssdk-h3ulcb.wic.xz).
193
194   3. Extract the image into the boot device :
195
196      ```sh
197      $ lsblk
198      $ sudo umount <boot_device_name>
199      $ xzcat agl-image-ivi-crosssdk-h3ulcb.wic.xz | sudo dd of=<boot_device_name> bs=4M
200      $ sync
201      ```
202
203   3. [Serial](https://elinux.org/R-Car/Boards/H3SK) into the board for debugging.
204       For example, if your build host is a native Linux machine (e.g. Ubuntu)
205       you could use `screen` as follows from a terminal on the build host:
206
207       ```sh
208       $ sudo screen /dev/ttyUSB0 115200
209       ```