Linux on ECS A530

Manufacturer site: here
Relevant site: here
Spec:
- CPU: Transmeta™ Crusoe™ TM5600 stepping 03
- VGA: SiS 315 PRO, 15-pin female D-connector and S-Video TV out
- Display: 14.1" XGA+ TFT, 1024x768; 24bpp using sis driver, 16bpp using vesa
- Ethernet: Realtek Semiconductor RTL-8139/8139C/8139C+ (rev 10)
- Sound: ALi Corporation M5451 PCI
- WiFi: AirVast Taiwan IEEE 802.11b PRISM3 USB
- Modem: ALi Corporation Intel 537 [M5457 AC-Link Modem]; PCI ID 10B9:5457 subsystem 0F22:1019; FCC ID ECSM503BAM303W
- ACPI: v1.0b
- USB: v2.0, 4 ports
- Pointing device: Synaptics TouchPad, 4-way scrolling
- RAM: 128MB
- Harddisk: Fujitsu MHS2020AT E rev 8004, 20GB
- CD-ROM: QSI CD-ROM SCR-242 rev CHAA, 24x
IMPORTANT
My disk was just crashed. I suspect overheating problem is the culprit.
Situation was like this: The notebook was used to play several movies using
mplayer, while sitting over my bed. (Very bad move: no air flow below notebook).
I think it was running overheated for around one hour. (FYI, I live in a rather
cool part of Indonesia, but not cool enough for PC; average temperature is
around 20-28 C). So, please activate your temperature
monitor and watch it closely. I used to force my box run while
its CPU temp around 65-85 C, then reduce CPU frequency using longrun -s 0 33 if temp stays over 85.
General info
Works
Processor
A530 is based on Transmeta's Crusoe TM5600. It has an interesting feature:
Longrun. I install
wmlongrun to display near realtime CPU speed,
which can be one of 300, 400, 500, or 600 MHz. To enable this cute utility, you
need to load 2 kernel modules, or compile it into kernel: cpuid
(CONFIG_X86_CPUID) and msr(CONFIG_X86_MSR).
One thing you should know about this feature is, that you can prevent CPU
overheating by controlling CPU operating frequency using
longrun. This
should be done in combination with temperature monitor discussed below.
Normally, processor is set to run on performance window range 0 to 100. Try to
check this setting using longrun -p. Default output is:
# longrun -p
LongRun: enabled
LongRun Thermal Extensions (LTX): inactive
Current performance window: 0 to 100
Current performance level: 33
LongRun flags: economy
When temperature is higher than desired, force it down by reducing maximum
value of performance window using longrun -s 0 max_value where
max_value is any of 0, 33, 66, 100. I almost worried about my CPU
temperature. On normal operation, I got 60-70 C, while on high load it
can reach 95 C. I'd like to know your experience on this.
Here is my
self-compile 2.4.26 and its
configuration.
To enable longrun indicator in gkrellm, install
this plugin, too.
Update: option -t in longrun can give more fine-grained power/
performance (and maybe in the end, max temperature) control.
# longrun -t 7
# longrun -p
LongRun: enabled
LongRun Thermal Extensions (LTX): active
LTX setting: 12.5% reduction
Current performance window: 0 to 100
Current performance level: 66
LongRun flags: economy
Display
Using xfree86 version 4.3.0 and choosing sis driver, everything is fine.
Display resolution is 1024x768, 24bpp. Here is my
XF86Config-4.
Update: Display toggle (LCD, LCD+external, external) using
sisctrl is smooth.
Ethernet
Nothing special. Use 8139too kernel module.
Sound
Interesting situation. Using vanilla or debian's kernel up to 2.4.24, you can
use trident kernel module, but you don't have volume control. If you use
this
driver instead, then you can have normal volume control. Thanks for Brian
Hinz for this tip:
To be able to use CMedia's driver, just enable CONFIG_SOUND in your kernel
config, but do not select any standard sound driver. Compile cmaudio.o
separately. Complete documentation can be read in that tarball file.
Update: Volume control works, but volume level is way too low, even
after every related setting in aumix
are maxed out.
Update: I think CMedia driver is buggy somewhat, mplayer
is slow but movie is smooth when sound is disabled.
WiFi
Need additional driver (this is needed for kernel 2.4.x or 2.6.x)
linux-wlan-ng-0.2.1-pre14.tar.gz. Then hotplug will do the rest.
I will try 0.2.1-pre20 soon.
Update:
v0.2.1-pre20 works. I have an access point which use WEP and
provide DHCP service. Related configuration files are
/etc/network/interfaces,
/etc/wlan/wlan.conf,
/etc/wlan/wlancfg-FOO (new file), and
/etc/modutils/wifi (new file).
I can feel the urge to create a better WiFi antenna replacement as noted
in this site. Compared
to other WiFi equipped notebooks, mine always show lesser signal strength.
Sometime, changing LCD's tilt angle to be more horizontal can help increasing
signal strength. Maybe LCD's bottom side covers too much internal WiFi
antenna's area when tilted vertically.
I tried
kwifimanager's feature: accoustic scanning. Nice utility for
war-driving. It will give you beeps which frequency changes proportionally
to signal strength.
USB
hotplug knows it need to use 3 kernel USB-host drivers: ehci_hcd,
usb-ohci, and usb-uhci automatically. Nothing special here.
Afterward, I try to plug Nikon Coolpix 2000 digital camera, 128MB flash disk,
all works flawlessly. USB to serial converter used to be ok, but I have not
tested it in my latest kernel configuration, which doesn't include serial
driver. I will talk about this later in modem section.
Update: In several occassions, my USB mouse and/or WiFi suddenly stopped working
after I plugged/unplugged AC adapter connector. Maybe we should follow suggestion
not to plug/unplug AC adapter connector while notebook is running? But what if
you starts working without AC, then battery depleted and you want to continue
working uninterrupted? Maybe it's time to really test suspend.
ACPI
- power button event detected and handled properly
- lid switch event detected and handled properly; see suspend section below
- processor throttle setting experiment: 8 throttle states, it works!
echo -n 0..7 > /proc/acpi/processor/CPU1/throttling
... and watch its effect. I tested using
dnetc client benchmark while
running XMMS, when I set throtting level to 5 or more, xmms will starts
to choke when dnetc benchmark is being run
echo -n X:Y > /proc/acpi/processor/CPU1/limit
... catting back that proc entry showed change in active limit and user
limit, both changed to the same values
as inputted, didn't test the real effect yet though ...
Load ACPI kernel modules to enable poweroff.
Pointing Device
Works flawlessly, you can tap on touchpad to do click or
double-click, but of course you have to use the button to do a right-click
:( ; only the 4-direction button function not tested yet
Thorsten Becker gave me his tip regarding this:
You need the Synaptics Driver Maintained by Peter ?sterlund:
http://w1.894.telia.com/~u89404340/touchpad/index.html
I succeeded with Version 0.12.3 (actually the first version I tried), followed
the install-instructions and it worked. I only had to add the following
configuration Section in the XF86Config-File:
Section "InputDevice"
Identifier "Mouse0"
Driver "synaptics"
Option "Protocol" "auto-dev"
Option "RightEdge" "5400"
Option "TopEdge" "1900"
Option "BottomEdge" "4000"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.02"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.0010"
Option "SHMConfig" "on"
Option "ZAxis Mapping" "4 5 6 7"
EndSection
Another thing I finally found regarding simultaneous use of USB mouse
and Synaptics touchpad. Initially my X configuration didn't support both
pointing device at the same time. Simple tweak on XF86Config-4 enable both:
... on first mouse's InputDevice ...
Options "CorePointer"
... and on other mouse's InputDevice section ...
Options "SendCoreEvents" "true"
without Options "CorePointer" line
Special Keys Handling
Use xev to get keycodes, then run hotkeys to handle those keys.
Here is xev result. I configure some of those keys to
run my favorite browser (Mozilla Firebird), and MUA (Mutt). Here is hotkeys
specific configuration and
hotkeys.conf. Note: brightness control keys, Fn+F7 for up and Fn+F8 for
down, are handled properly by BIOS(?) even when Linux is running, and
xev doesn't detect those events.
Thermal Sensor
Needs lm-sensors,
i2c-source and
lm-sensors-source
packages; sensors-detect run told me to add i2c-ali1535 and
adm1021 into /etc/modules. Edit /etc/sensors.conf then run sensors -s to
set new sensor limits. Afterward
gkrellm can be configured to show
two new parameters: board temperature and CPU temperature!.
BTW, those two source packages will put a .gz file in /usr/src. You need to tar xfz it,
which will extract to /usr/src/module/pkgname. Then go to your kernel-source
root directory, run fakeroot make-kpkg modules-image
Ignore kernel warnings i2c-ali1535.o: Error: command never
completed kernel warnings. EEPROM driver also works. Precompiled debs for
i2c and lm-sensors are here.
kernel 2.6.4
Using 2.6.4, Benq model M101 USB mouse doesn't work in X. Probably a kernel bug, since
on 2.4.x it works fine. See
this
for very similar problem with no solution (yet). Using other USB mouse (USB id 0f62:1001) I
found no problem.
Need to recompile kernel (again) to test other peripherals on kernel 2.6.x
Update: I configure kernel with CONFIG_USB_MOUSE=m, then my Benq works
fine!
Suspend
I have just testing first case of suspend: triggered by lid. Several modifications needed.
/etc/acpi/powerbtn.sh, /etc/acpi/lidbtn.sh,
and /etc/acpi/events/lid. (Thanks to Marcus Gustafsson for the hints,
he tried on kernel 2.6.5, while I am on kernel 2.4.26). Try to close your monitor, it will trigger lid
switch, and put system into sleep mode (as indicated by half-moon icon LED on lowest left, near
power-is-on and battery-is-being-charged indicators). To resume, open lid and press power button.
I don't think it is perfect yet. LCD isn't turned off, and maybe so many other components.
I need to test whether this sleep state power usage is low enough to survive for several hours,
when my battery gave beep warning and I have to stop working for a while. I need to promptly
continue working after finding electric outlet to let my battery recharged.
I also plan to test second case of suspend, i.e. suspend to disk, which need no power
to preserve state. But later. Maybe in a couple of weeks.
Update: Suspend-to-RAM works reliably and repeatable on kernel 2.4.26. But I can only
have 1 chance of suspend in kernel 2.6.5. Further lid events will be discarded, no tracks at all. Why?
Update: Rename lidbtn_sh to lidbtn.sh, and powerbtn_sh to powerbtn.sh after downloading them,
current setup of my webserver were trying to execute those files instead of serving as-is.
Modem
A very promising tip from Brian Hinz (again!):
The modem is fully functional if you use the version 2.7.10 of the SmartLink
driver AND make sure that you do not compile serial port support into your
kernel, either statically or as a module. There is no serial port on this
machine but for some reason the serial port module will bind to the modem
and prevent it from working. Versions of slmdm > 2.7.10 do not seem to work
either. The driver can be downloaded at:
ftp://ftp.smlink.com/linux/unsupported/slmdm-2.7.10.tar.gz
Compile and module loading is ok now. Just need to find a little time to
connect to phone line ...
Update: Using
slmodem-2.9.7, at last I have time to really try dialup.
No problem. One important think I got from running
scanModem and reading its results are: add "Carrier Check = no" on /etc/wvdial.conf
These are steps to activate that driver:
- modprobe slamr
- /usr/sbin/slmodemd -c INDONESIA &
- wvdialconf /etc/wvdial.conf
- edit ISP specific items on /etc/wvdial.onf
- wvdial
In-progress/Doesn't work (yet)
Low-power Mode
I did some test
running A530 in very low power mode using kernel 2.6, it seems worked.
But I miss one crucial thing: no more warning (beep) when battery almost empty.
Also, I prefer to use 2.4 kernel now, so I need to modify the script.
Miscellaneous
Precompiled binaries for ECS-A530
dmesg, lspci -v,
lspci -nv, lsusb,
lsusb -v, lsmod
Not ECS A-530 specific, but one of a few things I try first time using this cute box:
- Cablemodem connection: (a) Ethernet: simple, just setup dhcp client and
make a proper configuration on /etc/network/interfaces. (b) USB: also
simple, hotplug will detect a CDCEther compliant device, just
add an iface eth1 inet dhcp line onto /etc/network/interfaces.
- GPRS via USB/serial or USB/infrared adapter. Good & bad news. Using
Mobile Action MA-620 infrared to USB adapter, kernel panic on
irattach. But using MA-8910P SonyEricsson to USB adapter, at
last I can test GPRS on Linux successfully.
Harddisk: install and configure
smartmontools. Lesson learned from hard disk crash in office's server: activate S.M.A.R.T
and related Linux daemon/utilities, it will warn you in advance about hard disk problem.
Hopefully you will be able to do backup before real problem appears.
Quirks
- no battery level interface, but battery has internal buzzer which will
beeps when power is almost depleted
- Ins key is on the left side of space bar, right beside Alt.
I press the wrong key everytime :(
Todo (unsorted)
- test microphone, what application to record sound?
- screenshots? who needs screenshots? ;)
- find another wifi-equipped notebook, setup an ad-hoc network
- find another wifi-equipped notebook, setup internal WiFi as an AP
- learn to write Linux driver for a USB webcam, maybe if I have spare time
and gut ...
- testing Bluetooth connectivity using USB Bluetooth adapter
Update history
- Nov 11, 2003: Recompile kernel to support IrDA for handphone connectivity.
Actually, I have two connection options (due to hardware availability): IrDA
or serial, both over USB. Then I will test GPRS link using Sony Ericsson T310,
Ericsson T39 or Siemens ME45.
- Nov 11, 2003: My link submission to
TuxMobil was accepted.
- Nov 13, 2003: wmlongrun and gkrellm
- Nov 16, 2003: various ACPI aspects
- Dec 15, 2003: My link submission to
Linux on Laptops
was accepted.
- Dec 19, 2003: kernel 2.4.23
- Dec 22, 2003: modem testing, still failed :(
- Dec 27, 2003: special keys worked! thanks to Francois Galea
- Jan 15, 2004: wifi works!
- Feb 3, 2004: several *very* positive feedbacks: sound, poweroff, modem,
synaptics, thanks to Brian Hinz and Thorsten Becker.
- Mar 1, 2004: Reformat for clarity
- Mar 6, 2004: kernel 2.4.25
- Mar 7, 2004: volume control problem, etc
- Mar 30, 2004: bad mouse or kernel bug?
- Apr 28, 2004: lm-sensors
- May 16, 2004: suspend triggered by lid switch
- May 22, 2004: longrun -t
- June 18, 2004: modem
discuss your experience using this box with me via andika at research dot
indocisc dot com
start hacking: Nov 4th, 2003; revision $Id: index.html,v 2.20 2004/06/19 07:39:25 andika Exp andika $