--- toolchain/kernel-headers/Config.in (revision 23927) +++ toolchain/kernel-headers/Config.in (working copy) @@ -114,6 +114,6 @@ default "2.6.24.7" if BR2_KERNEL_HEADERS_2_6_24 default "2.6.25.19" if BR2_KERNEL_HEADERS_2_6_25 default "2.6.26.6" if BR2_KERNEL_HEADERS_2_6_26 - default "2.6.27.3" if BR2_KERNEL_HEADERS_2_6_27 + default "2.6.27" if BR2_KERNEL_HEADERS_2_6_27 default "2.6" if BR2_KERNEL_HEADERS_SNAP --- target/iso9660/menu.lst (revision 23927) +++ target/iso9660/menu.lst (working copy) @@ -1,11 +1,31 @@ -default 0 -timeout 10 +default 1 +timeout 5 color cyan/blue white/blue title Hard Drive (first partition) rootnoverify (hd0) chainloader +1 -title BuildRoot ISO9660 image +title ugles Linux 640x480 +kernel /kernel vga=0x311 pci=routeirq +initrd /initrd + +title ugles Linux eeepc7i +kernel /kernel vga=5 eeepc7i irqpoll +initrd /initrd + +title ugles Linux 800x600 +kernel /kernel vga=0x314 pci=routeirq +initrd /initrd + +title ugles Linux 1024x768 +kernel /kernel vga=0x317 pci=routeirq +initrd /initrd + +title ugles Linux 1280x1024 +kernel /kernel vga=0x31A pci=routeirq +initrd /initrd + +title ugles Linux console/X kernel /kernel initrd /initrd --- target/x86/grub/grub.mk (revision 23927) +++ target/x86/grub/grub.mk (working copy) @@ -21,7 +21,7 @@ # ############################################################# GRUB_SOURCE:=grub_0.97.orig.tar.gz -GRUB_PATCH:=grub_0.97-35.diff.gz +GRUB_PATCH:=grub_0.97-51.diff.gz GRUB_SITE=$(BR2_DEBIAN_MIRROR)/debian/pool/main/g/grub GRUB_PATCH_SITE:=$(GRUB_SITE) GRUB_CAT:=$(ZCAT) --- target/linux/Makefile.in (revision 23927) +++ target/linux/Makefile.in (working copy) @@ -201,7 +201,7 @@ $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) modules $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) \ DEPMOD=$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 \ - INSTALL_MOD_PATH=$(TARGET_DIR) modules_install + INSTALL_MOD_PATH=$(TARGET_DIR) INSTALL_MOD_STRIP=1 modules_install rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/build rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/source $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 -b $(TARGET_DIR) $(LINUX_HEADERS_VERSION) --- target/linux/Makefile.in.advanced (revision 23927) +++ target/linux/Makefile.in.advanced (working copy) @@ -400,7 +400,7 @@ $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) modules; \ $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) \ DEPMOD=$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 \ - INSTALL_MOD_PATH=$(TARGET_DIR) modules_install; \ + INSTALL_MOD_PATH=$(TARGET_DIR) INSTALL_MOD_STRIP=1 modules_install; \ rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/build; \ rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/source; \ $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 -b $(TARGET_DIR) $(LINUX26_VERSION_PROBED); \ --- target/generic/device_table.txt (revision 23927) +++ target/generic/device_table.txt (working copy) @@ -107,38 +107,39 @@ /dev/hda b 640 0 0 3 1 1 1 15 /dev/hdb b 640 0 0 3 64 0 0 - /dev/hdb b 640 0 0 3 65 1 1 15 -#/dev/hdc b 640 0 0 22 0 0 0 - -#/dev/hdc b 640 0 0 22 1 1 1 15 -#/dev/hdd b 640 0 0 22 64 0 0 - -#/dev/hdd b 640 0 0 22 65 1 1 15 -#/dev/hde b 640 0 0 33 0 0 0 - -#/dev/hde b 640 0 0 33 1 1 1 15 -#/dev/hdf b 640 0 0 33 64 0 0 - -#/dev/hdf b 640 0 0 33 65 1 1 15 -#/dev/hdg b 640 0 0 34 0 0 0 - -#/dev/hdg b 640 0 0 34 1 1 1 15 -#/dev/hdh b 640 0 0 34 64 0 0 - -#/dev/hdh b 640 0 0 34 65 1 1 15 +/dev/hdc b 640 0 0 22 0 0 0 - +/dev/hdc b 640 0 0 22 1 1 1 15 +/dev/hdd b 640 0 0 22 64 0 0 - +/dev/hdd b 640 0 0 22 65 1 1 15 +/dev/hde b 640 0 0 33 0 0 0 - +/dev/hde b 640 0 0 33 1 1 1 15 +/dev/hdf b 640 0 0 33 64 0 0 - +/dev/hdf b 640 0 0 33 65 1 1 15 +/dev/hdg b 640 0 0 34 0 0 0 - +/dev/hdg b 640 0 0 34 1 1 1 15 +/dev/hdh b 640 0 0 34 64 0 0 - +/dev/hdh b 640 0 0 34 65 1 1 15 # SCSI Devices -#/dev/sda b 640 0 0 8 0 0 0 - -#/dev/sda b 640 0 0 8 1 1 1 15 -#/dev/sdb b 640 0 0 8 16 0 0 - -#/dev/sdb b 640 0 0 8 17 1 1 15 -#/dev/sdc b 640 0 0 8 32 0 0 - -#/dev/sdc b 640 0 0 8 33 1 1 15 -#/dev/sdd b 640 0 0 8 48 0 0 - -#/dev/sdd b 640 0 0 8 49 1 1 15 -#/dev/sde b 640 0 0 8 64 0 0 - -#/dev/sde b 640 0 0 8 65 1 1 15 -#/dev/sdf b 640 0 0 8 80 0 0 - -#/dev/sdf b 640 0 0 8 81 1 1 15 -#/dev/sdg b 640 0 0 8 96 0 0 - -#/dev/sdg b 640 0 0 8 97 1 1 15 -#/dev/sdh b 640 0 0 8 112 0 0 - -#/dev/sdh b 640 0 0 8 113 1 1 15 -#/dev/sg c 640 0 0 21 0 0 1 15 -#/dev/scd b 640 0 0 11 0 0 1 15 +/dev/sda b 640 0 0 8 0 0 0 - +/dev/sda b 640 0 0 8 1 1 1 15 +/dev/sdb b 640 0 0 8 16 0 0 - +/dev/sdb b 640 0 0 8 17 1 1 15 +/dev/sdc b 640 0 0 8 32 0 0 - +/dev/sdc b 640 0 0 8 33 1 1 15 +/dev/sdd b 640 0 0 8 48 0 0 - +/dev/sdd b 640 0 0 8 49 1 1 15 +/dev/sde b 640 0 0 8 64 0 0 - +/dev/sde b 640 0 0 8 65 1 1 15 +/dev/sdf b 640 0 0 8 80 0 0 - +/dev/sdf b 640 0 0 8 81 1 1 15 +/dev/sdg b 640 0 0 8 96 0 0 - +/dev/sdg b 640 0 0 8 97 1 1 15 +/dev/sdh b 640 0 0 8 112 0 0 - +/dev/sdh b 640 0 0 8 113 1 1 15 +/dev/sg c 640 0 0 21 0 0 1 15 +/dev/sr b 640 0 0 11 0 0 1 15 +/dev/scd b 640 0 0 11 0 0 1 15 #/dev/st c 640 0 0 9 0 0 1 8 #/dev/nst c 640 0 0 9 128 0 1 8 #/dev/st c 640 0 0 9 32 1 1 4 --- target/generic/target_skeleton/etc/init.d/S99local (revision 0) +++ target/generic/target_skeleton/etc/init.d/S99local (revision 0) @@ -0,0 +1,57 @@ +#!/bin/sh + +# +# Trying to find photo partition +# + +slideshow() { + # TODO: albums manager should be better implemented + plnx=$(ls -1 /mnt/*/ugles/bzlinux 2>/dev/null | tail -n1) + pdir=$(dirname $(dirname "$plnx")) + clear + # N.B.: filename with space or strange characters are supported + eval fbv -k -i -s 50 $( (find $pdir -iname \*.jpg -type f; \ + find $pdir -iname \*.jpeg -type f) 2>/dev/null | sort | \ + sed -e "s/\(.*\)/\"\\1\"/" | tr \\n \ ) + return $? +} + +xstart() { + export HOME=/root + export PATH=$PATH:/usr/X11R6/bin + su - $USER -c startx 2>/dev/null +} + +# +# Display the user menu before the show goes on +# + +if ! fbset >/dev/null 2>&1; then + xstart & +else while true; do + clear + df -h + echo + echo " Press ENTER to start the slide show" + echo + echo " Press x-ENTER to start a X session" + echo + echo " Press t-ENTER to start a console" + echo + echo " Press q-ENTER to exit from loop" + echo + echo -n "choice: "; key=; read key + if [ "$key" == "x" ]; then + xstart + elif [ "$key" == "t" ]; then + clear + su - $USER -c $SHELL || read + elif [ "$key" == "" ]; then + slideshow + elif [ "$key" == "q" ]; then + break + fi + /etc/init.d/S??automnt >/dev/null 2>&1 +done; fi +sync + --- target/generic/target_skeleton/etc/init.d/rcS (revision 23927) +++ target/generic/target_skeleton/etc/init.d/rcS (working copy) @@ -1,6 +1,30 @@ #!/bin/sh +# +# Making the rootfs writable +# +mount -o remount,rw / +if [ ! -e /lib/modules/.depmode_done ]; then + depmod -ea && touch /lib/modules/.depmode_done +fi + +# +# eeepc7i +# + +if grep -qw "eeepc7i" /proc/cmdline; then + modprobe asus_acpi +{ + 915resolution 32 800 480 8 + 915resolution 43 800 480 16 + 915resolution 52 800 480 32 +} >/dev/null + 915resolution -l | grep " 800x480 " + modprobe uvesafb mode=800x480-32@60 +fi + +# # Start all init scripts in /etc/init.d # executing them in numerical order. # --- target/generic/target_skeleton/etc/init.d/S95automnt (revision 0) +++ target/generic/target_skeleton/etc/init.d/S95automnt (revision 0) @@ -0,0 +1,88 @@ +#!/bin/sh + +mnt=/mnt +MAX_TRIES=1 +#if ! grep -qe "^mntfs $mnt" /proc/mounts; then +# mount -t tmpfs -o size=512k mntfs $mnt +#fi + +# +# Trying to find cdrom and mounting it +# + +cdrom=$(dmesg | grep -e " Attached .* CD-ROM ") +cdrom=$(echo "$cdrom" | sed -e "s,.* CD-ROM \(.*\),\\1,") +if [ "$cdrom" != "" ]; then + mkdir -p $mnt/cdrom + ln -sf /dev/$cdrom /dev/cdrom + if mount -t iso9660 /dev/cdrom $mnt/cdrom 2>/dev/null; then + echo "automnt: /dev/cdrom found and mounted in $mnt/cdrom" + fi +fi + +# +# Trying to find all partitions and trying to mount it +# + +for rz in $(seq 1 $MAX_TRIES); do + test $rz -ne 1 && sleep 1 + echo "automnt: sequence round n.$rz starting..." + echo >/proc/partitions 2>/dev/null # force to update partitions! + parts=$(grep -e " *[0-9]\{1,\} *[0-9]\{1,\} *[0-9]\{1,\}" /proc/partitions) + test "$parts" == "" && continue + for i in $(seq 1 $(echo "$parts" | wc -l)); do + row=$(echo "$parts" | head -n$i | tail -n1) + args=$(echo "$row" | sed -e \ +"s/ *\([0-9]\{1,\}\) *\([0-9]\{1,\}\) *[0-9]\{1,\} *\(.*\)/\\3 b \\1 \\2/") + test "$args" == "" && continue + dev=$(echo $args | cut -d\ -f1) + grep -q "/dev/$dev " /proc/mounts && continue + mknod /dev/$args 2>/dev/null + mkdir -p $mnt/$dev + mount -o ro -t vfat /dev/$dev $mnt/$dev 2>/dev/null || \ + mount -o ro /dev/$dev $mnt/$dev 2>/dev/null || continue + echo "automnt: /dev/$dev found and mounted in $mnt/$dev" + done + grep -qw "noufs" /proc/cmdline && break + ls -1 $mnt/*/ugles/bzlinux >/dev/null 2>&1 && break +done + +# +# Trying to find unionfs loop file +# + +#ufs= +#if ! grep -qw "noufs" /proc/cmdline; then +# ufs=$(ls -1 $mnt/*/ugles/unionfs.rw 2>/dev/null | head -n1) +#fi +#while [ "$ufs" != "" -a -e "$ufs" ]; do +# grep -q "^unionfs / " /proc/mounts && break +# mkdir -p $mnt/ufs +# orig=$(dirname $(dirname $ufs)) +# mount -o remount,rw $orig || break +# mount -o loop,rw -t ext2 $ufs $mnt/ufs || break +# mount -t unionfs unionfs / -o dirs=$mnt/ufs:/=ro && break +# umount $mnt/ufs && mount -o remount,ro $orig +# break +#done + +# +# Making the rootfs writable as last chance +# + +#if ! grep -q "^unionfs / " /proc/mounts; then +# if [ $rz -ge $MAX_TRIES -a $rz -ge 1 ]; then +# echo " +# +# >> ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION << +# +# UnionFS file has not been found, continuing with volatile rootfs +# +# >> ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION << +# +#" +# fi +# mount -o remount,rw / +#fi + + --- target/generic/target_skeleton/etc/init.d/S90Xserver (revision 0) +++ target/generic/target_skeleton/etc/init.d/S90Xserver (revision 0) @@ -0,0 +1,152 @@ +#!/bin/sh + +qwhich() { which $@ >/dev/null 2>&1; } + +# +# This happens only in rcS but anyone can call S90Xserver +# + +if [ "$USER" == "root" -a "$HOME" == "/" ]; then + export HOME=/$USER + mkdir -p $HOME +fi + +# +# Fonts preparation +# + +fontusr=/usr/share/fonts +fontdir=/usr/lib/X11/fonts +fontflg=$fontusr/fonts.prepared +while [ ! -e $fontflg ]; do + fntdirs=$(find $fontdir -type d | grep fonts/) + qwhich mkfontdir && mkfontdir $fntdirs + qwhich mkfontscale && mkfontscale $fntdirs + qwhich fc-cache && fc-cache -fv $fntdirs + ln -sf $fontdir $fontusr + touch $fontflg + break +done + +# +# Blackbox preparation +# + +test ! -e $HOME/.blackboxrc && echo " +session.styleFile: /usr/share/blackbox/styles/Blue +session.menuFile: /usr/share/blackbox/menu +session.screen0.slit.placement: CenterRight +session.screen0.slit.direction: Vertical +session.screen0.slit.onTop: False +session.screen0.slit.autoHide: False +session.screen0.toolbar.onTop: False +session.screen0.toolbar.autoHide: False +session.screen0.toolbar.placement: BottomCenter +session.screen0.toolbar.widthPercent: 66 +session.screen0.enableToolbar: True +session.screen0.workspaces: 2 +session.screen0.workspaceNames: Workspace 1,Workspace 2 +session.screen0.strftimeFormat: %I:%M %p +session.windowSnapThreshold: 0 +session.autoRaiseDelay: 400 +session.placementIgnoresShaded: True +session.focusLastWindow: True +session.opaqueMove: True +session.changeWorkspaceWithMouseWheel: True +session.imageDither: OrderedDither +session.windowPlacement: RowSmartPlacement +session.shadeWindowWithMouseWheel: True +session.opaqueResize: True +session.toolbarActionsWithMouseWheel: True +session.rowPlacementDirection: LeftToRight +session.maximumColors: 0 +session.disableBindingsWithScrollLock: False +session.fullMaximization: False +session.colPlacementDirection: TopToBottom +session.doubleClickInterval: 250 +session.edgeSnapThreshold: 0 +session.focusNewWindows: True +session.onlyIconifiedWindowsOnToolbar: True +session.focusModel: ClickToFocus +" > $HOME/.blackboxrc + +# +# Xserver preparation +# + +export DISPLAY=:0 +export PATH=$PATH:/usr/X11R6/bin +if ! grep -q $(hostname) /etc/hosts; then + echo "127.0.0.1 $(hostname)" >>/etc/hosts; +fi + +XWM= +MODE= +XSTART= +XSERVER=Xvesa +XLOG=/var/log/X.log +xserv=$(sed -e "s/.* xserv=\([a-zA-Z0-9_-]\{1,\}\).*/\\1/" /proc/cmdline) +if $(qwhich "$xserv"); then + XSERVER=$xserv +fi +MOUSE="-mouse mouse,2,device=/dev/psaux,protocol=ps/2" +if grep -qw "eeepc7i" /proc/cmdline; then + MODE="-screen 800x480x16bpp" + MOUSE="-mouse mouse,2,device=/dev/psaux,protocol=ps/2" +elif [ "$XSERVER" == "Xvesa" ]; then + mode=$(fbset 2>/dev/null | grep -e "^mode ") + mode=$(echo "$mode" | cut -d\" -f2 | cut -d- -f1) + if [ "$mode" != "" ]; then + mode=$($XSERVER -listmodes 2>&1 | grep ": $mode") + MODE="-mode "$(echo "$mode" | tail -n1 | cut -d: -f1) + fi + if [ "$MODE" == "" ]; then + MODE="-screen 640x480x24bpp" + fi +elif [ "$XSERVER" != "Xfbdev" ]; then + MODE="-screen 1024x768x24bpp,800x600x24bpp,640x480x24bpp" +fi +if [ "$XSERVER" == "Xvesa" ]; then + MODE="$MODE -verbose -shadow" +fi +echo "(date +'%F %X'; $XSERVER :0 $MODE" \ +" -keybd keyboard,,xkbmodel=pc105,xkblayout=it $MOUSE -dpms -ac -once" \ +" -terminate -reset -nolisten tcp) >>$XLOG 2>&1" >$HOME/.xserverrc +if $(qwhich blackbox); then + XWM="blackbox & +sleep 1; " +elif $(qwhich twm); then + XWM="twm &" +fi +echo "$XWM +# This put the CPU at 99% both in qemu and real pc. +#xterm -bg lightblue -fg black -geometry +10+10 -n X.log" \ +" -title \"Xorg log view\" -e \"tail -f $XLOG | grep -v 0x014F\" & +setxkbmap; bsetroot -gradient interlacedgradient -from brown -to red +xclock -bg lightblue -fg black -geometry 90x90+550+360 -twelve & +# This works correctly only if the previous xterm is commented out. +xterm -bg lightgreen -fg black -geometry +10+10 -n xterm" \ +" -title \"User $XSERVER console\"" >$HOME/.xinitrc +mkdir -p $(dirname $XLOG) +sync + +# +# Xserver launch +# + +XSTART= +for i in startx xinit X; do + qwhich $i || continue + XSTART=$i + break +done +{ + rmmod psmouse mousedev + modprobe psmouse proto=bare resetafter=8 + modprobe mousedev +} 2>/dev/null +#if [ "$XSTART" != "" ]; then +# su - $USER -c $XSTART & +#fi + + --- target/generic/target_skeleton/etc/profile (revision 23927) +++ target/generic/target_skeleton/etc/profile (working copy) @@ -6,6 +6,7 @@ /usr/bin:\ /usr/sbin:\ /usr/bin/X11:\ +/usr/X11R6/bin:\ /usr/local/bin # If running interactively, then: --- project/project.mk (revision 23927) +++ project/project.mk (working copy) @@ -46,8 +46,10 @@ $(LOCAL)/$(PROJECT)/u-boot/$(PROJECT).h; \ fi -getconfig: $(CONFIG)/conf +getconfig: + -@$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf mconf -cp $(LOCAL)/$(PROJECT)/$(PROJECT).config .config + -@yes "" | $(MAKE) config vendor-dbg: @echo VENDOR_SITE=$(BR2_VENDOR_SITE) --- package/v86d/Config.in (revision 0) +++ package/v86d/Config.in (revision 0) @@ -0,0 +1,7 @@ +config BR2_PACKAGE_V86D + bool "v86d" + help + uvesafb is a generic framebuffer driver for Linux systems + and the direct successor of vesafb-tng. Requires kernel patch. + + http://dev.gentoo.org/~spock/projects/uvesafb --- package/v86d/v86d.mk (revision 0) +++ package/v86d/v86d.mk (revision 0) @@ -0,0 +1,53 @@ +############################################################# +# +# v86d +# +############################################################# +V86D_VERSION:=0.1.9 +V86D_SOURCE:=v86d-$(V86D_VERSION).tar.bz2 +V86D_SITE:=http://dev.gentoo.org/~spock/projects/uvesafb/archive/ +V86D_CAT:=$(BZCAT) +V86D_DIR:=$(BUILD_DIR)/v86d-$(V86D_VERSION) +V86D_BINARY:=v86d +V86D_TARGET_BINARY:=/sbin/v86d +V86D_INCLUDE:=$(STAGING_DIR)/usr/include + +$(DL_DIR)/$(V86D_SOURCE): + $(WGET) -P $(DL_DIR) $(V86D_SITE)/$(V86D_SOURCE) + +v86d-source: $(DL_DIR)/$(V86D_SOURCE) + +v86d-unpacked: $(V86D_DIR)/.unpacked + +$(V86D_DIR)/.unpacked: $(DL_DIR)/$(V86D_SOURCE) + $(V86D_CAT) $(DL_DIR)/$(V86D_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + touch $(V86D_DIR)/.unpacked + +$(V86D_DIR)/.configured: $(V86D_DIR)/.unpacked + (cd $(V86D_DIR); $(TARGET_CONFIGURE_OPTS) ./configure --default) + touch $(V86D_DIR)/.configured + +$(V86D_DIR)/$(V86D_BINARY): $(V86D_DIR)/.configured + $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) KDIR=$(LINUX_DIR) -C $(V86D_DIR) + +$(TARGET_DIR)/$(V86D_TARGET_BINARY): $(V86D_DIR)/$(V86D_BINARY) + $(INSTALL) -D $(V86D_DIR)/$(V86D_BINARY) $@ + $(STRIPCMD) $@ + +v86d: $(TARGET_DIR)/$(V86D_TARGET_BINARY) + +v86d-clean: + -rm -f $(TARGET_DIR)/$(V86D_TARGET_BINARY) + -$(MAKE) -C $(V86D_DIR) clean + +v86d-dirclean: + rm -rf $(V86D_DIR) + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(strip $(BR2_PACKAGE_V86D)),y) +TARGETS+=v86d +endif --- package/x11r7/xserver_xorg-server/xserver_xorg-server-1.4-mouse-protocol.patch (revision 0) +++ package/x11r7/xserver_xorg-server/xserver_xorg-server-1.4-mouse-protocol.patch (revision 0) @@ -0,0 +1,38 @@ +--- a/hw/kdrive/linux/mouse.c 2007-11-06 15:37:25.000000000 +0100 ++++ b/hw/kdrive/linux/mouse.c 2008-10-29 10:20:07.000000000 +0100 +@@ -961,11 +961,11 @@ MouseInit (KdPointerInfo *pi) + + km = (Kmouse *) xalloc (sizeof (Kmouse)); + if (km) { +- km->iob.avail = km->iob.used = 0; +- MouseFirstProtocol(km, "exps/2"); ++ km->tty = isatty (fd); + km->i_prot = 0; +- km->tty = isatty (fd); + km->iob.fd = -1; ++ km->iob.avail = km->iob.used = 0; ++ MouseFirstProtocol(km, (pi->proto)?pi->proto:"exps/2"); + pi->driverPrivate = km; + } + else { +--- a/hw/kdrive/src/kdrive.h 2008-06-10 17:35:48.000000000 +0200 ++++ b/hw/kdrive/src/kdrive.h 2008-10-29 10:19:35.000000000 +0100 +@@ -249,6 +249,7 @@ struct _KdPointerInfo { + DeviceIntPtr dixdev; + char *name; + char *path; ++ char *proto; + InputOption *options; + int inputClass; + +--- a/hw/kdrive/src/kinput.c 2008-06-10 17:35:48.000000000 +0200 ++++ b/hw/kdrive/src/kinput.c 2008-10-29 10:17:05.000000000 +0100 +@@ -1263,6 +1263,8 @@ KdParsePointerOptions (KdPointerInfo *pi + pi->transformCoordinates = FALSE; + else if (!strcasecmp (option->key, "device")) + pi->path = KdSaveString(option->value); ++ else if (!strcasecmp (option->key, "protocol")) ++ pi->proto = KdSaveString(option->value); + else + ErrorF("Pointer option key (%s) of value (%s) not assigned!\n", + option->key, option->value); --- package/x11r7/xserver_xorg-server/xserver_xorg-server.mk (revision 23927) +++ package/x11r7/xserver_xorg-server/xserver_xorg-server.mk (working copy) @@ -4,7 +4,7 @@ # ################################################################################ -XSERVER_XORG_SERVER_VERSION = 1.4.2 +XSERVER_XORG_SERVER_VERSION = 1.4.1 XSERVER_XORG_SERVER_SOURCE = xorg-server-$(XSERVER_XORG_SERVER_VERSION).tar.bz2 XSERVER_XORG_SERVER_SITE = http://xorg.freedesktop.org/releases/individual/xserver XSERVER_XORG_SERVER_AUTORECONF = NO --- package/x11r7/mesa3d/Config.in (revision 23927) +++ package/x11r7/mesa3d/Config.in (working copy) @@ -1,5 +1,7 @@ config BR2_PACKAGE_MESA3D bool "Mesa 3D Graphics Library" + select BR2_GCC_CROSS_CXX + select BR2_INSTALL_LIBSTDCPP select BR2_PACKAGE_XPROTO_GLPROTO select BR2_PACKAGE_XSERVER_XORG_SERVER help --- package/x11r7/xapp_xrx/xapp_xrx.mk (revision 23927) +++ package/x11r7/xapp_xrx/xapp_xrx.mk (working copy) @@ -8,6 +8,6 @@ XAPP_XRX_SOURCE = xrx-$(XAPP_XRX_VERSION).tar.bz2 XAPP_XRX_SITE = http://xorg.freedesktop.org/releases/individual/app XAPP_XRX_AUTORECONF = NO -XAPP_XRX_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXt +XAPP_XRX_DEPENDENCIES = xlib_libX11 xlib_libXext xlib_libXt xproto_xproxymanagementprotocol $(eval $(call AUTOTARGETS,package/x11r7,xapp_xrx)) --- package/x11r7/xapp_xrx/Config.in (revision 23927) +++ package/x11r7/xapp_xrx/Config.in (working copy) @@ -3,6 +3,7 @@ select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XLIB_LIBXEXT select BR2_PACKAGE_XLIB_LIBXT + select BR2_PACKAGE_XPROTO_XPROXYMANAGEMENTPROTOCOL help xrx 1.0.1 X.Org xrx application --- package/x11r7/xapp_xinit/xapp_xinit-1.0.5-startx.patch (revision 0) +++ package/x11r7/xapp_xinit/xapp_xinit-1.0.5-startx.patch (revision 0) @@ -0,0 +1,24 @@ +--- a/startx.cpp 2008-11-05 00:38:00.000000000 +0100 ++++ b/startx.cpp 2008-11-05 00:42:41.000000000 +0100 +@@ -226,11 +226,19 @@ done + if [ "$REMOTE_SERVER" = "TRUE" ]; then + exec SHELL_CMD ${client} + else +- XINIT $client $clientargs -- $server $display $serverargs ++ XINIT $client $clientargs -- $server $display $serverargs & + fi + #else +-XINIT $client $clientargs -- $server $display $serverargs ++XINIT $client $clientargs -- $server $display $serverargs & + #endif ++{ ++sleep 1 ++XCOMM while pidof XINIT; do ++XCOMM XTERM -iconic -geometry 0x0+0+0 -bg gray -e true && break ++XCOMM sleep 1; ++XCOMM done ++killall -SIGUSR1 XINIT && fg ++} >/dev/null 2>&1 + + if [ x"$removelist" != x ]; then + XAUTH remove $removelist --- package/915resolution/915resolution.mk (revision 0) +++ package/915resolution/915resolution.mk (revision 0) @@ -0,0 +1,53 @@ +############################################################# +# +# 915resolution +# +############################################################# +915RESOLUTION_VERSION:=0.5.3 +915RESOLUTION_SOURCE:=915resolution-$(915RESOLUTION_VERSION).tar.gz +915RESOLUTION_SITE:=http://www.geocities.com/stomljen +915RESOLUTION_CAT:=$(ZCAT) +915RESOLUTION_DIR:=$(BUILD_DIR)/915resolution-$(915RESOLUTION_VERSION) +915RESOLUTION_BINARY:=915resolution +915RESOLUTION_TARGET_BINARY:=/usr/sbin/915resolution +915RESOLUTION_INCLUDE:=$(STAGING_DIR)/usr/include + +$(DL_DIR)/$(915RESOLUTION_SOURCE): + $(WGET) -P $(DL_DIR) $(915RESOLUTION_SITE)/$(915RESOLUTION_SOURCE) + +915resolution-source: $(DL_DIR)/$(915RESOLUTION_SOURCE) + +915resolution-unpacked: $(915RESOLUTION_DIR)/.unpacked + +$(915RESOLUTION_DIR)/.unpacked: $(DL_DIR)/$(915RESOLUTION_SOURCE) + $(915RESOLUTION_CAT) $(DL_DIR)/$(915RESOLUTION_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + touch $(915RESOLUTION_DIR)/.unpacked + +$(915RESOLUTION_DIR)/.configured: $(915RESOLUTION_DIR)/.unpacked + touch $(915RESOLUTION_DIR)/.configured + +$(915RESOLUTION_DIR)/$(915RESOLUTION_BINARY): $(915RESOLUTION_DIR)/.configured + $(MAKE) -C $(915RESOLUTION_DIR) + +$(TARGET_DIR)/$(915RESOLUTION_TARGET_BINARY): $(915RESOLUTION_DIR)/$(915RESOLUTION_BINARY) + $(INSTALL) -D $(915RESOLUTION_DIR)/$(915RESOLUTION_BINARY) $@ + $(STRIPCMD) $@ + +915resolution: uclibc $(TARGET_DIR)/$(915RESOLUTION_TARGET_BINARY) + @echo 2nd target: $(TARGET_DIR)/$(915RESOLUTION_TARGET_BINARY) + +915resolution-clean: + -rm -f $(TARGET_DIR)/$(915RESOLUTION_TARGET_BINARY) + -$(MAKE) -C $(915RESOLUTION_DIR) clean + +915resolution-dirclean: + rm -rf $(915RESOLUTION_DIR) + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(strip $(BR2_PACKAGE_915RESOLUTION)),y) +TARGETS+=915resolution +endif --- package/915resolution/Config.in (revision 0) +++ package/915resolution/Config.in (revision 0) @@ -0,0 +1,6 @@ +config BR2_PACKAGE_915RESOLUTION + bool "915resolution" + help + it is useful to hack intel 915 graphic chip bios + + http://www.geocities.com/stomljen --- package/fbv/fbv-1.0b-smartclear.patch (revision 0) +++ package/fbv/fbv-1.0b-smartclear.patch (revision 0) @@ -0,0 +1,103 @@ +--- a/fb_display.c 2008-11-07 09:57:27.000000000 +0100 ++++ b/fb_display.c 2008-11-07 09:56:33.000000000 +0100 +@@ -36,7 +36,7 @@ + * extern void fb_display(unsigned char *rgbbuff, + * int x_size, int y_size, + * int x_pan, int y_pan, +- * int x_offs, int y_offs); ++ * int x_offs, int y_offs, int clear); + * + * extern void getCurrentRes(int *x,int *y); + * +@@ -60,9 +60,9 @@ void blit2FB(int fh, void *fbbuff, unsig + unsigned int scr_xs, unsigned int scr_ys, + unsigned int xp, unsigned int yp, + unsigned int xoffs, unsigned int yoffs, +- int cpp); ++ int cpp, int clear); + +-void fb_display(unsigned char *rgbbuff, unsigned char * alpha, int x_size, int y_size, int x_pan, int y_pan, int x_offs, int y_offs) ++void fb_display(unsigned char *rgbbuff, unsigned char * alpha, int x_size, int y_size, int x_pan, int y_pan, int x_offs, int y_offs, int clear) + { + struct fb_var_screeninfo var; + struct fb_fix_screeninfo fix; +@@ -91,7 +91,7 @@ void fb_display(unsigned char *rgbbuff, + #if 0 + blit2FB(fh, fbbuff, alpha, x_size, y_size, x_stride, var.yres, x_pan, y_pan, x_offs, y_offs, bp); + #else +- blit2FB(fh, fbbuff, alpha, x_size, y_size, x_stride, var.yres_virtual, x_pan, y_pan, x_offs, y_offs + var.yoffset, bp); ++ blit2FB(fh, fbbuff, alpha, x_size, y_size, x_stride, var.yres_virtual, x_pan, y_pan, x_offs, y_offs + var.yoffset, bp, clear); + #endif + free(fbbuff); + +@@ -204,16 +204,16 @@ void blit2FB(int fh, void *fbbuff, unsig + unsigned int scr_xs, unsigned int scr_ys, + unsigned int xp, unsigned int yp, + unsigned int xoffs, unsigned int yoffs, +- int cpp) ++ int cpp, int clear) + { +- int i, xc, yc; ++ int i, xc, yc; + unsigned char *fb; + + unsigned char *fbptr; + unsigned char *imptr; + +- xc = (pic_xs > scr_xs) ? scr_xs : pic_xs; +- yc = (pic_ys > scr_ys) ? scr_ys : pic_ys; ++ xc = (pic_xs > scr_xs) ? scr_xs : pic_xs; ++ yc = (pic_ys > scr_ys) ? scr_ys : pic_ys; + + fb = mmap(NULL, scr_xs * scr_ys * cpp, PROT_WRITE | PROT_READ, MAP_SHARED, fh, 0); + +@@ -232,6 +232,13 @@ void blit2FB(int fh, void *fbbuff, unsig + fbptr = fb + (yoffs * scr_xs + xoffs) * cpp; + imptr = fbbuff + (yp * pic_xs + xp) * cpp; + ++ /* RAF: memset all the frame buffer is not the smartest way to clean the borders however ++ * it is smarter than previous method which shows black screen for too long time! ++ */ ++ ++ if (clear && (pic_xs < scr_xs || pic_ys < scr_ys)) ++ memset(fb, 0, scr_ys * scr_xs * cpp); ++ + if(alpha) + { + unsigned char * alphaptr; +--- a/fbv.h 2004-09-07 16:10:36.000000000 +0200 ++++ b/fbv.h 2008-11-07 09:50:35.000000000 +0100 +@@ -21,7 +21,7 @@ + #define FH_ERROR_FILE 1 /* read/access error */ + #define FH_ERROR_FORMAT 2 /* file format error */ + +-void fb_display(unsigned char *rgbbuff, unsigned char * alpha, int x_size, int y_size, int x_pan, int y_pan, int x_offs, int y_offs); ++void fb_display(unsigned char *rgbbuff, unsigned char * alpha, int x_size, int y_size, int x_pan, int y_pan, int x_offs, int y_offs, int clear); + void getCurrentRes(int *x, int *y); + + int fh_bmp_id(char *name); +--- a/main.c 2004-09-07 16:11:00.000000000 +0200 ++++ b/main.c 2008-11-07 09:46:42.000000000 +0100 +@@ -298,11 +298,13 @@ identified: + + x_pan = y_pan = 0; + refresh = 1; retransform = 0; ++/* RAF: please see the fb_display function in fb_display.c for a smarter clearing method + if(opt_clear) + { + printf("\033[H\033[J"); + fflush(stdout); + } ++*/ + if(opt_image_info) + printf("fbv - The Framebuffer Viewer\n%s\n%d x %d\n", filename, x_size, y_size); + } +@@ -318,7 +320,7 @@ identified: + else + y_offs = 0; + +- fb_display(i.rgb, i.alpha, i.width, i.height, x_pan, y_pan, x_offs, y_offs); ++ fb_display(i.rgb, i.alpha, i.width, i.height, x_pan, y_pan, x_offs, y_offs, opt_clear); + refresh = 0; + } + if(delay) --- package/fbset/fbset.mk (revision 23927) +++ package/fbset/fbset.mk (working copy) @@ -31,6 +31,8 @@ touch -c $@ fbset: uclibc $(TARGET_DIR)/$(FBSET_TARGET_BINARY) + $(INSTALL) -m 0644 $(LINUX26_DIR)/Documentation/fb/cyblafb/fb.modes $(TARGET_DIR)/etc/fb.modes.cybla + $(INSTALL) -m 0644 $(FBSET_DIR)/etc/fb.modes* $(TARGET_DIR)/etc fbset-source: $(DL_DIR)/$(FBSET_SOURCE) --- package/Config.in (revision 23927) +++ package/Config.in (working copy) @@ -333,6 +333,10 @@ source "package/fbv/Config.in" source "package/fbset/Config.in" +comment "video resolution helpers" +source "package/915resolution/Config.in" +source "package/v86d/Config.in" + comment "other GUIs" source "package/qte/Config.in" source "package/qtopia4/Config.in" --- Makefile (revision 23927) +++ Makefile (working copy) @@ -123,8 +123,8 @@ HOSTLN:=$(shell $(CONFIG_SHELL) -c "which $(HOSTLN)" || type -p $(HOSTLN) || echo ln) HOSTNM:=$(shell $(CONFIG_SHELL) -c "which $(HOSTNM)" || type -p $(HOSTNM) || echo nm) # ignore version in staging_dir -HOST_GLIB_BIN:=`dirname $(shell $(CONFIG_SHELL) -c "(which -a glib-genmarshal; echo /usr/bin/glib-genmarshal)|grep -v $(BR2_STAGING_DIR)|head -n 1")` -HOST_GLIB:=$(shell $(CONFIG_SHELL) -c "dirname $(HOST_GLIB_BIN)" || echo /usr) +HOST_GLIB_BIN:=$(dirname "$(shell $(CONFIG_SHELL) -c "(which -a glib-genmarshal; echo /usr/bin/glib-genmarshal)|grep -v '$(BR2_STAGING_DIR)'|head -n 1")") +HOST_GLIB:=$(shell $(CONFIG_SHELL) -c "dirname $(HOST_GLIB_BIN) 2>/dev/null" || echo /usr) ifndef CFLAGS_FOR_BUILD @@ -224,6 +224,14 @@ all: world +bugfix_copy: +# TODO: to fix this bug in the proper way + -@name=$$(find $(STAGING_DIR) -name 'libfreetype.so'); if [ "$$name" != "" ]; then \ + dest=$$(dirname $$name | sed -e "s,$(STAGING_DIR),$(TARGET_DIR),"); \ + cmnd=$(cp -af $$name* $$dest; $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $$dest/libfreetype.so); \ + echo "$$cmnd"; $$cmnd; fi + -@test -d $(TARGET_DIR)/boot/grub && cp -f target/iso9660/menu.lst $(TARGET_DIR)/boot/grub; true + # In this section, we need .config include .config.cmd @@ -281,10 +289,10 @@ $(BASE_TARGETS): dirs -world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS_ALL) +world: dependencies dirs target-host-info $(BASE_TARGETS) bugfix_copy $(TARGETS_ALL) -.PHONY: all world dirs clean dirclean distclean source \ +.PHONY: all world dirs clean dirclean distclean source bugfix_copy \ $(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \ $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \ $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \ @@ -325,7 +333,7 @@ touch $(STAGING_DIR)/.fakeroot.00000; \ fi -find $(TARGET_DIR) -type d -name CVS -o -name .svn | xargs rm -rf - -find $(TARGET_DIR) -type f -name .empty | xargs rm -rf + -find $(TARGET_DIR) -type f -name .empty -delete touch $@ $(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root @@ -342,6 +350,7 @@ find $(TARGET_DIR)/lib -name '*.a' -delete find $(TARGET_DIR)/usr/lib -name '*.la' -delete find $(TARGET_DIR)/lib -name '*.la' -delete + find $(TARGET_DIR) -type f -name '*~' -delete endif source: $(TARGETS_SOURCE) $(HOST_SOURCE) @@ -358,6 +367,15 @@ # Cleanup and misc junk # ############################################################# + +install: softclean all + +softclean: + rm -rf $(IMAGE) $(PROJECT_BUILD_DIR)/autotools-stamps + +rootclean: + rm -rf $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps + clean: $(TARGETS_CLEAN) rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps @@ -488,16 +506,24 @@ @echo Creating $(PROJECT)-`cat .lognr.$(PROJECT)`.log @$(MAKE) > $(PROJECT)-`cat .lognr.$(PROJECT)`.log 2>&1 +svnpatch: +# Experimental: use svn in order to produce an output which works for patch command + @svn diff | grep -ve "^Index: " -ve "^=\{67\}$$" | sed -e "/^Property changes on:/,+4 d" +svnpatchtest: + make svnpatch | patch -p0 -R --dry-run + cross: $(BASE_TARGETS) help: @echo 'Cleaning:' @echo ' clean - delete temporary files created by build' @echo ' distclean - delete all non-source files (including .config)' + @echo ' rootclean - delete all rootfs content' @echo @echo 'Build:' @echo ' all - make world' + @echo ' install - (re)install rootfs but not skeleton if it exists' @echo @echo 'Configuration:' @echo ' menuconfig - interactive curses-based configurator' @@ -507,10 +533,11 @@ @echo ' source - download all sources needed for offline-build' @echo ' source-check - check all packages for valid download URLs' @echo ' external-deps - list external packages used' + @echo ' svnpatch - like svn diff but this produces a usable patch' @echo @echo 'See docs/README and docs/buildroot.html for further details' @echo -.PHONY: dummy subdirs release distclean clean config oldconfig \ - menuconfig tags check test depend defconfig help +.PHONY: dummy subdirs release distclean clean config oldconfig svnpatch .config.cmd \ + menuconfig tags check test depend defconfig help rootclean softclean install