Mike Hommey: Iceweasel 5.0b2
would have been released today if mozilla.debian.net was responding. But it s moving to a new server.
cpio(1) takes the list of files to archive on its standard
input, allowing a very high control but requiring to use another utility
such as find(1) to archive an entire tree;tar(1) usually takes the list of file to archive on its
command line, and browses directories recursively be default.pax(1), that can be used either in cpio-like or tar-like style.
This specification also defined a pax interchange format, which these vile
trolls derived from tar!
Now, considering the actual practice, you can notice that tar has won, and that almost nobody uses pax.
Almost every free software project I know release tarballs, not cpio archives.
This is probably the reason why the GNU tar utility has evolved much more than
GNU cpio: tar now integrates seamlessly with compressors such as gzip, bzip2 or
xz, autodetecting the compression format when needed whereas cpio has no such
features as far as I know. However, cpio is notably used by the Linux kernel
for its initial memory file system, aka initrd.
tar and cpio drawbacks
Now I come to the title of this article: I personally prefer the cpio format
over tar, although I usually use tar because of the advanced features of GNU
tar. In fact, tar suffers from a drawback that usually has to be worked around:
it cannot store any type of file. There exist seven file types: regular files,
directories, symbolic links, character devices, block devices, FIFOs and Unix
sockets. Well, tar can only represent six of them, and misses the ability to
store sockets. Thus, if you try to archive your entire filesystem with tar, you
may get the following output:
tar: /var/spool/postfix/private/rewrite: socket ignored tar: /var/spool/postfix/private/bsmtp: socket ignoredIf you try the same with cpio, you will see that sockets get archived without any problem. Given that the tar format has a type byte, with one reserved value, I am surprised that its 2001 revision did not use it for sockets, but for some reason it did not. In practice, programs that use sockets work around this problem by creating them at startup. To be honest, I must mention that cpio also has one significant drawback: when a file has several links, it gets copied several times in the archive. Edit: It appears that archiving sockets is completely pointless, given that they must be unlinked if they exist, and then created before they are used by a program. Thus, the question becomes: why does cpio support sockets?
I needed a way to generate a list of commands in make automatically. I was using $(foreach i,$(list),cmd $i;), that is, a semicollon to intercalate commands. The problem with this approach is that if the first command fails, make would not detect the error. After searching for a while, I found the solution on this link. It's possible to create a newline in make functions using this technique. The code ended up being:
define \n
endef
target:
$(foreach i,$(list),cmd $i$(\n))
The host name
sethostname() and gethostname()
functions and their command-line wrapper hostname(1). It can be
used by several programs, for instance by the mail server to determine what it
should use as its HELO name.
In fact, the host name has two forms: the short one and the fully qualified
one. For instance, a host can have muscadet as its short name
muscadet and muscadet.example.com as its fully qualified
one. From these two forms, a third information can be deduced: the domain name,
which is the full name without its first component.
The system host name can be set as either the short name or the fully
qualified name. When the full name is used, the short one can be easily
deduced, by keeping only its first component. When the short name is used, the
full name must be determined by using a more complex heuristic that takes more
time and can fail for several reasons.Determining the short and the fully qualified host name
The command hostname(1) is able to give both the short and the
full host name, and also the domain name that can be deduced from them:
/etc/hosts, the DNS
or a more exotic name system depending on your configuration./etc/hostname
and set at boot time by the hostname.sh init script. The local
hosts table /etc/hosts also contains it, in both forms, for a
loopback IPv4 address 127.0.1.1. It is asked at installation time: the most
common practice is to give the short host name; you are then asked for the
domain name. But you have the option to give the fully qualified domain name,
which has the effect to skip the domain name question.
Using a fully qualified system host name
I used to define short system host names, and I switched to fully qualified
ones about a year ago. I saw no drawback, but I did see benefits. Postfix, by
default, uses the system host name to determine its variables
myhostname and mydomain that are used for stuff like
the HELO name and the mail domain name. Well, with a short system host name, it
fails, and you get default myhostname = muscadet.localdomain and
mydomain = localdomain, so you have to set them explicitly in its
configuration file, thus duplicating information. Whereas with a fully
qualified system host name, it just works, and you can rely on the default
values, that will stay in sync if you have to change you host name.
To sum up, it is perfectly possible to use a fully qualified name as the
system host name, even though it does not seem to be a common practice. In
fact, according to my experience, it is even advisable, as it eases the
configuration of programs that rely on the host name, such as mail servers.
Edit: As noticed by Javi, the hostname(1) manpage ends by saying without explaination that /etc/hostname should contain the short host name and not the full one. There may by some drawbacks by doing so but I was not able not identify them.
Particularly around local government, but also some not-for-profits and universities, I m trying to persuade people to stop using huge Blind Carbon Copy (BCC) lists that they keep in their address book and switch over to using mailing list manager software. Our co-op even gives some simple mailing list hosting away with web hosting. I think good mailing list software is better because:
Firstly: If you want to buy a computer to run Linux on, don't buy a Mac.
This year Debconf is a bit off the beaten track, so there is a bit of anxiety in the participants flights to Banja Luka are quite expensive (I d guess we have packed the relevant dates pretty full already) and other options are going via Zagreb or Ljubljana, but there people do not yet have all the info on how they will be able to get from, for example, Zagreb airport to the Debconf venue in Banja Luka, if their plane lands at 22:30 and get back if the departure time is 06:30. There is hope that the organising team will provide the info on how to use the local buses and arrange a Debconf bus for people arriving late and departing early, but that has not been 100% confirmed yet.
In light of all this, I really dug deep into all possible options and found an option that is far more fun and relaxing for me and almost the same price. So I will be travelling to Paris on the morning of July 16th, then staying overnight there (never been in Paris before!), then take a late morning flight to Zagreb where I ll be around noon (plenty of time to get to Banja Luka) and then on the final day of the conference I can got to Zagreb at any time, stay there overnight (never been to Zagreb too!) and around noon next day fly back home via Budapest (just a 2 hour break there). This way I will get to see two more cities, save me a lot of stress and also not bother the organizers too much.
The fundamental problem with projects requiring copyright assignment is that there's an economic cost involved in me letting a competitor sell a closed version of my code without letting me sell a closed version of their code. If this cost is perceived as larger than the cost of maintaining my code outside the upstream tree, it's cheaper for me to fork than it is to sign over my rights. So if I have my own engineering resources, what rational benefit is there to me assigning my copyright?
Sometimes people will tell you what you should do. Sometimes they will even shout at you for simply asking a question on why they want something done because it isn't clear just from itself. And others likes to jump the boat and join in just for the fun of it...
Gladly, this is MY life, and I choose how much abuse I'm willing to take, especially for a voluntary work that I didn't even enroll for but got put into. Sometimes through my dedication to getting quality into things and seeing that others simply neglect these areas, but they need to get addressed anyway, no matter how little respect is shown for people investing in these boring areas.
The topic of It's MY Life is an old one and thus it is no surprise that a fair amount of songs surrounding it popped up over time. In my previous blog entry I wrote about different interpretations, some responses seem to hint that I wasn't clear enough about that I really meant different interpretations of the same lyrics, not just regular cover versions.
The following set of songs is special in a different sense: It is about the same song title and thus does also cover different bands.
Like always, enjoy! And think about how you interact with others. I know that I'm sometimes crossing a line myself too, no one is perfect. What though makes the difference is the willingness to learn, and especially: To excuse. But in the end: It's MY life!
This week I lost some time playing with Python's sets. After digging into Python source code, I finally discovered there is what seems to be little bug. Anyway, it has been "fixed" in Python 3, fortunately. I did not find if it was reported somewhere, but since it's fixed, it's not a big deal.
Python 2.7.1+ (default, Apr 20 2011, 10:53:33) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> class A(object): ... def __eq__(self, other): ... return True ... >>> A() == A() True >>> [A()] == [A()] True >>> set([A()]) == set([A()]) FalseThis clearly did not make any sense to me. I've then tested under Python 3.2:
Python 3.2.1a0 (default, May 4 2011, 19:59:25) [GCC 4.6.1 20110428 (prerelease)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> class A(object): ... def __eq__(self, other): ... return True ... >>> set([A()]) == set([A()]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'A'At least, raising an error is saner. It actually helped me to understand what I needed to do to have my sets working correctly with Python 2:
Python 2.7.1+ (default, Apr 20 2011, 10:53:33) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> class A(object): ... def __eq__(self, other): ... return True ... def __hash__(self): ... return 123456789 ... >>> set([A()]) == set([A()]) True
Dose3 is a framework made of several OCaml libraries for managing distribution packages and their dependencies. Though not tied to any particular distribution, dose3 constitutes a pool of libraries which enable analyzing packages coming from various distributions. Besides basic functionality for querying and setting package properties, dose3 also implements algorithms for solving more complex problems (monitoring package evolutions, correct and complete dependency resolution, repository-wide uninstallability checks).For the ocaml affectionados the API of the library is available here (there is still a bit of work to do here...) . The source code shipped in each release does not include a vast range of applications sitting in the experimental directory. You can have a look at these in our svn. if you want to get a copy of the development / bleeding edge / unstable version from svn, you can check it out from the svn
svn co https://gforge.info.ucl.ac.be/svn/mancoosi/trunk/dose3user/pass : mancoosi/mancoosi
This has been several months since I didn t use much my laptop, an
Asus S5N: it was crippled by a short battery life and was hit by
several bugs, most of them targeting the i855GME graphic chipset
thanks to the use of GEM and KMS in the latest Xorg. I did
not want to invest too much in a laptop and I have found
a rebate from Lenovo for Thinkpad Edge series. Voil , I have a
Thinkpad Edge 11 .
Here is the configuration that I bought:
1 | # dd if=debian-testing-amd64-netinst.iso of=/dev/sdb |
/usr
in the root partition since having a separate /usr is less and less
supported, especially with piece of software like udev.
The partitioning tool in Debian installer do not allow to resize
volumes, you need to destroy them and recreate them as well as their
content. However, this is still faster than writing a patch for this.
When the installation is finished, the laptop boots on a 2.6.38
kernel, asks for the passphrase to decrypt the LUKS volume and display
the login prompt a few seconds later.
/etc/apt/sources.list to get unstable:
deb http://ftp.fr.debian.org/debian/ unstable main deb-src http://ftp.fr.debian.org/debian/ unstable main deb http://ftp.fr.debian.org/debian/ experimental main contrib non-free
/etc/apt/preferences.d/experimental:
Package: * Pin: release experimental Pin-Priority: 101
zsh, my favourite shell with my hand-made maturating
configuration. I should put it on
GitHub one day.mg, is the editor that I use to quickly edit a configuration
file. I don t like vi. I have used jed for a long time but its
default configuration can be cumbersome and it misses some emacs keybinding.emacs, my work environment. I use it as a text editor and mail
reader (with Gnus). I don t use it as a
browser nor as a terminal. As for zsh, I have my configuration
files ready to be copied anywhere.fvwm, my window manager since quite some time. I use
fvwm-crystal on top of it. My configuration is
described in another post. I also use conky.rxvt-unicode, a terminal. It has a very good terminal emulation
and some fancy features like transparency (using compositing or
not). It is light and fast and allows to search in the
backbuffer. It can use a client/server system that will close all
your windows when the server crashes. This almost never happens.unison, a synchronisation tool that allows me to keep the same
files on my different computers.gdm3 is the only display manager that is able to talk correctly
to ConsoleKit and get the rights set correctly without adding
yourself to a lot of groups.rpcbind and nfs-common. I use ferm to setup a simple
firewall. Here is my ferm.conf:
domain (ip ip6) table filter chain INPUT policy DROP; mod state state INVALID DROP; mod state state (ESTABLISHED RELATED) ACCEPT; interface lo ACCEPT; proto tcp dport ssh ACCEPT; chain OUTPUT policy ACCEPT; mod state state (ESTABLISHED RELATED) ACCEPT; chain FORWARD policy DROP;
unison will then sync my configuration files and my documents. After
this step, my environment is ready.
lspci and lsusb, everything seems pretty easy to get supported.
Here is lspci output:
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02) 00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02) 00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06) 00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06) 00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06) 00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06) 00:1c.1 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 (rev 06) 00:1c.5 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 (rev 06) 00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6) 00:1f.0 ISA bridge: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller (rev 06) 00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 4 port SATA AHCI Controller (rev 06) 00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06) 00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 06) 03:00.0 Network controller: Intel Corporation Centrino Wireless-N 1000 09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02) ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02) ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02) ff:02.1 Host bridge: Intel Corporation Core Processor QPI Physical 0 (rev 02) ff:02.2 Host bridge: Intel Corporation Core Processor Reserved (rev 02) ff:02.3 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
lsusb output (I disabled the broadband modem in the BIOS and
therefore, it does not appear here):
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 003: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader Bus 001 Device 004: ID 0a5c:217f Broadcom Corp. Bluetooth Controller Bus 002 Device 003: ID 5986:01a7 Acer, Inc Lenovo Integrated Webcam
thinkpad_acpi will handle most of the
perks under the hood.
I do not use a complete desktop like Gnome. I usually prefer to use
command line tools and put them in .xsession for persistence. There
is usually some graphical utility to do the same thing. There are
however some configuration steps that are now far easier to do with a
graphical tool. Since I use X all the time, I just rely on those tools
when necessary.
lshw output, I see that I already have the latest BIOS
available. No need to update then. In case you need to update, yours,
ThinkWiki has a documentation to upgrade. You can find
memdisk image in syslinux package.
A very recent Linux distribution with kernel 2.6.33 and Intel Xorg driver 2.11 or newer is recommended. Note that XVideo (Xv) playback at certain frame sizes does not work properly unless you have at least version 2.12 of the Intel Xorg driver.With Debian Wheezy, you get version 2.15. Therefore, configuring the graphic card is just a matter of installing
xserver-xorg-video-intel
and that s all. No /etc/X11/xorg.conf needed.
HDMI and VGA outputs are detected without configuring anything. They
can be enabled with xrandr. I did not try if it was possible to use
both of them at the same time.
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192 LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 256mm x 144mm 1366x768 60.0*+ 50.0 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis)
i965-va-driver
package. Here is the output of vainfo:
libva: libva version 0.32.0 libva: va_getDriverName() returns 0 libva: Trying to open /usr/lib/dri/i965_drv_video.so libva: va_openDriver() returns 0 vainfo: VA API version: 0.32 vainfo: Driver version: i965 Driver 0.1 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Baseline : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264High : VAEntrypointVLD
ffmpeg-hw=1
in your ~/.config/vlc/vlcrc. We are then greeted by this:
[0x2629040] avcodec decoder: Using VA API version 0.32 for hardware decoding.
xinput
command. Here is the output of xinput list:
Virtual core pointer id=2 [master pointer (3)] Virtual core XTEST pointer id=4 [slave pointer (2)] SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] TPPS/2 IBM TrackPoint id=12 [slave pointer (2)] Virtual core keyboard id=3 [master keyboard (2)] Virtual core XTEST keyboard id=5 [slave keyboard (3)] Power Button id=6 [slave keyboard (3)] Video Bus id=7 [slave keyboard (3)] Power Button id=8 [slave keyboard (3)] Integrated Camera id=9 [slave keyboard (3)] AT Translated Set 2 keyboard id=10 [slave keyboard (3)] ThinkPad Extra Buttons id=13 [slave keyboard (3)]
xinput list-props will give you additional information
on each input device listed above. You can then configure any settings
using xinput set-prop. For example, if you want to enable scrolling
by using the edges of the touchpad and enable palm detection, you can
use the following commands:
1 2 | $ xinput set-int-prop "SynPS/2 Synaptics TouchPad" 'Synaptics Edge Scrolling' 8 1 1 0 $ xinput set-int-prop "SynPS/2 Synaptics TouchPad" 'Synaptics Palm Detection' 8 1 |
1 | $ xinput set-int-prop "SynPS/2 Synaptics TouchPad" 'Synaptics Off' 8 1 |
man 4 synaptics. The same applies
for the trackpoint but the correct manual page is man 4 evdev. For
example, if you want to enable scrolling using the middle button, use:
1 2 | $ xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 8 1 $ xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 8 2 |
~/.xsession.
xinput list. Therefore, your window manager or any other application
can intercept them and act upon. You can use evtest to check which
key triggers which event on which keyboard.
The acpid daemon listen on those keyboards and can also trigger some
actions. For example, it will run ibm-wireless.sh when you hit the
wireless toggle. By default, this will enable or disable your wireless
card. But you can configure the script to use a multistate toggle and
disable or enable the bluetooth card as well.
~/.asoundrc:
pcm.!default type pulse ctl.!default type pulse
firmware-iwlwifi package. Then, iwlagn module needs to be
loaded. You can check with rfkill list that the wireless card has
not been disabled. iw list will then give the status:
Wiphy phy0 Band 1: Capabilities: 0x872 HT20/HT40 Static SM Power Save RX Greenfield RX HT20 SGI RX HT40 SGI No RX STBC Max AMSDU length: 3839 bytes No DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: 4 usec (0x05) HT RX MCS rate indexes supported: 0-15, 32 TX unequal modulation not supported HT TX Max spatial streams: 1 HT TX MCS rate indexes supported may differ Frequencies: * 2412 MHz [1] (14.0 dBm) * 2417 MHz [2] (14.0 dBm) * 2422 MHz [3] (14.0 dBm) * 2427 MHz [4] (14.0 dBm) * 2432 MHz [5] (14.0 dBm) * 2437 MHz [6] (14.0 dBm) * 2442 MHz [7] (14.0 dBm) * 2447 MHz [8] (14.0 dBm) * 2452 MHz [9] (14.0 dBm) * 2457 MHz [10] (14.0 dBm) * 2462 MHz [11] (14.0 dBm) * 2467 MHz [12] (14.0 dBm) (passive scanning, no IBSS) * 2472 MHz [13] (14.0 dBm) (passive scanning, no IBSS) Bitrates (non-HT): * 1.0 Mbps * 2.0 Mbps (short preamble supported) * 5.5 Mbps (short preamble supported) * 11.0 Mbps (short preamble supported) * 6.0 Mbps * 9.0 Mbps * 12.0 Mbps * 18.0 Mbps * 24.0 Mbps * 36.0 Mbps * 48.0 Mbps * 54.0 Mbps max # scan SSIDs: 20 Supported interface modes: * IBSS * managed * monitor
iwlagn 0000:03:00.0: Detected Intel(R) Centrino(R) Wireless-N 1000 BGN, REV=0x6C iwlagn 0000:03:00.0: device EEPROM VER=0x15d, CALIB=0x6 iwlagn 0000:03:00.0: Device SKU: 0X9 iwlagn 0000:03:00.0: Valid Tx ant: 0X1, Valid Rx ant: 0X3 iwlagn 0000:03:00.0: Tunable channels: 13 802.11bg, 0 802.11a channels iwlagn 0000:03:00.0: irq 44 for MSI/MSI-X iwlagn 0000:03:00.0: loaded firmware version 128.50.3.1 build 13488
ifup and ifdown commands,
even for servers. It seems that this is not something impossible and
therefore, I think it has become flexible enough to ensure most of the
configuration tasks I need.
hci_usb module will
take care of it. It supports AD2P and can be used to listen to music
with a compatible headset. hciconfig will tell us if the chipset is working.
Again, bluetooth is easier to configure with a graphical
tool. BlueZ, the bluetooth stack in Linux, uses DBus to
communicate with other applications. The command line tools have been
deprecated and therefore, you need to fight with some DBus binding to
pair your computer to your headset.
gnome-bluetooth package comes with an applet which allows you to
quickly pair to any device. If you install
pulseaudio-module-bluetooth package, any bluetooth headset should
work out of the box.
msiexec as instructed (I did have to
execute the installation program first, otherwise, msiexec tells
that the file is invalid). I choosed the default firmware since my
laptop is unlocked. ThinkWiki page explains which firmware to
choose in which situation.
The package gobi-loader needs to be installed. The firmware files
amss.mbn, apps.mbn and UQCN.mbn should be placed in
/lib/firmware/gobi. They will be loaded by udev. To avoid to
reboot, I used this command:
1 | # /lib/udev/gobi_loader -2000 /dev/ttyUSB0 /lib/firmware/gobi
|
rfkill list that your WWAN card is not blocked. I did
not test the GPS part that needs to be enabled on Windows.
uvcvideo module is correctly loaded and you should have something
like this in your dmesg:
uvcvideo: Found UVC 1.00 device Integrated Camera (5986:01a7)
cheese is a small application that can be used to check if the
webcam operates as expected.
uswsusp package which will also pull pm-utils. You
will get pm-suspend and pm-hibernate commands.
pm-suspend will enable suspend to memory. On resume, the system
takes a whole minute to become operational. I get the following message:
r8169 0000:09:00.0: eth0: unable to apply firmware patch PM: resume of devices complete after 60786.035 msecs PM: Finishing wakeup.
firmware-realtek package solves this issue. It should
also be solved by a future kernel. I also have this message when I
come back from sleep:
[drm:i915_hangcheck_ring_idle] *ERROR* Hangcheck timer elapsed... render ring idle [waiting on 9297, at 9297], missed IRQ?
i915.semaphores=1 as a kernel parameter but the X server is still
slow. It seems that running powertop restores the original
speed. This is a known problem.
On sleep, the battery loses 2% every 6 hours. This allows you to keep
your laptop on sleep for several days if needed.
pm-hibernate enable suspend to disk. The suspend part works well but
on resume, the kernel freezes after reading back the image into
memory. There are some documentation to debug this problem
but I prefer to wait for 2.6.39 which may just solves this issue.
cpufrequtils
package will slow down the processor when it is not used by using the
ondemand governor. The frequency will drop from 1.33 GHz to 666 MHz.
Several tools are then available:
pm-utils package comes with scripts to enable some powersaving
features. Those scripts are run on ACPI events (for example, when
you unplug the AC adapater). There is no way to put the laptop to
sleep after two hours of inactivity for example. You need something
like sleepd to handle this part. I have found nothing that could
dim the screen on inactivity.laptop-mode-tools is also a set of script to be run on ACPI
events. It is therefore somewhat superseded by pm-utils.gnome-power-manager is a daemon that makes use of
upowerd. Despite its name, you can run it outside of the Gnome
environment. It will put your laptop to sleep on inactivity and
will dim the screen when needed. All other functionalities are
handled to upowerd. This seems the way to go on today Linux desktops.upowerd will call at some point pm-powersave
from pm-utils. This allows to run scripts when unplugging the AC
adapter. There are some scripts shipped in
/usr/lib/pm-utils/power.d. You can add your own in
/etc/pm/power.d. Some scripts are configurable. For example, if you
create /etc/pm/config.d/local and put SATA_ALPM_ENABLE=true in it,
this will enable SATA ALPM mode on battery.
You can check what needs to be done with powertop or go to a website
like Less Watts to get some tips on what to configure to
get a better battery life.
Without adding any script, I get 5 hours of battery life with the
laptop doing almost nothing. Lenovo tells that you should get 6 hours
of battery life. I think that on moderate workloads, you should get 4 hours.
llvm-gcc -o foo foo.c
I have lighten the "contact" between the gcc version used to build the extension and the version used to run it.
Potential incompatible plugin version. GCC: 4.5.3. Expected: 4.5.2
Defines 'dragonegg_disable_version_check' as env variable to remove this warning
Please note that unexpected errors might occur.
If there is a better way to tackle this issue, I will be happy to hear it.
As previously announced in Ganneff s blog and Debian News, a special funding for DebConf11 is available for Debian Developers and Debian Maintainers who have either never attended a DebConf before, or who have not been to a DebConf since DebConf7 (in Scotland).
How to apply
Email the DebConf Newbies Team (newbies@debconf.org) providing the following information:
Connectivity can be a force for autonomy and freedom, or it can be
used for control and subjugation.
The Nintendo 3DS is an example of the latter.
Okay, yeah, I just said a cute video game console is a threat to personal freedom. Hear me out. If you haven't read the highlights of Nintendo's Terms of Service for
the 3DS yet, you should do that.
On one hand, it's "just" a games console. On the other hand, it's a
computer, marketed to children, which monitors your location (based on
proximity to wifi access points), uploads your photos and messages to
Nintendo's servers (giving them a license to re-use that information
in various ways), and tracks your activity. Now that's entertainment.
If you wanted your Nintendo computer to stop doing those things, you
could try to install some 3rd-party "homebrew" software on it. Except
then, according to the Terms, Nintendo would "brick" your device
render it inoperable, when the modified software is detected. Would
you accept Ford disabling your car because you had a mechanic friend
fix a problem using some aftermarket parts? Microsoft breaking your
computer hardware because you installed Firefox?
The ability to stop your electronics from spying on you is an
important freedom to defend, even if you don't ever plan on purchasing
a Nintendo device. Such terms, and the Digital Restrictions Management
software that enforces them, are a problem in all areas of digital
life. It's the same fundamental strategy as Apple controlling what you
can install on the iPhone or iPad, or Sony sending police officers to
a programmer's house because he showed other people how to modify
their own computers to make them able to run non-Sony-approved
software.
If we don't set a strong precedent against this behavior, it will
become more prevalent. If we lose the ability to install what we like
on our computers, then we lose the ability to use those computers in
any way that isn't pre-approved by a corporation. We lose it not only
because we ourselves can't install some software maybe we hate
changing anything on our computers at all but because the people
who write the software we rely on lose that freedom, which ends up
impacting even the most non-technical of computer users.
Companies like to portray anyone arguing for this freedom as criminals just wanting to illegally copy software. But that's obviously not true -- a person who follows all laws, even the most absurd, might still want to install something to stop Nintendo from receiving copies of her photos or reporting on her location. Companies use the threat of illegal copying to justify massive infringements on real personal freedoms.
People often say, "well, just don't buy it then". I agree don't buy
it. But don't think this is merely a consumer issue. Terms like
Nintendo's are backed by the force of criminal law the Digital
Millennium Copyright Act in the US for example which can put you in
jail for helping people to modify their own computers. So this is more
than a mere preference issue, it's also one of law and
ethics. It's not a free market when one side has coercive state
resources in play to prop up its arbitrary business model.
To help send this message, I just donated to send 5 bricks to
Nintendo. I hope you'll send one or five too. The campaign has a goal
of sending 200 bricks by the end of today (Monday, May 16th). Nintendo
clearly wants to get into the brick-making business, so surely they'll
appreciate the extra inventory.
(Disclosure: While I do work for the Free Software Foundation and am
paid partly to run the Defective by Design campaign, I really did
donate, and support this campaign personally.)Next.