continua (next page) main index Note: this page could be obsolete. Refer also to my Fujitsu-Stylistic ST5022 pages!

Dual microphone or... two identical mono micropones?

First, let's see the arecord -l output, to get the list of "capture"-capable hardware devices: we see the ICH4 southbridge with two microphone inputs (MIC, MIC2), an extra analog-to-digital converter (I don't know what it actually is) and the input port of the modem (I think we cannot use this for modem audio capturing):
**** List of CAPTURE Hardware Devices ****
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 0: Intel ICH [Intel 82801DB-ICH4]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 1: Intel ICH - MIC ADC [Intel 82801DB-ICH4 - MIC ADC]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 2: Intel ICH - MIC2 ADC [Intel 82801DB-ICH4 - MIC2 ADC]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 3: Intel ICH - ADC2 [Intel 82801DB-ICH4 - ADC2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Modem [Intel 82801DB-ICH4 Modem], device 0: Intel ICH - Modem [Intel 82801DB-ICH4 Modem - Modem]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

So it seems a "dual" microphone, possibly useful for stereo recording with some hack (must record by two sources and mix their output later).

Power usage and battery

Using cat /proc/acpi/processor/CPU0/performance we can read nominal power usage values:
state count:             5
active state:            P0
   *P0:                  1100 MHz, 5000 mW, 10 uS
    P1:                  1000 MHz, 4600 mW, 10 uS
    P2:                  900 MHz, 4200 mW, 10 uS
    P3:                  800 MHz, 3800 mW, 10 uS
    P4:                  600 MHz, 3000 mW, 10 uS

When in full throttle mode, the Pentium M processor works at 1.1GHz, requiring 5 watts. When in idle mode, the processor speed can be adjusted up to 600 MHz (3 watts only). More information can be found in the directory /sys/devices/system/cpu/cpu0/cpufreq/ (if you have the sysfs enabled and mounted on /sys).

Typical computer usage requires 8 to 20 watts, depending on processor state and peripheral usage (for example you can save extra 2 watts if you shut off WiFi card using the external switch located below the Stylistic; CPU fan also requires lots of milliamps).

Let's have a look to the battery information: using head -50 /proc/acpi/battery/CMB1/[is]* we get battery name and current status:
==> /proc/acpi/battery/CMB1/info <==
present:                 yes
design capacity:         4800 mAh
last full capacity:      4800 mAh
battery technology:      rechargeable
design voltage:          10800 mV
design capacity warning: 576 mAh
design capacity low:     49 mAh
capacity granularity 1:  1 mAh
capacity granularity 2:  1 mAh
model number:            CP219405-XX / CP219406-XX
serial number:           1
battery type:            LION
OEM info:                Fujitsu

==> /proc/acpi/battery/CMB1/state <==
present:                 yes
capacity state:          ok
charging state:          discharging
present rate:            0 mA
remaining capacity:      4710 mAh
present voltage:         12372 mV
Well, we have a Fujitsu CP2194 battery, LiIon, rated "4800mAh", present in the system, having 4710mAh estimated "charge" (thus it does not have to "recharge" now, neither it discharges more than 0 mA). Note that the battery name (CP2194xx) is written in the ACPI BIOS, not in the battery itself.

So, let's write a command-line program (in Ruby language) to read power usage in milliwatts:

milliv = open("/proc/acpi/battery/CMB1/info").readlines[4].split[2]
millia = open("/proc/acpi/battery/CMB1/state").readlines[3].split[2]
cpumhz = open("/proc/cpuinfo").readlines[6].split[3].split(".").first

if millia == "0"
  puts "not discharging -- #{cpumhz} MHz"
  milliw = eval(milliv)*eval(millia)/1000
  puts "#{milliw} mW -- #{cpumhz} MHz"

This will show powers down up to 8.4 watts (with wifi/bt radios turned off, processor at 600MHz, no cpu-intensive tasks running, and display in power-saving mode).

The display itself sucks up to 6 watts (ouch! more than the Pentium M processor when in full-throttle!)


I cannot yet get sensors working. The sensors-detect command reports:
Driver `smartbatt' (should be inserted):
  Detects correctly:
  * Bus `SMBus I801 adapter at 1860'
    Busdriver `i2c-i801', I2C address 0x0b
    Chip `Smart Battery' (confidence: 5)

Driver `adm1021' (should be inserted):
  Detects correctly:
  * Bus `SMBus I801 adapter at 1860'
    Busdriver `i2c-i801', I2C address 0x19
    Chip `lm84' (confidence: 6)

Issuing the suggested commands (with proper modules already compiled):
modprobe i2c-i801
modprobe adm1021
modprobe smartbatt
/usr/bin/sensors -s

does not change anything: the sensors command gives out all zero values:
Adapter: SMBus I801 adapter at 1860
Board Temp:
              +0 'C  (low  =    +0 'C, high =    +0 'C)
              +0 'C  (low  =    +0 'C, high =    +0 'C)
CPU Temp:     +0 'C  (low  =    +0 'C, high =    +0 'C)

PCMCIA stuff

I inserted a SAA7134-compatible PCMCIA TV card.

First, let's see the lspcmcia -v output:
Socket 0 Bridge:        [yenta_cardbus]         (bus ID: 0000:01:0a.0)
        Configuration:  state: on       ready: yes
                        Voltage: 3.3V Vcc: 3.3V Vpp: 3.3V
  CardBus card -- see "lspci" for more information
Socket 1 Bridge:        [yenta_cardbus]         (bus ID: 0000:01:0a.1)
        Configuration:  state: on       ready: yes
                        Voltage: 5.0V Vcc: 5.0V Vpp: 5.0V
Socket 1 Device 0:      [-- no driver --]       (bus ID: 1.0)
        Configuration:  state: on
        Product Name:   O2Micro SmartCardBus Reader V1.0 
        Identification: manf_id: 0xffff card_id: 0x0001
                        prod_id(1): "O2Micro" (0x97299583)
                        prod_id(2): "SmartCardBus Reader" (0xb8501ba9)
                        prod_id(3): "V1.0" (0xe611e659)
                        prod_id(4): --- (---)
Socket 2 Bridge:        [yenta_cardbus]         (bus ID: 0000:01:0a.3)
        Configuration:  state: on       ready: yes
Well, the Stylistic has a Yenta Cardbus driver. And one of the integrated peripherals (the O2Micro SmartCard reader slot) uses the PCMCIA bus (16bit, 5V). But I was interested in the PCMCIA TV (the 32bit, 3.3V one), which is shown as a PCI-controlled device.

Let's try lspci for more information - only an extra line appeared in the PCI device listing: "02:00.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d1)".

Let's query lspci for specific information about that device, mapped on 02:00.0 on the board:
lspci -n -s 02:00.0
lspci -v -v -s 02:00.0

So I finally got the identifier of the card: "02:00.0 Class 0480: 1131:7133 (rev d1)" and also some extra information (it's a busmaster device, uses IRQ 11, etc).

Let's read some information in /usr/src/linux/Documentation/video4linux/CARDLIST.saa7134 - it seems that the device is the "17: AOpen VA1000 Power".

Let's insert this modprobe line in the local initialization script (it's /etc/init.d/boot.local if you use OpenSuSE):
modprobe saa7134 card=17 tuner=54

Fujitsu Laptop Extras

Alas, the version 0.3 of this driver cannot change the screen brightness (while it always a value "7", which is correct). As of kernel 2.6.24, it provides no other functions. It seems that the SBLL (set brightness LCD level) ACPI function does not understand write values (calling it with 1 gives out an error; any other brightness value is ignored).

The driver is accessible via sysfs by reading/writing in the /sys/devices/platform/fujitsu-laptop/lcd_level file (don't care about its size, because it's a virtual file).

Click here for index page.

home page - send e-mail - continua (next page)