Fix for FreeNAS on HPE MicroServer Gen10 X3216 Stuck Console Issue

When you try to install FreeNAS 11 on the new HPE ProLiant MicroServer Gen10 X3216, the installer stops booting and appears to be stuck at:

pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pcib0: _OSC returned error 0x10
pci0: <ACPI PCI bus> on pcib0

This article explains how to fix the issue during the installation and how to apply the fix at an installed system using the FreeNAS Web Interface.

 

Fix the Problem from the FreeNAS Web Interface

When you've already installed FreeNAS, the problem can be fixed by adding the tunable hw.pci.realloc_bars=1 to the Boot Loader config. This step can be easily done from the Web-Gui:

  1. Open FreeNAS Web-Interface
  2. Login as root
  3. Navigate to System > Tunables
  4. Click Add Tunable
  5. Add the following tunable:Variable: hw.pci.realloc_bars
    Value: 1
    Type: Loader
  6. Reboot FreeNAS

After rebooting FreeNAS, the Console should be functional. Tested with FreeNAS 11.0-U4.

Installation Option 1 - Edit Grub Config during Startup

The problem can be permanently fixed by editing the configuration from the Grub Menu.

  1. When the Grub Bootloader shows up, press e to edit the configuration
  2. Add set kFreeBSD.hw.pci.realloc_bars=1 to the configuration

    Note: My system failed to display the underline character. It shows a blank, instead of the underscore. However, it still works.
  3. Press F10 to boot
  4. Install FreeNAS

Installation Option 2 - Customized FreeNAS Installer ISO

You can also customize the FreeNAS Installer ISO to make manual changes in the grub config obsolete. This requires a Linux machine with the ISO management tool Xorriso.

  1. Download FreeNAS ISO:
    # cd /tmp/;wget https://download.freenas.org/11/latest/x64/FreeNAS-11.0-U4.iso
  2. Create a mount point for the ISO:
    # mkdir /mnt/freenas
  3. Extract the MBR from the ISO:
    # dd if=/tmp/FreeNAS-11.0-U4.iso bs=512 count=1 of=/tmp/freenas.mbr
  4. Identify Volume id und Modification time from the ISO:
    # xorriso -indev /tmp/FreeNAS-11.0-U4.iso -toc -pvd_info |egrep 'Volume id|Modif. Time'

    Volume id: FreeNAS
    Modification time: 2017092507154900

  5. Mount the ISO file
    mount -o loop /tmp/FreeNAS-11.0-U4.iso /mnt/freenas
  6. Copy end edit grub.cfg
    cp /mnt/freenas/boot/grub/grub.cfg /tmp/
    sed -i s/set\ kFreeBSD.hw.usb.no_shutdown_wait=1/set\ kFreeBSD.hw.usb.no_shutdown_wait=1\\n\ \ set\ kFreeBSD.hw.pci.realloc_bars=1/g /tmp/grub.cfg
  7. Create variables containing the paths from both, the old and the new, grub config.
    oldg=/boot/grub/grub.cfg
    newg=/tmp/grub.cfg
  8. Create the custom ISO with changed grub.cfg. Make sure to keep original Volume ID and timestamp.
    xorriso -as mkisofs -o /tmp/FreeNAS-11.0-U4-Gen10.iso -r -V 'FreeNAS' --grub2-mbr /tmp/freenas.mbr --protective-msdos-label -efi-boot-part --efi-boot-image -c '/boot.catalog' -b '/boot/grub/i386-pc/eltorito.img' -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info -eltorito-alt-boot -e '/efi.img' -no-emul-boot --modification-date=2017092507154900 /mnt/freenas/ -graft-points "$oldg"="$newg"
  9. Write the Image using dd or Image Writer to a flash drive.
  10. Use the flash drive to install FreeNAS

Expected Xorriso output:

#Output von xorriso:
Drive current: -outdev 'stdio:/tmp/FreeNAS-11.0-U4-Gen10.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 126g free
xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules
Added to ISO image: directory '/'='/mnt/freenas'
xorriso : UPDATE : 637 files added in 1 seconds
Added to ISO image: file '/boot/grub/grub.cfg'='/tmp/grub.cfg'
xorriso : UPDATE : 638 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 512 bytes from file '/tmp/freenas.mbr'
xorriso : UPDATE : 1.31% done
xorriso : UPDATE : 2.96% done
xorriso : UPDATE : 8.87% done
xorriso : UPDATE : 14.79% done, estimate finish Fri Oct 27 13:47:19 2017
xorriso : UPDATE : 20.70% done, estimate finish Fri Oct 27 13:47:19 2017
xorriso : UPDATE : 26.62% done, estimate finish Fri Oct 27 13:47:19 2017
xorriso : UPDATE : 31.78% done, estimate finish Fri Oct 27 13:47:19 2017
xorriso : UPDATE : 35.49% done, estimate finish Fri Oct 27 13:47:20 2017
xorriso : UPDATE : 39.24% done, estimate finish Fri Oct 27 13:47:21 2017
xorriso : UPDATE : 44.36% done, estimate finish Fri Oct 27 13:47:21 2017
xorriso : UPDATE : 47.32% done, estimate finish Fri Oct 27 13:47:22 2017
xorriso : UPDATE : 53.23% done, estimate finish Fri Oct 27 13:47:22 2017
xorriso : UPDATE : 59.15% done, estimate finish Fri Oct 27 13:47:21 2017
xorriso : UPDATE : 62.10% done, estimate finish Fri Oct 27 13:47:22 2017
xorriso : UPDATE : 68.02% done, estimate finish Fri Oct 27 13:47:22 2017
xorriso : UPDATE : 72.42% done, estimate finish Fri Oct 27 13:47:21 2017
xorriso : UPDATE : 76.89% done, estimate finish Fri Oct 27 13:47:22 2017
xorriso : UPDATE : 80.79% done, estimate finish Fri Oct 27 13:47:22 2017
xorriso : UPDATE : 85.76% done, estimate finish Fri Oct 27 13:47:22 2017
xorriso : UPDATE : 93.05% done
xorriso : UPDATE : 100.00% done
ISO image produced: 277008 sectors
Written to medium : 277008 sectors at LBA 0
Writing to 'stdio:/tmp/FreeNAS-11.0-U4-Gen10.iso' completed successfully.

 

Installation Option 3 - Use another System

Use another System to Install FreeNAS and transfer the flash drive to the Gen10 Microserver. The problem only affects Display and VGA output. The system will boot headless. You can't see console output, but the system will be available on the network.

Installation Option 4 - Install FreeNAS with VMware Workstation

Use VMware Workstation to install FreeNAS to a USB flash drive, transfer it to the System and boot it:

  1. Create a New Virtual Machine
    - OS-Type: Other > FreeBSD  64-bit
    - 2 vCPU / 4GB Memory
    - No HDD required
  2. Mount the FreeNAS Installer ISO file and select "Connect at power on"
  3. Power on the Virtual Machine
  4. Connect a USB Flash Drive to the Virtual Machine. Make sure that it is connected by verifying the Disk Icon in the bottom right corner.
  5. Boot the Installer
  6. Select Install/Upgrade
  7. You can safely ignore the memory warning.
  8. Select your USB drive as destination media
  9. Enter your desired root password
  10. Select "Boot via UEFI". (The Gen10 Microserver comes with UEFI enabled by default. You use BIOS mode if you prefer, but then you have to configure the Microserver to use BIOS too.)
  11. Wait until the Installer has finished.

You do now have FreeNAS installed to a flash drive. Power off the virtual machine, plug the drive into your Gen10 Microserver and boot from it. The system still apears to be stuck at pci0: <ACPI PCI bus> on pcib0 (We will fix that later!), but it will silently boot in the background. If you have a DHCP server, check the log and wait until FreeNAS gets an IP Address. You should be able to acces the web interface and do the configuration.

If you don't have a DHCP server, alternatively boot the flash drive in VMware Workstation. (Booting from USB drives in VMware Workstation)


Thank you to Tobias Riewoldt for providing the Grub and Custom ISO fix.
Thank you to Bob Bishop for pointing me in the right direction.

  1. Just wanted to throw out a random THANK YOU for this. I can't belive how obscure this error was. I was helping my dad with the installation and we got stuck booting the installer USB drive.
    Editing the grub config as stated in option 1 worked perfectly! Just had to do it on both the installer USB drive and then again on the USB drive we installed it on

  2. A big thank you, an excellent procedure with attention to detail, I wish all such assistance was written to this standard

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>