Acer Aspire V5-122p Enable SVM How-To

Discussion in 'BIOS Mods' started by zuvieltext, May 20, 2013.

Tags:
  1. zuvieltext

    zuvieltext MDL Junior Member

    Jun 11, 2011
    62
    24
    0
    #1 zuvieltext, May 20, 2013
    Last edited by a moderator: Apr 20, 2017
    Hello Folks... "Long time no see" :wheelchair:

    It's been a while since I did any heavy bios modding, but for the last couple of hours I've been busy modding my new laptop :rolleyes:.

    Anyway, this Acer V5 does not have a whole lot of BIOS options. Especially, people who need virtualization (and for this reason: a unlocked AMD's SVM feature) have a hard time with the original BIOS. Of course, there is a Setting to Enable/Disable SVM, but it's on the "Advanced Tab" which is hidden from view.

    Furthermore, since this cheap ultra-thin laptop is rather new, there's no bios image which can be patched to enable the tab.
    So a "creative" solution is necessary.

    As all recent laptops, this one uses a Insyde Bios (says 3.7). Acer's Laptop Bios itself says it's version v2.02, dated: 2013-04-16. Sooo... what did I do then? Well, UEFI Bioses are storing the Setup Settings within the "efivars".

    Luckily, any recent Linux kernel has already the necessary tools to "edit these variables" from userspace.

    There's no need to for a external flasher, or any RSA shenanigans this time!

    YAY . It's almost as easy as "flipping switch" could be. :wave:


    what did I do:
    1. Disable UEFI Secure Boot
      This was necessary because most Linux Distros Bootloaders are not signed with a valid key.
      The Secure Boot Setting is present in the BIOS menu (Hit F2 - while booting or via Windows 8's Enter UEFI Setup). But
      in order to change it, one has to set a "Supervisor Password" in the Security Tab.
    2. Boot into Linux via UEFI
      Booting via UEFI is important because the efi runtime service is not accessible when linux was booted "the old way".
      (Note: It's probably not necessary to install Linux, a live-cd or live-usb should do just as well)
    3. Access UEFI via a console/terminal
      This needs to be done with "root" privilegies. Normally, "sudo bash" or "su" should do the trick.
    4. mount efivars
      First, the "efivars" module needs to be loaded.
      Code:
      # modprobe efivars
      
      This module exports creates the necessary paths in /sys/firmware/efi. In order to edit the settings, I used the special "pseudo-filesystem" efivarfs (this allows really easy access, just like a "file").
      Code:
      mount none /sys/firmware/efi/efivars -t efivarfs
      
    5. Find the EFI Variable Storage for the "Setup Utility" (= BIOS)
      On my system it was located in: /sys/firmware/efi/efivars/Setup-a04a27f4-df00-4d42-b552-39411302113d
      As I said, this is a simple file and can be edited with any tools and hexeditors.
      It should look like this:
      Code:
      # hexdump -C /sys/firmware/efi/efivars/Setup-a04a27f4-df00-4d42-b552-39411302113d
      
      00000000  07 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      *
      00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 02 00 00  |................|
      00000040  00 00 00 00 00 00 00 00  00 00 00 01 01 01 00 00  |................|
      00000050  00 00 00 00 00 01 01 01  01 01 00 00 00 00 00 00  |................|
      00000060  00 00 00 00 03 00 02 00  02 01 00 00 00 00 00 00  |................|
      00000070  00 01 01 01 01 01 00 00  00 01 00 01 00 02 00 01  |................|
      00000080  00 01 00 00 02 00 00 00  00 01 01 00 00 00 00 00  |................|
      00000090  01 00 00 00 00 00 00 00  00 00 02 01 80 06 07 00  |................|
      000000a0  00 00 00 11 11 01 00 18  14 00 00 00 00 01 01 00  |................|
      000000b0  00 00 00 00 00 01 01 00  00 00 00 00 00 00 01 00  |................|
      000000c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      *
      000000e0  00 00 00 00 00 01 00 00  00 00 00 00 00 00 00 00  |................|
      000000f0  00 01 01 00 00 00 00 00  00 00 00 00 00 00 00 01  |................|
      00000100  00 00 00 00 01 00 00 01  00 00 00 00 00 00 00 00  |................|
      00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  |................|
      00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      *
      00000140  01 00 00 00 01 01 01 01  01 01 01 01 01 00 00 00  |................|
      00000150  00 00 00 01 00 02 03 02  03 02 03 02 03 00 00 00  |................|
      00000160  03 02 00 00 04 02 00 00  04 02 00 00 04 02 00 00  |................|
      00000170  04 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  |................|
      00000180  00 00 01 00 01 01 00 01  00 00 00 00 00 00 00 00  |................|
      00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 01 00  |................|
      000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      *
      000001d0  00 00 00 00 00 00 00 01  01 01 00 00 00 00 00 00  |................|
      000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      *
      00000200  00 00 00 00 00 00 00 00  00 00 00 00 00 00 01 01  |................|
      00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
      *
      0000027f
      
      (Note: The 00, 01, 0x pattern is a obvious sign that the SVM Setting is controlled by a single bit in one of the 639 ( = 0x27f) bytes in this file.)
    6. Flipping the SVM Disable Bit.
      Finding which Bit controlled the setting turned out to be the only "major pain". I think I'm going to explain it in a
      different post, since this "should" work for systems as well! But in this case, "You" can save yourself the troubles.
      For the Acer Aspire V5-122p with the Bios v2.02 the Setting (when accessed via efivars/Setup-...) is located at
      offset 0xf4.

      In order to change the bit, a simple hex editor is enough. I used ghex.
      The final "file" should be exactly the same, except this one diff: :cool:
      Code:
      [...] (same as above)
      000000f0  00 01 01 00 01 00 00 00  00 00 00 00 00 00 00 01  |................|
      [...] (same as above)
      
      If you are not comfortable with any tools, you can of course copy the file to a different System and edit it there
      and copy it back. If you do that, you'll have to overwrite the efi settings file via: ;)
      Code:
      # cp /path/to/patched/Setup-file /sys/firmware/efi/efivars/Setup-a04a27f4-df00-4d42-b552-39411302113d
      
    7. Verify :biggrin:
      Take a second look again at /sys/firmware/efi/efivars/Setup-a04a27f4-df00-4d42-b552-39411302113d

    8. Shutdown
      Apparently, in order to get rid of the SVM-Lock, the CPU (and System for that matter) have to be "shutdown". A "reboot" or "reset" is not enough. (=> reach for the power switch)

    9. Turn it on Again
      And enjoy the SVM Feature. :biggrin:


    Note: This how-to is WIP. If you have any suggestions or questions about the procedure or how to enable
    other settings => please let me know. It would be nice, if this "procedure" could also be made done in Windows.
    But for me, this seems to be more complicated?!.

    Note2: This mod isn't permanent and it won't void your warranty. If you won't like it, you can easily restore your system
    back to factory specs by loading the "factory settings" in the bios menu.

    :cheers: :sleep2:

    BONUS: (For people who want to replace the wifi card)
    One screw is hidden behind the small, rectangular, black rubber thing on the back (battery port). I have already replaced the 1x1 AR9565 with Intel 6235N (Had to add another antenna). There's no whitelist, but rf-kill switch is enabled. The Intel Advanced-N 6235 works fine in Linux but it doesn't work in Windows 8. :nono2:
     
  2. zuvieltext

    zuvieltext MDL Junior Member

    Jun 11, 2011
    62
    24
    0
    #2 zuvieltext, May 20, 2013
    Last edited by a moderator: Apr 20, 2017
    (OP)
    Acer Aspire V5-122p Enable Hidden Pages

    Enable Hidden Pages :biggrin:

    Much in the same way, the hidden pages (Advanced and Power) and a few extra options can be enabled by modifing the efi variables at position 0x21b and 0x21c. Just set them to "0x01" and reboot.
    Code:
    00000210  00 00 00 00 01 00 00 00  00 00 00 01 01 00 00 00  |................|
    
    If someone is interested, I made this short video which shows which options are available in the "hidden tabs" :director:.
     
  3. bodhi.zazen

    bodhi.zazen MDL Novice

    Aug 26, 2013
    2
    0
    0
    Can you post additional information on how you did this. I have tried Fedora 17, 18 , and 19 as well as Ubuntu 12.04 and 12.10. I am unable to save edits to /sys/firmware/efi/efivars =( I can copy the file to /root, edit it there, but can not copy back from /root to /sys/firmware/efi/efivars What OS and version / kernel did you use to make these edits ?
     
  4. zuvieltext

    zuvieltext MDL Junior Member

    Jun 11, 2011
    62
    24
    0
    Debian Jessie/sid. Kernel is 3.10-2.
     
  5. gboswellsac

    gboswellsac MDL Novice

    Apr 11, 2012
    2
    0
    0
    Wow this is great information but seems I cannot get a usb to boot with UEFI set .. if I do legacy it boots but your gems do not.... error mount point not found .... the .../efi/.... is not there. I've been using Unix/Linux for years but not at your level for sure. I rest to defaults and opened the F12 (boot) key but under UEFI only shows Win 8 , as it should.What did this old fart miss.
     
  6. zuvieltext

    zuvieltext MDL Junior Member

    Jun 11, 2011
    62
    24
    0
    Ah, Isn't there an option "Secure Boot" in your BIOS? (If there is, but you can't change it: Set a Supervisor Password in the Security Tap). Once "Secure Boot" is disabled you should be able to boot linux via UEFI and get the /sys/firmware/efi directory.
     
  7. gboswellsac

    gboswellsac MDL Novice

    Apr 11, 2012
    2
    0
    0
    Thanks, I had already done that as per your original post, which is awesome.:worthy: I set the USB as first in boot order and when I hit the F12 with usb (bootable) it still only shows the Toshiba HDD as only boot device. Feel real dumb here but have to continue if i ever want the Virtual setting active. BTW I was able to install VMPlayer 4.0 and the virtuals and with the Quad 1450 performs well even without the V4 settings active. You have me hooked on learning how you do all this so I'll wait for a response which I really appreciate knowing the many many more knowlegabe tech seeking your wisdom. Remember doing similar stuff using masm in the OLD DOS days ... probably before you were born, sure shows how much I have fallen behind in being "on top of it" ... :( Thanks again Boz
     
  8. zuvieltext

    zuvieltext MDL Junior Member

    Jun 11, 2011
    62
    24
    0
    Which USB-Port are you using? The one on the left (usb 3.0 - might not work), or the one on the right (usb 2.0 - this one should work)? Have you tried both?

    Also how did you make the usb-boot stick? If you have another unix-like pc available, you can follow the instructions
    at 4.3.1. Preparing a USB stick using a hybrid CD or DVD image. (yep, cp debian.iso /dev/sdX or dd if=debian.iso of=/dev/sdX is enough - For windows should be able to use win32-image-writer to write the raw image on a stick)

    :Lighten:

    Actually... I'm old enough to have played with masm 4.0 and masm 7.0 :D. That said, I've never mastered the art quite like Hartverdrahtet - Akronyme Analogiker | 4k Revision 2012, elevated by Rgba & TBC | 4k intro (FullHD 1080p demoscene demo), (endless list)... That is simply amazing :dribble:.
     
  9. frogspawn

    frogspawn MDL Novice

    Oct 6, 2013
    8
    0
    0
    Thanks zuvieltext!

    I plan on using this for visualization projects when I receive the laptop.

    Have you noticed any problems with enabling SVM or running virtual machines?
     
  10. sliverstorm

    sliverstorm MDL Novice

    Nov 4, 2012
    1
    1
    0
    I really appreciate this information! I just successfully applied it, after half a day's struggle. Mostly because every Debian ISO I tried had a different problem. Eventually I said, to hell with Debian as a live-usb (Debian is fine on-disk, but the live support is lacking... only stable has livecd builds, and stable has too old of a kernel).

    What worked for me:

    1) Ubuntu 13.10 beta ISO (amd64 is a must) written to USB with win32 disk imager

    2) No hex editor is built in to the live environment, so use "xxd" to convert the binary to "hex-text", edit that in vi, and use "xxd -r" to convert it back. Be careful!

    3) Be sure to use "sudo" when writing the file back to the efivars space

    So simple, yet it took me so much struggle to get there!
     
  11. frogspawn

    frogspawn MDL Novice

    Oct 6, 2013
    8
    0
    0
    Hi silverstorm, were you doing this with the latest firmware?
     
  12. zuvieltext

    zuvieltext MDL Junior Member

    Jun 11, 2011
    62
    24
    0
    The only problem was: enabling SVM. Other than that: I had no problem running various
    combinations of Linux and Windows XP/7/8 as Host or Guest [with VirtualBox, KVM or VirtualPC.]

    If you have a specific request: let me know.
     
  13. frogspawn

    frogspawn MDL Novice

    Oct 6, 2013
    8
    0
    0

    Nice one. That was the answer I was hoping for.

    I'm collecting the machine today. It'll be running VMs within VMs for a final year project I'm doing (they don't have to run fast, just run!).
     
  14. Sequlas

    Sequlas MDL Novice

    Oct 14, 2013
    1
    0
    0
    Hey,
    Such a great resource. Before I dig into trying this, do you think this will work for Acer V7, it uses the same bios version.

    I'm trying to force the laptop to use the nvidia chip rather than the intel Optimus integration in bios. For some reason, the Optimus configuration is neglecting the onboard chip (according to a lot of readings I found).

    Any thoughts?
     
  15. zuvieltext

    zuvieltext MDL Junior Member

    Jun 11, 2011
    62
    24
    0
    This is partly OT: If you want to discuss things further you should open a new thread.

    There are many v7. I think the way to unlock the hidden page/settings could be identitcal, however the bios may use different offsets [you'll have to extract the HII (Human Interface Infrastructure) Forms and look for the varstore offset]. You can download the "Phoenix Tool" (needed to extract the "Setup" UEFI Module from the DxE of your bios) right from this site. For other tools: uefidump.pl or the fwts (firmware testing suite) you'll have to pay a visit to google. Maybe you can also find additional ressources at the bios-mods.com too.

    Erm, as I stated earlier: I don't know what sort of v7 you got. But if your laptop doesn't have a hardware MUX (which is the case for most/all? newer models) you need the integrated Intel GFX. Otherwise the LCD and all the video outputs will be "dead" (until you reset the CMOS).
     
  16. frogspawn

    frogspawn MDL Novice

    Oct 6, 2013
    8
    0
    0
    Can't manage to get it to boot of USB in UEFI mode.
    I have Secure Boot set to Disabled, but the Boot Menu only ever lists the hard drive unless I chose Legacy Boot Mode.

    BIOS 2.09

    Any ideas?
     
  17. zuvieltext

    zuvieltext MDL Junior Member

    Jun 11, 2011
    62
    24
    0
    Yeah, silverstorm had some notes: post #10. You could also look at: post #8

    BTW: If you can, try an older usb-stick or you could try an external usb dvd drive. (Booting from a MTP-device won't work)
     
  18. frogspawn

    frogspawn MDL Novice

    Oct 6, 2013
    8
    0
    0
    I'll follow post 10 later today when I get the necessary ISO.
    I have various USB sticks, all of which I've booted from before.

    I'll post my findings :)
     
  19. shynolah

    shynolah MDL Novice

    Oct 25, 2013
    2
    0
    0
    I did have trouble using my bootable USB stick in the USB 2.0 port (on the right), and had to move it to the USB 3.0 port (on the left). My loptop would freeze after a few minutes after booting using USB port on the right.

    Thanks so much for the instruction in the original post. Following your directions, I was able to accomplish this effortlessly.

    (I have BIOS UEFI version 2.06. I used ubuntu-13.10-beta2-desktop-amd64.iso burned with win32diskimager.exe to usb stick. and Ghex to edit.)

    :party_time:
     
  20. frogspawn

    frogspawn MDL Novice

    Oct 6, 2013
    8
    0
    0
    I have BIOS 2.09 and unending difficulty getting Linux to boot.

    Finally I found Linux Mint 15 Cinnamon would boot to the command line (but no GUI, lots of "display not found")

    I'm currently stuck with having access to the Setup-XXXXXXXXXXXX file but no means of editing it.
    Ghex isn't preinstalled.
    I tried connecting to the wifi from the command line, but I get associated only to disconnect a second later.


    Gonna try a few more distros before I give up.