Wining about IE8 on Linux...
If you're anything like me, you've accumulated a lot of computer gadgets over the years, be it an old floppy drive deck for those 'just in case' moments, or the 256MB thumbdrive from that convention you forgot about. Maybe it's just me, but being a nerd leads to clutter, so I'm always on the hunt for ways to purpose or re-purpose said clutter. Recently that adventure turned to some old IP cameras I have laying around.
As you know there are pluses and minuses to repurposing something versus buying new. I opted for repurposing existing hardware though because I hate stuff going to waste...just my thing. In this particular scenario, the hurdle I found the most challanging to overcome had to do with the ever-so-common webUI configuration settings. The ONLY way to program these things manually (that is, without a vendor membership or service plan) was through an OLD web interface you operate through the browser. "But web browsers are universal and just work, right?". I know you're not asking this because anyone reading this already knows where I'm going...PLUG-INS! When your webapp depends on a plugin that will likely be depricated before the year is out, it's going to cause problems. In this case it was Flash, Java, and...wait for it...QuickTime! Yes, even Quick Time. In fact, the UI specifically stated when I first connected that my browser wouldn't work and to try an older version of Microsoft Internet Explorer? What? I haven't voluntarily used IE since...well...never. Now I have to figure out how to run old plugins on it as well? My night was shot.
Of course after my frustration wore off I began working the problem as usual. I quickly found that Microsoft still offers developer VMs loaded with older versions of IE for backwards compatability tests.
See here: https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
Thinking this is my best shot to program these cameras I start to download one of the VMs. While I waited however, I couldn't help wondering if there was a faster and more clever way to do this.
BeenThereDoneThatTip: If you find yourselves thinking these crazy thoughts at 11:23PM, DO NOT stop the download. Just let it run while you fiddle around. You'll thank me later.
In truth, there are lots of ways to get IE running in a Linux environment along with many other applications. The devil is in the details though. Lets start with the first method I actually tried:
Most of you have probably heard of wine before. I certainly have and used it several times. But Winetricks was advertised as an improvement over basic Wine. While your milage will vary, this DID NOT work for me since I'm running exclusively in 64bit architecture. WineTricks, more specifically the IE binaries it uses, seems to only want to run in 32-bit architecture. I couldn't find a way around this little preference in a reasonable timeframe so I purged it and tried something different. Don't take this as a ding against the tool though. I just couldn't give it a fair shake with the rig I have.
Wine + 32bit Architecture:
I realized I wasn't getting 32bit packages in my repos because I was running EXCLUSIVELY 64bit architecture (as stated above). To fix this I had to go about enabling x86/i386 archtecture to get 32bit software binaries from my repo as well as update.
Pro-Tip: Remember your 1st grade math - 32 will go into 64 but NOT the other way round.
Enabling 32bit architecture on 64 machines shouldn't hurt any existing software. It can also be removed later to lower your footprint. Here's a bit my history file of what I actually ended up running to help anybody who might be following along:
sudo dpkg --add-architecture i386 && apt-get update sudo apt-get install wine \ wine32 \ wine-developer \ wine32-developer \ libwine \ libwine-developer
After the primary software installs of my more traditional Wine environment I found IE still failed to load. One error had to do with HTLM_Auth and the other related to Gecko (No...not the gecko that saves you money...). I fixed both of these with a little research. Hopefully it will help you.
# HTLM_AUTH NOT FOUND #
Forum Post: https://askubuntu.com/questions/1090094/wine-missing-ntlm-auth-3-0-25 I fixed this by installing winbind.
sudo apt-get install winbind
# GECKO NOT FOUND #
Software: http://dl.winehq.org/wine/wine-gecko/2.47.1/ Forum Post: https://ubuntuforums.org/archive/index.html/t-2387138.html Summary: I had to manually install the Gecko driver to get IE to launch.
cp ~/Downloads/wine-gecko-2.47.1-x86.msi ~/.cache/wine $ wine msiexec /i ~/.cache/wine/wine-gecko-2.47.1-x86_64.msi or $ wine msiexec /i ~/.cache/wine/wine-gecko-2.47.1-x86.msi
NOTE: I saw 4 errors (presumably one per CPU core) related to LoadLibraryShim errors. After some poking around I found these to be red herrings. You're install is PROBABLY fine. Pull the trigger and test that load!
$ cd ~/.wine/drive_c/Program Files/Internet Explorer $ wine iexplorer.exe
If all went well you'll be greeted with a sad little IE window. Woohoo!
Take a moment to bask in this great accomplishment of running a 10+ year old browser. This was quite a ride! But, as with all good things on this earth, they must come to an end. Try browsing...anywhere. You'll quickly find like I did that, despite all the effort, IE8 running in Wine just doesn't work well. Specificaly I had issues with authetication requests and processing redirects in webpages. I took a moment to troubleshoot, but finally ended up loading the Dev OVA that had by that time finished downloading. Standing that up in VirtualBox allowed me to get back to what I'd been trying to do all along. Sometimes that's just how this IT life goes.