So I am having a bit of trouble installing ubuntu 16.04 server on a computer with intel atom d2550 architecture. I'll describe from the top what did I see what did expect to see and how have I tried to debug the problem so far:
So two days ago I was given by my employer quite an oldish computer with an architecture nobody really uses today – intel atom d2550. When I got it, it was running ubuntu 12.04 server– everything was perfect and was working properly. Later that day I was asked to upgrade the system to run ubuntu 16.04 server, so I downloaded the last 16.04 iso file from the official ubuntu site burned it to a disk and even installed it on an i7 computer to insure the burning process was successful and to prove the disk wasn't defective.
Then, I tried to install the os on the d2550 computer. During the installation live cd itself everything seemed to be working fine – I configured the user how ever I wanted even installed openssh-server using the menu. The installation was completed, the disk was ejected and the system restarted.
Later, the system booted from the hard drive – where I installed the 16.04 server. The boot process itself seems to be completely fine – I was given the option to enter the grub advanced options or continue booting – seems normal. After that the grub printed its logs to the screen – nothing unusual was in the logs. At this point one would expect to see the user prompt and the terminal you usually see on ubuntu server startup but in my case the screen was black with no signal from the vga. Hopefully that explains my problem properly.
What Did I Try So Far
Next, I will specify what have I done to debug this puzzling problem and what I figured out in the passed two days:
- I tried to connect different displays – doesn't seem to matter
- I noticed that the aforementioned computer has an hdmi port. I tried to connect a new display via hdmi. Unfortunately that did nothing.
- Next, me and my coworker tried to test different ubuntu versions on the computer- nothing seems to work except: 12.04(.0) server – maybe this version contains a module or a graphics driver that other versions do not. For the record, ubuntu 12.04.5 has the exact same problems as all the other versions we tried – 14.04 lts, 16.04.3, 16.04.4, 17.10. In all of them the installation phase works properly as described above.
- I also tried to look at this post: My computer boots to a black screen, what options do I have to fix it? – followed the steps but no luck. I did try to add the nomodeset flag and ACPI=off flag and tried all the vga modes but no luck.
- Next, we wanted to check if the system actually works and if the problem is a graphical problem only (makes sense that it is). What we did was connect the hard drive to an i7 computer- configure the interface file in order to connect to the computer using ssh. After the configuration was done we returned the hdd to the d2550. It worked!!! We were able to connect to the d2550 using a different computer on the same network via ssh!
After the trick with the remote shell I tried to run couple of commands to give more of an idea of what is the problem. I ran the following command on the 16.04.3 server (the problematic version) and on 12.04(.0 – no minor version number)
root@MY-PC:/home/root# lshw -c video
The relevant output on 16.04:
configuration: driver=gma500 latency=0
The command didn't specify any driver so I ran:
One driver in the list was
video.ko. The info about this driver was: "ACPI graphics driver". This module seems to be the missing piece in all the other versions.
Later that day I tried to install a graphics driver kit called: mesa-utils but it didn't seem to work either. Not sure what the next step should be…
Interesting to note that I tried to install serveral ubuntu desktops on the d2550 machine and the only one who's live cd actually booted up was 17.10!
In my opinion the key to solve this problem is to figure out what was changed between the versions: 12.04 (working) and 12.04.5 (black screen).
Small Update – Good News!
O.K, so the problem was almost solved today! Unfortunately a different graphic card didn't solve the problem as we thought – in fact it caused even more problems… Seems that it somehow caused the bios to not show up as it normally would. So we tried a different approach. As, I noted in the post before the major difference between the working version and the "black screen of death" version is a graphics driver called gma500_gfx – so theoretically if we somehow disabled this driver the system would work, right? We went on to try and disabling the driver in couple of different ways but none worked properly. Next, we probably went as far as we ever imagined we would go to solve the problem and compiled a kernel without the gma500 support (xD). What do you know? It actually worked! And seemed to be working well, the screen was ok we saw the console and the ubuntu server logs after it booted – super exciting, right? Until we actually wanted to confirm our theory about the driver, and then realized that every other peripheral device didn't work – that includes the USBs, the ethernet cards- basically everything you must use to work the computer, but the screen worked! We are probably missing a driver- I don't believe that the gma500 was driving the whole motherboard by itself. We tried to see the difference between the kernel config the two kernel config files: the default one (comes from the iso) and the one we created earlier (without the gma500). We didn't find any major difference, but I am still convinced there are drivers in the default kernel that we didn't include so I'll try taking the default kernel config file build the same kernel without the gma500 – hopefully that will solve the problem. Thanks for sticking around I'll keep updating 🙂