debian-chroot
#auf host; /armel-chroot = usbstick
debootstrap --verbose --arch armel --foreign lenny /armel-chroot http://ftp.de.debian.org/debian
# auf chumby
chroot /mnt/usb-* /debootstrap/debootstrap --second-stage
- im chroot aufräumen apt-get clean; set sources.list; maybe upgrade to unstable?
- mount sys,proc,devpts,dev...
- funktioniert, auch mit x-server
multistrap
note: set directory (with trailing slash)
[General]
arch=armel
directory=/target/
# same as --tidy-up option if set to true
cleanup=true
# same as --no-auth option if set to true
# keyring packages listed in each debootstrap will
# still be installed.
noauth=false
# extract all downloaded archives (default is true)
unpack=true
# aptsources is a list of sections to be used for downloading packages
# and lists and placed in the /etc/apt/sources.list.d/multistrap.sources.list
# of the target. Order is not important
aptsources=Debian
# the order of sections is not important.
# the debootstrap option determines which repository
# is used to calculate the list of Priority: required packages.
debootstrap=Debian
[Debian]
packages=
source=http://ftp.de.debian.org/debian
keyring=debian-archive-keyring
suite=unstable
- qemu-emulation installieren
- amd64 need libc6-i386
- /etc/qemu-binfmt/arm -> /usr/$toolchain
- qemu static library ins chroot
cp /usr/bin/qemu-arm-static /target_fs/usr/lib/qemu-binfmt/arm
(nee eher/usr/bin/qemu-arm-static
)
nach multistrap im chroot: (chroot . /bin/bash ... su -l
)
DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C dpkg --configure -a
Error:
Setting up dash (0.5.5.1-3) ...
No diversion `any diversion of /bin/sh', none removed
Adding `diversion of /bin/sh to /bin/sh.distrib by dash'
/bin/cp: cannot stat `/bin/sh': No such file or directory
dpkg: error processing dash (--configure):
ln -s /bin/dash /bin/sh && dpkg-reconfigure see above && --configure for dash and bash
re-enter chroot
configure real /
- By changing the microSD card, backup first (untested: dd if=/dev/sdX | bzip2 - >~/chumby_sd_backup.img.bz2)
- i think /dev/sdX1 || /dev/mmcblk0p1 holds the bootloader because
`strings' found:
- linux 0x40008000 "console=ttyAM0,115200 init=/linuxrc root=/dev/mmcblk0p3 rootfstype=ext3 ro rootwait lcd_panel=lms350 ssp1=mmc line=1 sysrq_always_enabled rotary=1 partition=recovery"
- Chumby bootloader console v1.0
- so i will delete all partition except this and create a new big one and format with ext3
- put the debootstrap stuff on it
- ln -s /sbin/init linuxrc
- take modules from /lib/modules in chumby image modules-2.6.28-chumby.tar.gz
- install apt, watchdog, module-init-tools, udev, dhcp3-client, wireless-tools, wpa-supplicant
- set /etc/inittab (tty: 115200 console instead of tty1)
- /usr/chumby/scripts/mkdevs OR udev?
- sudo tune2fs -c -1 -i 0 /dev/sdb2
- watchdog runlevel 1
- root password
- /etc/network/interfaces
- touch /fastboot
- /etc/default/rcS FSCKFIX=yes (time 1970 issue)
- rt73.bin
- xfbdev
- Xfbdev -screen \<YOUR SCREEN PARAMETER> -mouse tslib,,device=/dev/input/touchscreen0"
- http://old.nabble.com/USB-keyboard-with-Xfbdev-(again)-td20501602.html
- http://readlist.com/lists/lists.freedesktop.org/xorg/2/10575.html
sachen
- stop chumby-flash-display /usr/chumby/script/stop_contr..*TODO
- SSH Aktivieren: Settings->System Information->π(upper-right corner)
- framebuffer
- framebuffer wechseln: /usr/chumby/script/switch_fbdev.sh $NUM
- Auf konsole kommt man wenn ein usbkeyboard angeschlossen ist indem man auf FB 3 wechselt
- if i connect a usb-keyboard my chumby automatically switch to the console framebuffer
SD-Card
Disk /dev/sdc: 1018 MB, 1018691584 bytes
5 heads, 4 sectors/track, 99481 cylinders
Units = cylinders of 20 * 512 = 10240 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdc1 1 14670 146697+ 53 OnTrack DM6 Aux3
/dev/sdc2 1563 14063 125000+ 83 Linux # /
/dev/sdc3 14063 26563 125000+ 83 Linux # also /
/dev/sdc4 26563 99073 725092 5 Extended
/dev/sdc5 26564 39063 124998+ 83 Linux # /mnt/storage
/dev/sdc6 39064 99073 600089+ 83 Linux # /mnt/psp
RS-232
- Pin as named on Board (TX,RX,GND)
- Level-Shifter RS-232
- 15200-8-N-1
Watchdog
* maybe regutil -w HW_RTC_WATCHDOG 0x00004e20 nicht setzen
* or install watchdog
/etc/init.d/watchdog / /etc/defaults/watchdog:
...
run_watchdog=1
...
#from /usr/chumby/scripts/enable_watchdog.sh)
watchdog_module="stmp3xxx_wdt"
...
/etc/watchdog.conf:
max-load-1 = 0
max-load-5 = 0
max-load-15 = 0
watchdog-device = /dev/watchdog
# The watchdog timer should reboot the system after five seconds without a ping
watchdog-timeout = 10
# Ping the system every second. This means that ten missed pings equals a
# reboot.
interval = 1
# This greatly decreases the chance that watchdog won't be scheduled before
# your machine is really loaded
realtime = yes
priority = 1
Technical specs
- Power consumption: Using USB-Devices (as keyboards, mouse and USB-attached-Storage) between 2 and 3W, without accessoires 1-2W (measured at the power cord)
Processor : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 226.91
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 5
Hardware : STMP378X
Revision : 0000
Serial : 0000000000000000
- Wireless: RT2571 - via USB
- Storage: Mini-SD(sure?)
Bootloader log
Chumby bootloader console v1.0
Booting in 2 seconds...
Press any key to enter shell... 2
Press any key to enter shell... 1
Press any key to enter shell... 0
regutil -w HW_RTC_WATCHDOG 0x00004e20
regutil -w HW_RTC_CTRL_SET 0x00000010
regutil -w HW_EMI_CTRL 0x1c444040
regutil -w HW_POWER_BATTMONITOR 0x01ec0414
regutil -w HW_POWER_5VCTRL_CLR 0x00000080
regutil -w HW_POWER_MINPWR_SET 0x00001000
regutil -w HW_PINCTRL_MUXSEL1_SET 0x03300000
regutil -w HW_PINCTRL_DOUT0_CLR 0x24000000
regutil -w HW_PINCTRL_DOE0_SET 0x24000000
regutil -w HW_PINCTRL_DOUT0_CLR 0x24000000
regutil -w HW_PINCTRL_DOUT0_SET 0x20000000
regutil -w HW_PINCTRL_DOUT0_SET 0x04000000
load krnA 0x40008000
linux 0x40008000 "console=ttyAM0,115200 init=/linuxrc root=/dev/mmcblk0p2 rootfstype=ext3 ro rootwait lcd_panel=lms350 ssp1=mmc line=1 sysrq_always_enabled rotary=1"
How 2 open
- 4 screws on back of the device (need long screwdriver)
- pull volume controller out
- remove 4 screws on the main board, then pull it to the bottom of chumby, then remove the previously barred 2 screws (and the other 2) on the front
- remove 4 screws on the black-boxed thing (the speakers)
*
streaming
gst-launch-0.10 -t -v v4l2src ! videorate ! videoscale method=0 ! video/x-raw-yuv,width=\(int\)320,height=\(int\)240,framerate=\(fraction\)1/1 ! ffmpegcolorspace ! theoraenc speed-level=2 keyframe-force=1 quality=63 ! oggmux ! shout2send ip=127.0.0.1 port=8000 password=hackme mount=foo.ogg blocksize=512
(320x240 2fps, 55%cpu)
Weblinks
- http://www.bunniestudios.com/blog/?p=611 - detailed description of hardware (including fabrication)
- http://blogs.zdnet.com/Apple/?p=5552
- http://www.ifixit.com/Teardown/chumby-one-Teardown/1614/
- http://wiki.debian.org/ArmEabiHowto
- http://xapek.org/~yvesf/chumby my chumby stuff