Linux

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.

Programmazione Input Output Linux con porta parallela

Questa estate, assieme a due compagni di università, abbiamo sviluppato un programma che trasferisce file attraverso la porta parallela sotto linux, come progetto di Sistemi 1.
La porta parallela, come tutti ben sapete, è stata inserita nei personal computer per rendere più veloce l’invio di documenti alle stampanti, e per questo motivo ancora oggi i pin che compongono il cavo sono chiamati secondo le funzioni originali.

Scarica l’articolo:
programmazione_io_linux

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.

Il software è come una torta

Immaginate la vostra nonna, che riceve dalla vicina una ricetta. La mette in pratica, vede che il risultato non è quello sperato, aggiunge un ingrediente, cambia il tempo di cottura, ottenendo un’ottima torta. Una di quelle torte che rientreranno presto nel personale bagaglio di conoscenze che l’aiuterà ad avvicinare i nipoti, avidi di dolci.

Vedete nulla di strano in tutto ciò?

Ora immaginate uno scenario di questo tipo. La nonna ottiene una torta dalla vicina, che le fa firmare un contratto di non diffusione, non modifica, di utilizzo solo personale dello scambio appena avvenuto. Perplessa, la nonna firma, e prende un pezzo di torta: non è perfetta, sa bene che qualcosa nella cottura o negli ingredienti non è stato fatto con la dovuta cura. Ma non può nulla: senza ricetta, non riesce a partire da quella torta per migliorarla, e non la può nemmeno dare ai nipoti.

Il software libero nasce dallo stesso problema, riscontrato da un gruppo di informatici, che erano infastiditi dall’impossibilità di adattare i programmi alle proprie esigenze. In più, i dati digitali hanno un costo di replicazione molto basso, cosa che rende ancora più seccante il divieto di condivisione.
D’altra parte tutta la scienza, prima di incontrare il business e la privatizzazione della ricerca, era basata sulla condivisione delle conoscenze, che permetteva il vero progresso tecnologico.

L’idea di condividere le proprie scoperte ed i propri risultati, quindi, non era affatto nuova.

Così Richard Stallman, un programmatore del MIT, decise di iniziare un nuovo progetto che prevedeva lo sviluppo di tutto un sistema operativo (GNU), che è il programma di base dei computer (due esempi sono Linux e Windows). Per fare questo, però, serviva un modo per favorire e difendere la sua creatura dagli attacchi che avrebbe ricevuto dall’esterno: se avesse lasciato tutti liberi di fare qualsiasi cosa con il programma, qualcuno avrebbe potuto prenderlo e mettervi sopra un Copyright, impedendo la copia agli stessi autori originali. Per questo motivo inventò un Copyright tutto particolare, che per queste peculiarità volle chiamare, con un tipico gioco di parole, Copyleft.

Permessi di autore in opposizione ai diritti d’autore.

In pratica, la licenza d’uso che segue i programmi che si rientrano nel software libero, chiamata General Public License, permette a tutti di copiarli, modificarli e venderli a patto che ogni modifica segua la stessa licenza. Per fare in modo che questo avvenga in pratica è necessario che siano resi sempre disponibili i sorgenti del programma. Tornando all’esempio della torta, la ricetta “sorgente” deve essere sempre fornita quando si vende o si regala il dolce. Se qualcuno decide di modificare la ricetta e quindi il risultato, deve fornire ad ogni persona che riceve la torta, ottenuta con il metodo modificato, la nuova versione della ricetta. In questo modo funziona il software libero: milioni di persone nel mondo si scambiano programmi, scrivendone pezzi o modificandone parti, purché vengano mantenute queste libertà. Nessuno può impedirne la copia, perché gli autori stessi hanno deciso di dare il loro permesso e di ottenere in cambio la stessa possibilità di utilizzo delle modifiche. Così è nato Linux, per mano di Linus Torvalds, che iniziò il progetto, e per mano di tantissimi altri che contribuirono e contribuiscono ad aggiungere pezzi.
Ma con il software libero, non si annulla l’industria dell’informatica? No, come è vero che le pasticcerie sono sempre aperte. Inanzitutto non tutti hanno capacità e tempo di lavorare sui programmi, e la spesa per l’acquisizione dei sistemi informatici si sposta dalla vendita di copie (licenze) alla personalizzazione ed ai servizi di assistenza. Lo spazio è poco, ed il discorso è complesso ed interessante, sia dal punto di vista tecnico che filosofico, tanto che gli stessi discorsi stanno arrivando anche ad altri ambiti della cultura, dalla letteratura alle arti, passando per l’ingegneria e l’architettura. Se vorrete, continueremo il discorso spostandoci inizialmente su un’altro aspetto dei diritti d’autore: i brevetti.

Internet e le nuove tecnologie abbattono le distanze tra le persone, e le persone, a volte, decidono di utilizzare questo vantaggio per collaborare a qualcosa di buono. Sempre che riescano a rimanere liberi di farlo, senza che qualcuno impedisca loro di scambiarsi idee.

Torna su