video

Linux on iBook G4 12″ 1,2 Ghz

This howto describes the linux installation on an Ibook G4 12″ 1,2 Ghz ( LinuxOnIbookG4 )

Here you can find the files related to this document:

Download Configuration Files

This is my iBook G4 Version:

cpu info:

[sourcecode language=”java”]
root@abook aronchi # cat /proc/cpuinfo

processor : 0
cpu : 7447A, altivec supported
clock : 1200MHz
revision : 1.1 (pvr 8003 0101)
bogomips : 598.01
machine : PowerBook6,5
motherboard : PowerBook6,5 MacRISC3 Power Macintosh
detected as : 287 (iBook G4)
pmac flags : 0000001b
L2 cache : 512K unified
memory : 512MB
pmac-generation : NewWorld
[/sourcecode]

The clock speed could be different because of speedfreq use, see below for more informations.

lspci info:

[sourcecode language=”java”]
root@abook aronchi # lspci
0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP
0000:00:10.0 VGA compatible controller: ATI Technologies Inc M9+ 5C63 [Radeon Mobility 9200 (AGP)] (rev 01)
0001:10:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI
0001:10:12.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
0001:10:17.0 Class ff00: Apple Computer Inc. KeyLargo/Intrepid Mac I/O
0001:10:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:10:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:10:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:10:1b.0 USB Controller: NEC Corporation USB (rev 43)
0001:10:1b.1 USB Controller: NEC Corporation USB (rev 43)
0001:10:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04)
0002:20:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI
0002:20:0d.0 Class ff00: Apple Computer Inc. UniNorth/Intrepid ATA/100
0002:20:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81)
0002:20:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 80)
[/sourcecode]

Linux Installation

I’ve installed a Gentoo, following the http://www.gentoo.org/doc/en/handbook/handbook-ppc.xml ppc handbook. After a base installation, you can use my conf files to make your iBook G4 a real lovely GNU/Linux (Gentoo) home.

Kernel Config

Copy my .config file into /usr/src/linux (or wherever you did copy the kernel source files) and do a

[sourcecode language=”java”]make oldconfig[/sourcecode]

Config-2.6.9-sleep

make.conf

This is my make.conf file:
make.conf

Xorg

I’ve managed to make 3D acceleration with DRI work and VGA out, also together.
So, If you want to use 3D acceleration without MergedFB or Xinerama, take my xorg.conf

This option make a faster 3D acceleration, but video output will not work.

But if you want to use Xinerama with dual head configuration, without 3D acceleration (both clone mode and one screen left of the other), you want to use that:
Xorg.conf.dual with a cvs or => 6.8.2 Xorg version (because you need these xorg radeon patches https://bugs.freedesktop.org/show_bug.cgi?id=2064, merged only in newer xorg versions. If you don’t want to overwrite your existing xorg version, you can build xorg from cvs as in this xorg-cvs-howto.txt , with my host.def.

NB: if you want to have the two screens spanning on OSX you must patch your iBook with that http://www.rutemoeller.com/mp/ibook/ibook_e.html Spanning Patch Ibook: I suggest you to do that if you know what you’re doing. It’s not necessary if you use only Linux.

I made MergedFB working, so now I have a clone mode (VGA out is the same of the TFT) with 3D DRI acceleration.
You must use this simple configuration:
xorg.conf.merged

NB: These 3 configurations are alternative, you can use one.

Make the Apple key works as Altgr and the keyboard more linux confortable

My Apple G4 12″ doesn’t have any Altgr Key, so it’s impossibile to write composed symbols as @ or #. To correct this problem, you can do this procedure on Gnome:

1. Computer -> Desktop Preferences -> Keyboard
2. “Layout Options” tab
3. In the right-hand list open the “Third level choosers” group
4. Highlight “Press Left Win-key to choose 3rd level”
5. Click “Add”

Or add this to keyboard section on /etc/X11/xorg.conf file:

[sourcecode language=”java”]”XkbOptions” “lv3:lwin_switch”[/sourcecode]

My xorg.conf file keyboard section is:

[sourcecode language=”java”]
Section “InputDevice”
Identifier “Keyboard0”
Driver “keyboard”
Option “XkbKeycodes” “macintosh”
Option “XkbSymbols” “macintosh/us”
Option “XkbGeometry” “macintosh”
Option “XkbOptions” “ctrl:nocaps, lv3:lwin_switch”
Option “XkbRules” “xfree86”
Option “XkbModel” “pc105”
Option “LeftAlt” “Meta”
Option “RightAlt” “LWin”
Option “XkbLayout” “it”
EndSection
[/sourcecode]

On the US keyboard, the ~ and +/- keys aren’t mapped correctly.
add these lines to a startup script:

[sourcecode language=”java”]
xmodmap -e “keycode 49 = section plusminus”
xmodmap -e “keycode 94 = quoteleft asciitilde”
[/sourcecode]

Three Button Mouse Emulation

I usually use an external USB three button mouse, but I want to have an alternative access to the middle and right button without the external mouse.
To use an alternative key to emulate the mouse buttons, you must do:

[sourcecode language=”java”]
echo “1” > /proc/sys/dev/mac_hid/mouse_button_emulation
[/sourcecode]

The standard keys now are on Fn+CTRL for middle button and Fn+alt for right button.
If you want to change the keys, you must do:

[sourcecode language=”java”]
echo “68” > /proc/sys/dev/mac_hid/mouse_button2_keycode
echo “87” > /proc/sys/dev/mac_hid/mouse_button3_keycode
[/sourcecode]

Remember, you must do these commands every boot, so you can add to an init script.

You can change the keycodes 68 and 87 writing your own. To view what keycode is a button press you can use:

[sourcecode language=”java”]
xev
[sourcecode language=”java”]

If your distro supports /etc/sysctl.conf, you can add these lines to this file:
[sourcecode language=”java”]
# Mouse button emulation:
dev/mac_hid/mouse_button_emulation = 1
#dev/mac_hid/mouse_button2_keycode = 68
#dev/mac_hid/mouse_button3_keycode = 87
[/sourcecode]

Uncomment the last lines if you want to edit the keycodes.

Pbbuttons

In order to make the keyword and the power management more usable, i use pbbuttons:

[sourcecode language=”java”
emerge pbbuttonsd
rc-update add pbbuttonsd default
[/sourcecode]

Now you must configure the /etc/pbbuttons.conf file. Here is mine:
pbbuttonsd.conf

Sleep

Kernel 2.6.11 comes with support for putting the iBook G4 to sleep. However you still have to enable it when configuring the kernel.

Benh has released a patch that supports Apple iBook g4 sleep: you need it if you have a kernel version < 2.6.11.
http://forums.gentoo.org/viewtopic.php?t=254232&highlight=benh+patch
You can find the 2.6.9 patch version also here:
albook-ibookg4-sleep-5.diff
Just apply it to kernel source with

[sourcecode language=”java”]
cp ./albook-ibookg4-sleep-4.diff.gz /usr/src/linux
cd /usr/src/linux
gunzip ./albook-ibookg4-sleep-4.diff.gz
patch -p1 < albook-ibookg4-sleep-4.diff make menuconfig [/sourcecode] And add the Powerbook Power Management in the Drivers -> Macintosh kernel configuration section

After that, you can use pbbuttons to make the iBook sleep when the LCD is closed.
pbbuttonsd.conf

Power

Some problems with sleep function comes from modules loaded (usb, thermal, etc). You can solve them if you use powerprefs. Before going to sleep, your iBook must do:

[sourcecode language=”java”]
lsmod | cut -f 1 -d ” ” | grep -v Module | xargs > /tmp/modules.loaded
rmmod `cat /tmp/modules.loaded`
[/sourcecode]

and after resume it must do:

[sourcecode language=”java”]
for module in `cat /tmp/modules.loaded`
do
modprobe $module
done
[/sourcecode]

In gentoo you must install app-laptop/powerprefs and use my /etc/power/event.d/modules file.

CPU Variable Speed

To make you iBook a less battery user, you can alter automagically the cpu freq in order to use only the calculation power you need. So, when you use all the cpu, it works at the 100% of his speed, but when you don’t use it the cpu runs slower to get colder.

I’ve used speedfreq:

[sourcecode language=”java”]
emerge speedfreq
rc-update add speedfreqd default
[/sourcecode]

Fan speed

To get a better control of your iBook G4 temperature and fan speed, you can use the module therm_adt746x.

[sourcecode language=”java”]
modprobe therm_adt746x
[/sourcecode]

or put the module into your /etc/modules.autoload file

Modules

The module I use and I load at startup are written into a file called /etc/modules.autoload.d/kernel-2.6:
modules.autoload ( My /etc/modules.autoload.d/kernel-2.6 )

[sourcecode language=”java”] sungem
airport
ohci_hcd #usb 1
ehci_hcd #usb 2
ohci1394 #firewire
usb_storage #mp3 mplayer and Sony digital camera
snd-powermac #for sound
snd-pcm-oss #for sound
usb-serial #for GPRS using my sony ericsson phone
visor # for palm m125
#apm_emu #emulate APM (power management)
therm_adt746 #fan control (I use fan_speed=128)
uinput #for mouseemu
uninorth-agp #for DRI (agpgart will come with it)
radeon #for DRI 3D video acceleration
therm_adt746x # to control fan speed and temp
[/sourcecode]

Sound

You can configure the sound card with alsa modules and either using a sound daemon (i.e. arts), or by using oss emulation output. You can insert arts in USE flags, as I do.

Mac On Linux

Mol runs correctly on my iBook, with networking enabled.
It’s necessary to add this use flag:

USE=”fbcon”

before emerging //MOL//.

Run

[sourcecode language=”java”]
molvconfig
[/sourcecode]

and now edit

/etc/mol/molrc.video

to get fullscreen with MOL. Now you have linux on CTRL+ALT+F7 an MacOSX on CTRL+ALT+F8

I use an external ADSL eth0 router with dhcp, so I’ve used tun.ko kernel module and this configuration for mol:

/etc/mol/molrc.net

I use the internal dhcp so in MOL I don’t have to specify an address.

hdparm

I use this settings for hdparm, to increase hard disk performances and decrease the hdd temperature:
[sourcecode language=”java”]
hdparm -S 1 -d1 -m16 -c1 -X udma5 /dev/hda
[/sourcecode]

Make sure to load this settings on every boot.

Time config

Since I have also MacOSX, I had a problem with my clock settings. The hardware clock is set to UTC time by MacOSX, and my Linux system on everyboot read the time from the hardware clock, thinking this is set against my local time (Europe/Rome, CEST).
To solve this problem, you must tell hwclock to use –utc when used to update your system time.
In a RedHat/Fedora system is really simple, once known the origin of the problem:
Simply write this few lines into /etc/sysconfig/clock

[sourcecode language=”java”]
ZONE=”Europe/Rome”
UTC=true
ARC=false
[/sourcecode]

Airport Extreme Wireless Driver

It seems (http://bcm43xx.berlios.de) someone has written a driver for the Broadcom 43xx wireless chip, the one inside AirPort Extreme included into our iBook G4. It needs 2.6.14 kernel, and I’ve uploaded my config file for the 2.6.14-rc4 (the latest 2.6.14 branch I’ve found at this time).

Now you must get the firmware of your driver. Let /media/macosx be the MacOSX partition mount point. then you must use the fwcutter utility in the package:

[sourcecode language=”java”]
./fwcutter /media/macosx/System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS/AppleAirPort2
[/sourcecode]

and then copy the *.fw files on

[sourcecode language=”java”]
cp *.fw /lib/firmware/
[/sourcecode]

If you want, I’ve made a copy of the driver you can download:
broadcom43xx.tar.bz2
I loaded the bcm430x driver correctly, but I don’t have a wireless access point here, so I cannot try if it works.

Linux on a Compaq 1600 XL HOWTO

This Notebook is fully linux compatible

Here is the specifics of that notebook:

CPU Genuine Intel Celeron Mendocino 466 Mhz (Bogomips 927.33
Memory 64 Mb (I use 8 of this for the videoram)
Floppy Unknown 1.44MB 3.5″
Hard Disk Fujitsu 6Gb ATAPI / IDE
DVD Rom Toshiba DVD-ROM SD-C2302 ATAPI/IDE
Modem Conexant HSP MicroModem 56K pci (Software Modem)
Monitor: XTFT 14″
Video Card Trident Microsystems Cyberblade (generic) Cyberblade i1 pci
Sound Card Via Technologies Inc. VT82C686 pci [Apollo Super Ac97/audio]
Touchpad Synaptic

Thanks to Harddrake for those informations :) ( you can download it at http://www.linux-mandrake.com/harddrake∞ )
Update (27-5-2002): I’ve corrected the Mouse cursor problem with Linux in a Compaq Presario
Sometimes, when the memory is full and linux swaps on hard drive, the mouse cursor leave his correct position and the mouse clicks 1 cm left from the pointer. To correct that problem, insert the line Option “sw_cursor” in the Section “Device” of /etc/X11/XF68Config-4 configuration file. That corrects the problem. I’ve updated the configuration files.

Update: Now also the Conexant winmodem works correctly!
Thanks to Mark Hopkins for this wimodem help
You can find a driver at the location:
http://www.mbsi.ca/hsflinux/
I’ve tested it with Red Hat 7.2, and it works correctly. Because I don’t live on US, after the installation with the rpm of the driver I’ve launched that command:
# hsfconfig –country
And then Selected “Italy”. You can select here your different country.
See those urls to get more information:
http://www.linmodems.org
http://www.geocities.com/SiliconValley/3217/Documents/WinModems.html
http://www.o2.net/~gromitkc/winmodem.html
http://walbran.org/sean/linux/linmodem-howto.html

I’ve installed a Mandrake 7.2 , a Red Hat 7.1 and a Red Hat 7.2 distribution. They don’t recognize our graphic card, but the only thing you have to do is to replace the /etc/X11/XF86Config or /etc/X11/XF86Config-4 with the one provided in this page. (Read the files table). I use the touchpad or an external ps2 mouse, there’s no problem with the configuration.
If you want to use an external ps2 wheel mouse you must disable the gpm daemon on console, because it makes the mouse on console crazy and flipping. If you want to use the wheel, you must edit the section “imputdevice” as follow

Section “InputDevice”
Identifier “Mouse0”
# Modified by mouseconfig
Driver “mouse”
Option “Device” “/dev/mouse”
Option “Protocol” “IMPS/2”
Option “Emulate3Buttons” “no”
Option “ZAxisMapping” “4 5”
EndSection

This notebook has a confortable little display that shows the battery status, so I have not installed any dock to show the apm status in my desktop. Just run “apm” on a console if you want the % of charge.

And here is my configuration files:
Kernel Configuration (version 2.2.4-test11).
The soundcard works with the Via kernel driver, just do a modprobe to load the modules (Red Hat 7.2 does it automatically): .config

Xfree Configuration (for version 3.3.6)

It’s with italian keyboard, so if you want an other country map just modify the keyboard section and substitute the “it” with your keymap.

I used there 8 Mb for the videoram, setted from the bios. To use the mtrr acceleration, execute this command (after recompiling the kernel, with my .config file or with mtrr enabled):

echo “base=0xF5000000 size=8192k type=write-combining” >/proc/mtrr

XF86Config

Xfree Configuration (for version 4.*) (NEW)
The only way to make the new Xfree working with our laptop is to change first the /etc/lilo.conf file, adding a line with the VGA mode. If not, launching the Xfree server you will get working section of video, but not centered and moved on the right (if you can correct this error, send the solution to me). So change the lilo.conf file like this:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=791 <-------- That line is fundamental lba32 prompt timeout=30 message=/boot/message default=Windows image=/boot/vmlinuz-2.4.2-2 label=linux read-only root=/dev/hda7 append="ide=ata66 idebus=66" vga=788 <--------# That line is fundamental image=/boot/vmlinuz-2.4.2-2 <----- this section is the same # that above, but without the vga line. Add it to be #sure when you will #reboot to have at least one lilo image working. label=linuxtext read-only root=/dev/hda7 append="idebus=66 ide0=ata66 ide0=dma hda=autotune ide0=autotune" other=/dev/hda1 <--- this is not fundamental :) optional label=Windows Then you must be sure to use the Xfree 4 version. In modern distribution (like Mandrake 7.2, 8, Red Hat 7.1 and so on) you have the choice at the installation time. After that, you can change the Xfree version running on your machine by changing the /etc/X11/X simbolic link. If it brings to /usr/bin/X11/XFree86 then you're using the 4.* version. If it link to a /usr/bin/X11/XF86_* then you're using the 3.3.6 one. Just change that link to the one you want!! So now you can put my configuration file XF86Config-4 in your /etc/X11 dir. It's with italian keyboard, so if you want an other country map just modify the keyboard section and substitute the "it" with your keymap. I used there 4 Mb for the videoram, setted from the bios. To use the mtrr acceleration, se the relative documentation in the kernel source tree. Files XF86Config (version 3) # XF86Config auto-generated by XF86Setup # # Copyright (c) 1996 by The XFree86 Project, Inc. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF # OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # # Except as contained in this notice, the name of the XFree86 Project shall # not be used in advertising or otherwise to promote the sale, use or other # dealings in this Software without prior written authorization from the # XFree86 Project. # # See 'man XF86Config' for info on the format of this file Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "unix/:-1" # FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled,/usr/X11R6/lib/X11/fonts/100dpi:unscaled,/usr/X11R6/lib/X11/fonts/Type1,/usr/X11R6/lib/X11/fonts/URW,/usr/X11R6/lib/X11/fonts/Speedo,/usr/X11R6/lib/X11/fonts/misc,/usr/X11R6/lib/X11/fonts/75dpi,/usr/X11R6/lib/X11/fonts/100dpi" EndSection Section "ServerFlags" EndSection Section "Keyboard" Protocol "Standard" AutoRepeat 250 30 LeftAlt Meta RightAlt Meta ScrollLock Compose RightCtl Control XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc105)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc105" XkbLayout "it" # XkbSymbols "us(pc101)" # XkbModel "pc101" #"pc104" # XkbLayout "us" #"de" # XkbVariant "nodeadkeys" EndSection Section "Pointer" Protocol "PS/2" Device "/dev/psaux" BaudRate 1200 Emulate3Timeout 50 EndSection Section "Monitor" Identifier "Generic Multisync" VendorName "Unknown" ModelName "Unknown" HorizSync 30-64 VertRefresh 60-60 Modeline "1024x768" 65.00 1024 1032 1176 1344 768 771 777 806 -hsync -vsync EndSection Section "Device" Identifier "Generic VGA" VendorName "Unknown" BoardName "Unknown" Chipset "generic" EndSection Section "Device" Identifier "My Video Card" VendorName "Unknown" BoardName "Unknown" Chipset "cyberblade" EndSection Section "Screen" Driver "Accel" Device "My Video Card" Monitor "Generic Multisync" DefaultColorDepth 32 BlankTime 0 SuspendTime 0 OffTime 0 SubSection "Display" Depth 8 Modes "1024x768" ViewPort 0 0 EndSubSection SubSection "Display" Depth 15 Modes "1024x768" EndSubSection SubSection "Display" Depth 16 Modes "1024x768" EndSubSection SubSection "Display" Depth 24 Modes "1024x768" EndSubSection SubSection "Display" Depth 32 Modes "1024x768" EndSubSection EndSection Section "Screen" Driver "SVGA" Device "My Video Card" Monitor "Generic Multisync" DefaultColorDepth 32 BlankTime 0 SuspendTime 0 OffTime 0 SubSection "Display" Depth 8 Modes "1024x768" EndSubSection SubSection "Display" Depth 15 Modes "1024x768" EndSubSection SubSection "Display" Depth 16 Modes "1024x768" EndSubSection SubSection "Display" Depth 24 Modes "1024x768" ViewPort 0 0 EndSubSection SubSection "Display" Depth 32 Modes "1024x768" EndSubSection EndSection Section "Screen" Driver "VGA16" Device "Generic VGA" Monitor "Generic Multisync" BlankTime 0 SuspendTime 0 OffTime 0 SubSection "Display" Depth 4 Modes "1024x768" ViewPort 0 0 EndSubSection EndSection Section "Screen" Driver "VGA2" Device "Generic VGA" Monitor "Generic Multisync" BlankTime 0 SuspendTime 0 OffTime 0 SubSection "Display" Depth 1 Modes "1024x768" ViewPort 0 0 EndSubSection EndSection XF86Config-4 # XFree86 4.0 configuration generated by Xconfigurator Section "ServerLayout" Identifier "XFree86 Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection # By default, Red Hat Linux 6.0 and later use xfs Section "Files" FontPath "unix/:7100" EndSection # Module loading section Section "Module" Load "dbe" # Double-buffering Load "GLcore" # OpenGL support Load "dri" # Direct rendering infrastructure Load "glx" # OpenGL X protocol interface Load "extmod" # Misc. required extensions Load "v4l" # Video4Linux # Load "pex5" # PHIGS for X 3D environment (obsolete) # Load "record" # X event recorder # Load "xie" # X Image Extension (obsolete) # You only need the following two modules if you do not use xfs. # Load "freetype" # TrueType font handler # Load "type1" # Adobe Type 1 font handler EndSection Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" Option "XkbLayout" "it" EndSection Section "InputDevice" Identifier "Mouse0" # Modified by mouseconfig Driver "mouse" Option "Device" "/dev/mouse" Option "Protocol" "PS/2" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "Monitor" Identifier "CustomConfiguration" VendorName "Unknown" ModelName "Unknown" HorizSync 31.5-57 VertRefresh 50-90 Option "dpms" EndSection Section "Device" Identifier "My Video Card" Driver "trident" BoardName "Unknown" # Use Option "nolinear" if the server doesn't start up correctly # (this avoids the linear framebuffer probe). If that fails try # option "nomemaccess". # # Refer to /usr/X11R6/lib/doc/README.S3, and the XF86_S3 man page. EndSection Section "Device" Identifier "Linux Frame Buffer" Driver "fbdev" BoardName "Unknown" EndSection Section "Screen" Identifier "Screen0" Device "My Video Card" Monitor "CustomConfiguration" DefaultDepth 16 Subsection "Display" Depth 16 Modes "1024x768" EndSubSection EndSection Section "DRI" Mode 0666 EndSection XF86Config-4 Debian ### BEGIN DEBCONF SECTION # XF86Config-4 (XFree86 server configuration file) generated by dexconf, the # Debian X Configuration tool, using values from the debconf database. # # Edit this file with caution, and see the XF86Config-4 manual page. # (Type "man XF86Config-4" at the shell prompt.) # # If you want your changes to this file preserved by dexconf, only make changes # before the "### BEGIN DEBCONF SECTION" line above, and/or after the # "### END DEBCONF SECTION" line below. # # To change things within the debconf section, run the command: # dpkg-reconfigure xserver-xfree86 # as root. Also see "How do I add custom sections to a dexconf-generated # XF86Config or XF86Config-4 file?" in /usr/share/doc/xfree86-common/FAQ.gz. Section "Files" FontPath "unix/:7100" # local font server # if the local font server has problems, we can fall back on these FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/lib/X11/fonts/cyrillic" FontPath "/usr/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/lib/X11/fonts/Type1" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/lib/X11/fonts/100dpi" FontPath "/usr/lib/X11/fonts/75dpi" EndSection Section "Module" Load "GLcore" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "pex5" Load "record" Load "speedo" Load "type1" Load "vbe" Load "xie" # Load "xtt" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "keyboard" Option "CoreKeyboard" Option "XkbRules" "xfree86" Option "XkbModel" "pc105" Option "XkbLayout" "it" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/psaux" Option "Protocol" "ImPS/2" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" Identifier "Generic Mouse" Driver "mouse" Option "SendCoreEvents" "true" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "ZAxisMapping" "4 5" EndSection Section "Device" Identifier "Trident Cyberblade i1" Driver "trident" VideoRam 8024 Option "sw_cursor" EndSection Section "Monitor" Identifier "Generic Monitor" HorizSync 30-60 VertRefresh 50-75 Option "DPMS" EndSection Section "Screen" Identifier "Default Screen" Device "Trident Cyberblade i1" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "1024x768" EndSubSection SubSection "Display" Depth 4 Modes "1024x768" EndSubSection SubSection "Display" Depth 8 Modes "1024x768" EndSubSection SubSection "Display" Depth 15 Modes "1024x768" EndSubSection SubSection "Display" Depth 16 Modes "1024x768" EndSubSection SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" InputDevice "Generic Mouse" EndSection Section "DRI" Mode 0666 EndSection ### END DEBCONF SECTION I'm working to use the special internet keys over the keyboard, so stay tuned! Please email me anything you want to add or modify into this page.

Diritto (di Repressione) d’Autore.

L’informatica e le persone che indirettamente ne fanno uso ricorderanno a lungo la data del 18 Maggio 2004. In Italia ed in Europa questa data potrebbe significare un enorme cambiamento dell’insieme delle norme che regolano il diritto d’autore ed il modo di lavorare nel campo dei calcolatori elettronici.
Nello stesso giorno, coincidenza forse non totalmente casuale, è stato convertito in legge il Decreto Urbani ed è stata approvata una direttiva che introduce i brevetti sul software anche in Europa. Proprio su queste pagine sono state discusse le motivazioni che rendono entrambi i provvedimenti inutili dal punto di vista della riduzione degli illeciti, iniqui nell’applicazione delle sanzioni, semplicemente anacronistici ed insensati se guardati nell’ottica di ridiscutere la proprietà intellettuale tenendo conto dei nuovi mezzi di trasmissione delle informazioni.
Partiamo dalla legge Urbani, che con un colpo di mano dell’ultimo momento introduce sanzioni che arrivano a 4 anni di reclusione.
Queste pene esagerate possono essere la “giusta” sanzione per chi trae profitto dallo scambio illecito di materiale coperto da diritto d’autore, come cd musicali oppure video. Tutti coloro che stanno protestando contro questa legge, e sono tanti, sono assolutamente convinti della necessità di riconoscere agli autori il giusto valore, economico e morale. Quella che viene altrettanto fermamente contestata è invece l’iniquità della pena. Una gran parte dei problemi derivanti direttamente da questa legge è inclusa nella definizione giuridica di “trarre profitto”, apparentemente molto simile al “fine di lucro”. Il profitto è un qualsiasi vantaggio o beneficio intellettuale, ed include per esempio anche l’ascolto di un’opera. Il lucro, viceversa, è un guadagno di natura esclusivamente economica. Quando la legge è stata scritta per la prima volta, includeva solamente il fine di lucro. Per fare un esempio, chi masterizzava cd per la vendita rischiava la galera, ma chi li usava per scopi personali non correva questo rischio (ma solo sanzioni amministrative già previste dalla legge). Con questa piccola modifica, ottenuta semplicemente sostituendo nell’Articolo 1 le parole “a fine di lucro” con “a scopo di trarne profitto”, si cambia totalmente registro. Chiunque abbia una sola canzone non originale, secondo la legge ora rischia 4 anni di galera. Per fare un paragone, chi ruba miliardi evadendo il fisco con il falso in bilancio rischia solamente una multa e nessuna sanzione penale, mentre chi maltratta un bambino o un componente della propria famiglia, chi compie violenza privata e chi scambia una sola canzone su internet senza scopo di lucro (al limite anche senza ascoltarla nemmeno una volta), viene punito alla stessa maniera, con 4 anni di carcere. Semplicemente insensato, come il fatto che a discutere di questa legge, tra le altre personalità di “elevato spessore”che decidono del nostro futuro senza capirlo, ci fosse Gabriella Carlucci.
Come se non bastasse questa brutta notizia, dall’Unione Europea nello stesso giorno giunge notizia dell’introduzione dei brevetti software, che il parlamento europeo aveva già bocciato in una precedente seduta. I rappresentanti italiani in commissione avevano dichiarato di essere contrari, per una lunghissima lista di motivi, ma alla fine si sono astenuti.
Come dire, non è nostra la colpa, non possiamo fare nulla, e di nascosto fare l’occhiolino alle multinazionali americane. Le stesse grosse aziende statunitensi che hanno pagato fior di quattrini per sponsorizzare l’attuale presidenza irlandese (http://www.eu2004.ie/sitetools/sponsorship.asp) che guarda caso si è applicata con straordinario impegno in questa direttiva europea.
In conclusione, vorrei soffermarmi su quella che sembra essere la linea generale dei nostri governi moderni, quelli che amiamo chiamare “democratici”. I cittadini vengono sempre di più sovraccaricati del peso del mantenimento della società e dei lussi di pochi imprenditori, che ottengono questi benefici impedendo loro il libero pensiero, obbligandoli a consumare materiale che a loro non serve, ingozzandoli come maiali da ingrasso di finta cultura non voluta, usa e getta e a buon mercato.
Musica, letteratura, cinematografia che da arte diventa prodotto, e da prodotto diventa un oggetto che non ti è permesso rifiutare. Se qualcuno ha qualcosa in contrario, si paga la stesura di una legge (pare che ora sia a buon mercato) che impedisca ogni tentativo di uscire da questa morsa.
Una battaglia è stata persa, ma la guerra è ancora in atto, grazie anche a politici che si stanno mobilitando contro queste insensatezze, con il senatore Cortiana e l’europarlamentare Cappato in testa.
Da parte nostra, dovremmo iniziare a dire di no partendo dalle piccole cose. I nostri 22 euro, invece che spenderli per il cd di Tiziano Ferro, che si ascolta forse una volta e si butta nel dimenticatoio, dovremmo pagarli al piccolo gruppo che suona su un palco, che mette veramente sudore, passione ed intenso lavoro. Che rischia di andare in galera se non paga il suo tributo alla SIAE per ottenere diritti che non arriveranno mai, e che rimane l’unico vero motivo per il quale possiamo ancora considerare la musica un’arte che possa servire all’umanità.
Una, dieci, cento leggi di questo tipo non aumenteranno il nostro consumo di cd musicali, al contrario rischiano di produrre un rigetto simile a quello provato per la carne dai vegetariani.

Di chi sono le idee?

Nei mesi scorsi si è molto discusso sui problemi di proprietà intellettuale, di come essa vada tutelata dalle leggi, di come realizzare un giusto equilibrio che permetta ai cittadini di rispettarle e trarne giovamento. La comunità europea si è quindi messa al lavoro sulla regolamentazione dei brevetti, con particolare attenzione a quelli riguardanti il software, una delle poche parti non brevettabili secondo le leggi vigenti. Il motivo di questo improvviso interesse si può ricercare nella continua pressione di grosse multinazionali americane, che vogliono creare una uniformità di trattamento tra l’Europa e gli Stati Uniti. Negli States, infatti, è possibile brevettare il software, mentre in Europa è stato espressamente vietato dalla convenzione di Monaco del ’73, e c’è stata una forte attività di lobbying per cercare di espandere questa possibilità anche nel vecchio continente.

Questa decisione porta considerazioni economiche, culturali, politiche ed etiche, ed una trattazione seria di tutto l’argomento richiederebbe una letteratura molto più vasta di un solo articolo, per questo motivo mi limiterò a dare un mio giudizio sulle questioni etiche che stanno alla base del problema dei brevetti sul software, perché lo ritengo particolarmente interessante.

Il software altro non è che l’applicazione pratica di algoritmi e metodi matematici. Partire da un’idea diversa è sbagliato, e potrebbe trarci in inganno. Tutto quello che vediamo, dai programmi di videoscrittura ai programmi per la navigazione, sono dirette o indirette applicazioni di algoritmi matematici e paradigmi di statistica e matematica discreta. A volte lo sono indirettamente, quando il programmatore non ha realizzato l’opera utilizzando formule ed espressioni matematiche, ma in questo caso il suo lavoro poggia su quello di altri, che hanno creato le basi per facilitare il suo compito. Tutto questo è necessario per capire il motivo per il quale non è possibile brevettare il software, ma solamente proteggerlo con il copyright.

I brevetti servono per proteggere le innovazioni tecniche, dove per innovazione viene inteso un miglioramento dello stato dell’arte di un settore finalizzato alla produzione. Se invento un modo per produrre energia dall’acqua, posso proteggerla tramite un brevetto. I brevetti sul software, così come sono intesi in America, sono invece brevetti sulle idee. Un esempio può essere l’idea di barra di scorrimento, quella che utilizziamo per vedere le pagine successive di un documento, oppure l’idea di utilizzare un pulsante che richiami una funzione. Dietro questo tipo di idee non c’è una innovazione che porti alla produzione, soprattutto quando quello che si vorrebbe brevettare riguarda unicamente l’interfaccia con la quale gestiamo alcune delle caratteristiche dei computer.

Molte associazioni, tra le quali anche il Forlì Linux User Group, hanno protestato con tutti i mezzi a loro disposizione contro l’introduzione dei brevetti sul software, non con l’obiettivo di liberalizzare la copia dei programmi, già protetta ad hoc dal Copyright, ma con la viva preoccupazione che si potessero brevettare anche nel nostro paese le idee alla base dell’utilizzo dell’informatica.

Sembrerebbe folle il solo pensiero di brevettare l’idea di un volante per automobili, cosa che impedirebbe ai cittadini di cambiare automobile nel corso degli anni, ma gli analoghi riferimenti nel campo dell’informatica, forse perché ancora lontani dalla cultura popolare, non destano altrettanta preoccupazione.

E’ difficile esprimere un giudizio su chi sia il proprietario di un’idea, e se questa “proprietà” vada tutelata per incentivare l’innovazione. In America i brevetti sul software non hanno funzionato, incentivando direttamente la nascita di monopoli settoriali, a causa delle enormi spese giuridiche alle quali sono continuamente sottoposte le ditte produttrici di software (con una media di 500’000 dollari a causa, per essere precisi).

Le idee sono il frutto di un’opera collettiva, nascono e si riproducono grazie allo scambio di informazioni e all’interazione di idee diverse, che ne procreano altre che saranno alla base delle prossime. Il teorema di Pitagora non è mai stato brevettato, ma non si può dire che la diffusione di questa idea non abbia portato innovazione. Per questo l’impossibilità del libero scambio delle idee non funziona come incentivo alla loro produzione, e quasi sempre accade l’esatto contrario, che queste derivino direttamente dalla possibilità di comunicazione.

Questo è chiaro anche ai legislatori americani, che ora stanno rivalutando il problema, ma che in passato probabilmente hanno pensato più agli interessi di pochi grandi, piuttosto che al bene dei cittadini che dovevano amministrare. In Europa continuiamo a resistere alla tentazione delle grandi multinazionali, impedendo la regolarizzazione dei brevetti software, speriamo che in futuro i cittadini prendano più coscienza e si rendano conto del rischio che corrono quando ignorano questi problemi.

Il rischio di perdere la proprietà e la paternità delle proprie idee.

Torna su