Kernel upgrade testing

From postmarketOS

Step by step instructions for testing new kernels in merge requests, so we have comparable results.

Steps

  • Install unmodified postmarketOS edge or stable (depending on MR target branch)
  • Boot up (while watching serial log, if possible, look for errors)
  • Fill out the template below for the current (old) kernel
  • Install the new kernel
  • Reboot (look for errors again in serial log)
  • Fill out the template below for the new kernel

Result template

Add results as OK or NOK. If there's more information (e.g. it did not work every time, add an asterisk and explain below.)

Old kernel version:

| Feature                  | Old kernel | New kernel |
| ------------------------ | ---------- | -----------|
| Bluetooth                |            |            |
| Call (incoming)          |            |            |
| Call (outgoing)          |            |            |
| Camera (front)           |            |            |
| Camera (rear)            |            |            |
| HDMI                     |            |            |
| LEDs                     |            |            |
| SMS                      |            |            |
| System suspend           |            |            |
| Video in browser         |            |            |
| (PinePhone/Tab) ram_freq |            |            |

Notes for specific tests

System suspend

Run the following command over SSH, e.g. while the video in the browser is still playing. For the PinePhone, this will test the crust firmware (pmaports!1163).

$ sudo loginctl suspend

Depending on what you want to test regarding suspend, you could also use echo mem | sudo tee /sys/power/state. This command does not go throught the elogind API, therefore it won't trigger applications that listen for suspend events, such as eg25-manager. loginctl suspend goes through the same code paths, as if the phone would suspend automatically after some time of inactivity.

LEDs

In Phosh, based on pmaports#766 (comment):

$ killall feedbackd
$ G_MESSAGES_DEBUG=all G_LOG_LEVEL_INFO=all G_DEBUG=all DISPLAY=:0 /usr/libexec/feedbackd &
$ G_MESSAGES_DEBUG=all G_LOG_LEVEL_INFO=all G_DEBUG=all DISPLAY=:0 fbcli -E message-missed-email

Camera

Install megapixels, take a photo with the rear camera, switch cameras, take a selfie.

HDMI

In case of the PinePhone, if it does not work and you had power plugged into the USB dock, test again without power.

(PinePhone/Tab) ram_freq

Ensure reading the RAM frequency from /proc is still working (pmaports!1998):

$ cat /proc/device-tree/memory/ram_freq 
528

Stable release testing

Each stable release should be tested on supported devices. See the testing template below. If you find something that is not covered by the template, feel free to extend it here. Ideally this template should also act as a "todo" list of "What should work so the device can be considered "complete" Linux-On-Phone experience".

<!--
Suggestions on filling this template:
* You can "tick" the checkboxes by replacing [ ] with [x] before sending the template.
* You can write comments after each points to explain why the thing is not marked as working (e.g. `*(No driver.)*` )
* You can cross out points if, for example, your hardware can't do the feature (e.g. `[ ] ~~Cellular~~ *(No modem in the tablet)*` )
  (Feel free to remove sub-points from the category if it's obvious that nothing will work so the message takes less space.)
-->
Device: `FIXME` ([wiki](FIXME))  
UI: `FIXME`  
Installation method: `FIXME`  
Image (if installed via image): `FIXME.img.xz`  

- [ ] Device boots and it's possible to login (password: 147147)

##### Hardware:
- [ ] Automatic screen rotation works
- [ ] Brightness control works
  - [ ] Light sensor (Automatic brightness) works
- [ ] Touch (with multitouch) works
- [ ] Buttons work
- [ ] Haptic feedback works
- [ ] Notification led works 
- [ ] Fuel gauge works
  - [ ] Charger detected and charging works 
- [ ] External display
  - [ ] Sound over HDMI/DP works
- [ ] USB OTG / host mode
- [ ] Torch / flashlight
- [ ] GPS works
  - [ ] Magnetometer or compass works
- [ ] NFC works
- [ ] IR blaster works

<!-- Advanced tests, useful for the newly brought up devices:

##### Chipset specific features:
- [ ] SMP works (all CPU codes detected)
  - [ ] Frequency scaling works, full range available
- [ ] Device suspend works
- [ ] Hardware video encoder/decoder works
- [ ] GPU/3D acceleration works
-->

##### Sound:
- [ ] Speakers, headphones and earpiece work
- [ ] Headphones selected automatically when plugged in
- [ ] Microphone works

##### Connectivity:
- [ ] Bluetooth
- [ ] WiFi
- [ ] Cellular:
  - [ ] Mobile data works
  - [ ] SMS works
  - [ ] Making a call works
  - [ ] Receiving a call works
    - [ ] Proximity sensor works

##### Camera:
- [ ] Front camera
  - [ ] Lens actuator (autofocus) works
- [ ] Rear camera
  - [ ] Lens actuator (autofocus) works

##### Extra notes:

##### Verdict:
- [ ] Testing complete, :ship: it