Posted December 24, 2014
I ran into problems both installing and running Total Annihilation in WINE and in PlayOnLinux on Ubuntu 14.04 LTS. The game wouldn't even install. It left hung wineboot processes that ate up my CPU indefinitely when trying to install. After some more looking around, I found in the WINE FAQ that this is a bug that affects certain versions of the Linux kernel.
Looking at the error logs, I found several entries for "modify_ldt: Invalid argument" and one for "err:process:__wine_kernel_init boot event wait timed out". Before following the tip given below, be sure that your symptoms match and that you can see the errors listed above from running WINE/playonlinux in the terminal.
To work around these problems, I followed the WINE FAQ entry on "16-bit applications fail to start".
Be sure to run the "echo 1 > /proc/sys/abi/ldt16" command listed there as root before attempting to install Total Annihilation. Also, you will need to run the command before running Total Annihilation.
Be aware that the above command has security implications. You should only run it if you are sure the application is safe and disable the feature when it's no longer needed, i.e. by running the command "echo 0 > /proc/sys/abi/ldt16" as root. In our case, Total Annihilation is coming from GOG, so it should be safe :)
Technical Stuff:
What's happening is that certain versions of the 64-bit Linux kernel have disabled running 16-bit code by default due to security concerns. Detailed information is available in the WINE bug entry with the name "Unable to run anything with kernel version 3.14 and wine configured as Windows 9x". Certain Linux kernel versions with backports and newer Linux versions, like 3.16+, should no longer be affected by this bug.
This may help other applications that show similar symptoms if they also run 16-bit code with certain Linux kernel versions.
Looking at the error logs, I found several entries for "modify_ldt: Invalid argument" and one for "err:process:__wine_kernel_init boot event wait timed out". Before following the tip given below, be sure that your symptoms match and that you can see the errors listed above from running WINE/playonlinux in the terminal.
To work around these problems, I followed the WINE FAQ entry on "16-bit applications fail to start".
Be sure to run the "echo 1 > /proc/sys/abi/ldt16" command listed there as root before attempting to install Total Annihilation. Also, you will need to run the command before running Total Annihilation.
Be aware that the above command has security implications. You should only run it if you are sure the application is safe and disable the feature when it's no longer needed, i.e. by running the command "echo 0 > /proc/sys/abi/ldt16" as root. In our case, Total Annihilation is coming from GOG, so it should be safe :)
Technical Stuff:
What's happening is that certain versions of the 64-bit Linux kernel have disabled running 16-bit code by default due to security concerns. Detailed information is available in the WINE bug entry with the name "Unable to run anything with kernel version 3.14 and wine configured as Windows 9x". Certain Linux kernel versions with backports and newer Linux versions, like 3.16+, should no longer be affected by this bug.
This may help other applications that show similar symptoms if they also run 16-bit code with certain Linux kernel versions.