Thursday, 29 of July of 2010

News

openSUSE 11.2 linux on Intel Core i3 with Intel HD Graphics

I bought I new PC system, based on a motherboard with the H57 chipset and the intel core i3 530 CPU. After a faultless installation of openSUSE 11.2, I had some initial problems getting the integrated Intel HD graphics to work. A kernel update to linux kernel-2.6.34-35 using the latest openSUSE 11.3 Milestone7 DVD, solved the problem for me. Read on for a few more details.

The System

The components for my new PC arrived last week and I finally got a chance to put it all together last night. The system components were chosen with low-energy consumption and silent operation in mind.  The specs are as follows:

  • ASUS P7H57D-V EVO motherboard
  • Intel Core i3 530 2.93GHz Socket 1156
  • Zalman CNPS10x Flex CPU cooler (intended to operating without fans)
  • 2x Crucial 1GB DDR3
  • OCZ 400W Stealth XStream PSU (140mm Fan for silent operation)
  • Seagate Barracuda LP ST3500412AS 500GB HD SATA2 5900 rpm 16MB Cache

Evidently, I did not really see the low-energy idea through to the end. If I had, I would have traded the ATX motherboard for one of the mini-ITX LG1156 motherboards from ZOTAC.

Installing openSUSE 11.2

The installation from an openSUSE 11.2 DVD completed without problems. It was only on the first boot-up, that the problem with the integrated Intel HD Graphics became apparent. The system attempted to start the X server, but just flashed the screen a few times and then reverted to a console login.

The solution

openSUSE 11.2 (kernel-2.6.34-25)

openSUSE 11.2 (kernel-2.6.34-25) on intel core i3

Reading some more information on the internet revealed that the problem could most likely be solved by a kernel upgrade and/or that of the xf86-video-intel graphics driver. The trouble is, that the most current kernel for openSUSE 11.2 is still the kernel-2.6.31 release.

So in short, the solution was to download last nights build of the very latest and greatest openSUSE 11.3 Milestone7 DVD using wget from the console. I then started YAST in the graphical console mode and added the openSUSE 11.3-Milestone7-DVD iso-file as a repository. After this, the new kernel-2.6.34.35 shows up in the normal YAST Software Management tool, and can be installed like any other package. A reboot of the system presented me with the lovely green login-screen of an openSUSE 11.2 installation. The graphics now work, wobbly windows, animations, cube-switcher and all. The current kernel is 2.6.34-35-default.

Notice, that I haven’t yet upgraded the xf86-video-intel driver. I am going to do that next , just for fun.


Do your comment

INKredible also credible.

When I was looking for new ink cartridges last night, I found the website INKredible.co.uk and they had a really good price against a very promising looking set of replacement cartridges. Unfortunately, when I got to the checkout stage, my SSL-Blacklist Extension in Firefox warned me about a connection based on md5 which is not deemed secure any more. I dropped them a ticket explaining the situation and within less than 24 hours they had re-issued their certificate and notified me of the changes. Since I had been unwilling tto spend more money on a similar product somewhere else, I promptly went and bought the set of cartridges I had had in mind before. I love good customer service, I am sure we all do, and so I thought I put this little praise out there. Maybe it will help other people make a more informed decision, who knows.


1 comment

Installing the Canon PIXMA iP4500 printer on 64bit Linux – openSUSE 10.3

Ok, so this wasn’t too hard, but there was a little hiccup and so I thought I’d briefly note down the solution.

The first step is to find the actual driver because the iP4500 model not listed in the standard set of drivers (at least not in mine). Choosing one of the other PIXMA drivers (like the 4100) will only result in blanc pages.

1) Find the drivers on the Canon website (google search for it. I would post the link but the page is currently not working for me, it did so a minute ago though).
There are two files, one is a common driver (file name: cnijfilter-common-2.80-1.i386.rpm) and the other one is the model specific driver (file name: cnijfilter-ip4500series-2.80-1.i386.rpm). They need to be installed in order, so I suggest you also download the instructions, a file called: guideip4500series-pd-2.80-1.tar.tar
The instructions are very clear and come in flavours for Fedora 7, openSUSE 10.3 and Ubuntu 7.04 (all the same file).

2) After the installation I tried to print but without success. Looking at the printer properties (Control Center – Printer – <printer name> (right click) -> Properties) I found the error message /usr/lib64/cups/backend/cnij_usb failed. I did a google search, and the solution is the following (as found on Linuxuser LigLog).

Open a terminal and as root, type the following two commands:

ln /usr/lib/cups/backend/cnij_usb /usr/lib64/cups/backend/cnij_usb
ln /usr/lib/cups/filter/pstocanonij /usr/lib64/cups/filter/pstocanonij

Restart CUPS ( /etc/init.d/cups restart) and it should work.


Do your comment

How to access multiple GTK+ widgets using Glib and the GObject

See my former post on “How to access two GTK+ widgets from a single callback function (using libglade)” for a different way of achieving the same thing. However, the method described below is the official way of doing things and thus to be preferred.

GtkWidgets are derived from GObjects. They can be cast back and forth using the G_OBJECT() and GTK_WIDGET() macros. Use g_object_set_data() to attach a gpointer and its key to a GObject of your choice (find the definition at library.gnome.org). The pointers can then be retrieved wherever the GObject that they have been attached to, is available. This is done using g_object_get_data(). Attaching two pointers to two different GtkWidgets to the main window widget, will enable you to call on them from any callback function you use.


Do your comment

How to access two GTK+ widgets from a single callback function (using libglade).

I hope the code below may be useful to some people. I am new to GTK+ myself so I am not sure whether this is the best solution, but it is certainly on of the better ones. Other solutions would be to use globals or possibly structs.

What the function does:
It is a simple callback function that has been connected to the GladeXML file by the following line:
glade_xml_signal_connect(gxml, "on_execute_recording_button_clicked", G_CALLBACK(on_execute_recording_button_clicked));
where gxml is the main GladeXML file that was created using Glade-3. Look on Micah Carrick’s blog for information and tutorials on Glade.

Using glade_get_widget_tree() we can get hold of the GladeXML file inside the callback function without using globals. From there is it easy, we simply use the glade_xml_get_widget() function to create the widgets we want.

Here is the code:

/*
 * Function aquires a handle on the GtkProgressBar and the GtkTreeView widget
 * then calls a function that works on both widgets.
 *
*/
void on_execute_recording_button_clicked  (GtkButton *button, GtkWidget *window, gpointer gptr)
{
	GladeXML *gxml;
	GtkWidget  *pbarWidget, *data_viewWidget;
	GtkProgressBar *pbar;
	GtkTreeView *data_view;

	gxml = glade_get_widget_tree(GTK_WIDGET(button));

	pbarWidget = glade_xml_get_widget (gxml, "record_progressbar");
	pbar =  GTK_PROGRESS_BAR(pbarWidget);

	data_viewWidget = glade_xml_get_widget (gxml, "data_view");
	data_view = GTK_TREE_VIEW(data_viewWidget);

	get_data(pbar, data_view);
}

Do your comment