HARDWARE Acer Ferrari 4005WLMi Manual
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
[edit] Gentoo on an Acer Ferrari 4005WLMi notebook
The Ferrari 4000 is a great laptop. Sporting an AMD processor along with ultra-low-voltage AMD64 bit Technology, a crisp 15.4" LCD Widescreen Display, great battery life, excellent speakers, with a built in Wireless Lan card, and DVD+/-RW; this laptop is aesthically pleasing, light, and fast making it great for travelers, businessmen, and students.
Previous passage is copied from the HP zv6000 Gentoo manual. Yes, Acer Ferrari 4000 is built on the same reference platform and has all the quirks present in any ATI X200 based laptop. Just like the russian guy from the movie "Armageddon" says: "Components. American components, Russian Components, ALL MADE IN TAIWAN!" (formatted by imdb.com). I, however, made some progress in making my Ferrari laptop more useful in Linux (the only system I have installed; no dual-boot stuff), so this is what I want to focus on.
[edit] Hardware
The Gentoo Kernel recognizes the following hardware included in the Acer Ferrari 4005WLMi notebook.
Output of lspci:
| Code: #lspci -v |
0000:00:00.0 Host bridge: ATI Technologies Inc: Unknown device 5951 (rev 01) Flags: bus master, 66Mhz, medium devsel, latency 64 0000:00:02.0 PCI bridge: ATI Technologies Inc: Unknown device 5a34 (prog-if 00 [Normal decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 00009000-00009fff Memory behind bridge: c0100000-c01fffff Prefetchable memory behind bridge: c8000000-cfffffff Expansion ROM at 00009000 [disabled] [size=4K] Capabilities: [50] Power Management version 3 Capabilities: [58] #10 [0041] Capabilities: [80] Message Signalled Interrupts: 64bit- Queue=0/0 Enable+ Capabilities: [b0] #0d [0000] Capabilities: [b8] #08 [a803] 0000:00:06.0 PCI bridge: ATI Technologies Inc: Unknown device 5a38 (prog-if 00 [Normal decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=05, subordinate=05, sec-latency=0 Memory behind bridge: c0200000-c02fffff Capabilities: [50] Power Management version 3 Capabilities: [58] #10 [0041] Capabilities: [80] Message Signalled Interrupts: 64bit- Queue=0/0 Enable+ Capabilities: [b0] #0d [0000] Capabilities: [b8] #08 [a803] 0000:00:13.0 USB Controller: ATI Technologies Inc: Unknown device 4374 (prog-if 10 [OHCI]) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, 66Mhz, medium devsel, latency 64, IRQ 217 Memory at c0000000 (32-bit, non-prefetchable) Capabilities: [d0] Message Signalled Interrupts: 64bit- Queue=0/0 Enable- 0000:00:13.1 USB Controller: ATI Technologies Inc: Unknown device 4375 (prog-if 10 [OHCI]) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, 66Mhz, medium devsel, latency 64, IRQ 217 Memory at c0001000 (32-bit, non-prefetchable) Capabilities: [d0] Message Signalled Interrupts: 64bit- Queue=0/0 Enable- 0000:00:13.2 USB Controller: ATI Technologies Inc: Unknown device 4373 (prog-if 20 [EHCI]) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, 66Mhz, medium devsel, latency 64, IRQ 217 Memory at c0002000 (32-bit, non-prefetchable) Capabilities: [dc] Power Management version 2 Capabilities: [d0] Message Signalled Interrupts: 64bit- Queue=0/0 Enable- 0000:00:14.0 SMBus: ATI Technologies Inc ATI SMBus (rev 11) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: 66Mhz, medium devsel I/O ports at 8400 Memory at c0003000 (32-bit, non-prefetchable) [size=1K] Capabilities: [b0] #08 [a802] 0000:00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI (prog-if 8a [Master SecP PriP]) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, 66Mhz, medium devsel, latency 0, IRQ 209 I/O ports at <ignored> I/O ports at <ignored> I/O ports at <ignored> I/O ports at <ignored> I/O ports at 8410 [size=16] Capabilities: [70] Message Signalled Interrupts: 64bit- Queue=0/0 Enable- 0000:00:14.3 ISA bridge: ATI Technologies Inc: Unknown device 4377 Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, 66Mhz, medium devsel, latency 0 0000:00:14.4 PCI bridge: ATI Technologies Inc: Unknown device 4371 (prog-if 01 [Subtractive decode]) Flags: bus master, 66Mhz, medium devsel, latency 64 Bus: primary=00, secondary=06, subordinate=07, sec-latency=64 I/O behind bridge: 00002000-00002fff Memory behind bridge: c0300000-c03fffff Prefetchable memory behind bridge: 50000000-51ffffff Expansion ROM at 00002000 [disabled] [size=4K] 0000:00:14.5 Multimedia audio controller: ATI Technologies Inc: Unknown device 4370 (rev 02) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, 66Mhz, slow devsel, latency 64, IRQ 225 Memory at c0003400 (32-bit, non-prefetchable) Capabilities: [40] Message Signalled Interrupts: 64bit- Queue=0/0 Enable- 0000:00:14.6 Modem: ATI Technologies Inc: Unknown device 4378 (rev 02) (prog-if 00 [Generic]) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, 66Mhz, slow devsel, latency 64, IRQ 225 Memory at c0003800 (32-bit, non-prefetchable) Capabilities: [40] Message Signalled Interrupts: 64bit- Queue=0/0 Enable- 0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE) (prog-if 00 [VGA]) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, fast devsel, latency 0, IRQ 233 Memory at c8000000 (32-bit, prefetchable) [size=c0120000] I/O ports at 9000 [size=256] Memory at c0100000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at 00020000 [disabled] Capabilities: [50] Power Management version 2 Capabilities: [58] #10 [0001] Capabilities: [80] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable- 0000:05:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5789 Gigabit Ethernet PCI Express (rev 11) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, fast devsel, latency 0, IRQ 233 Memory at c0200000 (64-bit, non-prefetchable) Capabilities: [48] Power Management version 2 Capabilities: [50] Vital Product Data Capabilities: [58] Message Signalled Interrupts: 64bit+ Queue=0/3 Enable- Capabilities: [d0] #10 [0001] 0000:06:02.0 Network controller: Broadcom Corporation: Unknown device 4318 (rev 02) Subsystem: AMBIT Microsystem Corp.: Unknown device 0311 Flags: bus master, fast devsel, latency 64, IRQ 169 Memory at c0304000 (32-bit, non-prefetchable) 0000:06:09.0 CardBus bridge: Texas Instruments Texas Instruments PCIxx21/x515 Cardbus Controller Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, medium devsel, latency 168, IRQ 177 Memory at c0308000 (32-bit, non-prefetchable) Bus: primary=06, secondary=07, subordinate=0a, sec-latency=176 Memory window 0: 50000000-51fff000 (prefetchable) Memory window 1: 52000000-53fff000 I/O window 0: 00002000-000020ff I/O window 1: 00002400-000024ff 16-bit legacy interface ports at 0001 0000:06:09.2 FireWire (IEEE 1394): Texas Instruments Texas Instruments OHCI Compliant IEEE 1394 Host Controller (prog-if 10 [OHCI]) Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, medium devsel, latency 64, IRQ 169 Memory at c0309000 (32-bit, non-prefetchable) Memory at c0300000 (32-bit, non-prefetchable) [size=16K] Capabilities: [44] Power Management version 2 0000:06:09.3 Unknown mass storage controller: Texas Instruments Texas Instruments PCIxx21 Integrated FlashMedia Controller Subsystem: Acer Incorporated [ALI]: Unknown device 007e Flags: bus master, medium devsel, latency 64, IRQ 11 Memory at c0306000 (32-bit, non-prefetchable) Capabilities: [44] Power Management version 2 |
The processor info of the Ferrari 4005WLMi notebook used for this guide is:
| Code: #cat /proc/cpuinfo |
processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 36 model name : AMD Turion(tm) 64 Mobile Technology ML-37 stepping : 2 cpu MHz : 2000.115 cache size : 1024 KB fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm bogomips : 4008.33 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ts fid vid ttp tm stc |
[edit] Overview
| CPU | AMD Turion 64 ML-37 Processor 2.0Ghz |
| Chipset | ATi IXP Chipset |
| Graphics | ATI Radeon Mobility X700 card (rev. M26 5653). |
| VGA + DVI-D + TVout | |
| Wireless-LAN | Broadcom bcm4318 WLAN card |
| Network | Broadcom Ethernet card |
| PCMCIA | TI PCIxx21 CardBus controller |
| Digital Media card reader | TI PCIxx21 FlashMedia controller |
| IEEE1394 port | TI PCIxx21 OHCI Compliant IEEE 1394 Host Controller |
| SD Host controller | TI PCIxx21 SDHCI controller (misconfigured) |
| Soundcard/Internal Modem | AC/MC 97 soundcard and modem (works with slmodemd by SmartLink) |
| Harddrive | 100 GB |
| Memory | 1024 MB |
| USB | 4 USB 2.0 ports |
| Optical-Drive | Matsushita UJ-845S Dual layer DVD+-R/W |
[edit] Working
- Cpu Frequency Scaling (AMD drivers and speedfreqd)
- Video Card: ATI Mobility X700 (1680x1050, with xorg, and with dri enabled)
- TV-out (indeed, I had much more problems with Nvidia than with Ati in this area)
- Broadcom Wireless Ethernet Card (with bcm43xx driver; ndiswrapper may be used too).
- Soundcard
- Modem
- Function/Hot Keys (everything works; configuration required)
- Touchpad (works with synaptics driver in X and gpm)
- Bluetooth: works.
- Beautiful BT mouse: works
- USB (v1.1 & v2.0 supported; Joël recommends to set OHCI_HCD as built-in, and EHCI_HCD as a module)
- CD/RW, DVD+/-RW
- Ethernet card (works with tg3 driver)
- Battery Status (has quirks; needs kernel >= 2.6.16)
- VGA (with fglrx driver)
- PCMCIA (with yenta socket driver and specific drivers for each card)
- FireWire Controller (with standard Firewire driver found in kernel. Both the raw driver for DV and eth1394 Ethernet over Firewire work.)
- TI PCIxx21 memory card controller in FlashMedia and SDHCI mode (major tweaking required for SDHCI)
- IR port
- Orange WiFi LED. This is, doubtless, one of the most important system components and now, thanks to bcm43xx reverse engineering effort, we can enjoy it in various operational modes (blinking and non-blinking)
[edit] Not Tested, but probably works
- DVI
- IEC958 didgital sound output
[edit] CFLAGS Settings and make.conf
Starting Gentoo installation process the cflags settings should be set so that gentoo would know the type of cpu that will be used to compile the programs and the kernel. (For more information regarding USE flags try here) To do this the make.conf must be edited. make.conf location is found in /etc/make.conf. For the Ferrari 4005 I've set the CFLAGS to CFLAGS="-march=athlon64 -pipe -O2".
[edit] Kernel Configuration
I would like to advise everybody to move to a recent kernel. The 2.6.16 release of the kernel includes considerable patches to the ACPI code and particularly ATI IXP chipset fixes. It's also capable of understanding ACER's buggy DSDT, so no DSDT patching or special kernel command line options are needed. Newer kernels also introduce many new features.
[edit] Hardware Package and Software Dependencies
The section discusses the installation of several packages and softwares that will utilize the hardware features from the Ferrari 4005 notebook.
[edit] ATI proprietary drivers
As of present time (linux-2.6.16, fglrx-8.23.7), ATI driver installation requires little more than "emerge ati-drivers". I however found it handy to setup these two links:
/usr/lib64/modules -> /usr/lib64/xorg/modules
/usr/lib32/modules -> /usr/lib32/xorg/modules
| Code: ln -s /usr/lib32/xorg/modules /usr/lib32/modules |
(the second one being particularly helpful with cedega - acceleration actually works).
Of other notable features, there is ATI PowerPlay™ utility. Use "/opt/ati/bin/fglrx_pplay" to set the modes (I wonder if this really makes any difference).
If you are having problems to run Google Earth with ati-drivers-8.30.3-r1 try overriding the file /usr/lib32/opengl/ati/lib/libGL.so.1.2 with the file libGL.so.1.2 that comes with ati-drivers 8.27.10.
[edit] xorg.conf file
To keep things simple, I'll simply publish my "xorg.conf" file, which contains perfectly working configuration of single head display, touchpad and BT mouse enabled.
| File: /etc/X11/xorg.conf |
Section "Module"
Load "dbe" # Double buffer extension
Load "extmod"
Load "type1"
Load "freetype"
# This loads the GLX module
Load "glx"
# This loads the DRI module
Load "dri"
EndSection
Section "Extensions"
# Option "Composite" "Enable"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/share/fonts/misc/"
FontPath "/usr/share/fonts/TTF/"
FontPath "/usr/share/fonts/Type1/"
# FontPath "/usr/share/fonts/CID/"
# FontPath "/usr/share/fonts/75dpi/"
# FontPath "/usr/share/fonts/100dpi/"
# FontPath "/usr/share/fonts/local/"
# FontPath "/usr/share/fonts/Speedo/"
# FontPath "/usr/share/fonts/TrueType/"
# FontPath "/usr/share/fonts/freefont/"
# ModulePath "/usr/X11R6/lib/modules"
EndSection
# **********************************************************************
# Server flags section.
# **********************************************************************
Section "ServerFlags"
EndSection
Section "InputDevice"
Identifier "Keyboard 0
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xorg"
Option "XkbModel" "ferrari4k"
Option "XkbLayout" "us"
# Option "XkbVariant" ""
# Option "XkbOptions" ""
# Option "XkbDisable"
EndSection
Section "InputDevice"
Identifier "Mouse 0"
Driver "synaptics"
Option "Device" "/dev/input/mouse0"
Option "Protocol" "auto-dev"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
# Option "EmulateMidButtonTime" "75"
Option "VertScrollDelta" "100"
# Option "HorizScrollDelta" "20"
Option "MinSpeed" "0.09"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.0015"
# Option "EdgeMotionMinSpeed" "200"
# Option "EdgeMotionMaxSpeed" "200"
Option "UpDownScrolling" "1"
Option "CircularScrolling" "1"
Option "CircScrollDelta" "0.1"
Option "CircScrollTrigger" "2"
# Option "SHMConfig" "on"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "InputDevice"
Identifier "Mouse 1"
Driver "mouse"
Option "Protocol" "imps/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Panel"
Option "DPMS" "on"
EndSection
Section "Device"
Identifier "X700-0"
Driver "fglrx"
Option "no_accel" "no"
Option "no_dri" "no"
Option "mtrr" "off"
Option "DesktopSetup" "0x00000100"
Option "MonitorLayout" "NONE, LVDS"
Option "IgnoreEDID" "off"
Option "NoTV" "no"
Option "TVStandard" "PAL-G"
Option "TVHSizeAdj" "0"
Option "TVVSizeAdj" "0"
Option "TVHPosAdj" "0"
Option "TVVPosAdj" "0"
Option "TVHStartAdj" "0"
Option "TVColorAdj" "0"
Option "GammaCorrectionI" "0x00000000"
Option "GammaCorrectionII" "0x00000000"
# === OpenGL specific profiles/settings ===
Option "Capabilities" "0x00000000"
# === Video Overlay for the Xv extension ===
Option "VideoOverlay" "on"
# === OpenGL Overlay ===
# Note: When OpenGL Overlay is enabled, Video Overlay
# will be disabled automatically
Option "OpenGLOverlay" "off"
# === Center Mode (Laptops only) ===
Option "CenterMode" "off"
# === Pseudo Color Visuals (8-bit visuals) ===
Option "PseudoColorVisuals" "off"
# === QBS Management ===
Option "Stereo" "off"
Option "StereoSyncEnable" "1"
# === FSAA Management ===
Option "FSAAEnable" "no"
Option "FSAAScale" "1"
Option "FSAADisableGamma" "no"
Option "FSAACustomizeMSPos" "no"
Option "FSAAMSPosX0" "0.000000"
Option "FSAAMSPosY0" "0.000000"
Option "FSAAMSPosX1" "0.000000"
Option "FSAAMSPosY1" "0.000000"
Option "FSAAMSPosX2" "0.000000"
Option "FSAAMSPosY2" "0.000000"
Option "FSAAMSPosX3" "0.000000"
Option "FSAAMSPosY3" "0.000000"
Option "FSAAMSPosX4" "0.000000"
Option "FSAAMSPosY4" "0.000000"
Option "FSAAMSPosX5" "0.000000"
Option "FSAAMSPosY5" "0.000000"
# === Misc Options ===
Option "UseFastTLS" "0"
Option "BlockSignalsOnLock" "on"
Option "ForceGenericCPU" "no"
Screen 0
EndSection
Section "Screen"
Identifier "Screen 0"
Device "X700-0"
Monitor "Panel"
DefaultDepth 24
Subsection "Display"
Depth 24
Modes "1680x1050"
EndSubsection
EndSection
Section "ServerLayout"
Identifier "Layout 0"
Screen "Screen 0"
InputDevice "Mouse 0" "CorePointer"
InputDevice "Mouse 1" "AlwaysCore"
InputDevice "Keyboard 0" "CoreKeyboard"
EndSection
Section "DRI"
Mode 0666
EndSection
|
[edit] TV-out
Relevant portions of a working xorg.conf are provided below. The most important option is "DesktopSetup" "Single,Reverse" for ati-drivers-8.19.10 and "DesktopSetup" "clone" / "OverlayOnCRTC2" "1" for ati-drivers up to 8.25.18 (maybe some day ATI stop changing the way to enable TV out in their drivers). If you are using modular X, and are having problems compiling 8.19.10, you will probably have to edit the ati-drivers-8.19.10.ebuild as described in the gentoo forums. DRI should be disabled ("NoDRI" "yes" ... (no_dri doesn't work?)) when using TV-OUT if you experience system lockups when exiting the X server. (When the TV-out X server starts it changes to the next virtual console available (usually 8), when it finishes the first X server will try to change to its own virtual console (usually 7). If DRI is enabled on the first X server it can lock up during the switch.). That problem was solved in ati-drivers-8.25.18. DRI from ati-drivers <= ati-drivers-8.40.4 still does not work together with tuxonice formely suspend2). DRI from ati-drivers = ati-drivers-8.42.3 does work together with tuxonice-2.2.10.4 + kernel 2.6.23.
| File: /etc/X11/xorg.conf |
Section "ServerLayout"
Identifier "TVLayout"
Screen 0 "TVScreen" 0 0
InputDevice "Mouse" "CorePointer"
InputDevice "Keyboard" "CoreKeyboard"
EndSection
...
Section "Monitor"
Identifier "TVMonitor"
Option "DPMS" "off"
EndSection
Section "Device"
Identifier "RX700_fglrx"
Driver "fglrx"
Option "VideoOverlay" "on"
Option "OpenGLOverlay" "off"
Option "NoDRI" "yes" # Change this to "no" with ati-drivers-8.25.18
Option "NoTV" "no"
Option "TVStandard" "VIDEO"
Option "TVFormat" "NTSC-M"
Option "TVHSizeAdj" "0"
Option "TVVSizeAdj" "0"
Option "TVHPosAdj" "0"
Option "TVVPosAdj" "0"
Option "TVHStartAdj" "0"
Option "TVColorAdj" "0"
Option "GammaCorrectionI" "0x00000000"
Option "GammaCorrectionII" "0x00000000"
Option "UseInternalAGPGART" "no"
# ati-drivers = 8.19.10
#Option "DesktopSetup" "single,reverse"
# ati-drivers 8.20.8 up to 8.22.5 (at least)
Option "DesktopSetup" "clone"
Option "OverlayOnCRTC2" "1"
EndSection
Section "Screen"
Identifier "TVScreen"
Device "RX700_fglrx"
Monitor "TVMonitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "640x480" "800x600" "1024x768"
ViewPort 0 0
EndSubSection
EndSection
|
[edit] Modem
As of kernel 2.6.14, modem is supported on this machine out of the box (through snd_atiixp_modem driver). Kernel regards this modem as a plain audio device (more or less - it's a little more than an ADC/DAC pair), so daemon called "slmodemd" is needed to actually transfer data over phone line. Now, this daemon has a proprietary, IA32 only binary component, so it can not simply be emerged from portage. It, however, can easily be built manually, given there is x86 version of alsa-libs installed ("emerge emul-linux-x86-soundlibs" or something custom). Instead of building, it is always possible to get the latest binary from Technion's Linmodem site (great university, by the way). It works great, starting from 2.9.9* and up to the latest one. Ocassional disconnects are possible and still need to be debugged.
[edit] IR Port
The IR port is fully supported as of 2.6.21 kernel. However, it may fail to operate because of module conflict (after all, we can't expect much from the legacy hardware). On my machine, udevd loads 8250* modules before the nsc-ircc one, preventing the IR port initialization. Allowing for the fact that internal 8250 serial controller is not wired to anything (docking station?), I just blacklisted its modules:
| File: Excerpt from /etc/modules.d/aliases |
alias 8250 off alias 8250_pci off alias 8250_pnp off |
Configure irda:
| File: /etc/conf.d/irda |
IRDA=yes IRDADEV=irda0 DISCOVERY=yes |
| File: /etc/modules.d/irda |
alias irda0 nsc-ircc pre-install nsc-ircc /bin/setserial /dev/tts/0 uart none |
Depending on your BIOS setup you may have to use /dev/tts/1.
| Code: |
modules-update /etc/init.d/irda start ifconfig # irda0 must be available now |
[edit] Bluetooth
The bluetooth module of this laptop is basically an USB device, hard-wired through a switch (front blue-light button) to the system's USB hub. To install support for bluetooth one shall emerge few packages starting with bluez- ("bluez-libs", "bluez-utils" and may be some others; if you don't know what to do, there is plenty of bluetooth related information elsewhere).
No special provisions are necessary for bluetooth switch (blue button). Recent enough version of udev has a rule that will start and stop bluetooth services automatically on blue button press/bluetooth dongle insertion. The relevant configuration file for bluetooth services is as expected: /etc/conf.d/bluetooth.
The bluetooth mouse became as laggy as in Windows with kernel 2.6.21. The culprit is this commit. I created this patch to revert the change, now the mouse works fine again. I also asked for help in the bluetooth mailling list, nobody has answered my request for help so far.
[edit] FlashMedia
TI PCIxx21 memory card controller has two modes of operation. One is via TI's proprietary FlashMedia interface that supports all types of cards: MMC/SD, xD, SM, MS and MSpro. Second is via open industry standard SDHCI interface, which supports (as follows from the name) only MMC/SD cards. We shall discuss this interface in the next section.
FlashMedia support was possible by reverse engineering of the TI's Win64 driver. It's included in standard linux kernel starting from version 2.6.19 (though some issues made their way into 2.6.20 and were not committed in time for 2.6.21, spoiling the fun). As of version 2.6.25, MemoryStick Pro storage cards are supported by the mainline kernel.
Sony legacy MemoryStick support and xD cards are not supported at present, but some work is being done, so we may see them both supported, sooner or later (fortunately, I have nobody to blame for it, but myself - Oakad).
For users of older (< 2.6.19) and newer (> 2.6.19) kernel versions the install procedure should go as following (version 0.8, for the newer kernels available from tifmxx.berlios.de; SVN version would probably compile only on the most recent kernels):
- Download and unpack the driver
- be sure that you use at least kernel 2.6.17 (12.6.16?) with mmc-support enabled
- compile modules (make)
- copy to /lib/modules/<kernel> -directory ("make install" will do)
- # modules-update
- # modprobe tifm_core
- # modprobe tifm_sd
- # modprobe tifm_7xx1
- Insert SD-Card - the Blockdevice /dev/mmcblk0p1 will be created, that you can mount (for auto-mounting support users of 2.6.20 and .21 kernels need a newer hald)
The fixed version of the driver will be included with 2.6.22 release.
[edit] SDHCI
Well, thanks to good folks of drzeus support for SDHCI interface is also available. TI, in their unlimited benevolence, chose to provide an industry standard SDHCI interface in their chip, in addition to proprietary FlashMedia one. Yet, what TI giveth, Acer taketh away - the interface is disabled by default on this machine. To make use of it, some magic is needed.
First we have to tweak a fakephp driver of pci hotplug (the original is nearly identical on recent kernels):
| File: "diff -u" of fakephp.c |
--- fakephp.c.orig 2006-02-18 00:19:56.240839250 +1100
+++ fakephp.c 2006-02-17 02:55:28.598947500 +1100
@@ -212,6 +212,8 @@
}
}
}
+ pci_bus_size_bridges(bus);
+ pci_bus_assign_resources(bus);
}
}
|
I don't know if this is a safe patch, as I failed to verify the correctness of it with anybody of kernel developers. It seems to work and my kernel is still up (no nasty crashes).
The driver proper is now included with stock linux-2.6.17. It's called "sdhci.ko" (alternatively, driver may be obtained from drzeus). Do not load it just yet.
And now the magic part:
| File: sdhci.sh |
#!/bin/bash modprobe fakephp setpci -s 06:09.0 86.b=90:d0 # SDHCI enable echo 0 > /sys/bus/pci/slots/0000:06:09.3/power echo 0 > /sys/bus/pci/slots/0000:06:09.2/power echo 0 > /sys/bus/pci/slots/0000:06:09.0/power echo 1 > /sys/bus/pci/slots/0000:06:09.0/power setpci -s 06:09.3 4c.b=02 # FlashMedia SD disable setpci -s 06:09.4 04.b=06 # SDHCI Mem+ BusMaster+ setpci -s 06:09.4 88.b=01 # SDHCI DMA enable |
What's going on here? First, we need to load a fakephp driver, to enable pci rescan. Then, a magic bit should be toggled, to enable SDHCI support. After that, all TI subsystems must be stopped and re-started. And to culminate, we need to disable FlashMedia SD support, otherwise FlashMedia controller will compete with SDHCI one for control over card.
What reward we get for our pains? Lo and behold - we just got a shiny new pci device:
| File: Excerpt from lspci -v |
06:09.4 Class 0805: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller (prog-if 01)
Flags: bus master, medium devsel, latency 0, IRQ 177
Memory at c030a000 (32-bit, non-prefetchable) [size=256]
Memory at c030a100 (32-bit, non-prefetchable) [size=256]
Memory at c030a200 (32-bit, non-prefetchable) [size=256]
Capabilities: [80] Power Management version 2
|
Now, do "modprobe sdhci", plug in your MMC/SD card and enjoy it content.
If you use the noapic kernel option also use the irqpoll option or the SDHCI controller will not work properly. Suspend to disk and to ram crash the computer if the SDHCI controller is enabled. To make it easier to enable / disable it I created this service:
| File: /etc/init.d/sdhci |
#!/sbin/runscript
depend() {
need localmount
}
load_sdhci()
{
modprobe fakephp || return 1
setpci -s 06:09.0 86.b=90:d0
echo 0 > /sys/bus/pci/slots/0000:06:09.3/power
echo 0 > /sys/bus/pci/slots/0000:06:09.2/power
echo 0 > /sys/bus/pci/slots/0000:06:09.0/power
echo 1 > /sys/bus/pci/slots/0000:06:09.0/power
setpci -s 06:09.3 4c.b=02 # FlashMedia SD disable
setpci -s 06:09.4 04.b=06 # SDHCI Mem+ BusMaster+
setpci -s 06:09.4 88.b=01 # SDHCI DMA enable
modprobe sdhci || return 1
modprobe mmc_block || return 1
return 0
}
start() {
ebegin "Configuring card reader"
load_sdhci
eend $?
}
unload_sdhci() {
modprobe -r mmc_block
modprobe -r sdhci
lsmod | grep -q sdhci && return 1
setpci -s 06:09.4 88.b=00 # SDHCI DMA disable
setpci -s 06:09.4 04.b=07 # SDHCI Mem- BusMaster-
setpci -s 06:09.3 4c.b=00 # FlashMedia SD enable
setpci -s 06:09.0 86.b=d0
echo 0 > /sys/bus/pci/slots/0000:06:09.4/power
echo 0 > /sys/bus/pci/slots/0000:06:09.3/power
echo 0 > /sys/bus/pci/slots/0000:06:09.2/power
echo 0 > /sys/bus/pci/slots/0000:06:09.0/power
echo 1 > /sys/bus/pci/slots/0000:06:09.0/power
modprobe -r fakephp
return 0
}
stop() {
ebegin "Shutting down card reader"
unload_sdhci
eend $?
}
|
[edit] WiFi
As of version 2.6.21, broadcom wifi support appears to be reasonably stable by default (that is, udevd will load all needed modules automatically and everything will work out of the box). WPA, WPA2 and WEP are supported, though speed seems a little low (I'm getting 24Mb/s with bcm43xx vs. 50Mb/s with ndiswrapper; on the other hand, all kind of issues affecting ndiswrapper lately make it a worse choice).
Kernel version 2.6.25 introduces a new Broadcom driver, called b43. The setup is similar to the old bcm43xx. The only problem is that b43 apparently unable to work in AP mode, making it virtually useless.
Custom firmware should be obtained for bcm43xx driver to work. The simplest way to do this is to "emerge bcm43xx-fwcutter" and run it over the windows driver ("bcm43xx-fwcutter BCMWL564.SYS"). This will create a bunch of *.fw files that should be put into "/lib/firmware".
There is an irc channel on freenode.net called #bcm-users which you may get help regarding the above drivers.
The specification of txpower in BCM 4318 is different from the other bcm43xx cards. The actual implementation in bcm43xx.ko makes the txpower too weak to overcome obstacles, then you need to be close the access point to get a connection. Reference: http://forums.gentoo.org/viewtopic-p-3533332-highlight-4318.html#3533332 (this is not fully resolved in the 2.6.21, but has got much better).
The Acer "SignalUP" technology is actually nothing more than a specific antenna design. No additional software or drivers are required for it to work.
[edit] FireWire
FireWire works out of the box with the standard kernel module ieee1394 and ohci1394. Mass storage devices additionally need the sbp2 module loaded.
DV editing works flawlessly with raw access kernel module and an appropreate program to download it. (Kino and Cinelerra are two that come to mind.)
Ethernet over FireWire works out of the box, and the hotplug/coldplug scripts should load it by default. The eth device with the extra long MAC address (digits separated by dashes - instead of colons : ) is the FireWire device. It is provided by the eth1394 module.
[edit] Hard Disk
Well, the now famous Load_Cycle_Count problem affects our beloved notebook (my hard disk's Load_Cycle_Count is 492396 after two years, smartctl -a /dev/hda | grep Load_Cycle_Count). I have tried using hdparm -B 255 /dev/hda to avoid the Load_Cycle_Count to reach 600000 (estimated hard disk's lifetime). It works but hard disk gets warm, hey I live in Brazil :-). Now I am using hdparm -B 200 /dev/hda in /etc/conf.d/local.start. It also works and hard disk does not get so warm. You have better do the same or your hard disk can just fail after some years of use.
[edit] DVD drive
Like many IDE DVD drives designed in Japan, the Matsushita UJ-845S unit implements some additional "features" (not mentioned in RPC-2 specs) inside the firmware. In short, it will prevent any OS from reading encrypted CSS title keys, when the drive region code doesn't match the DVD.
For this reason, the region chosen in "regionset" tool, will (unfortunately) determine which region-coded DVD's can be read. You can also set a specific region code, but this is (hardware-)limited to five changes at all.
| Code: |
# emerge regionset # regionset /dev/dvd regionset version 0.1 -- reads/sets region code on DVD drives Current Region Code settings: RPC Phase: II type: NONE vendor resets available: 4 user controlled changes resets available: 5 drive plays discs from region(s):, mask=0xFF Would you like to change the region setting of your drive? [y/n]:y Enter the new region number for your drive [1..8]:2 New mask: 0xFFFFFFFD, correct? [y/n]:y Region code set successfully! |
The same problems happen for people using windows - and *even* Slysoft's AnyDVD tool doesn't help. More information there: http://club.cdfreaks.com/showthread.php?t=101267
If you find *any* information on how to workaround (or get rid of) this crap, please add the details here !
- On a J-845D in a Aspire 5020 I can view CSS encrypted DVDs from several regions with VLC. The thing is I never set any region so either this drive supports reading CSS sectors from several regions per default or only when in this undecided state. This info won't help anyone who already has a problem though.
- Well, at least on my UJ-845S drive, it refused to read all CSS encrypted DVD's, until I chose a region for the first time. Then it worked, but of course, only for that region...
- Ultimately the best solution is to simply replace that drive, since the Matsushita UJ-845S will never be flashable to RPC1. One drive that I can recommend is the Pioneer DVD DVR-K06 (also available as the rebranded Plextor PX-608AL). Although these two drives are essentially the same drive, the Plextor is double the price of the Pioneer, so go for the Pioneer if you can. Both these drives are available as of May 2008 for around 30 UKP (Pioneer) or 60 UKP (Plextor). The RPC1 flash for both of these drives is the same file, which can be found on the RPC1 forums. More info here.
[edit] Special Keys
The Ferrari 4005 keyboard sends few escaped scancodes to signal non-standard key presses. Thus one need to setup "keycodes" configuration script in the following manner (this, of course, only a suggestion, but probably an optimal one):
| File: My /etc/conf.d/keycodes |
# Extra keys for Acer Ferrari 4k # Key | scode | X11 symbol | X11 kcode | Console kcode # ---------------------------------------------------------------------- # Fn-F1 e025 Help I70 - 240 235 # Fn-F2 e026 XF86Launch1 I71 - 241 236 # Fn-F3 e027 XF86Launch2 I72 - 242 237 # Fn-F4 <acpi sleep event> # Fn-F5 e029 XF86Display I26 - 166 154 # Euro e033 EuroSign I25 - 165 205 # Dollar e034 dollar I24 - 164 166 # WIFI ON e055 NoSymbol x 240 # WIFI OFF e056 NoSymbol x 241 # USB ON e057 NoSymbol x 242 # USB OFF e058 NoSymbol x 243 # BR. UP e063 NoSymbol x 244 # Fn-F7 (TPAD ON) e071 NoSymbol x 245 # Fn-F7 (TPAD OFF) e072 NoSymbol x 246 # "P" button e073 XF86Launch3 I73 - 243 238 # "e" button e074 XF86Launch4 I74 - 244 239 # -------------------------------------------- # Rationale: "NoSymbol" keys have nothing to do with X apps - they must be # handled on the lower level if at all (they do their work). # Therefore I've mapped them to the keycodes that never get # reported to X (I think). # "XF86Display" mapped according to the only other occurrence in # <inet> file. # "Help" and "XF86Launch*" buttons mapped by majority and # grouping of "XF86Launch*" buttons in <inet> file. # "dollar" was mapped in resemblance of it ASCII code and "Euro" # used to plug a discontinuity KEYCODES="e025 235 e026 236 e027 237 e029 154 e033 205 e034 166 e055 240 e056 241 e057 242 e058 243 e063 244 e071 245 e072 246 e073 238 e074 239" |
| File: My /etc/init.d/keycodes |
#!/sbin/runscript
depend() {
need localmount
}
start() {
# Load scan code to key code mappings
if [ -n "$KEYCODES" -a -x /usr/bin/setkeycodes ]
then
ebegin "Loading scan code to key code mappings"
/usr/bin/setkeycodes $KEYCODES
eend $? "Error loading key code mappings"
fi
}
|
Don't forget to run rc-update add keycodes default, to make this run at start-up.
[edit] Special Keys with X and kde
Ok, now that we have all keycodes, we can make a small adaptation to xkb scripts, in order to enable all keys in X. Here are the changes I've made, against files installed by xkbdata-1.0.0 of Xorg-7.0, though probably these files are nearly identical on many other xorg versions.
NOTE: Since x11-misc/xkeyboard-config-0.9 the xkb model is included by default. No patching needed anymore - you only need to specify (in xorg.conf): Option "XkbModel" "acer_ferrari4k"
| File: Patch against /usr/share/X11/xkb |
diff -ur xkb-orig/rules/xorg xkb/rules/xorg
--- xkb-orig/rules/xorg 2005-08-12 20:50:44.000000000 +1000
+++ xkb/rules/xorg 2005-12-19 14:35:48.230961000 +1100
@@ -20,8 +20,8 @@
! $azerty = be fr
! $qwertz = al cz de hr hu ro si sk
-! $inetkbds = a4techKB21 a4techKBS8 acer_tm_800 acpi airkey azonaRF2300 \
- brother \
+! $inetkbds = a4techKB21 a4techKBS8 acer_tm_800 acpi airkey ferrari4k \
+ azonaRF2300 brother \
btc5113rf btc5126t btc9000 btc9000a btc9001ah btc5090\
cherryblue cherrybluea cherryblueb \
chicony chicony9885 \
diff -ur xkb-orig/rules/xorg.lst xkb/rules/xorg.lst
--- xkb-orig/rules/xorg.lst 2005-08-12 20:50:44.000000000 +1000
+++ xkb/rules/xorg.lst 2005-12-19 14:37:16.024447750 +1100
@@ -18,6 +18,7 @@
a4techKBS8 A4Tech KBS-8
abnt2 Brazilian ABNT2
airkey Acer AirKey V
+ ferrari4k Acer Ferrari 4000
acpi ACPI Standard
azonaRF2300 Azona RF2300 wireless Internet Keyboard
scorpius Advance Scorpius KI
diff -ur xkb-orig/rules/xorg.xml xkb/rules/xorg.xml
--- xkb-orig/rules/xorg.xml 2005-08-12 21:38:38.000000000 +1000
+++ xkb/rules/xorg.xml 2005-12-19 14:38:36.593483000 +1100
@@ -370,6 +370,12 @@
<description xml:lang="zh_CN">Acer AirKey V</description>
</configItem>
</model>
+ <model>
+ <configItem>
+ <name>ferrari4k</name>
+ <description>Acer Ferrari 4000</description>
+ </configItem>
+ </model>
<model>
<configItem>
<name>acpi</name>
diff -ur xkb-orig/symbols/inet xkb/symbols/inet
--- xkb-orig/symbols/inet 2005-08-12 21:10:11.000000000 +1000
+++ xkb/symbols/inet 2005-12-30 00:15:45.000000000 +1100
@@ -74,6 +74,27 @@
key <I5E> { [ XF86PowerOff ] };
};
+// Acer Ferrari 4000 Keyboard
+// From Alex Dubov <oakad@yahoo.com>
+partial alphanumeric_keys
+xkb_symbols "ferrari4k" {
+ key <I30> { [ XF86AudioRaiseVolume ] }; //Fn+Up
+ key <I2E> { [ XF86AudioLowerVolume ] }; //Fn+Down
+ key <I20> { [ XF86AudioMute ] }; //Fn+F8
+ key <I6C> { [ XF86Mail ] }; //"mail" button
+ key <I32> { [ XF86WWW ] }; //"Saturn" button
+ // Missing keycodes - set-up with setkeycodes
+ key <I70> { [ Help ] };
+ key <I71> { [ XF86Launch1 ] };
+ key <I72> { [ XF86Launch2 ] };
+ key <I73> { [ XF86Launch3 ] };
+ key <I74> { [ XF86Launch4 ] };
+ key <I24> { [ dollar ] };
+ key <I25> { [ EuroSign ] };
+ key <I26> { [ XF86Display ] };
+};
+
+
// Azona
// Azona RF2300 wireless Internet Keyboard
diff -ur xkb-orig/symbols.dir xkb/symbols.dir
--- xkb-orig/symbols.dir 2005-12-30 01:16:00.000000000 +1100
+++ xkb/symbols.dir 2005-12-19 14:33:46.679364500 +1100
@@ -516,6 +516,7 @@
--p----- a------- inet(a4techKB21)
--p----- a------- inet(a4techKBS8)
--p----- a------- inet(airkey)
+--p----- a------- inet(ferrari4k)
--p----- a------- inet(azonaRF2300)
--p----- a------- inet(acpi)
--p----- a------- inet(scorpius)
|
If everything went ok, it is now will be possible to add
Option "XkbModel" "ferrari4k"
to xorg.conf keyboard section, thus enabling all keys (including indispensable volume and mute keys). For kde, go to the "Keyboard Layout" panel of the Control Center, and choose "Acer Ferrari 4000" from the "Keyboard Model" combobox (it should appear there if all required xkb files are patched and X is restarted). Hitting apply brings you a wonder of a volume bar pop-up upon Fn-Up and Fn-Down presses. All other buttons can be made useful through "Keyboard Shortcuts" panel - just pick your action and hit a HotKey or Fn-{F1,F2,F3} combo. Euro and Dollar on the lower right of the keyboard will work too.
[edit] Battery info via ACPI
Works fine with latest kernel (2.6.23-rc7), and pollable in /proc/acpi/battery/BAT1/
[edit] ACPI power states
[edit] Suspend to disk
There are three suspend to disk implemenations for Linux: swsusp, uswsusp (based on swsusp) and TuxOnIce (formely suspend2). uswsusp is very new and experimental. swsusp and TuxOnIce are the most used suspend to disk implementations. I prefer TuxOnIce, reasons.
To enable TuxOnIce:
| Linux Kernel Configuration: Kernel 2.6.23 patched with TuxOnIce 2.2.10.4 |
Power management options --->
<*> Enhanced Hibernation (TuxOnIce) --->
<*> Swap Allocator
<*> Compression support
<*> Userspace User Interface support
[*] Replace swsusp by default
|
| Code: |
emerge hibernate-script emerge suspend2-userui |
- kernel options: resume=swap:<swap partition>.
- my hibernate-script configuration (common.conf and suspend2.conf): http://www.metasys.com.br/~lamarque/ferrari_4005/.
The last two problems probably also happen with swsusp, I have not tested them tough.
To enable swsusp:
- compile kernel with 'Power management options -> Software Suspend'.
- set "Default resume partition" to your swap partition (if not, you may need to pass resume=<swap partition> upon booting)
- to initiate hibernation: echo -n disk > /sys/power/state
- works like a charm in 2.16.19.1, without any further kernel configuration, or boot parameters, with kernel framebuffer and X (I haven't tested dri) :]
- with kernel 2.6.15.1:
- disable 'Processor type and features -> Preempt The Big Kernel Lock'.
- pass these parameters to the kernel: resume=<swap partition> noapic irqfixup acpi_irq_balance.
- do NOT enable kernel framebuffer (no fbsplash or bootsplash).
- close all X servers before calling hibernate script if DRI is enabled.
- add the line 'UseSysfsPowerState disk' to your /etc/hibernate/hibernate.conf and comment all lines about suspend2.
Observations about both swsusp and TuxOnIce:
[edit] Suspend2 to ram
- it is working with kernel 2.6.23, TuxOnIce 2.2.10.4 and ati-drivers 8.42.3.
- swsusp does not do a resume from disk if the last resume from ram did not work. This is one of the major reasons I prefer TuxOnIce rather than swsusp.
- the configuration is exactly the same for suspend to disk except for one detail: change PowerdownMethod in /etc/hibernate/suspend2.conf from 5 to 3.
- if artsd does not respond after resume try running this script:
| File: My /usr/bin/restart_artsd |
#!/bin/sh
for user in $(ps -C ksmserver -o user= | sort -u)
do
su - $user -c "( source /etc/profile
killall artsd
sleep 1
killall -9 artsd
sleep 1
exec kcminit arts ) &> /dev/null"
done
|
- the script above is not needed with alsa-driver-1.0.14_rc2_p3234.
[edit] Sensors
lm_sensors-2.10.1 and kernel 2.6.19 support reading processor's core temperature.
| Linux Kernel Configuration: |
Device Drivers --->
<*> Hardware Monitoring support --->
<M> AMD Athlon64/FX or Opteron temperature sensor
|
| Code: |
emerge lm_sensors modprobe k8temp /usr/bin/sensors |
[edit] Memory controller optimization (a MUST if you use DDR-400)
joel: If you have replaced your memory with DDR-400 SDRAM, you might have noticed that they run only at 333 MHz. The BIOS is stupid. Fortunately, the K8 integrated DRAM controller can be reconfigured in software !!
| File: joel-ddr400.patch |
--- linux/drivers/pci/quirks.c.orig 2007-10-06 23:35:28.000000000 +0200
+++ linux/drivers/pci/quirks.c 2007-10-06 23:55:59.000000000 +0200
@@ -23,6 +23,20 @@
#include <linux/acpi.h>
#include "pci.h"
+static void __init quirk_acer4005_200MHz(struct pci_dev *pdev)
+{
+ u8 prog;
+ printk(KERN_INFO "Setting AMD K8 DRAM MemClk to 200 MHz.\n");
+ pci_read_config_byte(pdev, 0x96, &prog);
+ prog |= 0x70; /* Set bits 22-20 of DRAM Configuration High Register (0x94) to 111b for 200 MHz */
+ pci_write_config_byte(pdev, 0x96, prog);
+ printk(KERN_INFO "Setting AMD K8 DRAM 2T Timing to DISABLED.\n");
+ pci_read_config_byte(pdev, 0x93, &prog);
+ prog &= ~0x10; /* Clear bit 28 of DRAM Configuration Low Register (0x90) to disable 2T Timing */
+ pci_write_config_byte(pdev, 0x93, prog);
+}
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_K8_NB_MEMCTL, quirk_acer4005_200MHz);
+
/* The Mellanox Tavor device gives false positive parity errors
* Mark this device with a broken_parity_status, to allow
* PCI scanning code to "skip" this now blacklisted device.
|
Performance (measured with "hdparm -T /dev/hda" or "hdparm -T /dev/sda")
- Enabled 200 MHz operation: 480MB/s to 580MB/s
- Disabled 2T timing: 580MB/s to 670MB/s
First, try it without modifying your kernel (will disappear at next reboot)
- setpci -v -s 0:18.2 96.b=70:70
- setpci -v -s 0:18.2 93.b=00:10
Have a look at the registers (to see what settings are currently in effect)
- lspci -s 0:18.2 -xxx
Successfully tested RAM configurations (add your own here)
- 2 x Kingston SODIMM DDR 400Mhz CL3 1GB (KVR400X64SC3A) -- RECOMMENDED (100% stable at CL2.5)
- 1 x OCZ SODIMM DDR 400Mhz CL2.5 1GB (OCZ4001024VSO) -- NOT RECOMMENDED (see below)
Other setpci tweaks that improve performance (add your own here)
- ...
[edit] Troubleshooting
The timer problems were fixed in linux-2.6.16. If you have them, upgrade to newer kernel.
There is also some bug that affects version 0.14.3 of the X11 synaptics driver (it makes some ButtonPress/ButtonRelease events to disappear - not critical, but very annoying bug). The 0.14.4 or newer release of the driver fixes it (emerge x11-drivers/synaptics).
[*32-bit* kernel remarks -- ignore this if you have a kernel >=2.6.16]
Joël: Victory ! I just found *the* kernel option for ATI/AMD64: "disable_timer_pin_1" !
- mouse gets detected (no need for i8042.nomux)
- networking and sound work (no need for irqfixup/irqpoll)
- no more 2X speed timer (no need for noapictimer)
- APIC is enabled, reboot now works !
If you get no DRI, and no errors in /var/log/Xorg.0.log, take a look at the console, focusing on "symbol unresolved" errors on X11 startup ! Yes, quite a few people had problems such as this (and several of them couldn't solve it):
example 1: http://www.experts-exchange.com/Operating_Systems/Linux/Linux_Setup/Q_21549783.html example 2: http://article.gmane.org/gmane.linux.gentoo.user/134646 The errors on X startup are: Symbol __glXgetActiveScreen from module /usr/X11R6/lib/modules/extensions/libdri.a is unresolved! Symbol __glXgetActiveScreen from module /usr/X11R6/lib/modules/extensions/libdri.a is unresolved! Symbol __glXActiveScreens from module /usr/X11R6/lib/modules/drivers/fglrx_drv.o is unresolved! These __glX symbols have *NOTHING* to do with the kernel. This is (to my mind) a X11 problem. Good news: you will solve these errors by fixing your config and/or by upgrading xorg-x11 from 6.8.2-rXYZ to 7.0.0-rc2 (also known as "modular X"). So, first of all, verify your setup. Here's a short checklist to help you: 1 - in kernel config - very simple: *enable* GART support as a module (CONFIG_AGP=m) with *no* specific chipset support. Enable PCI-express support. *Disable* DRM support (the ATI driver will provide it). 2 - use the "xorg.conf" as listed on top of this page, or *at least* ensure that you load both "glx" and "dri" (in that order). 3 - check that both "agpgart" and "fglrx" got loaded: "lsmod | grep fglrx". 4 - try to start x11 as root (to rule out any rights issues) 5 - try to use same kernel and ati driver versions as me. If you did these steps, and glxgears *still* doesn't work, *then* upgrade to modular X (caution: requires *quite a bit* of tweaking, but is well worth it !). I used the "modular X howto" by Donnie Berkholz: http://dev.gentoo.org/~spyderous/xorg-x11/migrating_to_modular_x_howto.txt Here are the software versions on which "xorg-x11 7.0.0-rc2" saved my DRI life -- kernel 2.6.14-archck5, x11-drivers/ati-drivers-8.19.10.
Some additional issues:
- SMBus/I2C sensor support doesn't seem to work? (ATI IXP SB400 SMBus Controller rev 11)
- Internal fan. The fan is not controllable by the operating system. It will always stay on low whenever the laptop is on, and will throttle up to higher speeds as the processor heats up and throttle back down as the temperature cools. [maybe a BIOS update exists that turns the fan off at sufficiently cool temps?] Here are official bios updates: ftp://ftp.support.acer-euro.com/notebook/ferrari_4000/bios/ at the moment latest realease 3A23 does not turn off the fan at low temps.
[edit] Authors
- Alex Dubov
- Lamarque Vieira Souza
- Joël Bourquard (minor additions)
- Scott Chapman (minor additions)
[edit] More users with working system to ask
- Jakob Weber ( werbung€pendelverkehr[dot]de )
- Dennis Nezic ( dennisn @T dennisn D0T dyndns D0T org)
- Yogesh Sharma ( ysharma _N0_SPAM_ @t catprosystems [d0t] com )
- Christian Hoffmann ( email ~@t~ christianhoffmann {d0t} info )
- Traian Stanev ( tstanev ~@t~ yahoo {d0t} com )
- Nathan Boot ( nate[dot]boot[at]gmail.com )
- Marcus D. Hanwell ( cryos[at]gentoo.org )
[edit] Additional Resources
- Ferrari 4000 Service Guide (system specs, disassembly, jumpers, internal configuration, troubleshooting, etc.)
- Ferrari 4000 User's Guide (very basic usage)
