udev-182 needs CONFIG_ DEVTMPFS in kernel

After the latest upgrades on my gentoo vserver system running a 3.3.0 Linux  vserver-kernel (vserver-sources-2.3.3.1), the system did not start up properly anymore. No kernel modules got loaded and even the network devices have not been available after a reboot. This is more or less the worst case, since then one has to be physically in front of the machine and can not repair the system via ssh remote login.

The kernel upgrade was not the reason for this,  but the upgrade to udev-182. This is what the log said:

Mar 21 17:20:05 mittelerde /etc/init.d/sshd[5563]: ERROR: cannot start sshd as net.eth0 would not start
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount[6075]: Udev uses a devtmpfs mounted on /dev to manage devices.
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount[6076]: This means that CONFIG_DEVTMPFS=y is required
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount[6077]: in the kernel configuration.
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount[6067]: ERROR: udev-mount failed to start
Mar 21 17:20:09 mittelerde /etc/init.d/udev[6066]: ERROR: cannot start udev as udev-mount would not start
Mar 21 17:21:06 mittelerde /etc/init.d/net.eth0[6463]: ERROR: interface eth0 does not exist

With the information “CONFIG_DEVTMPFS=y is required” the log contains the necessary hint to get things to work. The CONFIG_DEVTMPFS option had to be enabled in the kernel. Afterwards the kernel has to be recompiled. The option can be found in menuconfig under Device Drivers-> Generic Driver options and is called Maintain a devtmpfs filesystem to mount at /dev.  For getting the devfs automatically mounted at boot time it makes sense to also enable the option Automount devtmpfs at /dev, after the kernel mounted the rootfs (CONFIG_DEVTMPFS_MOUNT).

It is safe to enable these options with older udev versions. Doing so protects your system from not working any more when you get the udev update later.

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5.00 out of 5)
Loading...

zen-sources-3.2 with tuxonice

Starting with the 2.6.36 kernel, tuxonice has been removed from zen-sources. The latest official tuxonice patch, that is available at present, is for the linux kernel 3.0. In the meanwhile more recent patches, for kernel version 3.2.1 and 3.2.10, have appeared at crow202.org. So I patched the zen-stable-3.2 sources with the 3.2.1 tuxonice patch from there.

Suspend to RAM works with this kernel, at least on my Dell Precison M65 and my Desktop, as well as suspend to disk does. Furthermore I can confirm, that the 3.2.1 patch also works on the x86_64 architecture.

To get things to work, download the zen-stable-3.2 kernel tree from zen-kernel.org and extract it. Afterwards download the 3.2.1 tuxonice patch from crow202.org and apply it. After applying the patch you can continue with the standard kernel building process. As with zen-sources-3.1,  no additional patch is necessary for the zcache feature, the fix is already included in zen-stable-3.2. The zcache feature doubles RAM efficiency while providing a significant performance boosts on many workloads. The zcache feature is located under staging drivers in the kernel tree and depends on the cleancache feature, which is located under processor types and features. To enable the zcache feature, you have to pass the zcache keyword to your kernel, in example in your grub.conf.

Example: kernel /bzImage panic=60 root=/dev/hda3 zcache

For Gentoo users there is a more easy way: Download my modified overlay from zen-sources-3.2.tar.gz (1270 downloads ) and extract it in /usr/local/portage. The overlay contains all necessary patches. Be sure to include the following line in your /etc/make.conf:

PORTDIR_OVERLAY=”/usr/local/portage”

If you want to use tuxonice include tuxonice in your USE-flags. Then emerge zen-sources and build the kernel as you like.

Tuxonice is not officially supported in current zen-sources. So If you’re using the files above, don’t report any bugs to zen-sources.org. You are on your own.

For my Precision M65 I used the following kernel config: config_zen_3.2_dell_m65.zip (1273 downloads )

For more information on the zen-sources patchset see www.zen-sources.org.

best regards

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Small bugfix in extcalllog callerid modification for N900

In the article Looking up phone numbers with the N900 I described a solution to perform reverse phone number lookups from within the N900s extended call log. The patch and thus also the binary package there contained a small bug. Whenever there were international calls, beginning with “00”, in the log, the reverse lookup failed due to the callerid application not interpreting the “00” correctly. The fixed extcalllog application now translates these trailing zeros to a “+” which gets interpreted correctly by the callerid application.

The downloads in the original article have been updated now.

Jürgen

 

 

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

qemu-kvm with cache=none fails on ext4 filesystem with journal_data option

Kvm has become one of the major virtualization technologies the last years. For Redhat Linux it has even become the default virtualization solution. Kvm´s IO performance is hardly competitive to other virtualization solutions when using the default options. Especially when using qcow2 images, the IO performance of kvm/qemu can be greatly improved by disabling the cache of the underlying host filesystem. This can be done by starting kvm with the cache=none option, in example with the options

-drive file=my_image.qcow2,index=0,media=disk,cache=none

instead of just supplying the image file with -hda my_image.qcow2. Then the image file is being opened using the O_DIRECT flag, bypassing the page cache. If the underlying filesystem does not support the O_DIRECT flag, this fails with the error message:

could not open disk image my_image.qcow2: Invalid argument

This is the case for an ext4 filesystem with full journaling enabled. One can easily test if the O_DIRECT flag is supported by the underlying filesystem with a simple dd command on the host:

dd if=some_file of=/dev/null iflag=direct

If the O_DIRECT flag is not supported it results in the following error:

dd: opening `some_file’: Invalid argument

Thus, if safety concerns do not apply, one does not want to use full journaling, to increase performance. The journaling options can be set either in /etc/fstab or in the filesystem itself. For the fstab case the red marked part of the following example entry has to be removed.

/dev/sda7 / ext4 defaults,noatime,nodiratime,async, data=journal 0 1

If the journaling option is set in the filesystem, this can be shown and edited with the tune2fs command. In example tune2fs -l /dev/sda7 displays information on the filesystem on /dev/sda7. If full journaling is enabled, the output contains the journal_data mount option:

Default mount options:    journal_data

The option can be removed with tune2fs -o^journal_data /dev/sda7. Afterwards the output of tune2fs -l does not contain the journal_data mount option any more:

Default mount options:    (none)

In both cases the filesystem has to be remounted to activate the changes. Afterwards qemum-kvm works with the cache=none option, as described above, and with increased IO performance.

Jürgen

References:
[1] itscblog.tamu.edu
[2] blog.nkadesign.com

 

 

 

 

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

Looking up phone numbers with the N900

Who does not know this situation. One returns to the phone and recognizes a missed call. Then one usually wants to know who the caller is, but the phone only displays an unknown phone number. Usually the next step is to google the number  or use a reverse number search to see who called, or at least from where the call came.  This article is about improving this situation using Nokia´s smartphone N900 .

Concept

Basically there are two applications for the N900 phone which can be used to improve the above scenario. These are callerid and extcalllog. The callerid application displays the details for the phone number of an incoming call. This is done by automatically accessing a reverse number search engine. If the number is not available in the database, which happens quite often due to privacy reasons, it compares the area code with a local database and displays at least the region, the call comes from. The extcalllog application displays the call history just as the phone application of the N900 does, but it has got two major advantages. First it is not restricted to the last 30 days as the N900s phone application is, second it is open source, thus it can be extended. This makes it possible to combine the functionality of extcalllog and callerid.

Prerequirements

As a prerequirement it is necessary to install and configure the callerid application for the users region. It is available from the  extras-devel repository. Configuration is done by supplying an xml file describing the reverse search. This file has to be placed in /opt/callerid/ and named correctly. For example the xml file for the german reverse number search must have the filename de.xml. The contents of the file, taken from [1] are being shown below.

<config>
  <directory>
    <query>http://www.klicktel.de/inverssuche/index/search?method=searchSimple&amp;_dvform_posted=1&amp;phoneNumber=</query>
    <name>
      <find class="namelink"/>
    </name>
    <address>
      <find class="data track"/>
    </address>
  </directory>
</config>

For displaying the area code in case of a failed reverse lookup a local database file has to be placed in /opt /callerid/.  For Germany this file must be named de.txt. It can be created from the official list of area codes, ONB, provided by the Bundesnetzagentur.  For convenience you can download the file in proper format for callerid from here: de.txt.zip (1283 downloads ) . Copy it to your device and as root user extract it to /opt/callerid. Afterwards the device signals incoming calls with a notification containing the callers name and address or at least, if these are not available, the callers city.

Modifications

The next step is to extend the user interface to display the details for an incoming call. Since the default N900 phone application is not open source, the extcallog application is the only application which is extensible for this purpose. It also is available from the extras-devel repository. For the new functionallity an additional button has to be added to the user interface, which calls the callerid application with the phone number for the log entry. For this the extcalllog applications source has to be extended using my patch. You may download the patch from here: extcalllog-0.6-callerid.patch (1254 downloads ) . For convenience a binary with the patched version can be downloaded from here: extcalllog_0.6-callerid_armel.deb (1274 downloads ) . Download the binary to the device and install it with, dpkg -i extcalllog_0.6-callerid_armel.deb as root user. Or open the download in the phones browser and install it using the hildon application manager.

Usage

After installing the modified extcalllog application, it can be used as shown in figures 1 to 4. The figures show screenshots of the extcalllog application.

callerid

Figure 1: Selection of an entry in the callerid application

After tapping onto one entry of the call list (marked in red) the details page of the call is being opened. Figure 2 shows this page.

callerid details page

Figure2: Details page of a call with the “Lookup Number” button

The details page looks like the original one of the extcalllog application, but has got one more button, the “Lookup Number” button (also marked with a red point). After tapping onto the “Lookup Number” button the callerid application gets called for the callers number and displays the notification containing the callers details shown in Figure 3. (callers details are indecipherable in the screenshot, due to privacy reasons)

shot_callerid_3

Figure 3: Notification with callers details

If the callers details are not available using the reverse number search, then only a notification displaying the callers town, like in figure 4, is being shown.

shot_callerid_4

Figure 4: Notification containing callers town only

Now the N900 user is able to find out who the unknown caller is, or at least he can find out  in which area he lives.

Jürgen

References:

[1] http://talk.maemo.org/showthread.php?t=70738

[2] http://talk.maemo.org/showthread.php?t=42700

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)
Loading...

nvidia-drivers-295.17 solve black screen problem

Using nvidia linux drivers from version 270.X to 275.X with some graphics boards, in example the Quadro FX 350M which is built into the Dell Precision M65 notebook,  resulted in a black screen or window for OpenGL applications. Even glxgears did only output a black window. The problem has been discussed on forums.opensuse.org. A downgrade to a lower driver version, in example the version 260.X drivers is not applicable anymore, since these drivers do dot build against a recent linux-3 kernel. A upgrade to newer drivers also was not possible, since driver versions from 285.X to 295.10 did not work at all for this graphics board. Recently version 295.17 of nvidias beta driver has become available, which solves this issue. Download links are available on nvnews.net.

For gentoo users I have modified the nvidia-drivers  ebuild for the 295.17 driver. You can download my modified overlay, nvidia-drivers-295.17.tar.gz (1322 downloads ) and extract it in /usr/local/portage. Be sure to include the following line in your /etc/make.conf:

PORTDIR_OVERLAY=”/usr/local/portage”

Afterwards you may emerge nvdidia-drivers-295.17.

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

zen-sources-3.1 with tuxonice

Starting with the 2.6.36 kernel, tuxonice has been removed from zen-sources. The latest official tuxonice patch that is available is for the linux kernel 3.0.  However, I found a more recent patch at gmane.org. So I patched the zen-stable-3.1 sources with this tuxonice patch.

Suspend to RAM works with this kernel, at least on my Dell Precison M65 and my Desktop, as well as suspend to disk does.

To get things to work, download the zen-stable-3.1 kernel tree from zen-kernel.org and extract it. Afterwards download the tuxonice patch from gmane.org and apply it. After applying the patch you can continue with the standard kernel building process. This time no additional patch is necessary for the zcache feature, the fix is already included in zen-stable-3.1. The zcache feature doubles RAM efficiency while providing a significant performance boosts on many workloads. The zcache feature is located under staging drivers in the kernel tree and depends on the cleancache feature, which is located under processor types and features. To enable the zcache feature, you have to pass the zcache keyword to your kernel, in example in your grub.conf.

Example: kernel /bzImage panic=60 root=/dev/hda3 zcache

For Gentoo users there is a more easy way: Download my modified overlay from zen-sources-3.1.tar.gz (1195 downloads ) and extract it in /usr/local/portage. The overlay contains all necessary patches. Be sure to include the following line in your /etc/make.conf:

PORTDIR_OVERLAY=”/usr/local/portage”

If you want to use tuxonice include tuxonice in your USE-flags. Then emerge zen-sources and build the kernel as you wish.

Tuxonice is not officially supported in current zen-sources. So If you’re using the files above, don’t report any bugs to zen-sources.org. You are on your own.

For my Precision M65 I used the following kernel config: config_zen_3.1_dell_m65.zip (1253 downloads )

For more information on the zen-sources patchset see www.zen-sources.org.

best regards

Jürgen

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

siteinfo

Translator