Installing Microsoft Reader on Linux (and why Microsoft Reader rules)

As I suddenly found myself using Linux as my primary OS last year, I had to do something about my bookworm’ey itch, and tried a few solutions to the lack of Microsoft Reader on Linux.

  • I tried using a second computer as my “book computer” – 50 minutes of work, one chapter of a book is what works for me. Too much fan noise (my PCs, like me, are pretty old by now) and sheer waste of electricity.
  • I tried a virtualbox XP installation – the problem with a virtual OS is, if I run it fullscreen, I can’t use the linux software, and if I run it windowed, the Microsoft Reader window is too small. I can dedicate my second monitor to the XP virtual installation, but that is plain inefficient.
  • I tried keeping my pocket pc with me while working, but what is the use of a large LCD when you end up reading on a 3.5 inch screen.

This weekend, I finally managed to make Microsoft Reader work on Linux with Wine. I had to waste use a couple of hours doing so, but at the end, it was worth it. So here is the fast and clean way of installing Microsoft Reader on Linux, what you need is:

  • Have a Linux installation (obviously) – I’m on Kubuntu, this should work with *buntu.
  • The following software installed: wine, msttcorefonts, cabextract – You can install it with the usual: sudo aptitude install wine msttcorefonts cabextract
  • IE for Linux – for some reason, this is a pre-requisite of Microsoft Reader on Wine.
    • Instructions on how to install IE6 for Linux can be found here: http://howtoforge.com/ubuntu_internet_explorer_p2
    • You might need mfc42.cab – in which case, just follow the link on the page, and copy the cab to the folder used by ies4linux, which was /home/rv/.ies4linux/downloads
      for me.
  • Now you need to visit the Microsoft Reader download page in IE6, and when prompted, “Open” the file from its current location. If everything goes well, you should end up with Microsoft Reader installed – now you just need to run it.
  • To run the program, you can either tinker with the Wine configuration settings to export the required wine prefix or you can create a shell script containing:
    • #!/usr/bin/env bash
      # Script to run MS Reader
      cd
      export WINEPREFIX=”/home/rv/.ies4linux/ie6″
      wine “/home/rv/.ies4linux/ie6/drive_c/Program Files/Microsoft Reader/msreader.exe”
    • Save it as something like msreader.sh, modify the /rv/ part (which is my username), set the file rights to a+x via: chmod a+x msreader.sh and perhaps, create a shortcut to the file on your desktop.
  • Running the msreader.sh should run MS Reader now!
  • There is the small problem of actually opening .lit files in it – you have two options. You can either:
    • Modify the script above so that the filename/complete path is passed to the shell script and used in the wine… line. This can also be set up with the ubuntu file associations so that you can open .lit files directly by clicking them. Or, you can
    • Copy the .lit files you have in your “My Library” folder (which is what I did).
    • I ended up with a library folder at: /home/rv/.ies4linux/ie6/drive_c/windows/profiles/rv/My Documents/My Library
  • Start the reader, and the new .lit files should be automatically detected and populated inside your library!

UPDATE: June 2009 One year later, things are a lot simpler with Jaunty Jackalope and Wine 1.0.1! Here are the rough steps to follow:

  • Make sure you have wine 1.0.1 – 1.1.x has issues that I was too busy to debug. If you have a later version or have the wine repository added to your sources.list. You might want to “Force Version” for that.
  • Install ie4linux using the instructions here. Ignore the wine version warning. You may have to run the script multiple times if it crashes, but you’ll get ie6 installed eventually. I had to uncheck the Flash plugin installation option.
  • Make sure you have the wine-gecko package installed (this may be a redundant step)
  • Download the MSReaderSetup.exe file from the Microsoft site using your regular browser and save it somewhere.
  • Run the installer .exe via double-clicking, or right clicking, or via command-line
  • The reader should install. The first time, try running it via command-line after going to ~/.wine/drive_c/Program Files/Microsoft Reader and typing ./msreader.exe
  • If you get an msvcirt.dll error, download the dll from here and extract the dll to your ~/.wine/drive_c/windows/system32 folder.
  • Now running the .exe again should work, and you should also be able to run it after searching for it by ALT+F2.
  • To be able to open .lit files by double-clicking, you need to set up the file associations. To do so
    • Right-click any .lit file in Dolphin and select ‘Properties’.
    • Click the settings icon besides the line Type: Unknown
    • Press the Add button to add the associated application (msreader) and use the file dialog to browse to the msreader.exe file. You will need to enclose the path in double-quotes or escape the spaces. For me it was:  “/home/rv/.wine/drive_c/Program Files/Microsoft Reader/msreader.exe”
    • Unwind the open dialogs’ stack
  • At this point, you should be able to open a .lit file by double-clicking it. If you encouter any issues or had to follow a different path, do share in the comments to help out others.

I was experimenting with tellico this weekend (which deserves its own post), and realized that in the last 20 years, I have read a lot more ebooks than paper books (which makes me happy when I think of all the trees I have saved). At this point in time, I can safely say that Microsoft Reader is the best ebook software around. Of course, you can read books in other formats, plain text, html, pdf or even doc, and there are lots of other readers (like Mobipocket) to choose from, but nothing beats Microsoft Reader so far. A few reasons why…

  • the Microsoft proprietary ClearType technology is simply the best option for long reading sessions on LCD/TFT screens. Once you get used to the lack of paper texture and the smell of an old book (one does miss it the first few months), you will probably find yourself reading more and more books on MS Reader.
  • The Microsoft .lit format works on Pocket PCs transparently, and the PPC version of Microsoft Reader comes pre-installed with most of the Windows Mobile versions. So, like an ipod, you can keep your library synchronized, and pick up on your PPC where you left off on your laptop/desktop. I can’t part with my ancient XDA II (now 5 years old), and iphone is a little bit less attractive due to Microsoft Reader – strange but true.
  • You can use the “Read in Microsoft Reader” plugin for Microsoft Word to convert most of the standard text formats that Word can open – to .lit format, and have a single interface for most of your digital library.
  • If you are comfortable with IRC and DCC, channels like #bookz, #ebooks etc. on Undernet is all you need to download and read sample hundreds of thousands of legal (and otherwise) books that are already converted to the .lit format.

It took me a couple of hours of search and experimentation (mixed with answering a few emails) to get all the steps right, so I hope this post saves somebody a few minutes of their lives.

28 Comments

  1. adnan ali says:

    Very useful post Sohaib. I will try it on my ubuntu installation. Since you are an avid reader of ebooks, can you guide me towards some resources for ebooks? Where do you find them at?

  2. Sohaib Athar says:

    You can find a lot of classic books on project gutenberg ( http://www.gutenberg.org/ ) that you can convert from html to .lit with a few clicks. As I’ve written, if you know how to connect to undernet.org IRC servers (#bookz / #ebooks channels), and the basic DCC @find and ! commands, you are set for life.

  3. Moiz says:

    Hi sohaib,
    I tried out what you have mentioned in Ubuntu 8.0 but msreader is not running.. The program starts and then immediately terminates.. Please help me out.. Please send me an email on madscorpion4@gmail.com..
    Thanks a lot..
    Moiz..

  4. John says:

    hi there! took me a long time to find a guide to installing msreader but thank the lord I found yours :)

    only problem is that msReader starts up but like Moiz it quits right away. if you found a solution to Moiz problem please send me the information. I’m using Ubuntu 8.04 and everything is up-to-date… I believe its to do with the script that I tried to make… I do not know where to place it. Everything else on the guide is self explanatory, most of it is copy/paste but when it comes to the scripting its very vague for those newer to Linux.

  5. Sohaib Athar says:

    John, I saved the script in my home folder, though it can be anywhere. You might want to run the script from a console to see the exact error message, trying to run it via gksu (I am on kubuntu so I use kdesu) might take care of any permissions issue.

  6. John says:

    Ok, so again, your naming off things that a new user to linux would not know how to do. For instance, I don’t know what gksu is, but I have been able to run the script via console, however the console closes before I can view any of the errors.

    Do you know of any command that would keep the console window open AFTER the program/script crashes?

    Also,can you be more specific as to the command I need to issue with that ‘chmod’ string?

  7. John says:

    P.S., I tried running it view executing straight from

    /home/john/.ies4linux/ie6/drive_c/Program Files/Microsoft Reader/msreader.exe

    but it gave me an error saying it could not display end user license agreement, so it closed.

  8. Sohaib Athar says:

    John, you should be able to see error outputs if you run it from a console – the black screen icon that is in “System” on Ubuntu I think.
    Even though .exe files can be doubleclicked and run, internally, unbuntu asks wine (the software) to run them – wine acts as a layer between .exe and ubuntu. So from command line, you will need to do something like

    wine /home/john/.ies4linux/ie6/drive_c/Program Files/Microsoft Reader/msreader.exe

    gksu just adds root priviliedges to whatever you are running, so if you do

    gksu wine /home/john/.ies4linux/ie6/drive_c/Program Files/Microsoft Reader/msreader.exe

    it should take care of any permissions related issues.
    The script EXPORTs a variable before running the exe, but you can do it from console too.

    So if you have a correctly written script, doing a
    gksu ./yourscript.sh
    should have the similar effect as exporting the variable and then running the exe from console/command line.

  9. John says:

    hmm, the gksu does not fix the problem, and like I said earlier, I try to execute it via console, however each time I try to navigate to the file, it says

    wine: cannot find ‘/home/john/.ies4linux/ie6/drive_c/Program’john@john-laptop:~$

    I used

    gksu wine /home/john/.ies4linux/ie6/drive_c/Program Files/Microsoft Reader/msreader.exe

    and that IS the correct address of the files, spaces and caps included.

    Question, do I have to have IE6 open when I start msReader? I tried it, but still no gold….

    (I also tried

    gksu wine /home/john/.ies4linux/ie6/drive_c/ProgramFiles/MicrosoftReader/msreader.exe

    but came up with

    wine: cannot find ‘/home/john/.ies4linux/ie6/drive_c/ProgramFiles/MicrosoftReader/msreader.exe’

    I have the file exactly in that spot, so no idea what is going on here.)

    P.S. thanks for the help, obviously there is a huge difference between Kubuntu and Ubuntu somewhere ;)

  10. Sohaib Athar says:

    The line you are using ( /home/jo…….der.exe ) needs to be enclosed in double quotes as the file name contains spaces. You can also escape the spaces by typing ‘\ ‘ instead of ‘ ‘
    It is usually the best to use tab after typing 2-3 characters for each folder name in the console, and ubuntu automatically completes the rest of the path.

  11. John says:

    ok, the double quotes makes it work, but msreader wont start because its unable to display the eula for some reason. there are no errors displayed within the console.

    I used the following string

    gksu wine “/home/john/.ies4linux/ie6/drive_c/Program Files/Microsoft Reader/msreader.exe”

  12. John says:

    I did some more poking around, and I found the solution! :D

    Its a simple missing library. At first, I thought I had all the libraries, but then when I read this short article, I realized that since MSReader was installed using ies4linux that it was using the dll libraries under a separate directory (instead of the usual directory under Wine.

    Go to this link for the details.

    https://lists.ubuntu.com/archives/ubuntu-users/2008-September/158629.html

    In a nut shell, you need to install msvcirt.dll to the “/.ies4linux/ie6/drive_c/windows/system” folder (system 32 should already have it)

    if you are not able to copy from system 32 you can find the file for free DL at the following link

    http://www.dll-files.com/dllindex/dll-files.shtml?msvcirt

    Thanks for your help and your patience :D

  13. Sohaib Athar says:

    John, glad that you managed to make it work. I *think* the mfc42.cab file I mentioned should contain the vc runtime dlls – not sure though. You are another example of a non-geek switching to Linux and surviving, which is always a good thing :-)

  14. John says:

    hmm.. I wasnt really able to find that mfc42.cab you were talking about, so I’m more than certain thats what went wrong.

  15. Stephen says:

    Hello Sohaib.
    I have followed along with your converstions and suggestions with John. In my case, I have been able to install the MS Reader 2, but cannot get it to register. I have performed the install through the IE6 and wine, it just wont register the reader so it can be used, the reader app just opens brefiely, states that it is not register and closes……
    Unless I have not followed one of your steps, I am hoping that you may have some suggestions or that you may have faced this during an upgrade with an older version of Reader.
    thanks for your time….

    • Sohaib Athar says:

      Stephen,
      Unfortunately, I haven’t been able to activate the wine based installation – I believe that if you call the MS helpdesk, they might be of some help – there is the possibility of a solution/workaround using the wine registry but I didn’t need to play with it as most of my ebooks are made from .txt or .html files.
      You can, however, install MS Reader in a virtualbox and activate it – I have switched to the virtualbox alternative myself as I have XP running as a guest OS on my machine 50% of the time already, if you have enough RAM/processing power then the seamless mode is perfect for you.

  16. Liam says:

    thanks dude, worked a treat except that ms reader kept dying on me, I downloaded and pasted msvcirt.dll into the windows system and system32 folder and it works a treat

  17. ethidda says:

    Great guide! I used it to install Microsoft Reader. Unfortunately, I still can’t activate it, but I’ll figure it out eventually. In the meanwhile, I’ll “sample” the books.

    I’ve modified the bash script a little so that it will open the .lit files without having to move it to the library:

    ——————-

    #!/usr/bin/env bash
    # Script to run MS Reader

    cd
    export WINEPREFIX=”/home//.ies4linux/ie6″

    MS_LOC=”/home//.ies4linux/ie6/drive_c/Program Files/Microsoft Reader/msreader.exe”

    if [ -z "$2" ] # Exit if no argument given.
    then
    echo “wine \”$MS_LOC\””
    wine “$MS_LOC”
    else
    echo “Using Microsoft Reader to read $1″
    BOOK=”$1/$2″
    echo “File located at $BOOK”
    wine “$MS_LOC” “$BOOK”
    fi

    ———————————

    And then when I call it (I named the file “msreader.sh”), I use the following command. The pwd part is to pass it your current directory. The second one is telling it which file to open.

    ./msreader.sh “`pwd`”

    Or, if you’re REALLY lazy, you can alias it, by adding the following line to ~/.bashrc where the other lines that begin with ‘alias’ are:

    alias msreader=’./msreader.sh “`pwd`”‘

    Then, you can just run files from wherever you are to open the files by typing

    msreader

    I wanted to try to see if I can open it directly by double-clicking the file in Nautilus, but I got stuck somewhere. If anybody bothers to figure it out, let me know. :)

    • ethidda says:

      Correction to the above… it wouldn’t let me type any angle brackets…

      whenever it says “/home//” it should be “/home/username/” where username is your username.

      And the three commandlines should be

      ./msreader.sh “`pwd`” filename.lit

      alias msreader=’/home/username/msreader.sh “`pwd`”‘

      msreader filename.lit

  18. chaoticity says:

    I managed to set up opening a .lit file to open by double clicking on dolphin. All you have to do is right click on any .lit file, goto properties, click on the icon in front of the file “Type” label, and add MSReader to the preferred application list. Nautilus should have a similar process but if nothing works, you can probably fiddle around with mime settings in ~/.local/share/mime/packages/Override.xml manually.

  19. Farah says:

    Hey Sohaib,

    I got all the steps you mentioned, and got MS Reader installed, but it gives me the following error:

    farah@farah-laptop:~/Desktop$ ./msreader.sh
    wine: cannot find ‘/home/farah/.ies4linux/ie6/drive_c/Program Files/Microsoft Reader/msreader.exe’

    Any tips?

    Thanks,
    Farah.

Leave a Reply