Difference between revisions of "Flameman/zaurus-akita"
(→Zaurus C-3000 power questions) |
(→2.6.26-rp) |
||
Line 624: | Line 624: | ||
2.6.26-RP has also several issues: | 2.6.26-RP has also several issues: | ||
* Frame buffer size switching does not work. | * Frame buffer size switching does not work. | ||
− | * USB-OTG auto host/client switching is not yet implemented (still valid | + | * USB-OTG auto host/client switching is not yet implemented (still valid for vanilla). |
− | for vanilla). | ||
* USB client mode has a lot problems. | * USB client mode has a lot problems. | ||
* suspend/resume is still issued | * suspend/resume is still issued |
Revision as of 14:04, 22 December 2009
Contents
- 1 zaurus-akita-Flameman
- 1.1 Note
- 1.2 Introduction
- 1.3 hardware
- 1.4 uc-gentoo
- 1.5 gcc
- 1.6 toolchain
- 1.7 kernel status
- 1.8 Setting the keyboard
- 1.9 bridging
zaurus-akita-Flameman
these pages are still in proof version, be patient i am spending my free time developing for the zaurus ... i can assure we have a lot of things to fix up =P
Note
Apologize for the poor status of this ewiki, I am developing for this board, so the wiki page will be improved and completed as soon as it it will be possible
feel free to contact me (see the contact below) in case you need support.
Introduction
The Target-goal of this page is
- install uc-gentoo into mmc-sd
- develop devices
- make the board able to boot it
- optimize uc-gentoo for embedded
- produce a uc-gentoo-uclibc
- add framebuffer and touch screen support
- re-target all the project into "tiny PDA"
People you could contact if you need help
- flameman, i'm currently use this board for a project, email
- msn daredevil-coder@hotmail.it
- email flamemaniii@gmail.com
- irc.nick flameman (channel #edev, #oe, #zaurus)
- you ... if you want ;-)
my bug http://bugs.openembedded.net/show_bug.cgi?id=5152
About this project
embedded target
About the board
Overview
Sharp has introduced a new model in its Zaurus line of Linux PDAs. The SL-C1000 is similar to the SL-C3000, but without an internal harddrive. As with previous Japan-only Zaurus models, the SL-C1000 will be available with internationalization features from a number of global resellers.
The SL-C1000 is based on a 416MHz Intel PXA270 processor. It boots from 128MB of Flash, and includes 64MB of RAM. The 3.7-inch color VGA touchscreen (640 x 480) supports 65K colors. The keyboard uses a stardard QWERTY layout.
The SL-C1000 includes memory slots for SD/MMC cards, as well as for CompactFlash cards. Additional I/O includes IrDA, USB, and LAN ports. It measures 4.9 x 3.4 x 1 inches (124 x 87 x 25mm), and weighs 10 oz (278 grams).
specifications
Processor: Intel(r) Xscale(tm) PXA270 416Mhz processor
Memory: 128MB Flash, 64MB SDRAM work area
Display: 3.7" 640x480 VGA LCD screen with 65536 colours
Keyboard & Input: Full QWERTY keyboard, touch-sensitive screen with handwriting recognition
Expansion: One slot for CompactFlash (CF) memory cards (type I and II, 3.3V cards only), one slot for Secure Digital (SD) memory cards
Connectivity: USB host port (cable supplied separately) for connecting to printers and digital cameras. USB 1.1 link for attaching to desktop PCs - Zaurus appears as a computer in the network neighbourhood. CompactFlash (CF) card slot can take Wireless LAN (802.11b), Bluetooth, GPRS, Ethernet and Modem cards (supplied separately). Infrared port (IrDA, 115kbps) for communicating with mobile phones, laptops and cameras.
Audio: 3.5mm stereo headphone socket (headphones not included with C1000). Media player plays MP3 and WMA music files, and MPEG1 and Microsoft WMV/ASF video files. Dimensions: 124mm (width) x 87mm (depth) x 25mm (height)
Weight: 278g
Battery & power: Lithium Ion battery provides 8 hours (low brightness/contrast) Electrical:
Power Connector: gnd ----(+), ground outside, +5v inside
Power supply 240V converted to 3.2V DC by AC adapter. Power consumption 3.2W
Operational restrictions: Operating temperature 5-40 degrees centigrade
more specifications
SPECIFICATIONS
Display Type: DFSTN LCD, Touch Screen Finger or Stylus Operation.
Display Resolution: 320 X 240 dots (up to 65 char. X 20 lines)
Display Physical Size: 4.0" X 2.6"
On Board RAM: 1MB (approx. 665K user area) -
* Appointments capacity: Approx. 9,600 entries * Contacts capacity: Approx. 9,900 entries
These capacities assume the following average entry sizes and only apply when all the available memory is committed to a single function.
* Appointments: 32 characters/entry * Contacts: 16 characters/entry in the name field, 12 characters/entry in the number field
Maximum Data Per Entry:
* Documents: 16 Kb * Outlines: 32Kb for an entire outline, 2Kb for each topic * Contacts/Data Files: 2 Kb for text data, 61.7Kb for graphics data * Others: 2Kb
Other Features: Secret function, data transfer, keyword search, messages, etc.
Calculator:
* Digits: 10 * Functions: Addition, subtraction, multiplication, division, constant, square root, percent, memory calculation, date calculation, paperless printer.
Operating Environment: 32 deg. F to 104 deg. F (0 deg. C to 40 deg. C)
Weight: 10.88oz.
Size: 6.3" X 3.5" X 1"
Batteries: 2X AA (operating batteries) plus 1X CR-2032 (backup battery)
Battery Life: Up to 100 hours
AC Adapter: EA-23A and CE-BK1 battery pack (both optional).
IR Send Distance:
* 50 cm (20 inches) maximum at speeds of 9600 bps to 115 Kbps using IrDA-compatible protocol. * 50 cm (20 inches) maximum at speeds of 9600 bps to 115 Kbps using Sharp IR (ASK) protocol.
IR distance may change depending on the system used.
Serial Port: 15 pin; connect to a fax/modem or transfer data to your PC.
Infrared Port: IrDA compatible Infrared Communications; connect to a PC, Macintosh, PC Printer, or another Zaurus or Wizard without wires or cables.
Akita..Spitz / Zaurus C-1000..C-3000 power questions
I did some measurements of spitz battery subsystem; maybe they are useful for someone.
Unfortunately, concistent numbers are quite hard: longer/thinner cables mean lower voltage and also lower currents :-(. I get quite consistents 5V at power supply, but it goes down to 4.5..4.2V when it reaches zaurus behind ampermeter. (Is zaurus even able to charge battery properly from such low voltage?)
One big surprise was wlan CF card, eating +200mA when initialized.
I'm working on drivers/power/spitz_battery driver, and I'll need to know conversion between ADC readings and milivolts; does someone have those?
Does someone have better/more reliable/other power consumption numbers?
Idle, charging, no backlight, linux 2.6.26: 200mA @ 4.8V
bl 1: 310mA bl 10: 315mA bl 20 340mA bl 30: 390mA bl 40: 440mA bl 47: 445mA
disk is spinning: +50mA find /: +200mA cat /dev/zero: +100mA make: +240mA
charging, powerdown: 380mA..440mA charging, ROM menu: 550mA D+M monitor, not charging: 170mA D+M monitor, half charging: 280mA D+M monitor, full charging: 480mA..550mA
Charging in ROM, from empty @ 8:35: 610mA
8:38: 555mA 8:45: 545mA 8:50: 540mA 9:01: 540mA 9:18: 530mA 9:36: 520mA 9:45: 505mA 9:51: 480mA 10:15: 365mA 10:48: 250mA 11:01: 225mA 11:31: 180mA 11:38: 170mA 12:48: 80mA, charger LED is off.
Measured @ li-ion battery. ROM <7mA Linux 2.6.26 suspend: 7.5mA, 10mA?! Linux 2.6.26, fully running, charger connected: 50uA :-(
100mA charge
The board consists of
- CPU : Intel(r) Xscale(tm) PXA270 416Mhz doc.pdf
- RAM soldered 64MB SDRAM
- LAN USBETH 10/100Mbit/sec
- UART RS232
- FLASH 128MB Flash
- POWER system=3.3V, feeder={5V DC, ___}, ___ Watt
- System PCB ___ mm x ___ mm x ___ mm
- RTC the real time clock chip is provided by the cpu
- CPU_TYPE PXA2
- SYSTEM_TYPE ZAURUS-C1000
Memory Locations
memory map of the board will be added as soon as possible
addr begin | addr end | area |
---|---|---|
... | ?? | ram, userspace |
.... | ?? | ram, userspace |
#0x00008000 est reprsent par : 0x80 ror 24, cod par 0xC80 ; does it means gnueabi-objdump -p vmlinux | sed -n 's/LOAD.*vaddr \([^ ]*\).*/\1/p' 0xc0008000 found the right address (0xA0008000)?
Open questions
...
hw
uart
Sharp CE-170TS is a null modem serial cable for Zaurus. It seems to be actually the only available IOPORT serial cable working with the latest Zauruses. A bit expensive, but voltage does not conform RS-232 standard. It works nicely as a null modem with a standard PC, using a special null modem gender changer it works with a RS-232 hardware modem, but it does not work with mobile phone or GPS client cables.
You will find it (on amazon for example, $50) and it will be indicated "for sl-5500" ... well do not trust it: it will work for your c1000, too =P
antenna shields
by utx/Stanislav
http://www.oesf.org/forum/index.php?showforum=149
http://www.oesf.org/forum/index.php?showtopic=26261
Doc around
KB The Fn+LeftArrow / Fn+RightArrow key combination to switch between console escape is the cancel key atl is ??? one of the jappo key, dunno
forum http://forum.soft32.com/linux/29-rc1-zaurus-spitz-ftopict475511.html
varia doc http://openzaurus.berlios.de/Main_Page
http://www.oesf.org/forum/index.php?showtopic=13238
http://www.iral.com/~albertr/linux/zaurus/wireless/
http://www.oesf.org/forum/index.php?showtopic=13562
http://www.rpsys.net/openzaurus/
http://linuxdevices.com/news/NS5128534085.html
http://www.penguin.cz/~utx/zaurus/
http://www.penguin.cz/~utx/zaurus/photos#ce-170ts
http://www.oesf.org/index.php?title=System
ftp://pda.gentoo.ru/projects/handhelds/zaurus-c1000/
http://www.angstrom-distribution.org/c1000-install-instructions
http://www.angstrom-distribution.org/unstable/autobuild/akita/
http://www.angstrom-distribution.org/demo/kexecboot/
http://www.h5.dion.ne.jp/~rimemoon/zaurus/memo_003.htm
uboot http://www.pdaxrom.org/?q=node/89
IRDA
1) irda-utils 2) mknod /dev/ircomm0 c 161 0 3) ircomm modprobe pxaficp_ir modprobe ircomm modprobe ircomm_tty irattach irda0 -s 4) i modprobe irda too
idea GPS
wiki.navit-project.org
USB
http://en.wikipedia.org/wiki/Universal_Serial_Bus#Types_of_USB_connector
http://en.wikipedia.org/wiki/USB_On-The-Go
i like the idea here, but let me get a few things straight: 1. are you guys trying to use the sharp i/o port's USB port? 2. if not, is this possible? What about stuart? In case you don;t need SIR. C-860, kernel 2.4, irda --> ttyS01
I believe the scoop is a proprientary Sharp's ASIC, so the datasheet most probably never would be published or made public: it is an ASIC but by EPSON GA_SLA50000, that is a gate array and we probably will never know what sharp has putted into it. It is a pity.
Any of BTUART pins can be used as usualy GPIO pins. This is so called alternate GPIO function and is described in intel's datasheet. So when BTUART is disabled all its pins are working as just any other GPIO pins. And BTUART is disabled by default in kernel source. static void __init corgi_map_io(void) { pxa_map_io(); iotable_init(corgi_io_desc); #if 0 /* This enables the BTUART */ CKEN |= CKEN7_BTUART; set_GPIO_mode(GPIO42_BTRXD_MD); set_GPIO_mode(GPIO43_BTTXD_MD); set_GPIO_mode(GPIO44_BTCTS_MD); set_GPIO_mode(GPIO45_BTRTS_MD); #endif /* setup sleep mode values */ PWER = 0x00000002; PFER = 0x00000000; PRER = 0x00000002; PGSR0 = 0x0158C000; PGSR1 = 0x00FF0080; PGSR2 = 0x0001C004; PCFR |= PCFR_OPDE; }
Problems
Images of the board
hardware
Notes, these devices are connected to ioexp:
- IrDA on/off
- Backlight power on/off
- Highest bit of baclight intensity
- Pull-up voltage for remote on/off
- Microphone bias on/off
These devices use I2C:
- Akita IOEXP (PXA270 I2C bus)
- Maxim MAX7310 gpio expander
- Wolfson Microsystems WM8750 audio chip (PXA270 I2S bus)
you need to add WM8750 and MAX7310 chips (I2C slaves). Wolfson Microsystems WM8750 audio chip and Maxim MAX7310 gpio expander chip are used in the Spitz.
Kernel <=2.6.27 have a bug: If audio initialization fails for any
reason, system crashes in suspend (device remains registered, but some
pointers are NULL). Later kernels fixed this problem. ... 2.6.30 is still pre commit
> umm, i need the IrDA, too ... but it seems the IrDA transreceiver is not
> enabled: it seems it needs a poweron/off made by the max7310 i2c port
>expander
Exactly: Irda is connected to one of three serial ports of PXA270, but the transceiver is switched by the GPIO connected to the ioexp on akita and to the spare pin of scoop2 (internal CF slot chip) on spitz.
Uart
usb-ethernet
(.) USB CATC NetMate-based Ethernet device support (EXPERIMENTAL) (.) USB KLSI KL5USB101-based ethernet device support (.) USB Pegasus/Pegasus-II based ethernet device support (.) USB RTL8150 based ethernet device support (EXPERIMENTAL) (.) Multi-purpose USB Networking Framework (.) ASIX AX88xxx Based USB 2.0 Ethernet Adapters Aten UC210T ASIX AX88172 Billionton Systems,USB2AR Buffalo LUA-U2-KTX Corega FEther USB2-TX D-Link DUB-E100 Hawking UF200 Linksys USB200M Netgear FA120 Sitecom LN-029 Intellinet USB 2.0 Ethernet ST Lab USB 2.0 Ethernet TrendNet TU2-ET100 (.) CDC Ethernet support (smart devices such as cable modems) (*) Davicom DM9601 based USB 1.1 10/100 ethernet devices (.) GeneSys GL620USB-A based cables (.) NetChip 1080 based cables (Laplink, ...) (.) Prolific PL-2301/2302 based cables (.) MosChip MCS7830 based Ethernet adapters (.) Host for RNDIS and ActiveSync devices (EXPERIMENTAL) (.) Simple USB Network Links (CDC Ethernet subset) (.) Sharp Zaurus (stock ROMs) and compatible macbook-air MB442Z/A Apple USB Enternet Adapter ~ ASIX AX88xxx Based AppleUSBEthernet Chipsets inside: AX88178, AX88772 Apple USB Enternet Adapter: Version: 0.0.1 BUS Power(mA): 500 Speed: Up to 480 MB/sec Manufacturer: Apple Inc. Proudct ID: 0x1402 CONFIG_USB_NET_AX8817X += asix.o --- a/drivers/net/usb/asix.c +++ b/drivers/net/usb/asix.c @@ -1444,6 +1444,10 @@ static const struct usb_device_id produc // Apple USB Ethernet Adapter USB_DEVICE(0x05ac, 0x1402), .driver_info = (unsigned long) &ax88772_info, +}, { + // Cables-to-Go USB Ethernet Adapter + USB_DEVICE(0x0b95, 0x772a), + .driver_info = (unsigned long) &ax88772_info, }, { }, // END };
MMC/SD
Hack
PCB.
touchscreen
LCD
irda
emerge net-wireless/irda-utils
modprobe pxaficp_ir
mknod /dev/ircomm0 c 161 0
modprobe ircomm
modprobe ircomm_tty
irattach irda0 -s irattach /dev/ttySx
uc-gentoo
stage3-mips3 big endian is currently running updated to 2008
CHOST="armv5te-softfloat-linux-gnueabi" CFLAGS="-O2 -pipe -march=iwmmxt -mtune=iwmmxt -msoft-float"
A shot
@17-02-2009 root=/dev/hda3
stage3
reboot+dmesg: bootloader & kernel startup
About devtools
crossbuilder script made to build up what is needed
change chost
http://www.gentoo.org/doc/en/change-chost.xml
gcc
sys-devel/gcc | config | issue |
---|---|---|
4.1.2 | Using built-in specs.
Target: armv5te-softfloat-linux-gnueabi Configured with: /var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/configure --prefix=/usr --bindir=/usr/armv5te-softfloat-linux-gnueabi/gcc-bin/4.1.2 --includedir=/usr/lib/gcc/armv5te-softfloat-linux-gnueabi/4.1.2/include --datadir=/usr/share/gcc-data/armv5te-softfloat-linux-gnueabi/4.1.2 --mandir=/usr/share/gcc-data/armv5te-softfloat-linux-gnueabi/4.1.2/man --infodir=/usr/share/gcc-data/armv5te-softfloat-linux-gnueabi/4.1.2/info --with-gxx-include-dir=/usr/lib/gcc/armv5te-softfloat-linux-gnueabi/4.1.2/include/g++-v4 --host=armv5te-softfloat-linux-gnueabi --build=armv5te-softfloat-linux-gnueabi --disable-altivec --with-float=soft --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-libunwind-exceptions --disable-multilib --enable-libmudflap --disable-libssp --disable-libgcj --enable-languages=c,c++ --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu Thread model: posix gcc version 4.1.2 (Gentoo 4.1.2 p1.0.1) |
dunno |
gcc-4.3.2-r4 | Using built-in specs.
Target: armv4tl-softfloat-linux-gnueabi Configured with: /var/tmp/portage/sys-devel/gcc-4.3.2-r4/work/gcc-4.3.2/configure --prefix=/usr --bindir=/usr/armv4tl-softfloat-linux-gnueabi/gcc-bin/4.3.2 --includedir=/usr/lib/gcc/armv4tl-softfloat-linux-gnueabi/4.3.2/include --datadir=/usr/share/gcc-data/armv4tl-softfloat-linux-gnueabi/4.3.2 --mandir=/usr/share/gcc-data/armv4tl-softfloat-linux-gnueabi/4.3.2/man --infodir=/usr/share/gcc-data/armv4tl-softfloat-linux-gnueabi/4.3.2/info --with-gxx-include-dir=/usr/lib/gcc/armv4tl-softfloat-linux-gnueabi/4.3.2/include/g++-v4 --host=armv4tl-softfloat-linux-gnueabi --build=armv4tl-softfloat-linux-gnueabi --disable-altivec --disable-fixed-point --with-float=soft --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --disable-libgcj --enable-languages=c,c++,treelang,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.3.2-r4 p1.7, pie-10.1.5' Thread model: posix gcc version 4.3.2 (Gentoo 4.3.2-r4 p1.7, pie-10.1.5) |
./base/gdevmpla.c:284: internal compiler error: in reload_cse_simplify_operands, at postreload.c:395 |
toolchain
using external toolchain http://labs.kernelconcepts.de/Tools/Toolchains/
kernel status
use report
2.6.23
the current kernel i am running
2.6.26-rp
It is pretty stable, only few crashes in year (all of them are related to hostap_cs driver). RP kernel has a few patches above vanilla: remote control and resume fix. See OpenEmbedded for the complete recipe or my web page.
2.6.26-RP has also several issues:
- Frame buffer size switching does not work.
- USB-OTG auto host/client switching is not yet implemented (still valid for vanilla).
- USB client mode has a lot problems.
- suspend/resume is still issued
host ppc, report
kernel | compiled with | fb | config fbcon=rotate:1 at the bootup | suspend/resume | irda | uart | sound | net | note |
---|---|---|---|---|---|---|---|---|---|
2.6.22-z0 | gcc-4.0.1 | working | working | working | not tested | not tested | not working | usbdm9601 is working, hacked driver/net/usb/dm9600.c the driver cause of an issue | assumed as working kernel |
2.6.23 | it requires gcc->=4.1.2 | working | not working, 90 degree screen at the bootup | working | not tested | not tested | not working | usbdm9601 is not working cause of the usb sense | When I plug earphone, there is kernel panic for NULL pointer reference. After some
debugging, I find the sharpsl_rc driver will access spitz_pcmcia_scoop[1], but that is not initialized on Akita at all. So I think maybe we should disable sharpsl_rc on Akita until it is fixed. |
2.6.24 | it requires gcc->=4.1.2 | working | not working, 90 degree screen at the bootup | working but system panic if "fn" + arrow is pressed on the wakeup | not tested | not tested | not working | usbdm9601 is not working cause of the usb sense | - |
2.6.26 | it requires gcc->=4.1.2 | working | not working, 90 degree screen at the bootup | not working | not tested | not tested | not working | usbdm9601 is not working cause of the usb sense | there is a problem with the battery recharge |
2.6.30 | gcc-4.3.2 | working, mode 320x240 | not working, 90 degree screen at the bootup | Problems with resume. Pavel's patches from arm list fix resume at cost
of broken offline charging and broken serial port after resume |
not tested | not tested | working if kernel is compiled with gcc-4.3.2 | usbdm9601 is working | there is a problem with the battery recharge, OTG is not yet implemented |
about dev 2.6.30
*** email, from Stanislav Brabec a me, Pavel *** Hallo. I just improved my script[1] to build both spitz and akita in parallel. Configs and modules are available with the same name suffix. http://www.penguin.cz/~utx/zaurus/feed/images/ I spent some time to provide a config file with recommended drivers for all chips. akita and spitz images are in sync, the only differences are kernel command line and CONFIG_GPIO_PCA953X=y. linux-2.6.30 works for me with known problems: - Problems with resume. Pavel's patches from arm list fix resume at cost of broken offline charging and broken serial port after resume. - UDC does not work - frame buffer mode 320x240 - OTG is not yet implemented
kernel-build.sh
[1] http://www.penguin.cz/~utx/zaurus/feed/tools/kernel-build.sh #!/bin/bash OE_BUILD_DIR=/OE/build/tmp export PATH=$PATH:$OE_BUILD_DIR/cross/armv5te/bin function make_kernel { rm -rf INSTALL mkdir -p INSTALL/boot #make ARCH=arm CC=arm-angstrom-linux-gnueabi-gcc LD=arm-angstrom-linux-gnueabi-ld INSTALL_PATH=$PWD/INSTALL/boot INSTALL_MOD_PATH=$PWD/INSTALL -j8 oldconfig || exit make ARCH=arm CC=arm-angstrom-linux-gnueabi-gcc LD=arm-angstrom-linux-gnueabi-ld INSTALL_PATH=$PWD/INSTALL/boot INSTALL_MOD_PATH=$PWD/INSTALL -j8 zImage || exit make ARCH=arm CC=arm-angstrom-linux-gnueabi-gcc LD=arm-angstrom-linux-gnueabi-ld INSTALL_PATH=$PWD/INSTALL/boot INSTALL_MOD_PATH=$PWD/INSTALL -j8 || exit make ARCH=arm CC=arm-angstrom-linux-gnueabi-gcc LD=arm-angstrom-linux-gnueabi-ld INSTALL_PATH=$PWD/INSTALL/boot INSTALL_MOD_PATH=$PWD/INSTALL -j8 install || exit make ARCH=arm CC=arm-angstrom-linux-gnueabi-gcc LD=arm-angstrom-linux-gnueabi-ld INSTALL_PATH=$PWD/INSTALL/boot INSTALL_MOD_PATH=$PWD/INSTALL -j8 zinstall || exit make ARCH=arm CC=arm-angstrom-linux-gnueabi-gcc LD=arm-angstrom-linux-gnueabi-ld INSTALL_PATH=$PWD/INSTALL/boot INSTALL_MOD_PATH=$PWD/INSTALL -j8 modules_install || exit rm 2>/dev/null INSTALL/boot/*.old cd INSTALL cd boot mkdir -p $OE_BUILD_DIR/deploy/glibc/images/$1 for KERNEL in vmlinuz* ; do cp -a $KERNEL $OE_BUILD_DIR/deploy/glibc/images/$1/${KERNEL/vmlinuz/zImage}-$1.bin done cd .. tar -zcf $OE_BUILD_DIR/deploy/glibc/images/$1/modules${KERNEL/vmlinuz}-$1.tgz lib cp -a ../.config $OE_BUILD_DIR/deploy/glibc/images/$1/config${KERNEL/vmlinuz}-$1 tar -zcf ../../$1${KERNEL/vmlinuz}-bin.tar.gz * cd .. } if test -z "$1" ; then sed -i 's/CONFIG_GPIO_PCA953X=y/# CONFIG_GPIO_PCA953X is not set/;s@root=/dev/mtdblock2 rootfstype=jffs2@root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw@' .config make_kernel spitz sed -i 's/# CONFIG_GPIO_PCA953X is not set/CONFIG_GPIO_PCA953X=y/;s@root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw@root=/dev/mtdblock2 rootfstype=jffs2@' .config make_kernel akita #sed -i 's/CONFIG_GPIO_PCA953X=y/# CONFIG_GPIO_PCA953X is not set/;s@root=/dev/mtdblock2 rootfstype=jffs2@root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw@' .config else make ARCH=arm CC=arm-angstrom-linux-gnueabi-gcc LD=arm-angstrom-linux-gnueabi-ld INSTALL_PATH=$PWD/INSTALL/boot INSTALL_MOD_PATH=$PWD/INSTALL -j8 "$@" fi
Setting the keyboard
loadkeys - load keyboard translation tables
loadkeys [ -c --clearcompose ] [ -d --default ] [ -h --help ] [ -m --mktable ] [ -s --clearstrings ] [ -v --verbose ] [ filename... ] DESCRIPTION The program loadkeys reads the file or files specified by filename.... Its main purpose is to load the kernel keymap for the console. RESET TO DEFAULT If the -d (or --default ) option is given, loadkeys loads a default keymap, probably the file defkeymap.map either in //lib/kbd/keymaps or in /usr/src/linux/drivers/char. (Probably the former was user-defined, while the latter is a qwerty keyboard map for PCs - maybe not what was desired.) Sometimes, with a strange keymap loaded (with the minus on some obscure unknown modifier combination) it is easier to type `loadkeys defkeymap'. LOAD KERNEL KEYMAP The main function of loadkeys is to load or modify the keyboard driver's translation tables. When specifying the file names, standard input can be denoted by dash (-). If no file is specified, the data is read from the standard input. For many countries and keyboard types appropriate keymaps are available already, and a command like `loadkeys uk' might do what you want. On the other hand, it is easy to construct one's own keymap. The user has to tell what symbols belong to each key. She can find the keycode for a key by use of showkey(1), while the keymap format is given in keymaps(5) and can also be seen from the output of dumpkeys(1). LOAD KERNEL ACCENT TABLE If the input file does not contain any compose key definitions, the kernel accent table is left unchanged, unless the -c (or --clearcompose ) option is given, in which case the kernel accent table is emptied. If the input file does contain compose key definitions, then all old definitions are removed, and replaced by the specified new entries. The kernel accent table is a sequence of (by default 68) entries describing how dead diacritical signs and compose keys behave. For example, a line compose ',' 'c' to ccedilla means that <ComposeKey><,><c> must be combined to <ccedilla>. The current content of this table can be see using `dumpkeys --compose-only'. LOAD KERNEL STRING TABLE The option -s (or --clearstrings ) clears the kernel string table. If this option is not given, loadkeys will only add or replace strings, not remove them. (Thus, the option -s is required to reach a well-defined state.) The kernel string table is a sequence of strings with names like F31. One can make function key F5 (on an ordinary PC keyboard) produce the text `Hello!', and Shift+F5 `Goodbye!' using lines keycode 63 = F70 F71 string F70 = "Hello!" string F71 = "Goodbye!" in the keymap. The default bindings for the function keys are certain escape sequences mostly inspired by the VT100 terminal. CREATE KERNEL SOURCE TABLE If the -m (or --mktable ) option is given loadkeys prints to the standard output a file that may be used as /usr/src/linux/drivers/char/defkeymap.c, specifying the default key bindings for a kernel (and does not modify the current keymap). OTHER OPTIONS -h --help loadkeys prints its version number and a short usage message to the programs standard error output and exits. WARNING Note that anyone having read access to /dev/console can run loadkeys and thus change the keyboard layout, possibly making it unusable. Note that the keyboard translation table is common for all the virtual consoles, so any changes to the keyboard bindings affect all the virtual consoles simultaneously. Note that because the changes affect all the virtual consoles, they also outlive your session. This means that even at the login prompt the key bindings may not be what the user expects.
keymaps - keyboard table descriptions for loadkeys and dumpkeys
DESCRIPTION These files are used by loadkeys(1) to modify the translation tables used by the kernel keyboard driver and generated by dumpkeys(1) from those translation tables. The format of these files is vaguely similar to the one accepted by xmodmap(1). The file consists of charset or key or string definition lines interspersed with comments. Comments are introduced with ! or # characters and continue to the end of the line. Anything following one of these characters on that line is ignored. Note that comments need not begin from column one as with xmodmap(1). The syntax of keymap files is line oriented; a complete definition must fit on a single logical line. Logical lines can, however, be split into multiple physical lines by ending each subline with the backslash character (\). INCLUDE FILES A keymap can include other keymaps using the syntax include "pathname" CHARSET DEFINITIONS A character set definition line is of the form: charset "iso-8859-x" It defines how following keysyms are to be interpreted. For example, in iso-8859-1 the symbol mu (or micro) has code 0265, while in iso-8859-7 the letter mu has code 0354. COMPLETE KEYCODE DEFINITIONS Each complete key definition line is of the form: keycode keynumber = keysym keysym keysym... keynumber is the internal identification number of the key, roughly equivalent to the scan code of it. keynumber can be given in decimal, octal or hexadecimal notation. Octal is denoted by a leading zero and hexadecimal by the prefix 0x. Each of the keysyms represent keyboard actions, of which up to 256 can be bound to a single key. The actions available include outputting character codes or character sequences, switching consoles or keymaps, booting the machine etc. (The complete list can be obtained from dumpkeys(1) by saying dumpkeys -l .) Each keysym may be prefixed by a '+' (plus sign), in wich case this keysym is treated as a "letter" and therefore affected by the "CapsLock" the same way as by "Shift" (to be correct, the CapsLock inverts the Shift state). The ASCII letters ('a'-'z' and 'A'-'Z') are made CapsLock'able by default. If Shift+CapsLock should not produce a lower case symbol, put lines like keycode 30 = +a A in the map file. Which of the actions bound to a given key is taken when it is pressed depends on what modifiers are in effect at that moment. The keyboard driver supports 8 modifiers. These modifiers are labeled (completely arbitrarily) Shift, AltGr, Control, Alt, ShiftL, ShiftR, CtrlL and CtrlR. Each of these modifiers has an associated weight of power of two according to the following table: modifier weight Shift 1 AltGr 2 Control 4 Alt 8 ShiftL 16 ShiftR 32 CtrlL 64 CtrlR 128 The effective action of a key is found out by adding up the weights of all the modifiers in effect. By default, no modifiers are in effect, so action number zero, i.e. the one in the first column in a key definition line, is taken when the key is pressed or released. When e.g. Shift and Alt modifiers are in effect, action number nine (from the 10th column) is the effective one. Changing the state of what modifiers are in effect can be achieved by binding appropriate key actions to desired keys. For example, binding the symbol Shift to a key sets the Shift modifier in effect when that key is pressed and cancels the effect of that modifier when the key is released. Binding AltGr_Lock to a key sets AltGr in effect when the key is pressed and cancels the effect when the key is pressed again. (By default Shift, AltGr, Control and Alt are bound to the keys that bear a similar label; AltGr may denote the right Alt key.) Note that you should be very careful when binding the modifier keys, otherwise you can end up with an unusable keyboard mapping. If you for example define a key to have Control in its first column and leave the rest of the columns to be VoidSymbols, you're in trouble. This is because pressing the key puts Control modifier in effect and the following actions are looked up from the fifth column (see the table above). So, when you release the key, the action from the fifth column is taken. It has VoidSymbol in it, so nothing happens. This means that the Control modifier is still in effect, although you have released the key. Re-pressing and releasing the key has no effect. To avoid this, you should always define all the columns to have the same modifier symbol. There is a handy short-hand notation for this, see below. keysyms can be given in decimal, octal, hexadecimal, unicode or symbolic notation. The numeric notations use the same format as with keynumber. Unicode notation is "U+" followed by four hexadecimal digits. The symbolic notation resembles that used by xmodmap(1). Notable differences are the number symbols. The numeric symbols '0', ..., '9' of xmodmap(1) are replaced with the corresponding words 'zero', 'one', ... 'nine' to avoid confusion with the numeric notation. It should be noted that using numeric notation for the keysyms is highly unportable as the key action numbers may vary from one kernel version to another and the use of numeric notations is thus strongly discouraged. They are intended to be used only when you know there is a supported keyboard action in your kernel for which your current version of loadkeys(1) has no symbolic name. There is a number of short-hand notations to add readability and reduce typing work and the probability of typing-errors. First of all, you can give a map specification line, of the form keymaps 0-2,4-5,8,12 to indicate that the lines of the keymap will not specify all 256 columns, but only the indicated ones. (In the example: only the plain, Shift, AltGr, Control, Control+Shift, Alt and Control+Alt maps, that is, 7 columns instead of 256.) When no such line is given, the keymaps 0-M will be defined, where M+1 is the maximum number of entries found in any definition line. Next, you can leave off any trailing VoidSymbol entries from a key definition line. VoidSymbol denotes a keyboard action which produces no output and has no other effects either. For example, to define key number 30 to output 'a' unshifted, 'A' when pressed with Shift and do nothing when pressed with AltGr or other modifiers, you can write keycode 30 = a A instead of the more verbose keycode 30 = a A VoidSymbol VoidSymbol \ VoidSymbol VoidSymbol VoidSymbol ... For added convenience, you can usually get off with still more terse definitions. If you enter a key definition line with only and exactly one action code after the equals sign, it has a special meaning. If the code (numeric or symbolic) is not an ASCII letter, it means the code is implicitly replicated through all columns being defined. If, on the other hand, the action code is an ASCII character in the range 'a', ..., 'z' or 'A', ..., 'Z' in the ASCII collating sequence, the following definitions are made for the different modifier combinations, provided these are actually being defined. (The table lists the two possible cases: either the single action code is a lower case letter, denoted by 'x' or an upper case letter, denoted by 'Y'.) modifier symbol none x Y Shift X y AltGr x Y Shift+AltGr X y Control Control_x Control_y Shift+Control Control_x Control_y AltGr+Control Control_x Control_y Shift+AltGr+Control Control_x Control_y Alt Meta_x Meta_Y Shift+Alt Meta_X Meta_y AltGr+Alt Meta_x Meta_Y Shift+AltGr+Alt Meta_X Meta_y Control+Alt Meta_Control_x Meta_Control_y Shift+Control+Alt Meta_Control_x Meta_Control_y AltGr+Control+Alt Meta_Control_x Meta_Control_y Shift+AltGr+Control+Alt Meta_Control_x Meta_Control_y SINGLE MODIFIER DEFINITIONS All the previous forms of key definition lines always define all the M+1 possible modifier combinations being defined, whether the line actually contains that many action codes or not. There is, however, a variation of the definition syntax for defining only single actions to a particular modifier combination of a key. This is especially useful, if you load a keymap which doesn't match your needs in only some modifier combinations, like AltGr+function keys. You can then make a small local file redefining only those modifier combinations and loading it after the main file. The syntax of this form is: { plain | <modifier sequence> } keycode keynumber = keysym , e.g., plain keycode 14 = BackSpace control alt keycode 83 = Boot alt keycode 105 = Decr_Console alt keycode 106 = Incr_Console Using "plain" will define only the base entry of a key (i.e. the one with no modifiers in effect) without affecting the bindings of other modifier combinations of that key. STRING DEFINITIONS In addition to comments and key definition lines, a keymap can contain string definitions. These are used to define what each function key action code sends. The syntax of string definitions is: string keysym = text text can contain literal characters, octal character codes in the format of backslash followed by up to three octal digits, and the three escape sequences \n, \\, and \", for newline, backslash and quote, respectively. COMPOSE DEFINITIONS Then there may also be compose definitions. They have syntax compose 'char' 'char' to 'char' and describe how two bytes are combined to form a third one (when a dead accent or compose key is used). This is used to get accented letters and the like on a standard keyboard. ABBREVIATIONS Various abbreviations can be used with kbd-0.96 and later. strings as usual Defines the usual values of the strings (but not the keys they are bound to). compose as usual for "iso-8859-1" Defines the usual compose combinations. To find out what keysyms there are available for use in keymaps, use the command dumpkeys --long-info Unfortunately, there is currently no description of what each symbol does. It has to be guessed from the name or figured out from the kernel sources. EXAMPLES (Be careful to use a keymaps line, like the first line of `dumpkeys`, or "keymaps 0-15" or so.) The following entry exchanges the left Control key and the Caps Lock key on the keyboard: keycode 58 = Control keycode 29 = Caps_Lock Key number 58 is normally the Caps Lock key, and key number 29 is normally the Control key. The following entry sets the Shift and Caps Lock keys to behave more nicely, like in older typewriters. That is, pressing Caps Lock key once or more sets the keyboard in CapsLock state and pressing either of the Shift keys releases it. keycode 42 = Uncaps_Shift keycode 54 = Uncaps_Shift keycode 58 = Caps_On The following entry sets the layout of the edit pad in the enhanced keyboard to be more like that in the VT200 series terminals: keycode 102 = Insert keycode 104 = Remove keycode 107 = Prior shift keycode 107 = Scroll_Backward keycode 110 = Find keycode 111 = Select control alt keycode 111 = Boot control altgr keycode 111 = Boot Here's an example to bind the string "du\ndf\n" to the key AltGr-D. We use the "spare" action code F100 not normally bound to any key. altgr keycode 32 = F100 string F100 = "du\ndf\n"
showkey showkey - examine the codes sent by the keyboard
showkey [-h|--help] [-a|--ascii] [-s|--scancodes] [-k|--keycodes] DESCRIPTION showkey prints to standard output either the scan codes or the keycode or the `ascii' code of each key pressed. In the first two modes the program runs until 10 seconds have elapsed since the last key press or release event, or until it receives a suitable signal, like SIGTERM, from another process. In `ascii' mode the program terminates when the user types ^D. When in scancode dump mode, showkey prints in hexadecimal format each byte received from the keyboard to the standard output. A new line is printed when an interval of about 0.1 seconds occurs between the bytes received, or when the internal receive buffer fills up. This can be used to determine roughly, what byte sequences the keyboard sends at once on a given key press. The scan code dumping mode is primarily intended for debugging the keyboard driver or other low level interfaces. As such it shouldn't be of much interest to the regular end-user. However, some modern keyboards have keys or buttons that produce scancodes to which the kernel does not associate a keycode, and, after finding out what these are, the user can assign keycodes with setkeycodes(8). When in the default keycode dump mode, showkey prints to the standard output the keycode number or each key pressed or released. The kind of the event, press or release, is also reported. Keycodes are numbers assigned by the kernel to each individual physical key. Every key has always only one associated keycode number, whether the keyboard sends single or multiple scan codes when pressing it. Using showkey in this mode, you can find out what numbers to use in your personalized keymap files. When in `ascii' dump mode, showkey prints to the standard output the decimal, octal, and hexadecimal value(s) of the key pressed, according to he present keymap. OPTIONS -h --help showkey prints to the standard error output its version number, a compile option and a short usage message, then exits. -s --scancodes Starts showkey in scan code dump mode. -k --keycodes Starts showkey in keycode dump mode. This is the default, when no command line options are present. -a --ascii Starts showkey in `ascii' dump mode.
bridging
This describes how to give network access to Zaurus via ethernet bridging with a PC running Gentoo. This allows a USB-connected Zaurus to appear as another host on the same network as the PC. Bridging is useful only if you can allocate an IP address for the Zaurus that is on the same network as the PC (e.g. you are connected to a private network). Bridging is not appropriate if your PC is connected directly to the internet (via a cable/adsl/modem) and thus has a public IP address, in this case see this howto.
Prerequisites for Gentoo host machine
1. Bridging is supported in the current 2.4 and 2.6 kernels. If you configure your own, you need CONFIG_BRIDGE together with whatever kernel options are necessary to get usbnet working with your Zaurus, for a SL-5500 (collie) these are CONFIG_USB_USBNET and CONFIG_USB_NET_ZAURUS. I compiled all these as modules and they get loaded automatically when required. 2. baselayout-1.11.11 or later 3. The brctl command is provided by the bridge-utils package:
emerge -n net-misc/bridge-utils
Configuring the Gentoo machine
The interface with the Zaurus, usb0, will be combined with eth0 in a virtual interface called br0, this is what will be assigned the IP configuration for the PC.
First you need to tell the Gentoo RC system about usb0 and br0 (I'll assume eth0 is already configured). This is done by creating symbolic links from net.lo to net.usb0 and net.br0 in /etc/init.d.
cd /etc/init.d ln -s net.lo net.usb0 ln -s net.lo net.br0
Next you tell Gentoo how to configure the interfaces. This is done in /etc/conf.d/net. With baselayout-1.11.x, this should contain:
# Add eth0 to the bridge. usb0 will be added by hotplug when it comes up. bridge_br0="eth0" # Make sure eth0 gets configured before the bridge. depend_br0() { need net.eth0 } # Ensure that eth0 and usb0 don't get configured by DHCP # The only interface needing IP configuration is br0 config_eth0=( "null" ) config_usb0=( "null" ) # Give the bridge an IP configuration, either static: config_br0=( "192.168.2.10/24" ) gateway="br0/192.168.2.1" # or by DHCP: # config_br0=( "dhcp" ) # This is the address by which the Gentoo machine will be known on the network # When you plug in the Zaurus, hotplug creates the usb0 interface and # issues a network hotplug event which causes Gentoo to configure the # interface. This function causes it to be added to the bridge: postup() { local iface=${1} if [ ${iface} == usb0 ]; then brctl addif br0 ${iface} elif [ ${iface} == br0 ] && ifconfig -a | grep usb0 > /dev/null ; then # if usb0 is already present when br0 is configured (i.e. the # Zaurus was plugged in and switched on when the PC was booted # then add it to the bridge. brctl addif br0 usb0 fi }
With baselayout-1.12 and later this simplifies to:
# Add port to bridge br0 bridge_br0="eth0" # dynamically add usb0 when the interface comes up bridge_add_usb0="br0" # Configure the ports to null values so dhcp does not get started config_eth0=( "null" ) config_usb0=( "null" ) # Give the bridge an address - dhcp config_br0=( "dhcp" ) # or e.g. ( "192.168.2.0/24" ) for static config # make sure eth0 is up before configuring br0 depend_br0() { need net.eth0 }
Obviously change the IP addresses to suit.
Configuring the Zaurus
Use the Network settings GUI to configure usbd0. Either use DHCP, or a static config on the same subnet as the PC, e.g.:
Automatically bring up IP Address = 192.168.2.50 Subnet Mask = 255.255.255.0 Gateway = 192.168.2.1 (same as the PC) First DNS = 192.168.2.10 (same as the PC) Second DNS = 192.168.2.1 (same as the PC)
Test the configuration
On the Gentoo box:
/etc/init.d/net.eth0 pause /etc/init.d/net.br0 start
Then plug in and switch on the PDA and check that both the PC and the PDA have network access.
Make the configuration permanent
On the Gentoo box:
rc-update del net.eth0 rc-update add net.br0 default
Troubleshooting
I found that the MTU assigned to usbd0 on the Zaurus was diferent from that assigned to usb0 on the PC:
gentoo # ifconfig usb0 usb0 Link encap:Ethernet HWaddr 66:5E:F2:2A:07:79 UP BROADCAST RUNNING MULTICAST MTU:1494 Metric:1 RX packets:198 errors:0 dropped:0 overruns:0 frame:0 TX packets:3368 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:20256 (19.7 Kb) TX bytes:349616 (341.4 Kb)
collie # ifconfig usbd0 usbd0 Link encap:Ethernet HWaddr 40:00:01:00:00:01 inet addr:192.168.2.50 Bcast:192.168.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3459 errors:2 dropped:2 overruns:0 frame:2 TX packets:251 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100
This does not prevent logging into the Zaurus using ssh but does prevent downloading files larger than about 1kB. I am not sure why this happens, it may be related to this kernel bug report
The solution is to reduce the MTU on the Zaurus end. You can configure the Zaurus to do this automatically by editing /etc/network/interfaces. Find the section starting 'iface usbd0' and add the following line:
up ifconfig usbd0 mtu 1494
references
ethernet bridging http://www.linuxfoundation.org/en/Net:Bridge
usbnet Driver Framework http://www.linux-usb.org/usbnet/
Gentoo Network Configuration http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=4
a bit of sw/hw doc
Analyzing zaurus voltage tables
pavelmachek wrote, @ 2009-11-24 09:51:00
Analyzing zaurus voltage tables, I tried analyzing scary-looking spitz_battery_levels_noac and _acin tables... only to realize that _acin is actually noac+3 in <45% charge rates, and that _noac is actually trivial linear function. Oops.
Unfortunately, dependency between voltage and capacity left is actually more complex for li-ion battery, so better tables will be neccessary...
Zaurus C-3000 power questions
I did some measurements of spitz battery subsystem; maybe they are useful for someone. Unfortunately, concistent numbers are quite hard: longer/thinner cables mean lower voltage and also lower currents :-(. I get quite consistents 5V at power supply, but it goes down to 4.5..4.2V when it reaches zaurus behind ampermeter. (Is zaurus even able to charge battery properly from such low voltage?) One big surprise was wlan CF card, eating +200mA when initialized. I'm working on drivers/power/spitz_battery driver, and I'll need to know conversion between ADC readings and milivolts; does someone have those? Does someone have better/more reliable/other power consumption numbers? Idle, charging, no backlight, linux 2.6.26: 200mA @ 4.8V bl 1: 310mA bl 10: 315mA bl 20 340mA bl 30: 390mA bl 40: 440mA bl 47: 445mA disk is spinning: +50mA find /: +200mA cat /dev/zero: +100mA make: +240mA charging, powerdown: 380mA..440mA charging, ROM menu: 550mA D+M monitor, not charging: 170mA D+M monitor, half charging: 280mA D+M monitor, full charging: 480mA..550mA Charging in ROM, from empty @ 8:35: 610mA 8:38: 555mA 8:45: 545mA 8:50: 540mA 9:01: 540mA 9:18: 530mA 9:36: 520mA 9:45: 505mA 9:51: 480mA 10:15: 365mA 10:48: 250mA 11:01: 225mA 11:31: 180mA 11:38: 170mA 12:48: 80mA, charger LED is off. Measured @ li-ion battery. ROM <7mA Linux 2.6.26 suspend: 7.5mA, 10mA?! Linux 2.6.26, fully running, charger connected: 50uA :-( 100mA charge
System Status Comment Base Basic Machine definitions are done. Now in mainline Compact flash The internal Compact Flash slot is working. Expansion Jacket works too. MTD NAND via TC6393xb is working. Backlight Done. LCD Done. Keyboard Done. USB Gadget Done. Now in mainline Irda Done. Now in mainline Bluetooth Done. Checked with my soldered mitsumi module, but should work also with the original. MMC/SD Done. Now in mainline Sound Sound via alsa works. Headphone detection missing. Power management Basic suspend and resume is working on 2.6.23 Battery management good on 2.6.23 Touchscreen First running version. Values are noisy. USB Host USB-Host is working wifi ... LEDs Done. Expansion Jacket CF socket works
Some Spitz / Zaurus C-3000 power answers
Ok, so I think I know what is going on with zaurus charging slowly when powered up: misterious "half charge" mode is actually used every time machine is not suspended.
That explains why it gets away with 1A wall charger -- when collie used 2A charger. Also... wifi card I'm using is nastier than I thought. It draws 220mA when active, which would be kind-of expected, but it also draws 70mA when not active. Ouch.
Plus, I got zipit z2 to play with. So far, I'm not too impressed. Yes, device is light and probably cheap, but... it uses obscure miniSD card format, and not even its keyboard works properly -- as soon as you start typing faster, it will loose keystrokes or confuse them. Not good for IM machine...
Zaurus battery charging
9th September 2009, Besides my spitz C-3000 segfaulting about 3 times per kernel compile (do all of them do that, or is just mine affected?), I have some problems with charging. It seems to charge very very slowly why turned on. I learned to shutdown back to Sharp bootloader for charge, but I still forget sometimes.
I have been looking at battery code, and it seems it still leaves something to be desired. First, it goes from 100% to 60% way too quickly (and yes, it may be my cell just going old. OTOH, at this point, most of the cells are old :-). While compiling kernel, brigness 31, I unplugged AC power at 10:00. Before unplug, indicated battery was 219, 100%. Immediately after that, it went to 204, 78% and continued to decline rather quickly:
10:01 202, 73% 10:04 199 65% 10:06 197 60% 10:10 194 53% 10:13 193 50% 10:14 192 48% 10:19 190 43%
Other problem seems to be in the charging code; it only checks battery temperature once, and only seems to stop charging if temperature is too high. But li-ions should not be charged in too low temperatures, either. (I have summer here just now, but could someone mamybe get temperature values from spitz at cca 5 degrees Celsius?)
What's in pxa tree for the next pull request
[[1]]
What's in pxa tree for the next pull request Eric Miao eric.y.miao at gmail.com Wed Dec 2 08:42:44 EST 2009 * Previous message: [PATCH 8/9 v2] MXC: Add a digital audio multiplexer driver * Next message: [PATCH 1/4]ARM: NUC900: change condition of IRQ_ADC to NR_IRQS for nuc932 * Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] Below are what queued in branch 'devel', which are going to be pushed in the 1st pull request, please have a review to make sure nothing is missed. The zeus/raumfeld stuffs are queued in branch 'pending' since there is dependency issues need to be settled, so probably will go in a second git pull request. The pxa168fb SPI support is still not smooth enough, I've merged the easy part, however, I'd suggest to have a dedicated SPI host controller driver in drivers/spi/* so we may possibly reuse LCD panel drivers in drivers/video/backlight/*. The following changes since commit 648f4e3e50c4793d9dbf9a09afa193631f76fa26: Linus Torvalds (1): Linux 2.6.32-rc8 are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git devel Antonio Ospite (5): [ARM] pxa/ezx: add camera support for A780 and A910 EZX phones [ARM] pxa/ezx: add leds-lp3944 support for A910 EZX phone [ARM] pxa/ezx: update ezx_defconfig now that ezx-pcap is in [ARM] pxa/em-x270: don't use pxa_camera init() callback [ARM] pxa/pcm990: don't use pxa_camera init() callback Dmitry Artamonow (1): [ARM] pxa/hx4700: actually use platform_lcd driver Eric Miao (5): [ARM] pxa: re-order platforms in Kconfig and Makefile [ARM] pxa: use platform_device_id table for SSP driver [ARM] pxa: introduce CONFIG_MACH_ZYLONITE{300,320} for CPU_PXA* removing [ARM] pxa: select CPU_PXA310 for MACH_COLIBRI300 [ARM] pxa: make CPU_PXA* to be selectable hidden options Haojian Zhuang (20): pxamci: introduce mmc_has_26mhz() and include pxa935 backlight: da903x_bl: control WLED output current in da9034 [ARM] pxa/saar: set default WLED output current pxa3xx_nand: fix memory out of bound pxa3xx_nand: reset read buffer before reading pxa3xx_nand: adjust timing of Micron NAND flash pxa3xx_nand: remove hardcode register address pxa3xx_nand: remove hardcode irq number pxa3xx_nand: disable nand irq in initialization pxa3xx_nand: add new nand chip support pxa3xx_nand: update dependancy to support ARCH_MMP pxa3xx_nand: move pxa3xx_nand.h common into plat directory [ARM] pxa: add nand device and clock for pxa168/pxa910 [ARM] pxa: add nand support in aspensite board [ARM] pxa: add onenand support for TTC-DKB [ARM] pxa: add onenand support for SAAR [ARM] pxa: update flash structure in onenand info [ARM] pxa: add missing irq events for pxa168 [ARM] pxa: add apmu clock support in mmp [ARM] pxa: rename macro from pxa9xx to pxa93x Igor Grinberg (12): [ARM] pxa: register U2D clock for pxa3xx [ARM] pxa: add U2D registers and bits definitions [ARM] pxa/cm-x300: add revision difference handling [ARM] pxa/cm-x300: add TDO35S lcd support [ARM] pxa/cm-x300: add ac97 controller registration [ARM] pxa/cm-x300: add Wi2Wi chip (Bluetooth and WiFi) initialization [ARM] pxa/cm-x300: add support for PXA310 cpu [ARM] pxa/cm-x300: enable USB port 2 for PXA300 [ARM] pxa/cm-x300: add da9030 support [ARM] pxa/cm-x300: update authors and copyright [ARM] pxa/cm-x300: update defconfig [ARM] pxa/cm-x300: add PWM backlight support Jonathan Cameron (1): MAINTAINERS: Add entries for IMote 2 and Stargate 2 Jun Nie (2): pxa168fb: fix offset setting at initialization pxa168fb: remove useless vsync/hsync invert flag Marc Zyngier (1): [ARM] pxa/viper: convert to use plat_serial8250_port irqflags field Mike Rapoport (2): backlight: tdo24m: ensure chip select changes between transfers [ARM] pxa: add EXT_WAKEUP interrupts handling for pxa3xx Pavel Machek (2): [ARM] pxa/zaurus: cleanup sharpsl_pm.c [ARM] pxa/zaurus: rename spitz_battery_levels_* to sharpsl_* Pieter Grimmerink (1): pxafb: add transparency field to pxafb_mode_info struct Russell King (1): [ARM] pxa: allow platforms to control which uarts are registered Sven Neumann (1): pxafb: use passed fb_var_screeninfo struct in pxafb_pan_display() Tomáš Čech (2): [ARM] pxa/treo: generalisation of Treo680 code [ARM] pxa/treo: add Palm Centro 685 support MAINTAINERS | 13 + arch/arm/configs/cm_x300_defconfig | 351 +++++--- arch/arm/configs/ezx_defconfig | 947 ++++++++++++++------ arch/arm/mach-mmp/aspenite.c | 39 + arch/arm/mach-mmp/clock.c | 15 + arch/arm/mach-mmp/clock.h | 1 + arch/arm/mach-mmp/include/mach/irqs.h | 4 +- arch/arm/mach-mmp/include/mach/pxa168.h | 7 + arch/arm/mach-mmp/include/mach/pxa910.h | 7 + arch/arm/mach-mmp/pxa168.c | 5 + arch/arm/mach-mmp/pxa910.c | 4 + arch/arm/mach-mmp/ttc_dkb.c | 87 ++ arch/arm/mach-pxa/Kconfig | 638 +++++++------ arch/arm/mach-pxa/Makefile | 90 +- arch/arm/mach-pxa/balloon3.c | 4 + arch/arm/mach-pxa/cm-x2xx.c | 4 + arch/arm/mach-pxa/cm-x300.c | 260 +++++- arch/arm/mach-pxa/colibri-pxa270.c | 3 + arch/arm/mach-pxa/colibri-pxa300.c | 4 + arch/arm/mach-pxa/colibri-pxa320.c | 4 + arch/arm/mach-pxa/colibri-pxa3xx.c | 2 +- arch/arm/mach-pxa/corgi.c | 4 + arch/arm/mach-pxa/corgi_pm.c | 4 +- arch/arm/mach-pxa/csb726.c | 3 + arch/arm/mach-pxa/devices.c | 30 +- arch/arm/mach-pxa/e330.c | 3 + arch/arm/mach-pxa/e350.c | 3 + arch/arm/mach-pxa/e400.c | 3 + arch/arm/mach-pxa/e740.c | 3 + arch/arm/mach-pxa/e750.c | 3 + arch/arm/mach-pxa/e800.c | 3 + arch/arm/mach-pxa/em-x270.c | 13 +- arch/arm/mach-pxa/ezx.c | 251 +++++- arch/arm/mach-pxa/generic.h | 5 + arch/arm/mach-pxa/gumstix.c | 5 + arch/arm/mach-pxa/h5000.c | 3 + arch/arm/mach-pxa/himalaya.c | 3 + arch/arm/mach-pxa/hx4700.c | 5 + arch/arm/mach-pxa/idp.c | 3 + arch/arm/mach-pxa/imote2.c | 6 +- arch/arm/mach-pxa/include/mach/hardware.h | 7 +- arch/arm/mach-pxa/include/mach/palmtreo.h | 67 ++ arch/arm/mach-pxa/include/mach/pxafb.h | 3 +- arch/arm/mach-pxa/include/mach/regs-u2d.h | 199 ++++ arch/arm/mach-pxa/include/mach/treo680.h | 49 - arch/arm/mach-pxa/littleton.c | 8 +- arch/arm/mach-pxa/lpd270.c | 4 + arch/arm/mach-pxa/lubbock.c | 4 + arch/arm/mach-pxa/magician.c | 4 + arch/arm/mach-pxa/mainstone.c | 4 + arch/arm/mach-pxa/mioa701.c | 3 + arch/arm/mach-pxa/mp900.c | 3 + arch/arm/mach-pxa/palmld.c | 4 + arch/arm/mach-pxa/palmt5.c | 4 + arch/arm/mach-pxa/palmtc.c | 5 + arch/arm/mach-pxa/palmte2.c | 4 + arch/arm/mach-pxa/{treo680.c => palmtreo.c} | 365 ++++++-- arch/arm/mach-pxa/palmtx.c | 4 + arch/arm/mach-pxa/palmz72.c | 4 + arch/arm/mach-pxa/pcm027.c | 4 + arch/arm/mach-pxa/pcm990-baseboard.c | 8 +- arch/arm/mach-pxa/poodle.c | 4 + arch/arm/mach-pxa/pxa25x.c | 7 +- arch/arm/mach-pxa/pxa27x.c | 3 - arch/arm/mach-pxa/pxa3xx.c | 47 +- arch/arm/mach-pxa/saar.c | 105 +++- arch/arm/mach-pxa/sharpsl.h | 4 +- arch/arm/mach-pxa/sharpsl_pm.c | 112 ++-- arch/arm/mach-pxa/spitz.c | 4 + arch/arm/mach-pxa/spitz_pm.c | 14 +- arch/arm/mach-pxa/ssp.c | 73 +-- arch/arm/mach-pxa/stargate2.c | 4 + arch/arm/mach-pxa/tavorevb.c | 4 + arch/arm/mach-pxa/tosa.c | 5 + arch/arm/mach-pxa/trizeps4.c | 4 + arch/arm/mach-pxa/viper.c | 15 +- arch/arm/mach-pxa/xcep.c | 5 + arch/arm/mach-pxa/zylonite.c | 6 +- arch/arm/mm/mmu.c | 2 +- .../mach => plat-pxa/include/plat}/pxa3xx_nand.h | 0 drivers/mmc/host/pxamci.c | 10 +- drivers/mtd/nand/Kconfig | 2 +- drivers/mtd/nand/pxa3xx_nand.c | 82 ++- drivers/video/backlight/da903x_bl.c | 7 + drivers/video/backlight/tdo24m.c | 1 + drivers/video/pxa168fb.c | 1 + drivers/video/pxafb.c | 23 +- include/linux/mfd/da903x.h | 4 + include/video/pxa168fb.h | 2 - 89 files changed, 3068 insertions(+), 1081 deletions(-) create mode 100644 arch/arm/mach-pxa/include/mach/palmtreo.h create mode 100644 arch/arm/mach-pxa/include/mach/regs-u2d.h delete mode 100644 arch/arm/mach-pxa/include/mach/treo680.h rename arch/arm/mach-pxa/{treo680.c => palmtreo.c} (53%) rename arch/arm/{mach-pxa/include/mach => plat-pxa/include/plat}/pxa3xx_nand.h (100%) * Previous message: [PATCH 8/9 v2] MXC: Add a digital audio multiplexer driver * Next message: [PATCH 1/4]ARM: NUC900: change condition of IRQ_ADC to NR_IRQS for nuc932 * Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] More information about the linux-arm-kernel mailing list