How to enable Virtualization AMD-V Aspire one AO725 from BIOS or otherwise

10,708

Solution 1

Included procedure for both Intel and AMD as if anyone is on either. Also included some information that you know like grep for svm – for completeness sake.

Checking support

Check if visualization is available

  • Intel check if vmx is found (VT-x)

    grep -o "^flags\s*:.*\svmx\(\s\|$\)" /proc/cpuinfo
    
  • AMD check if svm is found (AMD-V)

    grep -o "^flags\s*:.*\ssvm\(\s\|$\)" /proc/cpuinfo
    

If not found, one are most likely out of luck.

One can also check flags from BIOS by dmidecode

dmidecode --type 4 | grep -i virt
VME (Virtual mode extension)        # On a specific i386

Checking status - require root privileges

Read the machine/model specific registers (MSR), (man msr), using msr-tools if not enabled (read fails) load msr by:

modprobe msr

Then use rdmsr, (quick intoduction) to read processor MSR's.


Intel

For Intel processors one can check current status by reading IA32_FEATURE_CONTROL(1) from the processor.

The IA32_FEATURE_CONTROL MSR (at address 03AH) provides feature control bits that configure operation of VMX and SMX.

Execute commands:

rdmsr -f 0:0 0x3a # Read bit-field 0 (Lock-bit)
rdmsr -f 2:2 0x3a # Read bit-field 2 (Enable VMX outside SMX operation)

These commands should give:

0:0 2:2
  0      ENABLED  (Not 100% sure about this one, `kvm-ok` reports VMX
                   as enabled when 0 – perhaps meant as modifiable.)
  1   1  ENABLED
  1   0  DISABLED 

Bit 2 enables VMX outside SMX operation. If this bit is clear, an attempt to execute VMXON will cause a general- protection exception if executed outside SMX operation. Attempts to set this bit on logical processors that do not support VMX operation cause general-protection exceptions.

(1) Intel® 64 and IA-32 Architectures Software Developer’s Manual Vol. 2C 5-1 pp 1072.


AMD

Read Extended Feature Enable Register (EFER)(2) pp. 55, 103 in PDF where bit 12 is "Secure Virtual Machine Enable" (SVME) which indicate whether hardware virtualization is enabled.

Execute command:

rdmsr -f 12:12 0xc0000080 # If set (1), SVME is enabled.

Secure Virtual Machine Enable (SVME) Bit. Bit 12, read/write. Enables the SVM extensions. When this bit is zero, the SVM instructions cause #UD exceptions. EFER.SVME defaults to a reset value of zero. The effect of turning off EFER.SVME while a guest is running is undefined; therefore, the VMM should always prevent guests from writing EFER. SVM extensions can be disabled by setting VM_CR.SVME_DISABLE.

To check if it is disabled for session check VM_CR.SVME_DISABLE(2) pp 57, 504 (105, 552 in PDF)

Execute command:

rdmsr -f 4:4 0xc0010114 # If set (1), it is disabled.

as in: you would have to enable in BIOS.

SVMDIS — Bit 4. When this bit is set, writes to EFER treat the SVME bit as MBZ. When this bit is clear, EFER.SVME can be written normally. This bit does not prevent CPUID from reporting that SVM is available. Setting SVMDIS while EFER.SVME is 1 generates a #GP fault, regardless of the current state of VM_CR.LOCK. This bit is not affected by SKINIT. It is cleared by INIT when LOCK is cleared to 0; otherwise, it is not affected.

(2) AMD64 Architecture Programmer’s Manual, Volume 2: System Programming.


KVM

If KVM modules are loaded you'll need to remove them by:

sudo modprobe -r kvm_intel
sudo modprobe -r kvm_amd 

for Intel and AMD respectively as they clash with Virtual Box. Ref.


Enabling

For your specific model I guess @Anthon has said plenty.

As he mention, by using UEFI you most likely would have to reinstall your host system. Other risks by upgrading BIOS is a lot of things where a few could be:

  • New BIOS could trigger latent bugs in hardware.
  • The flash of BIOS could crash due to software corruption etc.
  • One could have downloaded wrong BIOS (for a different model).
  • Computer could crash, loose power in the mids of flash. (AKA freak accident).
  • N^x unknown factors could play in.
  • etc.

If flash crashes it could render your PC completely unbootable and a fix could prove to be hard. (You can't i.e. boot and fix BIOS.)

You should have a backup of current BIOS and a USB rescue stick.

Search the web, e.g. look at this. Check if your model has "built-in BIOS recovery routine" as mentioned in last post on that page. (As you can see even that can give trouble).

And yes, again as mentioned by Anthon. If you do not have any other PC easily accessible for web-search in case of failure, it is far from recommended.


If you are willing to hack, risk unknown repercussions etc. you can try to use a "unofficial BIOS version". This thread at BOIS-Mods have both software and a general discussion. Would read entire thread thoroughly and ask if any questions.

Depending on your level of interest, time, and knowledge you could also try to hack this on your own ;)

SVM enable

Solution 2

The output from lscpu indicates what the CPU is capable of doing, not necessarily that this is enabled in the BIOS or that you go into the BIOS and can configure it.

The bios manual of the machine does not have any indication that you can set this, but normally browsing through the limited number of CPU options in your BIOS will show you if you can.

If you cannot find it and you probably have to go for the UEFI capable upgrade of your BIOS provided by Acer which enables (in UEFI mode) the AMD-V. That most likely will require a reinstallation of your host system.

An alternative is try and install ZHGBIOS.FD from BIOS version 1.05 download at the ACER website, there is supposedly an option to set ZSM under Power -> Advanced CPU Control.

If you have not done BIOS upgrades before and/or if this is the only machine you have to get to the Internet in case things go wrong, I cannot recommend either of these options.

Share:
10,708
Dzamo Norton
Author by

Dzamo Norton

Updated on September 18, 2022

Comments

  • Dzamo Norton
    Dzamo Norton almost 2 years

    I'm try to use the virtualbox to virtualize a 64-bit system but the error that I get is:

    La aceleración VT-x/AMD-V ha sido habilitada, pero no es funcional. Su sistema invitado de 64-bit fallára al detectar una CPU de 64-bit y no podrá arrancar.
    Compruebe que VT-x/AMD-V están habilitadas en la BIOS de su computadora anfitrión.
    

    For the ones not knowing Spanish, google translate gives:

    VT-x/AMD-V acceleration has been enabled but is not functional. 
    Its system of 64-bit guest will fail to detect a 64-bit CPU and will not boot.
    Check VT-x/AMD-V are enabled in the BIOS of your host computer.
    

    I've checked the AMD V CPU Virtualization Extensions with the following command:

    grep --color svm /proc/cpuinfo
    

    The output is:

    flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
             pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb
             rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid perfmperf
             pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm extapic
             cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt arat cpb
             hw_pstate npt lbrv svm_lock nrip_save pausefilter
    flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
             pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb
             rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid
             aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm
             extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt
             arat cpb hw_pstate npt lbrv svm_lock nrip_save pausefilter
    

    Running the command lscpu

    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                2
    On-line CPU(s) list:   0,1
    Thread(s) per core:    1
    Core(s) per socket:    2
    Socket(s):             1
    NUMA node(s):          1
    Vendor ID:             AuthenticAMD
    CPU family:            20
    Model:                 2
    Stepping:              0
    CPU MHz:               800.000
    BogoMIPS:              1996.36
    Virtualization:        AMD-V
    L1d cache:             32K
    L1i cache:             32K
    L2 cache:              512K
    NUMA node0 CPU(s):     0,1
    

    Update

    Run the command:

    grep -o "^flags\s*:.*\ssvm\(\s\|$\)" /proc/cpuinfo
    

    the output is:

    flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm 
    flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm 
    

    so, It's possible fixed it's from the bios or otherwise.

    How to fix the mistake? Is it possible at all?

  • Runium
    Runium about 11 years
    @CristianChaparroA.: Ah. no, extremely sorry. Forgot to update the grep line. Was meaning to update it. From the output you posted you have svm. Else I have updated the answer with some more bla bla. ;)