I have a HP ProLiant MicroServer Gen8 (HP 819185-421) with Ubuntu 16.04.1 and no monitor plugged in, and I use the remote console through HP iLO.

The problem is that I am stuck to a screen resolution of 640x480.(however, if I boot with the Ubuntu 16.04.1 ISO image and "Try Ubuntu", then I have a 1280x768 resolution)

Following the example of this manual: http://h10032.www1.hp.com/ctg/Manual/c04041473I try to use a xorg configuration to fake the driver into thinking there is a CRT attached. I create the file /usr/share/X11/xorg.conf.d/xorg.conf as follows:

I will try to explain in more detail. First, make sure which graphics card you have:

sudo lspci -v | grep VGA

If you use HP ProLiant Gen8, you should probably get "Matrox Electronics Systems Ltd. MGA G200EH".Also please check your kernel version so it is not too old:

uname -r

Mine was 4.4.0-53-generic, if you have one older than 4.4, try to update, and if it is 3.x, you will definitely need to update.

Now, the goal is to build a kernel module that serves as a driver for your card and enable it. The steps are: download the kernel source code, compile the module, install and enable it, and include it in the initramfs image file. I have to warn you, that it is possible that the module mgag200 will not work in a way that you will boot into a blank screen or something. However, we will only add one module, without modifying the kernel itself or tampering with the system, so fixing it is not hard (see at the end of this post), just a fair warning.

Switch to root priviliges by sudo -iFirst, you will need some packages. For me, installing these worked:

This command probably moves you in the extracted folder, but if not, go there:

cd linux-source-*

Copy the file with kernel symbols to the source folder:

cp ../linux-headers-$(uname -r)/Module.symvers .

Now you have the source code, but you need your configuration. Your current kernel should have it in the /boot folder. Copy it so that you have a .config file in your source directory:

cp /boot/config-$(uname -r) .config

Now you just need to enable the module MGAG200. You can do it in two ways. I recommend trying to run

make menuconfig

And then go Device Drivers --> Graphics support, go to Kernel Modesetting driver for MGA G200 server enginges and press "m" to enable it as a module. Then just ESC your way out of the menu. If you have trouble finding this, just edit the file .config, find the line

# CONFIG_DRM_MGAG200 is not set

and change it to

CONFIG_DRM_MGAG200=m

Now some steps that will compile only our module:

make prepare
make modules_prepare
make SUBDIRS=scripts/mod
make SUBDIRS=drivers/gpu/drm/mgag200 modules

Up to this point, no parts of the system have been modified, we have just been playing with some source code on the side. Now we will copy the built module to the place where modules are stored and make the kernel recognize it:

You should also put it to initramfs as well so that it is available at boot time. Add it to initramfs list of modules:

nano /etc/initramfs-tools/modules

Just put "mgag200" on a new line and save. Then build the new initramfs:

update-initramfs -u -k $(uname -r)

Now you can reboot and you should get hardware acceleration, which means smoother operation and higher resolutions available. You can see whether the driver mgag200 is running by

sudo lspci -v

and finding your graphics card entry, or running

sudo lshw -c display

If something goes wrong, you will need to disable and remove the mgag200 module again. Worst case scenario, if the boot fails entirely (blank screen), you need to blacklist the module in GRUB. If you don't see the GRUB menu when starting a computer, hold Shift. Then press "e" to edit the menu entry. You will see a bunch of code. Find the line that begins with linux and goes something like this:

That is basically the summary of the two askubuntu links applied for your case with some basic explanation. If you need some additional details, or need help along the way, let me know here, or we can get in touch by other means.

I followed the process and get stuck , as soon as i get back to the console ill give you the details, but meanwhile, my firmware is not updated, the current version is 4.8 if im not mistaken, but when I try to dowload the upgrade asks me about Os to be used, for ubuntu only offers up to 12.04, this means that i should be using that ubuntu release?

It would be really nice to see what's wrong, maybe the module is just not modeset. Maybe in Grub you can try playing with modesetting? Basically you do the same thing in Grub as I described in the fallback procedure, but instead of nomodeset, which disables the module, try writing modeset to enable it.

Anyway, just to check, could you please put the outputs of these two commands here?

I just realized that maybe there is a misunderstanding about the .config file. The file in /boot directory is called config-4.4.0-87-generic, which you need to copy into your linux-source directory and rename it to .config. That is what the cp command does. After you have done it, you should see it with ls -a.