or How I fixed Minecraft and became a hero in my daughter's eyes
Minecraft has become a big deal in my house -- my kids (11 and 5) not only use it on tablets but Leah (the 11-year old) uses it for a homeschool curriculum (via Minecraft Homeschool) and "for fun" at The Sandlot. I let her use my old development laptop, which had a bunch of stuff running that she will never need, but it had Java installed and (despite what anyone says) Unity is not hard. I was happy with the Ubuntu 12.04 installed on it, so had never upgraded it. And it worked perfectly for her.
A month or so ago, Sandlot upgraded to 1.8.0 and, suddenly, things went horribly wrong. When she would transport within Sandlot, her Minecraft client would freeze the whole system. There were only two things do to -- hold down the power button until it shut off (Leah's method), or switch to a console, login, find the process and run
kill -9 (my method). When she connected back to Sandlot, she had already transported. So, to me, the Sandlot server did the right thing but something went wrong on our end. I tried it on my Mac and everything worked fine. Ok, so now we are talking about a Linux problem. Great.
I tried all different things -- I changed JDKs (Oracle 8, Oracle 7, and OpenJDK ), changed JVM flags, no avail. This wasn't the beefiest machine ever but it should run this. Minecraft 1.7 worked fine. As we talked to people on the forums, we discovered that we were the only ones with this problem.
(In case you are keeping track, this the same issue I briefly described in another post.)
I figured that it was just a blip with Minecraft 1.8.0 and Mohjang would fix it in 1.8.1. 1.7 worked fine, though Sandlot was making areas that only worked in 1.8.x. I assured Leah that 1.8.1 would fix it. Well late last week Mohjang released 1.8.1 and it still wasn't fixed -- it kept hanging. Grrr.
So this weekend I went back to googling the problem and found this forum post. It wasn't exactly the same problem I had, but it was something I hadn't tried before -- the video driver. It seemed weird to me, but why not try it?
Oh I know a reason why not -- because that laptop is running 12.04 LTS, which is no longer in support so there is no way I can find an updated video driver. Therefore I would have to upgrade the OS to find the most recent video driver. But from what I had read, the new Ubuntu version would work fine, so I decided to go for it. My initial thought was to burn the 14.04 DVD to install, but that was a lot of work. So I did the trusty
do-release-upgrade. That was yet another mistake....
After it was done, there were processes (like Chrome) that wouldn't start up. It seemed that it couldn't find the libc6 library. Grrr. I found a forum post where someone fixed it by removing it and running
dpkg -i over and over until everything was installed. I can't find that link now but no matter -- at one point I couldn't run
sudo, or even
ls anymore. Uh-oh -- I knew I was in trouble now.
So I went back to my first instinct -- I downloaded the Ubuntu 14.04 image, burned it to a disc, and reinstalled it on that laptop. Overall, this was better because it removed things that were running that she wouldn't be using (like Apache, PostgreSQL, MySQL, etc). This took a while, of course.
After that, I made sure that the latest video drivers were installed (which was really the whole point of this exercise). Then I re-installed the Minecraft launcher and it was the moment of truth. I watched as Leah connected to the Sandlot and then did a transport. It was slow, but the cursor still worked! And then . . . the transport completed! We did some more tests and no more lock-ups. And no more since we upgraded.
Actually, the machine runs faster, the screen is brighter and (actually) runs a lot cooler. Win-win all around.
So in short -- if you are running Ubuntu and are having lock-ups in Mincraft, upgrade to 14.04 and make sure your video driver is up to the latest and greatest.