kubuntu-council team mailing list archive
-
kubuntu-council team
-
Mailing list archive
-
Message #01234
[Merge] ~waveform/ubuntu-manual-tests:noble-tests into ubuntu-manual-tests:main
Dave Jones has proposed merging ~waveform/ubuntu-manual-tests:noble-tests into ubuntu-manual-tests:main.
Commit message:
Add bluetooth and power LED checks to Pi server test-cases, and bluetooth checks to the Pi desktop test-cases; also tidies up a couple of references (like launching settings)
Requested reviews:
Ubuntu Testcase Admins (ubuntu-testcase)
For more details, see:
https://code.launchpad.net/~waveform/ubuntu-manual-tests/+git/ubuntu-manual-tests/+merge/464108
--
Your team Ubuntu Testcase Admins is requested to review the proposed merge of ~waveform/ubuntu-manual-tests:noble-tests into ubuntu-manual-tests:main.
diff --git a/definitions/pi_desktop_cases.xml b/definitions/pi_desktop_cases.xml
index a6a3824..cdd878b 100644
--- a/definitions/pi_desktop_cases.xml
+++ b/definitions/pi_desktop_cases.xml
@@ -24,6 +24,14 @@
<ut:define name="post-install"></ut:define>
+ <ut:test id="power-led">
+ <dt>Watch the power LED</dt>
+ <dd>
+ Ensure it turns out at boot time, and stays lit as the kernel starts
+ (when the rainbow screen disappears)
+ </dd>
+ </ut:test>
+
<ut:test id="startup-splash">
<dt>Watch the boot screen</dt>
<dd>Check that the Ubuntu logo, and spinner appear during boot time</dd>
@@ -115,7 +123,7 @@
<ut:test id="ram-free">
<dt>
- Click the power icon at the top right of the screen, select Settings from
+ Launch Settings from
the menu that appears, then "About" in the left panel of the window that
appears
</dt>
@@ -155,16 +163,18 @@
<dt>
Configure wifi via Network Manager
<ul>
- <li>Click the power icon at the top right of the screen</li>
- <li>Select the WiFi entry from the menu and Select Network under that</li>
- <li>Select your local WiFi network from the scan list</li>
+ <li>Launch settings</li>
+ <li>Select the WiFi entry from the menu</li>
+ <li>Select your local WiFi network from the visible networks list</li>
<li>Enter the password for your local WiFi network when prompted</li>
<li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
addr</code></li>
<li>Check that a valid IP address is recorded on the <ut:var
name="intf" /> interface</li>
+ <li>Disconnect ethernet, if any is plugged in</li>
<li>Check <code>ping google.com</code> successfully pings a few times
(<tt>Ctrl+C</tt> to cancel)</li>
+ <li>Reconnect ethernet, if it was connected before</li>
</ul>
</dt>
<dd>
@@ -173,6 +183,28 @@
</dd>
</ut:test>
+ <ut:test id="bluetooth">
+ <dt>
+ Configure bluetooth and pair a device
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the Bluetooth entry from the menu (you must be on this page
+ for the Pi to be "discoverable")</li>
+ <li>On another Bluetooth device (e.g. an Android phone) make sure it
+ is "discoverable" (e.g. on Android go into Bluetooth
+ settings)</li>
+ <li>Ensure the other device shows up in the "Devices" list
+ on the Bluetooth settings page, then select it</li>
+ <li>Confirm the pincode on both devices</li>
+ <li>Ensure the other device now shows as anything other that "Not
+ Set Up" in the "Devices" list</li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface can scan for, and pair with, another device
+ </dd>
+ </ut:test>
+
<ut:test id="www-video">
<dt>
Start Firefox and play a YouTube video
@@ -199,6 +231,8 @@
<li>Start a terminal session</li>
<li>Run <code>wget https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4</code></li>
<li>Once the download has completed, run <code>totem big_buck_bunny_720p_surround.mp4</code></li>
+ <li>The utility may prompt to install codecs; accept the recommendation
+ and install whatever codecs are required</li>
</ul>
</dt>
<dd>
@@ -221,6 +255,7 @@
<ut:case id="1745_RaspberryPi 4 4GB Desktop">
<ut:define name="model">Raspberry Pi 4 4GB</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="startup-splash" />
<ut:include ref="startup-sound" />
<ut:include ref="startup-timezone" />
@@ -232,6 +267,7 @@
<ut:incldue ref="dual-monitor" />
<ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include>
<ut:include ref="wifi"><ut:define name="intf">wlan0</ut:define></ut:include>
+ <ut:include ref="bluetooth" />
<ut:include ref="www-video" />
<ut:include ref="local-video" />
<ut:include ref="lock-screen" />
@@ -239,6 +275,7 @@
<ut:case id="1746_RaspberryPi 4 8GB Desktop">
<ut:define name="model">Raspberry Pi 4 8GB</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="startup-splash" />
<ut:include ref="startup-sound" />
<ut:include ref="startup-timezone" />
@@ -250,6 +287,7 @@
<ut:incldue ref="dual-monitor" />
<ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include>
<ut:include ref="wifi"><ut:define name="intf">wlan0</ut:define></ut:include>
+ <ut:include ref="bluetooth" />
<ut:include ref="www-video" />
<ut:include ref="local-video" />
<ut:include ref="lock-screen" />
@@ -257,6 +295,7 @@
<ut:case id="1747_RaspberryPi 400 Desktop">
<ut:define name="model">Raspberry Pi 400</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="startup-splash" />
<ut:include ref="startup-sound" />
<ut:include ref="startup-timezone" />
@@ -268,6 +307,7 @@
<ut:incldue ref="dual-monitor" />
<ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include>
<ut:include ref="wifi"><ut:define name="intf">wlan0</ut:define></ut:include>
+ <ut:include ref="bluetooth" />
<ut:include ref="www-video" />
<ut:include ref="local-video" />
<ut:include ref="lock-screen" />
@@ -280,6 +320,7 @@
(1st) partition and uncomment the <code>#dtoverlay=dwc2,dr_mode=host</code>
line to ensure the USB ports on the IO board operate correctly</p>
</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="startup-splash" />
<ut:include ref="startup-sound" />
<ut:include ref="startup-timezone" />
@@ -291,6 +332,7 @@
<ut:incldue ref="dual-monitor" />
<ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include>
<ut:include ref="wifi"><ut:define name="intf">wlan0</ut:define></ut:include>
+ <ut:include ref="bluetooth" />
<ut:include ref="www-video" />
<ut:include ref="local-video" />
<ut:include ref="lock-screen" />
@@ -303,6 +345,7 @@
(1st) partition and uncomment the <code>#dtoverlay=dwc2,dr_mode=host</code>
line to ensure the USB ports on the IO board operate correctly</p>
</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="startup-splash" />
<ut:include ref="startup-sound" />
<ut:include ref="startup-timezone" />
@@ -314,6 +357,7 @@
<ut:incldue ref="dual-monitor" />
<ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include>
<ut:include ref="wifi"><ut:define name="intf">wlan0</ut:define></ut:include>
+ <ut:include ref="bluetooth" />
<ut:include ref="www-video" />
<ut:include ref="local-video" />
<ut:include ref="lock-screen" />
@@ -326,6 +370,7 @@
(1st) partition and uncomment the <code>#dtoverlay=dwc2,dr_mode=host</code>
line to ensure the USB ports on the IO board operate correctly</p>
</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="startup-splash" />
<ut:include ref="startup-sound" />
<ut:include ref="startup-timezone" />
@@ -337,6 +382,7 @@
<ut:incldue ref="dual-monitor" />
<ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include>
<ut:include ref="wifi"><ut:define name="intf">wlan0</ut:define></ut:include>
+ <ut:include ref="bluetooth" />
<ut:include ref="www-video" />
<ut:include ref="local-video" />
<ut:include ref="lock-screen" />
@@ -344,6 +390,7 @@
<ut:case id="1791_RaspberryPi 5 4GB Desktop">
<ut:define name="model">Raspberry Pi 5 4GB</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="startup-splash" />
<ut:include ref="startup-sound" />
<ut:include ref="startup-timezone" />
@@ -355,6 +402,7 @@
<ut:incldue ref="dual-monitor" />
<ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include>
<ut:include ref="wifi"><ut:define name="intf">wlan0</ut:define></ut:include>
+ <ut:include ref="bluetooth" />
<ut:include ref="www-video" />
<ut:include ref="local-video" />
<ut:include ref="lock-screen" />
@@ -362,6 +410,7 @@
<ut:case id="1792_RaspberryPi 5 8GB Desktop">
<ut:define name="model">Raspberry Pi 5 8GB</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="startup-splash" />
<ut:include ref="startup-sound" />
<ut:include ref="startup-timezone" />
@@ -373,6 +422,7 @@
<ut:incldue ref="dual-monitor" />
<ut:include ref="ethernet"><ut:define name="intf">eth0</ut:define></ut:include>
<ut:include ref="wifi"><ut:define name="intf">wlan0</ut:define></ut:include>
+ <ut:include ref="bluetooth" />
<ut:include ref="www-video" />
<ut:include ref="local-video" />
<ut:include ref="lock-screen" />
diff --git a/definitions/pi_server_cases.xml b/definitions/pi_server_cases.xml
index c7cb6b6..94cc3ca 100644
--- a/definitions/pi_server_cases.xml
+++ b/definitions/pi_server_cases.xml
@@ -23,6 +23,17 @@
</ut:template>
<ut:define name="post-install"></ut:define>
+ <ut:define name="actpwr"></ut:define>
+
+ <ut:test id="power-led">
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot. <ut:var name="actpwr" />
+ </dd>
+ </ut:test>
<ut:test id="flash-kernel">
<dt>
@@ -155,6 +166,34 @@
</dd>
</ut:test>
+ <ut:test id="bluetooth">
+ <dt>
+ Configure bluetooth, scan for, and pair, a device
+ <ul>
+ <li>Run <code>sudo bluetoothctl</code></li>
+ <li>Check bluetoothctl prints <code>Agent registered</code></li>
+ <li>Check the MAC address looks "real" (not some obviously blank
+ value like AA:AA:AA:AA:AA:AA)</li>
+ <li>Run <code>scan on</code></li>
+ <li>Make some other Bluetooth device visible for pairing (e.g. go into
+ Bluetooth settings on your Android phone)</li>
+ <li>Verify the other Bluetooth device appears in console output</li>
+ <li>Run <code>pair XX:XX:XX:XX:XX:XX</code>
+ where XX:XX:XX:XX:XX:XX is the other device's MAC address, as it
+ appears in scan output
+ </li>
+ <li>Verify the passcode on both devices</li>
+ <li>Check output includes "Pairing successful"</li>
+ <li>Disable scanning with <code>scan off</code></li>
+ <li>Exit tool with <code>quit</code></li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface should have a valid MAC address (not
+ AA:AA:AA:AA:AA:AA), can see and pair with another Bluetooth device.
+ </dd>
+ </ut:test>
+
<ut:test id="audio">
<dt>
With <ut:var name="device" />, and an available MP3 file:
@@ -184,6 +223,7 @@
<ut:case id="1711_RaspberryPi 4 2GB Post-install">
<ut:define name="model">Raspberry Pi 4 2GB</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -211,6 +251,7 @@
<ut:case id="1719_RaspberryPi 4 4GB Post-install">
<ut:define name="model">Raspberry Pi 4 4GB</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -238,6 +279,7 @@
<ut:case id="1720_RaspberryPi 4 8GB Post-install">
<ut:define name="model">Raspberry Pi 4 8GB</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -265,6 +307,7 @@
<ut:case id="1721_RaspberryPi 3B+ Post-install">
<ut:define name="model">Raspberry Pi 3B+</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -285,6 +328,7 @@
<ut:case id="1722_RaspberryPi 3B Post-install">
<ut:define name="model">Raspberry Pi 3B</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -305,6 +349,7 @@
<ut:case id="1723_RaspberryPi 3A+ Post-install">
<ut:define name="model">Raspberry Pi 3A+</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -324,6 +369,7 @@
<ut:case id="1724_RaspberryPi 2 Post-install">
<ut:define name="model">Raspberry Pi 2</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -371,6 +417,7 @@
<ut:case id="1740_RaspberryPi 400 Post-install">
<ut:define name="model">Raspberry Pi 400</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -470,6 +517,12 @@
<ut:case id="1752_RaspberryPi Zero 2 Post-install">
<ut:define name="model">Raspberry Pi Zero 2</ut:define>
+ <ut:include ref="power-led">
+ <ut:define name="actpwr">
+ On the Pi Zero 2W, the LED may blink off periodically to show disk
+ activity, but should otherwise remain lit.
+ </ut:define>
+ </ut:include>
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -485,6 +538,7 @@
<ut:case id="1793_RaspberryPi 5 4GB Post-install">
<ut:define name="model">Raspberry Pi 5 4GB</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
@@ -508,6 +562,7 @@
<ut:case id="1794_RaspberryPi 5 8GB Post-install">
<ut:define name="model">Raspberry Pi 5 8GB</ut:define>
+ <ut:include ref="power-led" />
<ut:include ref="flash-kernel" />
<ut:include ref="reboot" />
<ut:include ref="shutdown" />
diff --git a/testcases/1711_RaspberryPi 4 2GB Post-install b/testcases/1711_RaspberryPi 4 2GB Post-install
new file mode 100644
index 0000000..536cb28
--- /dev/null
+++ b/testcases/1711_RaspberryPi 4 2GB Post-install
@@ -0,0 +1,229 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 4 2GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 4 2GB. It should be in the region of 1.6-1.8GB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 (black) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB3 (blue) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI1 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI1 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI1 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With a pair of headphones with a 3.5mm jack, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the headphone jack:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the headphone jack (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1719_RaspberryPi 4 4GB Post-install b/testcases/1719_RaspberryPi 4 4GB Post-install
new file mode 100644
index 0000000..09684c9
--- /dev/null
+++ b/testcases/1719_RaspberryPi 4 4GB Post-install
@@ -0,0 +1,229 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 4 4GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 4 4GB. It should be in the region of 3.6-3.8GB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 (black) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB3 (blue) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI1 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI1 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI1 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With a pair of headphones with a 3.5mm jack, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the headphone jack:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the headphone jack (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1720_RaspberryPi 4 8GB Post-install b/testcases/1720_RaspberryPi 4 8GB Post-install
new file mode 100644
index 0000000..d21815d
--- /dev/null
+++ b/testcases/1720_RaspberryPi 4 8GB Post-install
@@ -0,0 +1,229 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 4 8GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 4 8GB. It should be in the region of 7.6-7.8GB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 (black) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB3 (blue) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI1 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI1 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI1 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With a pair of headphones with a 3.5mm jack, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the headphone jack:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the headphone jack (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1721_RaspberryPi 3B+ Post-install b/testcases/1721_RaspberryPi 3B+ Post-install
new file mode 100644
index 0000000..36a90a5
--- /dev/null
+++ b/testcases/1721_RaspberryPi 3B+ Post-install
@@ -0,0 +1,193 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 3B+.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 3B+. It should be in the region of 800-1000MB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With a pair of headphones with a 3.5mm jack, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the headphone jack:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the headphone jack (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1722_RaspberryPi 3B Post-install b/testcases/1722_RaspberryPi 3B Post-install
new file mode 100644
index 0000000..54525b3
--- /dev/null
+++ b/testcases/1722_RaspberryPi 3B Post-install
@@ -0,0 +1,193 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 3B.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 3B. It should be in the region of 800-1000MB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With a pair of headphones with a 3.5mm jack, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the headphone jack:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the headphone jack (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1723_RaspberryPi 3A+ Post-install b/testcases/1723_RaspberryPi 3A+ Post-install
new file mode 100644
index 0000000..71a6a95
--- /dev/null
+++ b/testcases/1723_RaspberryPi 3A+ Post-install
@@ -0,0 +1,178 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 3A+.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 3A+. It should be in the region of 300-500MB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With a pair of headphones with a 3.5mm jack, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the headphone jack:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the headphone jack (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1724_RaspberryPi 2 Post-install b/testcases/1724_RaspberryPi 2 Post-install
new file mode 100644
index 0000000..d929308
--- /dev/null
+++ b/testcases/1724_RaspberryPi 2 Post-install
@@ -0,0 +1,164 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 2.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 2. It should be in the region of 800-1000MB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With a pair of headphones with a 3.5mm jack, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the headphone jack:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the headphone jack (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1726_RaspberryPi CM3+ Post-install b/testcases/1726_RaspberryPi CM3+ Post-install
new file mode 100644
index 0000000..4778a1c
--- /dev/null
+++ b/testcases/1726_RaspberryPi CM3+ Post-install
@@ -0,0 +1,114 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi Compute Module 3+.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi Compute Module 3+. It should be in the region of 800-1000MB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1727_RaspberryPi CM3+ Lite Post-install b/testcases/1727_RaspberryPi CM3+ Lite Post-install
new file mode 100644
index 0000000..647afc5
--- /dev/null
+++ b/testcases/1727_RaspberryPi CM3+ Lite Post-install
@@ -0,0 +1,114 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi Compute Module 3+ Lite.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi Compute Module 3+ Lite. It should be in the region of 800-1000MB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1740_RaspberryPi 400 Post-install b/testcases/1740_RaspberryPi 400 Post-install
new file mode 100644
index 0000000..9f3005a
--- /dev/null
+++ b/testcases/1740_RaspberryPi 400 Post-install
@@ -0,0 +1,187 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 400.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 400. It should be in the region of 3.6-3.8GB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI1 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI1 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI1 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1741_RaspberryPi CM4 2GB Post-install b/testcases/1741_RaspberryPi CM4 2GB Post-install
new file mode 100644
index 0000000..b5ac85d
--- /dev/null
+++ b/testcases/1741_RaspberryPi CM4 2GB Post-install
@@ -0,0 +1,182 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+ <p>This test case is to be carried out on a Raspberry Pi Compute Module 4 2GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+
+ <p>Before booting your CM4 with the new image, edit config.txt on the boot
+ (1st) partition and uncomment the <code>#dtoverlay=dwc2,dr_mode=host</code>
+ line to ensure the USB ports on the IO board operate correctly</p>
+
+ <dl>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi Compute Module 4 2GB. It should be in the region of 1.6-1.8GB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI1 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI1 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI1 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1742_RaspberryPi CM4 4GB Post-install b/testcases/1742_RaspberryPi CM4 4GB Post-install
new file mode 100644
index 0000000..4b7756d
--- /dev/null
+++ b/testcases/1742_RaspberryPi CM4 4GB Post-install
@@ -0,0 +1,182 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+ <p>This test case is to be carried out on a Raspberry Pi Compute Module 4 4GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+
+ <p>Before booting your CM4 with the new image, edit config.txt on the boot
+ (1st) partition and uncomment the <code>#dtoverlay=dwc2,dr_mode=host</code>
+ line to ensure the USB ports on the IO board operate correctly</p>
+
+ <dl>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi Compute Module 4 4GB. It should be in the region of 3.6-3.8GB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI1 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI1 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI1 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1745_RaspberryPi 4 4GB Desktop b/testcases/1745_RaspberryPi 4 4GB Desktop
new file mode 100644
index 0000000..7495e01
--- /dev/null
+++ b/testcases/1745_RaspberryPi 4 4GB Desktop
@@ -0,0 +1,198 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_desktop_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 4 4GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>Watch the power LED</dt>
+ <dd>
+ Ensure it turns out at boot time, and stays lit as the kernel starts
+ (when the rainbow screen disappears)
+ </dd>
+
+
+ <dt>Watch the boot screen</dt>
+ <dd>Check that the Ubuntu logo, and spinner appear during boot time</dd>
+
+
+ <dt>
+ Ensure you have speakers on your monitor or headphones plugged into it
+ </dt>
+ <dd>
+ Check that the Ubuntu start up sound plays through the monitor's audio
+ output before the initial System Configuration appears
+ </dd>
+
+
+ <dt>Select your timezone, and click on the Continue button</dt>
+ <dd>The 'Who are you?' screen appears</dd>
+
+
+ <dt>
+ Input your initial user details and password
+ <em>admin</em> can not be used - it is a dedicated Linux User
+ </dt>
+ <dd>
+ Name, username and password are accepted. Login options and home folder
+ encryption choices shown
+ </dd>
+ <dd>Continue button becomes available</dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Restart..." from that
+ menu, and confirm "Restart" in the dialog that appears
+ </dt> <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Power Off..." from
+ that menu, and confirm "Power Off" in the dialog that appears
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Launch Settings from
+ the menu that appears, then "About" in the left panel of the window that
+ appears
+ </dt>
+ <dd>
+ Reported "Memory" is consistent with a Raspberry Pi 4 4GB.
+ It should be in the region of 3.6-3.8GB.
+ </dd>
+
+ <ns0:incldue ref="dual-monitor"></ns0:incldue>
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via Network Manager
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the WiFi entry from the menu</li>
+ <li>Select your local WiFi network from the visible networks list</li>
+ <li>Enter the password for your local WiFi network when prompted</li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Disconnect ethernet, if any is plugged in</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ <li>Reconnect ethernet, if it was connected before</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure bluetooth and pair a device
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the Bluetooth entry from the menu (you must be on this page
+ for the Pi to be "discoverable")</li>
+ <li>On another Bluetooth device (e.g. an Android phone) make sure it
+ is "discoverable" (e.g. on Android go into Bluetooth
+ settings)</li>
+ <li>Ensure the other device shows up in the "Devices" list
+ on the Bluetooth settings page, then select it</li>
+ <li>Confirm the pincode on both devices</li>
+ <li>Ensure the other device now shows as anything other that "Not
+ Set Up" in the "Devices" list</li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface can scan for, and pair with, another device
+ </dd>
+
+
+ <dt>
+ Start Firefox and play a YouTube video
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Click on the Firefox icon on the left of the screen</li>
+ <li>Navigate to <a href="https://youtube.com">YouTube</a></li>
+ <li>Select a video (with audio!) to play</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Download and play BigBuckBunny in the built-in video player
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Start a terminal session</li>
+ <li>Run <code>wget https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4</code></li>
+ <li>Once the download has completed, run <code>totem big_buck_bunny_720p_surround.mp4</code></li>
+ <li>The utility may prompt to install codecs; accept the recommendation
+ and install whatever codecs are required</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Press <tt>Super+L</tt> and wait for the lock screen to appear, then
+ fade, then for the monitor to suspend. Move the mouse to wake up the
+ monitor, then enter your password to unlock the desktop.
+ </dt>
+ <dd>
+ Ensure the monitor suspends correctly, that it awakens again correctly,
+ and that the desktop unlocks successfully (without the system hanging).
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1746_RaspberryPi 4 8GB Desktop b/testcases/1746_RaspberryPi 4 8GB Desktop
new file mode 100644
index 0000000..82ab0f3
--- /dev/null
+++ b/testcases/1746_RaspberryPi 4 8GB Desktop
@@ -0,0 +1,198 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_desktop_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 4 8GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>Watch the power LED</dt>
+ <dd>
+ Ensure it turns out at boot time, and stays lit as the kernel starts
+ (when the rainbow screen disappears)
+ </dd>
+
+
+ <dt>Watch the boot screen</dt>
+ <dd>Check that the Ubuntu logo, and spinner appear during boot time</dd>
+
+
+ <dt>
+ Ensure you have speakers on your monitor or headphones plugged into it
+ </dt>
+ <dd>
+ Check that the Ubuntu start up sound plays through the monitor's audio
+ output before the initial System Configuration appears
+ </dd>
+
+
+ <dt>Select your timezone, and click on the Continue button</dt>
+ <dd>The 'Who are you?' screen appears</dd>
+
+
+ <dt>
+ Input your initial user details and password
+ <em>admin</em> can not be used - it is a dedicated Linux User
+ </dt>
+ <dd>
+ Name, username and password are accepted. Login options and home folder
+ encryption choices shown
+ </dd>
+ <dd>Continue button becomes available</dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Restart..." from that
+ menu, and confirm "Restart" in the dialog that appears
+ </dt> <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Power Off..." from
+ that menu, and confirm "Power Off" in the dialog that appears
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Launch Settings from
+ the menu that appears, then "About" in the left panel of the window that
+ appears
+ </dt>
+ <dd>
+ Reported "Memory" is consistent with a Raspberry Pi 4 8GB.
+ It should be in the region of 7.6-7.8GB.
+ </dd>
+
+ <ns0:incldue ref="dual-monitor"></ns0:incldue>
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via Network Manager
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the WiFi entry from the menu</li>
+ <li>Select your local WiFi network from the visible networks list</li>
+ <li>Enter the password for your local WiFi network when prompted</li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Disconnect ethernet, if any is plugged in</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ <li>Reconnect ethernet, if it was connected before</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure bluetooth and pair a device
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the Bluetooth entry from the menu (you must be on this page
+ for the Pi to be "discoverable")</li>
+ <li>On another Bluetooth device (e.g. an Android phone) make sure it
+ is "discoverable" (e.g. on Android go into Bluetooth
+ settings)</li>
+ <li>Ensure the other device shows up in the "Devices" list
+ on the Bluetooth settings page, then select it</li>
+ <li>Confirm the pincode on both devices</li>
+ <li>Ensure the other device now shows as anything other that "Not
+ Set Up" in the "Devices" list</li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface can scan for, and pair with, another device
+ </dd>
+
+
+ <dt>
+ Start Firefox and play a YouTube video
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Click on the Firefox icon on the left of the screen</li>
+ <li>Navigate to <a href="https://youtube.com">YouTube</a></li>
+ <li>Select a video (with audio!) to play</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Download and play BigBuckBunny in the built-in video player
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Start a terminal session</li>
+ <li>Run <code>wget https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4</code></li>
+ <li>Once the download has completed, run <code>totem big_buck_bunny_720p_surround.mp4</code></li>
+ <li>The utility may prompt to install codecs; accept the recommendation
+ and install whatever codecs are required</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Press <tt>Super+L</tt> and wait for the lock screen to appear, then
+ fade, then for the monitor to suspend. Move the mouse to wake up the
+ monitor, then enter your password to unlock the desktop.
+ </dt>
+ <dd>
+ Ensure the monitor suspends correctly, that it awakens again correctly,
+ and that the desktop unlocks successfully (without the system hanging).
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1747_RaspberryPi 400 Desktop b/testcases/1747_RaspberryPi 400 Desktop
new file mode 100644
index 0000000..1d70b80
--- /dev/null
+++ b/testcases/1747_RaspberryPi 400 Desktop
@@ -0,0 +1,198 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_desktop_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 400.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>Watch the power LED</dt>
+ <dd>
+ Ensure it turns out at boot time, and stays lit as the kernel starts
+ (when the rainbow screen disappears)
+ </dd>
+
+
+ <dt>Watch the boot screen</dt>
+ <dd>Check that the Ubuntu logo, and spinner appear during boot time</dd>
+
+
+ <dt>
+ Ensure you have speakers on your monitor or headphones plugged into it
+ </dt>
+ <dd>
+ Check that the Ubuntu start up sound plays through the monitor's audio
+ output before the initial System Configuration appears
+ </dd>
+
+
+ <dt>Select your timezone, and click on the Continue button</dt>
+ <dd>The 'Who are you?' screen appears</dd>
+
+
+ <dt>
+ Input your initial user details and password
+ <em>admin</em> can not be used - it is a dedicated Linux User
+ </dt>
+ <dd>
+ Name, username and password are accepted. Login options and home folder
+ encryption choices shown
+ </dd>
+ <dd>Continue button becomes available</dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Restart..." from that
+ menu, and confirm "Restart" in the dialog that appears
+ </dt> <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Power Off..." from
+ that menu, and confirm "Power Off" in the dialog that appears
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Launch Settings from
+ the menu that appears, then "About" in the left panel of the window that
+ appears
+ </dt>
+ <dd>
+ Reported "Memory" is consistent with a Raspberry Pi 400.
+ It should be in the region of 3.6-3.8GB.
+ </dd>
+
+ <ns0:incldue ref="dual-monitor"></ns0:incldue>
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via Network Manager
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the WiFi entry from the menu</li>
+ <li>Select your local WiFi network from the visible networks list</li>
+ <li>Enter the password for your local WiFi network when prompted</li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Disconnect ethernet, if any is plugged in</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ <li>Reconnect ethernet, if it was connected before</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure bluetooth and pair a device
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the Bluetooth entry from the menu (you must be on this page
+ for the Pi to be "discoverable")</li>
+ <li>On another Bluetooth device (e.g. an Android phone) make sure it
+ is "discoverable" (e.g. on Android go into Bluetooth
+ settings)</li>
+ <li>Ensure the other device shows up in the "Devices" list
+ on the Bluetooth settings page, then select it</li>
+ <li>Confirm the pincode on both devices</li>
+ <li>Ensure the other device now shows as anything other that "Not
+ Set Up" in the "Devices" list</li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface can scan for, and pair with, another device
+ </dd>
+
+
+ <dt>
+ Start Firefox and play a YouTube video
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Click on the Firefox icon on the left of the screen</li>
+ <li>Navigate to <a href="https://youtube.com">YouTube</a></li>
+ <li>Select a video (with audio!) to play</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Download and play BigBuckBunny in the built-in video player
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Start a terminal session</li>
+ <li>Run <code>wget https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4</code></li>
+ <li>Once the download has completed, run <code>totem big_buck_bunny_720p_surround.mp4</code></li>
+ <li>The utility may prompt to install codecs; accept the recommendation
+ and install whatever codecs are required</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Press <tt>Super+L</tt> and wait for the lock screen to appear, then
+ fade, then for the monitor to suspend. Move the mouse to wake up the
+ monitor, then enter your password to unlock the desktop.
+ </dt>
+ <dd>
+ Ensure the monitor suspends correctly, that it awakens again correctly,
+ and that the desktop unlocks successfully (without the system hanging).
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1748_RaspberryPi CM4 2GB Desktop b/testcases/1748_RaspberryPi CM4 2GB Desktop
new file mode 100644
index 0000000..9b2b69e
--- /dev/null
+++ b/testcases/1748_RaspberryPi CM4 2GB Desktop
@@ -0,0 +1,202 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_desktop_cases.xml
+-->
+
+ <p>This test case is to be carried out on a Raspberry Pi Compute Module 4 2GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+
+ <p>Before booting your CM4 with the new image, edit config.txt on the boot
+ (1st) partition and uncomment the <code>#dtoverlay=dwc2,dr_mode=host</code>
+ line to ensure the USB ports on the IO board operate correctly</p>
+
+ <dl>
+
+
+ <dt>Watch the power LED</dt>
+ <dd>
+ Ensure it turns out at boot time, and stays lit as the kernel starts
+ (when the rainbow screen disappears)
+ </dd>
+
+
+ <dt>Watch the boot screen</dt>
+ <dd>Check that the Ubuntu logo, and spinner appear during boot time</dd>
+
+
+ <dt>
+ Ensure you have speakers on your monitor or headphones plugged into it
+ </dt>
+ <dd>
+ Check that the Ubuntu start up sound plays through the monitor's audio
+ output before the initial System Configuration appears
+ </dd>
+
+
+ <dt>Select your timezone, and click on the Continue button</dt>
+ <dd>The 'Who are you?' screen appears</dd>
+
+
+ <dt>
+ Input your initial user details and password
+ <em>admin</em> can not be used - it is a dedicated Linux User
+ </dt>
+ <dd>
+ Name, username and password are accepted. Login options and home folder
+ encryption choices shown
+ </dd>
+ <dd>Continue button becomes available</dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Restart..." from that
+ menu, and confirm "Restart" in the dialog that appears
+ </dt> <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Power Off..." from
+ that menu, and confirm "Power Off" in the dialog that appears
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Launch Settings from
+ the menu that appears, then "About" in the left panel of the window that
+ appears
+ </dt>
+ <dd>
+ Reported "Memory" is consistent with a Raspberry Pi Compute Module 4 2GB.
+ It should be in the region of 1.6-1.8GB.
+ </dd>
+
+ <ns0:incldue ref="dual-monitor"></ns0:incldue>
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via Network Manager
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the WiFi entry from the menu</li>
+ <li>Select your local WiFi network from the visible networks list</li>
+ <li>Enter the password for your local WiFi network when prompted</li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Disconnect ethernet, if any is plugged in</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ <li>Reconnect ethernet, if it was connected before</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure bluetooth and pair a device
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the Bluetooth entry from the menu (you must be on this page
+ for the Pi to be "discoverable")</li>
+ <li>On another Bluetooth device (e.g. an Android phone) make sure it
+ is "discoverable" (e.g. on Android go into Bluetooth
+ settings)</li>
+ <li>Ensure the other device shows up in the "Devices" list
+ on the Bluetooth settings page, then select it</li>
+ <li>Confirm the pincode on both devices</li>
+ <li>Ensure the other device now shows as anything other that "Not
+ Set Up" in the "Devices" list</li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface can scan for, and pair with, another device
+ </dd>
+
+
+ <dt>
+ Start Firefox and play a YouTube video
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Click on the Firefox icon on the left of the screen</li>
+ <li>Navigate to <a href="https://youtube.com">YouTube</a></li>
+ <li>Select a video (with audio!) to play</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Download and play BigBuckBunny in the built-in video player
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Start a terminal session</li>
+ <li>Run <code>wget https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4</code></li>
+ <li>Once the download has completed, run <code>totem big_buck_bunny_720p_surround.mp4</code></li>
+ <li>The utility may prompt to install codecs; accept the recommendation
+ and install whatever codecs are required</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Press <tt>Super+L</tt> and wait for the lock screen to appear, then
+ fade, then for the monitor to suspend. Move the mouse to wake up the
+ monitor, then enter your password to unlock the desktop.
+ </dt>
+ <dd>
+ Ensure the monitor suspends correctly, that it awakens again correctly,
+ and that the desktop unlocks successfully (without the system hanging).
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1749_RaspberryPi CM4 4GB Desktop b/testcases/1749_RaspberryPi CM4 4GB Desktop
new file mode 100644
index 0000000..1d06149
--- /dev/null
+++ b/testcases/1749_RaspberryPi CM4 4GB Desktop
@@ -0,0 +1,202 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_desktop_cases.xml
+-->
+
+ <p>This test case is to be carried out on a Raspberry Pi Compute Module 4 4GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+
+ <p>Before booting your CM4 with the new image, edit config.txt on the boot
+ (1st) partition and uncomment the <code>#dtoverlay=dwc2,dr_mode=host</code>
+ line to ensure the USB ports on the IO board operate correctly</p>
+
+ <dl>
+
+
+ <dt>Watch the power LED</dt>
+ <dd>
+ Ensure it turns out at boot time, and stays lit as the kernel starts
+ (when the rainbow screen disappears)
+ </dd>
+
+
+ <dt>Watch the boot screen</dt>
+ <dd>Check that the Ubuntu logo, and spinner appear during boot time</dd>
+
+
+ <dt>
+ Ensure you have speakers on your monitor or headphones plugged into it
+ </dt>
+ <dd>
+ Check that the Ubuntu start up sound plays through the monitor's audio
+ output before the initial System Configuration appears
+ </dd>
+
+
+ <dt>Select your timezone, and click on the Continue button</dt>
+ <dd>The 'Who are you?' screen appears</dd>
+
+
+ <dt>
+ Input your initial user details and password
+ <em>admin</em> can not be used - it is a dedicated Linux User
+ </dt>
+ <dd>
+ Name, username and password are accepted. Login options and home folder
+ encryption choices shown
+ </dd>
+ <dd>Continue button becomes available</dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Restart..." from that
+ menu, and confirm "Restart" in the dialog that appears
+ </dt> <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Power Off..." from
+ that menu, and confirm "Power Off" in the dialog that appears
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Launch Settings from
+ the menu that appears, then "About" in the left panel of the window that
+ appears
+ </dt>
+ <dd>
+ Reported "Memory" is consistent with a Raspberry Pi Compute Module 4 4GB.
+ It should be in the region of 3.6-3.8GB.
+ </dd>
+
+ <ns0:incldue ref="dual-monitor"></ns0:incldue>
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via Network Manager
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the WiFi entry from the menu</li>
+ <li>Select your local WiFi network from the visible networks list</li>
+ <li>Enter the password for your local WiFi network when prompted</li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Disconnect ethernet, if any is plugged in</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ <li>Reconnect ethernet, if it was connected before</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure bluetooth and pair a device
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the Bluetooth entry from the menu (you must be on this page
+ for the Pi to be "discoverable")</li>
+ <li>On another Bluetooth device (e.g. an Android phone) make sure it
+ is "discoverable" (e.g. on Android go into Bluetooth
+ settings)</li>
+ <li>Ensure the other device shows up in the "Devices" list
+ on the Bluetooth settings page, then select it</li>
+ <li>Confirm the pincode on both devices</li>
+ <li>Ensure the other device now shows as anything other that "Not
+ Set Up" in the "Devices" list</li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface can scan for, and pair with, another device
+ </dd>
+
+
+ <dt>
+ Start Firefox and play a YouTube video
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Click on the Firefox icon on the left of the screen</li>
+ <li>Navigate to <a href="https://youtube.com">YouTube</a></li>
+ <li>Select a video (with audio!) to play</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Download and play BigBuckBunny in the built-in video player
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Start a terminal session</li>
+ <li>Run <code>wget https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4</code></li>
+ <li>Once the download has completed, run <code>totem big_buck_bunny_720p_surround.mp4</code></li>
+ <li>The utility may prompt to install codecs; accept the recommendation
+ and install whatever codecs are required</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Press <tt>Super+L</tt> and wait for the lock screen to appear, then
+ fade, then for the monitor to suspend. Move the mouse to wake up the
+ monitor, then enter your password to unlock the desktop.
+ </dt>
+ <dd>
+ Ensure the monitor suspends correctly, that it awakens again correctly,
+ and that the desktop unlocks successfully (without the system hanging).
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1750_RaspberryPi CM4 8GB Desktop b/testcases/1750_RaspberryPi CM4 8GB Desktop
new file mode 100644
index 0000000..d43f40c
--- /dev/null
+++ b/testcases/1750_RaspberryPi CM4 8GB Desktop
@@ -0,0 +1,202 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_desktop_cases.xml
+-->
+
+ <p>This test case is to be carried out on a Raspberry Pi Compute Module 4 8GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+
+ <p>Before booting your CM4 with the new image, edit config.txt on the boot
+ (1st) partition and uncomment the <code>#dtoverlay=dwc2,dr_mode=host</code>
+ line to ensure the USB ports on the IO board operate correctly</p>
+
+ <dl>
+
+
+ <dt>Watch the power LED</dt>
+ <dd>
+ Ensure it turns out at boot time, and stays lit as the kernel starts
+ (when the rainbow screen disappears)
+ </dd>
+
+
+ <dt>Watch the boot screen</dt>
+ <dd>Check that the Ubuntu logo, and spinner appear during boot time</dd>
+
+
+ <dt>
+ Ensure you have speakers on your monitor or headphones plugged into it
+ </dt>
+ <dd>
+ Check that the Ubuntu start up sound plays through the monitor's audio
+ output before the initial System Configuration appears
+ </dd>
+
+
+ <dt>Select your timezone, and click on the Continue button</dt>
+ <dd>The 'Who are you?' screen appears</dd>
+
+
+ <dt>
+ Input your initial user details and password
+ <em>admin</em> can not be used - it is a dedicated Linux User
+ </dt>
+ <dd>
+ Name, username and password are accepted. Login options and home folder
+ encryption choices shown
+ </dd>
+ <dd>Continue button becomes available</dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Restart..." from that
+ menu, and confirm "Restart" in the dialog that appears
+ </dt> <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Power Off..." from
+ that menu, and confirm "Power Off" in the dialog that appears
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Launch Settings from
+ the menu that appears, then "About" in the left panel of the window that
+ appears
+ </dt>
+ <dd>
+ Reported "Memory" is consistent with a Raspberry Pi Compute Module 4 8GB.
+ It should be in the region of 7.6-7.8GB.
+ </dd>
+
+ <ns0:incldue ref="dual-monitor"></ns0:incldue>
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via Network Manager
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the WiFi entry from the menu</li>
+ <li>Select your local WiFi network from the visible networks list</li>
+ <li>Enter the password for your local WiFi network when prompted</li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Disconnect ethernet, if any is plugged in</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ <li>Reconnect ethernet, if it was connected before</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure bluetooth and pair a device
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the Bluetooth entry from the menu (you must be on this page
+ for the Pi to be "discoverable")</li>
+ <li>On another Bluetooth device (e.g. an Android phone) make sure it
+ is "discoverable" (e.g. on Android go into Bluetooth
+ settings)</li>
+ <li>Ensure the other device shows up in the "Devices" list
+ on the Bluetooth settings page, then select it</li>
+ <li>Confirm the pincode on both devices</li>
+ <li>Ensure the other device now shows as anything other that "Not
+ Set Up" in the "Devices" list</li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface can scan for, and pair with, another device
+ </dd>
+
+
+ <dt>
+ Start Firefox and play a YouTube video
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Click on the Firefox icon on the left of the screen</li>
+ <li>Navigate to <a href="https://youtube.com">YouTube</a></li>
+ <li>Select a video (with audio!) to play</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Download and play BigBuckBunny in the built-in video player
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Start a terminal session</li>
+ <li>Run <code>wget https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4</code></li>
+ <li>Once the download has completed, run <code>totem big_buck_bunny_720p_surround.mp4</code></li>
+ <li>The utility may prompt to install codecs; accept the recommendation
+ and install whatever codecs are required</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Press <tt>Super+L</tt> and wait for the lock screen to appear, then
+ fade, then for the monitor to suspend. Move the mouse to wake up the
+ monitor, then enter your password to unlock the desktop.
+ </dt>
+ <dd>
+ Ensure the monitor suspends correctly, that it awakens again correctly,
+ and that the desktop unlocks successfully (without the system hanging).
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1752_RaspberryPi Zero 2 Post-install b/testcases/1752_RaspberryPi Zero 2 Post-install
new file mode 100644
index 0000000..301278c
--- /dev/null
+++ b/testcases/1752_RaspberryPi Zero 2 Post-install
@@ -0,0 +1,148 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi Zero 2.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ On the Pi Zero 2W, the LED may blink off periodically to show disk
+ activity, but should otherwise remain lit.
+
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi Zero 2. It should be in the region of 300-500MB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1777_RaspberryPi CM4 8GB Post-install b/testcases/1777_RaspberryPi CM4 8GB Post-install
new file mode 100644
index 0000000..92c8d86
--- /dev/null
+++ b/testcases/1777_RaspberryPi CM4 8GB Post-install
@@ -0,0 +1,182 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+ <p>This test case is to be carried out on a Raspberry Pi Compute Module 4 8GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+
+ <p>Before booting your CM4 with the new image, edit config.txt on the boot
+ (1st) partition and uncomment the <code>#dtoverlay=dwc2,dr_mode=host</code>
+ line to ensure the USB ports on the IO board operate correctly</p>
+
+ <dl>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi Compute Module 4 8GB. It should be in the region of 7.6-7.8GB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI1 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI1 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI1 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1791_RaspberryPi 5 4GB Desktop b/testcases/1791_RaspberryPi 5 4GB Desktop
new file mode 100644
index 0000000..5f8783b
--- /dev/null
+++ b/testcases/1791_RaspberryPi 5 4GB Desktop
@@ -0,0 +1,198 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_desktop_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 5 4GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>Watch the power LED</dt>
+ <dd>
+ Ensure it turns out at boot time, and stays lit as the kernel starts
+ (when the rainbow screen disappears)
+ </dd>
+
+
+ <dt>Watch the boot screen</dt>
+ <dd>Check that the Ubuntu logo, and spinner appear during boot time</dd>
+
+
+ <dt>
+ Ensure you have speakers on your monitor or headphones plugged into it
+ </dt>
+ <dd>
+ Check that the Ubuntu start up sound plays through the monitor's audio
+ output before the initial System Configuration appears
+ </dd>
+
+
+ <dt>Select your timezone, and click on the Continue button</dt>
+ <dd>The 'Who are you?' screen appears</dd>
+
+
+ <dt>
+ Input your initial user details and password
+ <em>admin</em> can not be used - it is a dedicated Linux User
+ </dt>
+ <dd>
+ Name, username and password are accepted. Login options and home folder
+ encryption choices shown
+ </dd>
+ <dd>Continue button becomes available</dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Restart..." from that
+ menu, and confirm "Restart" in the dialog that appears
+ </dt> <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Power Off..." from
+ that menu, and confirm "Power Off" in the dialog that appears
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Launch Settings from
+ the menu that appears, then "About" in the left panel of the window that
+ appears
+ </dt>
+ <dd>
+ Reported "Memory" is consistent with a Raspberry Pi 5 4GB.
+ It should be in the region of 3.6-3.8GB.
+ </dd>
+
+ <ns0:incldue ref="dual-monitor"></ns0:incldue>
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via Network Manager
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the WiFi entry from the menu</li>
+ <li>Select your local WiFi network from the visible networks list</li>
+ <li>Enter the password for your local WiFi network when prompted</li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Disconnect ethernet, if any is plugged in</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ <li>Reconnect ethernet, if it was connected before</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure bluetooth and pair a device
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the Bluetooth entry from the menu (you must be on this page
+ for the Pi to be "discoverable")</li>
+ <li>On another Bluetooth device (e.g. an Android phone) make sure it
+ is "discoverable" (e.g. on Android go into Bluetooth
+ settings)</li>
+ <li>Ensure the other device shows up in the "Devices" list
+ on the Bluetooth settings page, then select it</li>
+ <li>Confirm the pincode on both devices</li>
+ <li>Ensure the other device now shows as anything other that "Not
+ Set Up" in the "Devices" list</li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface can scan for, and pair with, another device
+ </dd>
+
+
+ <dt>
+ Start Firefox and play a YouTube video
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Click on the Firefox icon on the left of the screen</li>
+ <li>Navigate to <a href="https://youtube.com">YouTube</a></li>
+ <li>Select a video (with audio!) to play</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Download and play BigBuckBunny in the built-in video player
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Start a terminal session</li>
+ <li>Run <code>wget https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4</code></li>
+ <li>Once the download has completed, run <code>totem big_buck_bunny_720p_surround.mp4</code></li>
+ <li>The utility may prompt to install codecs; accept the recommendation
+ and install whatever codecs are required</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Press <tt>Super+L</tt> and wait for the lock screen to appear, then
+ fade, then for the monitor to suspend. Move the mouse to wake up the
+ monitor, then enter your password to unlock the desktop.
+ </dt>
+ <dd>
+ Ensure the monitor suspends correctly, that it awakens again correctly,
+ and that the desktop unlocks successfully (without the system hanging).
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1792_RaspberryPi 5 8GB Desktop b/testcases/1792_RaspberryPi 5 8GB Desktop
new file mode 100644
index 0000000..6c08e63
--- /dev/null
+++ b/testcases/1792_RaspberryPi 5 8GB Desktop
@@ -0,0 +1,198 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_desktop_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 5 8GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>Watch the power LED</dt>
+ <dd>
+ Ensure it turns out at boot time, and stays lit as the kernel starts
+ (when the rainbow screen disappears)
+ </dd>
+
+
+ <dt>Watch the boot screen</dt>
+ <dd>Check that the Ubuntu logo, and spinner appear during boot time</dd>
+
+
+ <dt>
+ Ensure you have speakers on your monitor or headphones plugged into it
+ </dt>
+ <dd>
+ Check that the Ubuntu start up sound plays through the monitor's audio
+ output before the initial System Configuration appears
+ </dd>
+
+
+ <dt>Select your timezone, and click on the Continue button</dt>
+ <dd>The 'Who are you?' screen appears</dd>
+
+
+ <dt>
+ Input your initial user details and password
+ <em>admin</em> can not be used - it is a dedicated Linux User
+ </dt>
+ <dd>
+ Name, username and password are accepted. Login options and home folder
+ encryption choices shown
+ </dd>
+ <dd>Continue button becomes available</dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Restart..." from that
+ menu, and confirm "Restart" in the dialog that appears
+ </dt> <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Click the power icon at the top right of the screen, and expand the "Power
+ Off / Log Out" entry in the menu that appears, then "Power Off..." from
+ that menu, and confirm "Power Off" in the dialog that appears
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Launch Settings from
+ the menu that appears, then "About" in the left panel of the window that
+ appears
+ </dt>
+ <dd>
+ Reported "Memory" is consistent with a Raspberry Pi 5 8GB.
+ It should be in the region of 7.6-7.8GB.
+ </dd>
+
+ <ns0:incldue ref="dual-monitor"></ns0:incldue>
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via Network Manager
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the WiFi entry from the menu</li>
+ <li>Select your local WiFi network from the visible networks list</li>
+ <li>Enter the password for your local WiFi network when prompted</li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Disconnect ethernet, if any is plugged in</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ <li>Reconnect ethernet, if it was connected before</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure bluetooth and pair a device
+ <ul>
+ <li>Launch settings</li>
+ <li>Select the Bluetooth entry from the menu (you must be on this page
+ for the Pi to be "discoverable")</li>
+ <li>On another Bluetooth device (e.g. an Android phone) make sure it
+ is "discoverable" (e.g. on Android go into Bluetooth
+ settings)</li>
+ <li>Ensure the other device shows up in the "Devices" list
+ on the Bluetooth settings page, then select it</li>
+ <li>Confirm the pincode on both devices</li>
+ <li>Ensure the other device now shows as anything other that "Not
+ Set Up" in the "Devices" list</li>
+ </ul>
+ </dt>
+ <dd>
+ The Bluetooth interface can scan for, and pair with, another device
+ </dd>
+
+
+ <dt>
+ Start Firefox and play a YouTube video
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Click on the Firefox icon on the left of the screen</li>
+ <li>Navigate to <a href="https://youtube.com">YouTube</a></li>
+ <li>Select a video (with audio!) to play</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Download and play BigBuckBunny in the built-in video player
+ <ul>
+ <li>Ensure you have functioning speakers / a headset plugged into your
+ monitor</li>
+ <li>Start a terminal session</li>
+ <li>Run <code>wget https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4</code></li>
+ <li>Once the download has completed, run <code>totem big_buck_bunny_720p_surround.mp4</code></li>
+ <li>The utility may prompt to install codecs; accept the recommendation
+ and install whatever codecs are required</li>
+ </ul>
+ </dt>
+ <dd>
+ Check the video plays smoothly, and that audio is output through the
+ monitor, or speakers / headset plugged into the monitor
+ </dd>
+
+
+ <dt>
+ Press <tt>Super+L</tt> and wait for the lock screen to appear, then
+ fade, then for the monitor to suspend. Move the mouse to wake up the
+ monitor, then enter your password to unlock the desktop.
+ </dt>
+ <dd>
+ Ensure the monitor suspends correctly, that it awakens again correctly,
+ and that the desktop unlocks successfully (without the system hanging).
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1793_RaspberryPi 5 4GB Post-install b/testcases/1793_RaspberryPi 5 4GB Post-install
new file mode 100644
index 0000000..7baf157
--- /dev/null
+++ b/testcases/1793_RaspberryPi 5 4GB Post-install
@@ -0,0 +1,203 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 5 4GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 5 4GB. It should be in the region of 3.6-3.8GB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 (black) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB3 (blue) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI1 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI1 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI1 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
diff --git a/testcases/1794_RaspberryPi 5 8GB Post-install b/testcases/1794_RaspberryPi 5 8GB Post-install
new file mode 100644
index 0000000..f981da6
--- /dev/null
+++ b/testcases/1794_RaspberryPi 5 8GB Post-install
@@ -0,0 +1,203 @@
+<!-- Please do not edit this file directly; it was generated with the
+ tools/test_case_gen script using the following configuration as input:
+ definitions/pi_server_cases.xml
+-->
+
+
+ <p>This test case is to be carried out on a Raspberry Pi 5 8GB.</p>
+ <p>Follow the installation steps at <a href="https://ubuntu.com/download/iot/installation-media">
+ IoT installation media</a>
+ </p>
+ <dl>
+
+
+ <dt>
+ After powering on the machine, look at the power LED
+ </dt>
+ <dd>
+ The power LED illuminates and stays illuminated while the kernel continues
+ to boot.
+ </dd>
+
+
+ <dt>
+ Run <code>sudo flash-kernel</code>
+ </dt>
+ <dd>
+ Exit code is clean (0) and no error messages are reported
+ </dd>
+
+
+ <dt>
+ Run <code>sudo reboot</code>
+ </dt>
+ <dd>
+ System reboots successfully to a login prompt
+ </dd>
+
+
+ <dt>
+ Run <code>sudo shutdown -h now</code>
+ </dt>
+ <dd>
+ System shuts down in a reasonable time (less than a minute)
+ </dd>
+
+
+ <dt>
+ Check output of <code>free -h</code>
+ </dt>
+ <dd>
+ Reported "Mem" under "total" is consistent with a
+ Raspberry Pi 5 8GB. It should be in the region of 7.6-7.8GB.
+ </dd>
+
+
+ <dt>
+ Perform a large (300-600MB) file copy to USB storage
+ <ul>
+ <li>Generate a large (500MB) file: <code>dd if=/dev/urandom of=rubbish
+ bs=1M count=500</code></li>
+ <li>Insert a USB stick (appropriately sized) into a spare USB port</li>
+ <li>Make a mount directory: <code>sudo mkdir /mnt/stick</code></li>
+ <li>Mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (modify mount-point as necessary; check <code>sudo dmesg</code>
+ output if unsure)</li>
+ <li>Copy the file: <code>sudo cp rubbish /mnt/stick/</code></li>
+ <li>Unmount the stick: <code>sudo umount /mnt/stick</code></li>
+ <li>Remove the stick from the USB port</li>
+ <li>Re-insert the stick into the USB port</li>
+ <li>Re-mount the stick: <code>sudo mount /dev/sda1 /mnt/stick</code>
+ (again, adjust mount-point as necessary)</li>
+ <li>Compare the copied file to that on the stick: <code>cmp rubbish
+ /mnt/stick/rubbish</code></li>
+ </ul>
+ </dt>
+ <dd>
+ <code>cmp</code> returns 0 and outputs nothing indicating the files are
+ identical
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB2 (black) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ Connect a USB keyboard to one of the USB3 (blue) ports
+ </dt>
+ <dd>
+ Verify that keys typed on the keyboard appear on the console
+ </dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI0 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI0 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI0 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ With an HDMI monitor that supports audio plugged into
+ the HDMI1 output, and an available MP3 file:
+ <ul>
+ <li>Install mpg321 and amixer with <code>sudo apt install mpg321
+ alsa-utils</code></li>
+ <li>Find the correct hardware output for the HDMI1 port:
+ <code>cat /proc/asound/cards</code> and note the number at the start
+ of the line for the HDMI1 port (usually 0 and possibly
+ 1 for any connected monitor(s), and 1 or possibly 2 for the headphone
+ jack)</li>
+ <li>Attempt to play your MP3 file with: <code>mpg321 -o alsa -a
+ hw:<em>num</em>,0 <em>music.mp3</em></code> substituting
+ <em>num</em> for the number found during the previous step, and
+ <em>music.mp3</em> for your choice of MP3 file, e.g. <code>mpg321 -o
+ alsa -a hw:0,0 "Jeff Wayne - War of the
+ Worlds.mp3"</code></li>
+ <li>Use <tt>Ctrl+C</tt> to end playback early, if you wish</li>
+ <li>If you cannot hear anything, first check that the mixer's volume is
+ not set too low; run <code>alsamixer</code>, and adjust the volume
+ (<tt>J</tt> for down, <tt>K</tt> for up) before exiting
+ (<tt>Esc</tt>) and retrying playback</li>
+ </ul>
+ </dt>
+ <dd>Audio can be heard through the device</dd>
+
+
+ <dt>
+ Check auto-configuration of ethernet
+ <ul>
+ <li>Run <code>ip addr</code></li>
+ <li>Check that a valid IP address is recorded on the eth0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "eth0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ <dt>
+ Configure wifi via netplan
+ <ul>
+ <li>Place the following in <code>/etc/netplan/wifi.yaml</code>
+ (substituting the SSID and password as necessary):</li>
+ <li><pre>
+ network:
+ version: 2
+ wifis:
+ wlan0:
+ dhcp4: true
+ access-points:
+ my-ssid-here:
+ password: my-password-here</pre>
+ </li>
+ <li>Run <code>sudo netplan apply</code></li>
+ <li>Wait a few seconds (to allow DHCP to complete), then run <code>ip
+ addr</code></li>
+ <li>Check that a valid IP address is recorded on the wlan0 interface</li>
+ <li>Check <code>ping google.com</code> successfully pings a few times
+ (<tt>Ctrl+C</tt> to cancel)</li>
+ </ul>
+ </dt>
+ <dd>
+ The "wlan0" interface should have a DHCP
+ assigned IP address and you should be able to ping google.com
+ </dd>
+
+
+ </dl>
+ <p>If <strong>all</strong> actions produce the expected results listed,
+ please <a href="results#add_result">submit</a> a 'passed' result.</p>
+ <p>If <strong>any</strong> action fails, or produces an unexpected result,
+ please <a href="results#add_result">submit</a> a 'failed' result and <a href="../../buginstructions">file a bug</a>. Please be sure to include
+ the bug number when you <a href="results#add_result">submit</a> your
+ result.</p>
+
\ No newline at end of file
Follow ups