Important

This is the latest documentation for the unstable development branch of Project ACRN (master).
Use the drop-down menu on the left to select documentation for a stable release such as v2.7.

Acrnlog

Description

acrnlog is a userland tool used to capture an ACRN hypervisor log. It runs as a Service VM service at boot, capturing two kinds of logs:

  • log of the running hypervisor

  • log of the last running hypervisor if it crashed and the logs remain

Log files are saved in /var/log/acrnlog/, so the log files would be lost after a system reset.

Usage

The acrnlog tool is launched as a service at boot, and limited to supporting four 1MB log files by default. You can change this log file limitation temporarily or permanently.

Options:

-h

display help

-t

specify a polling interval (ms). Once buffer is empty, acrnlog stops and starts reading in specified interval. If an incomplete log warning is reported, please try with a smaller interval to get a complete log.

-s

limit the size of each log file, in KB. 0 means no limitation.

-n

specify the number of log files to keep, old files would be deleted.

Temporary Log File Changes

You can temporarily change the log file setting by following these steps:

  1. Stop the acrnlog service:

    sudo systemctl disable acrnlog
    
  2. Restart acrnlog, running in the background, and specify the new number of log files and their size (in MB). For example:

    sudo acrnlog -n 8 -s 4 &
    

You can use the loglevel command in the hypervisor shell (not the Service VM shell) to query or dynamically override the hypervisor log level configuration settings made in the ACRN Configurator tool to the hv.DEBUG_OPTIONS.MEM_LOGLEVEL, hv.DEBUG_OPTIONS.CONSOLE_LOGLEVEL, and hv.DEBUG_OPTIONS.NPK_LOGLEVEL options. If the system is rebooted, these log level settings will return to the values set by the ACRN Configurator.

The mem_loglevel parameter controls the log to be saved using acrnlog, while the console_loglevel parameter controls the log output to the console. For example, in the hypervisor shell you can use these commands:

ACRN:\>loglevel
console_loglevel: 3, mem_loglevel: 5, npk_loglevel: 5
ACRN:\>loglevel 2 5
ACRN:\>loglevel
console_loglevel: 2, mem_loglevel: 5, npk_loglevel: 5

Permanent Log File Changes

You can permanently change the log file settings by editing /usr/lib/systemd/system/acrnlog.service and use the -n and -s options on the ExecStart cmd, and restart the service. For example, acrnlog.service could have these parameters added:

ExecStart=/usr/bin/acrnlog -n 8 -s 4

and then restart the service with:

sudo systemctl daemon-reload
sudo systemctl restart acrnlog

Build and Install

Source code for the acrnlog tool is in the misc/debug_tools/acrn_log directory. To build and install the tool from source, run these commands:

make
sudo make install

and if you changed the acrnlog.service file, install it:

sudo cp acrnlog.service /usr/lib/systemd/system/