As you can see from my last posts, I'm trying to learn how to perform a debug, and the infamous Cinnamon freeze seems ideal to me for such purpose because we found an easy way to trigger it.
The problem is that you have to install some debugging packages (those ended in "-dbg") to be able to locate certain things inside a source code. Most Ubuntu packages have their "-dbg" version so you can install them and have those debugging symbols, but both Cinnamon and Muffin have no "-dbg" package available.
The solution: rebuild Cinnamon and Muffin packages with DEB_BUILD_OPTIONS="noopt nostrip" as environment variable and then install those local recompiled packages (as explained here: http://jameswestby.net/tips/tips/compil ... debug.html).
Now the funny thing... once Muffin was recompiled and installed that way, THERE'S NO MORE FREEZE!!!
I couldn't believe it, so I re-installed the original (directly downloaded from Mint repos) binary Muffin packages and performed the "infallibly" freeze test, so I was completely sure nothing else was interferring. And yes, with the original binary packages the freeze happened as usual.
Then, recompiled Muffin from sources with just DEB_BUILD_OPTIONS="noopt", then installed and... no freeze at all!!!
I'm shocked. It can't be so easy.
So please, could somebody verify my findings?
Here the whole procedure (asuming you have an "untouched" Maya+Cinnamon 32bit installation, no patches and no ppa packages installed):
1- Do a "gksu gedit /etc/apt/sources.list" and modify that file to be able to get the source packages:
- Code: Select all
deb http://packages.linuxmint.com/ maya main upstream import
deb-src http://packages.linuxmint.com/ maya main upstream import
deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu/ precise partner
deb http://packages.medibuntu.org/ precise free non-free
#deb http://archive.getdeb.net/ubuntu precise-getdeb apps
#deb http://archive.getdeb.net/ubuntu precise-getdeb games
2- Run a "sudo apt-get update"
3- Then install the development tools:
- Code: Select all
sudo apt-get install build-essential fakeroot dpkg-dev devscripts
4- Now the dependencies to compile Muffin:
- Code: Select all
sudo apt-get build-dep muffin
5- Get Muffin source package
- Code: Select all
apt-get source muffin
6- And recompile Muffin as explained:
- Code: Select all
cd muffin-1.0.3
export DEB_BUILD_OPTIONS="noopt"
dpkg-buildpackage -rfakeroot -uc -us
7- Wait for the compilation to end, then install the new packages:
- Code: Select all
cd ..
sudo dpkg -i *.deb
8- Restart and try to trigger the freeze the usual way. Any changes?
By the way, using the recompiled Muffin you will notice some minor glitches (Cinnamon's menu becomes kind of "lazy"), you can avoid them this way:
- Execute the following command at a terminal:
- Code: Select all
gksu gedit /etc/environment
- Append this line to the end of that file:
- Code: Select all
CLUTTER_PAINT=disable-clipped-redraws:disable-culling
-Save and restart.












