Installing Ubuntu from scratch (unless you want to live with Windows Vista Home Edition) on a MSI X320 is non trivial at best. The notebook comes without any CD-ROM but boots from an external USB CD- or DVD drive.
Installation goes straight forward, the system comes up nicely.
Things to keep in mind
Graphics resolution is 1024x768. The display can run at 1366x768. Here is what you have to do to get it:
Setting the right screen resolution
In Synaptic Package Manager under Settings/Repositories/Third-Party Software add:
deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty maincopy the following text to a text file:
-----BEGIN PGP PUBLIC KEY BLOCK-----Save it under the name "msi.key" and import in the tab Authentication/Import Key File... (alternatively you can download the key from here).
Version: SKS 1.0.10
-----END PGP PUBLIC KEY BLOCK-----
Reload the repository. You should now find a package:
poulsbo-driver-2d andInstall it and its depending packages. Further install
poulsbo-driver-3d as well as
psb-kernel-source (will be needed by the wireless network driver as well).
compiz-settings-managerand all depending packages if you want to mimic Apple.
Now edit the file /usr/bin/compiz. Its a wrapper script to launch compiz. Find the line that starts with:
WHITELIST="..."Add a space and "psb" at the end so that screen composition works with the Poulsbo chipset.
I also installed AUT2 (the Austrian Ubuntu Theme) which has resembles a silvery blueish style. For that, copy AUT2 into /usr/share/themes and UE-icon-set-light into /usr/share/icons.
After rebooting the machine, you will be greeted with an optimized resolution of 1366x768. Choose the AUT2 theme from the Preferences/Appearance control panel.
You might find your machine not offering bluetooth and WLAN. Bluetooth can be turned on with the Fn-F9 key combination. WLAN ist toggled with the Fn-F8 key (not very intuitive icon).
Ubuntu does not provide a wireless driver for the RaLink RT3090 pci card built into the MSI X320. In order to get wireless working you need to download the source file. Either go to RaLink directly:
http://download.opensuse.org/repositories/home:/Akoellh/openSUSE_11.0_Update/src/rt3090sta-220.127.116.11-1.2.src.rpmThe driver derives from the RT2860. If you want to adjust the interface name to wlan-x and the driver name to rt3090sta, you need to patch some source files. SuSE delivers 5 patches, 4 of them apply, on is for 64bit versions only (which do not make sense and I could not get the driver to work with this patch).
Install the patch utility and optionally the rpm utility:
sudo apt-get install patch rpmSleves up
Extract the sources. If you extract from the RPM you have to extract the tar.gz contained in the directory within rt3090sta-18.104.22.168-1.2.src as well (I renamed the directory to RT3090 for convenience).
In the RPM sources you find 5 patch files, some decriptive text and the original source directory (is the same as the one from RaLink).
Source code preparation
You can either apply the patches or apply changes manually. To apply patches cd into the directory containing the Makefile (2009_0612_RT3090_Linux_STA_V22.214.171.124_DPO). All patches create a backup of the files patched (they have an extension .orig).
patch -b -p0 ---input=../rt3090sta-126.96.36.199-config.patchThis patches the Makefile and the os/linux/config.mk file. In my case I had to revert the changes in the Makefile (I simply copied the Makefile.orig over the Makefile).
You can apply these changes manually by editing ./os/linux/config.mk. Set:
HAS_WPA_SUPPLICANT=yThis allows the driver to be controlled from the Network Manager applet.
Next apply the WPA-mixed patch. This changes the encryption cypher to TKIP-AES.
patch -b -p0 ---input=../rt3090sta-188.8.131.52-WPA-mixed.patchYou can change the line in ./common/cmm_wpa.c from MIX_CYPHER_NOTUSE to:
WPA_MIX_PAIR_CYPHER FlexibleCipher = WPA_TKIPAES_WPA2_TKIPAESmanually.
If you use the patch utility, you can change the driver name to rt3090. This is cosmetic:
patch -b -p0 ---input=../rt3090sta-184.108.40.206-remove-potential-conflicts-with-rt2860sta.patchThis replaces all appearances of "rt2860" to "rt3090" in the file ./os/linux/pci_main_dev.c and can be done manually using gedit or vi.
We are nearly there. Another cosmetic change is applied by:
patch -b -p0 ---input=../rt3090sta-220.127.116.11-convert-devicename-to-wlanX.patchThis changes the default ra device to wlan device. You can manually replace the "ra" with "wlan" in the define statements of the file ./include/rtmp_def.h.
If you are not there, go back to the directory containing the first Makefile.
makeThis will start the compile process. Don't worry about the error messages. I tried to fix them but the results were no better.
After a while the make process will terminate with an error message (it cannot copy files to the /tftpboot directory). Don't worry, we don't need it.
You can call
make installor manually copy the driver and bind it to the OS:
cp ./os/linux/rt3090sta.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/.There is also an install utility that you can use for this purpose.
You have to copy the file RT2860STA.dat to /etc/Wireless/RT2860STA. Create the directory Wireless and RT2860STA if it does not exist (if you used make install, this is done for you).
If the file is not found there, the wlan interface will not get registered and you will find an error entry in /var/log/syslog:
... RtmpOSFileOpen(): Error 2 opening /etc/Wireless/RT2860STA/RT2860STA.dat(I found some posts on the internet that suggested fixing paramters in some configuration files. I think the euphoric success messages are due to frustration and not due to solution. Only having a system readable version of the file in the right place makes the driver work).
Edit the file /etc/Wireless/RT2860STA/RT2860STA.dat. Change the settings for:
CountryRegionor Keysettings. You can find the correct parameters to use in the template file README_STA_pci. Ignore advice of the rest of the file, it does not work in Ubuntu.
Start the driver
Before you continue, check the Network Manager applet. It should not offer you any wireless networks nor should you be able to Enable wireless either.
sudo modprobe rt3090stashould work flawlessly. After a while you should be able to connect to the wireless network. Enter the connection information in Network Manager. If you choose auto connect and connection available to all users, connections will be set up automatically.
Reboot the machine. The driver should get loaded automatically after reboot.
Some things to keep in mind:
- The driver is copied into a directory tree of the kernel libs that gets replaced as soon as the kernel gets updated. You have to copy the kernel driver anew to the correct library path. I presume this is an accepable tradeoff until drivers get shipped with the standard image
- The driver does not connect to SSIDs that are hidden (as was the case with my WLAN). I had to set the router to show my SSID in order to get a connection. This was the reason it took me that long to figure out how to install.
- The warning messages that you saw during make do mean something. The source leaves some variables uninitialized. This generally is not a sign of good quality code. However, the driver works sufficiently. I hope RaLink people will deal with the warnings.
- The driver does not correctly deregister for sleep mode.
The SD card driver does not work on the MSI X320 (as of September 2009). The sdhci kernel mode drivers are notorious for making the machine unresponsive. The device does not release locking bits thus causing permanent timeouts, slowing the machine considerably. To disable kernel mode drivers in Ubuntu
- goto /etc/modprobe.d/
- create a file somenameorother.conf (I called it blacklist_sdhci.conf)
- edit it to:
- restart the machine
Neither suspend to RAM nor hibernating works.
I tried Karmic Koala (9.10) but neither the Poulsbo drivers, the SD card nor power savings were fixed.
If you can live with rebooting the machine, the MSI X320 is a slim, leightweight notebook. Here is a screenshot of how my machine looks now: