From 1afa4d43ca4d54cbbbc8e0e3573d2a048349a81f Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Sun, 19 Aug 2012 20:02:24 +0200 Subject: [PATCH] rootfs-light: new LXDE based target for x86, x86_64 and arm --- Makefile.defs | 2 + platforms/rootfs-light/Makefile | 36 +++++ platforms/rootfs-light/Makefile.defs | 2 + platforms/rootfs-light/post.inc.sh | 125 ++++++++++++++++++ platforms/rootfs-light/root/etc/dhcpd.conf | 30 +++++ .../rootfs-light/root/etc/sysconfig/dhcpd | 3 + platforms/rootfs-light/settings.inc | 27 ++++ 7 files changed, 225 insertions(+) create mode 100644 platforms/rootfs-light/Makefile create mode 100644 platforms/rootfs-light/Makefile.defs create mode 100644 platforms/rootfs-light/post.inc.sh create mode 100644 platforms/rootfs-light/root/etc/dhcpd.conf create mode 100644 platforms/rootfs-light/root/etc/sysconfig/dhcpd create mode 100644 platforms/rootfs-light/settings.inc diff --git a/Makefile.defs b/Makefile.defs index 5f9b586..286c0ec 100644 --- a/Makefile.defs +++ b/Makefile.defs @@ -68,6 +68,8 @@ xorgdrvinput = xorg-drv-input-void xorg-drv-input-synaptics xorg-drv-input-evdev # xorg-drv-input-mouse xorg-drv-input-keyboard xorg-drv-input-joystick xorg-drv-input-evtouch xorg-drv-input-vboxmouse libGL.so.1 = libGL-Mesa-dri libGLU.so.1 = libGL-Mesa-dri +libGL.so.1[][64bit] = libGL-Mesa-dri +libGLU.so.1[][64bit] = libGL-Mesa-dri splashtheme = splash-theme-openmamba diff --git a/platforms/rootfs-light/Makefile b/platforms/rootfs-light/Makefile new file mode 100644 index 0000000..d3f1e63 --- /dev/null +++ b/platforms/rootfs-light/Makefile @@ -0,0 +1,36 @@ +$(MAKEDIST_TARGET)-$(PLATFORM)-arm: \ + kernel-iconia kernel-iconia-modules kernel-hannspad kernel-hannspad-modules \ + kernel-mamba-arm kernel-mamba-arm-sound kernel-mamba-arm-wireless \ + kernel-mamba-arm-firmware brcm_patchram midori + +$(MAKEDIST_TARGET)-$(PLATFORM)-i586: \ + kernel-mamba kernel-mamba-sound kernel-mamba-wireless chromium \ + kernel-mamba-64GB kernel-mamba-64GB-sound kernel-mamba-64GB-wireless + +$(MAKEDIST_TARGET)-$(PLATFORM): \ + lxde openssh-server usbutils wireless_tools \ + parted iputils file rootfiles ppp minicom xinetd chrony locales mc \ + man-db curl zip unzip iptables iproute wpa_supplicant mtd-utils nfs-utils \ + openssh-clients binutils telnet ftp debianutils diffutils bluez traceroute \ + openmamba-devel timezone sudo syslog-ng sysvinit kmod \ + liblame expect prelink NetworkManager ModemManager procps \ + xorg-server x11vnc xkeyboard-config \ + xorg-drv-input-tslib xcursor-transparent-theme rpm smart xdg-utils \ + dhcp-server rfkill plymouth livecd-tools rdesktop \ + postplug-xorg postplug-sound gparted tar net-tools chrony mambatray kvkbd + +# startactive +# tightvnc-server lxde network-manager-applet matchbox-keyboard midori Mesa-tools alsa-utils +# embedded-devel embedded-debug \ +#mkfontscale vsftpd +#webmin +# FIXME: expect is a webmin prereq +# libACE: customer request +# NetworkManager strace gpsd + +# Localization targets +$(MAKEDIST_TARGET)-$(PLATFORM)-en: + +$(MAKEDIST_TARGET)-$(PLATFORM)-es: + +$(MAKEDIST_TARGET)-$(PLATFORM)-it: diff --git a/platforms/rootfs-light/Makefile.defs b/platforms/rootfs-light/Makefile.defs new file mode 100644 index 0000000..a9dd47d --- /dev/null +++ b/platforms/rootfs-light/Makefile.defs @@ -0,0 +1,2 @@ +packagekitgui = gnome-packagekit +firewallgui = gui-ufw diff --git a/platforms/rootfs-light/post.inc.sh b/platforms/rootfs-light/post.inc.sh new file mode 100644 index 0000000..7b89e15 --- /dev/null +++ b/platforms/rootfs-light/post.inc.sh @@ -0,0 +1,125 @@ +## disable tty virtual consoles +#sed -i "s|\(.:2345:respawn.*\)|#\1|" $MOUNTDIR/etc/inittab + +# configure for serial console login +#echo "s0:2345:respawn:/sbin/agetty -L -f /etc/issue 115200 tcc-uart0 vt100" >> $MOUNTDIR/etc/inittab + +# configure default root password +echo "openmamba" | chroot $MOUNTDIR passwd root --stdin + +# add fstab entries +#cat >> $MOUNTDIR/etc/fstab << _EOF +#/dev/mmcblk0p1 /mnt/sd0 auto defaults,noauto 0 0 +#_EOF +#mkdir $MOUNTDIR/mnt/{ndda1,ndda2,sd0,sda1,sda2} + +# disable nfs +#chroot $MOUNTDIR chkconfig --del nfslock +#chroot $MOUNTDIR chkconfig --del portmap +#chroot $MOUNTDIR chkconfig --del ts-calibrate + +## disable random +#chroot $MOUNTDIR chkconfig --del random + +## enable ftp server +#sed -i "s|\(.*disable[[:space:]]*= \)yes|\1no|" $MOUNTDIR/etc/xinetd.d/vsftpd +#sed -i "s|#local_enable|local_enable|" $NOUNTDIR/etc/vsftpd.conf +#sed -i "s|#write_enable|write_enable|" $NOUNTDIR/etc/vsftpd.conf +#sed -i "/root/d" $MOUNTDIR/etc/vsftpd/user_list +#sed -i "/root/d" $MOUNTDIR/etc/vsftpd/chroot-list + +## remove alsa configuration for now +#rm $MOUNTDIR/etc/asound.conf + +# remove some services +#rm -f $MOUNTDIR/etc/rc?.d/???{iptables,acpid} + +## generate RPM scripts first time execution +#make_rpm_first_time_script "\ +#chkconfig --del acpid +#chkconfig --del alsa +#chkconfig --del iptables +#chkconfig --del nfslock +#chkconfig --del portmap +#" + +## use system default language +#> $MOUNTDIR/etc/sysconfig/i18n + +# set localtime (default to Europe/Berlin) +case $LANGUAGE in + it) timezone=Europe/Rome ;; + es) timezone=Europe/Madrid ;; + *) timezone=Europe/Berlin ;; +esac +echo $timezone > $MOUNTDIR/etc/timezone +cp /usr/share/zoneinfo/$timezone $MOUNTDIR/etc/localtime + +if [ ! "$KERNEL_IGNORE" ]; then + # run depmod + chroot $MOUNTDIR depmod -a ${KERNEL_MAJVER}-${KERNEL_EXTRAVER} +fi + +# disable automatic depmod and ldconfig execution on boot (also due to clock error) +cat >> $MOUNTDIR/etc/sysconfig/rc << _EOF +no_auto_depmod=1 +no_auto_ldconfig=1 +_EOF + +# configure touchscreen +cat > $MOUNTDIR/etc/ts-calibrate.conf << _EOF +TSLIB_CONFFILE=/etc/ts.conf +TSLIB_CONSOLEDEVICE=none +TSLIB_FBDEVICE=/dev/fb0 +TSLIB_TSDEVICE=/dev/input/event0 +TSLIB_CALIBFILE=/etc/pointercal +HOME=/root +_EOF + +# change inittab so it opens tty root shells instead of asking for login +# +echo "Forcing \`inittab' to open tty root shells with no login..." +#sed -i 's,^1:.*,1:2345:respawn:/sbin/mingetty --autologin root --noclear tty1,' $MOUNTDIR/etc/inittab +sed -i 's,^1:.*,1:234:respawn:/sbin/agetty tty1 9600,' $MOUNTDIR/etc/inittab +sed -i 's,^2:.*,2:2345:respawn:/sbin/agetty tty2 9600,' $MOUNTDIR/etc/inittab +sed -i 's,^3:.*,3:2345:respawn:/sbin/agetty ttyS0 9600,' $MOUNTDIR/etc/inittab +sed -i 's,^4:.*,4:2345:respawn:/sbin/agetty ttyGS0 9600,' $MOUNTDIR/etc/inittab +sed -i 's,^5:.*,5:2345:respawn:/sbin/agetty ttyAMA0 9600,' $MOUNTDIR/etc/inittab +sed -i '/^[5-6]:.*/d' $MOUNTDIR/etc/inittab + +# configure for runlevel 5 boot +sed -i "s|id:3\(:initdefault.*\)|id:5\1|" $MOUNTDIR/etc/inittab + +# configure LXDM for autologin +# +sed -i "s|# autologin.*|autologin=liveuser|" $MOUNTDIR/etc/lxdm/lxdm.conf + +# set timezone according to LANGUAGE (default is UTC) +# +case $LANGUAGE in + it) timezone=Europe/Rome ;; + es) timezone=Europe/Madrid ;; + *) timezone=UTC ;; +esac +echo $timezone > $MOUNTDIR/etc/timezone +cp $MOUNTDIR/usr/share/zoneinfo/$timezone $MOUNTDIR/etc/localtime + +# remove some documentation to save space +for f in ChangeLog Changelog CHANGES TODO NEWS README README.txt; do + find $MOUNTDIR/usr/share/doc -name $f -exec rm -f {} \; +done + +# disable filesystem autocheck due to a kernel bug in hannspad (blkid generated kernel crash) +if [ "$ARCH" = "arm" ]; then + sed -i "s|FS_PARTS_UPDATE=yes|FS_PARTS_UPDATE=no|" $MOUNTDIR/etc/sysconfig/postplug + sed -i "s|FS_SWAP_UPDATE=yes|FS_SWAP_UPDATE=no|" $MOUNTDIR/etc/sysconfig/postplug +fi + +# FIXME: this should be done by postplug only when touchscreen is detected +mkdir -p $MOUNTDIR/home/liveuser/.icons/default +cat > $MOUNTDIR/home/liveuser/.icons/default/index.theme << _EOF +[Icon Theme] +Inherits=xcursor-transparent +_EOF + +prelink diff --git a/platforms/rootfs-light/root/etc/dhcpd.conf b/platforms/rootfs-light/root/etc/dhcpd.conf new file mode 100644 index 0000000..6bfe540 --- /dev/null +++ b/platforms/rootfs-light/root/etc/dhcpd.conf @@ -0,0 +1,30 @@ +#ddns-update-style ad-hoc; +ignore client-updates; + +subnet 10.99.99.0 netmask 255.255.255.0 { +# --- default gateway +# option routers 192.168.0.254; +# option subnet-mask 255.255.255.0; +# +# option nis-domain "domain.it"; +# option domain-name "domain.it"; +# option domain-name-servers 192.168.0.254; +# +# option time-offset -18000; # Eastern Standard Time +# option ntp-servers 192.168.0.1; +# option netbios-name-servers 192.168.0.1; +# --- Selects point-to-point node (default is hybrid). Don't change this unless +# -- you understand Netbios very well +# option netbios-node-type 2; +# + range dynamic-bootp 10.99.99.100 10.99.99.199; + default-lease-time 21600; + max-lease-time 43200; +# +# # we want the nameserver to appear at a fixed address +# host ns { +# next-server dns.domain.it; +# hardware ethernet 01:23:45:67:89:AB; +# fixed-address 1.2.3.4; +# } +} diff --git a/platforms/rootfs-light/root/etc/sysconfig/dhcpd b/platforms/rootfs-light/root/etc/sysconfig/dhcpd new file mode 100644 index 0000000..92a5b74 --- /dev/null +++ b/platforms/rootfs-light/root/etc/sysconfig/dhcpd @@ -0,0 +1,3 @@ +# Command line options here +DHCPDIFS="usb0" +DHCPDARGS= diff --git a/platforms/rootfs-light/settings.inc b/platforms/rootfs-light/settings.inc new file mode 100644 index 0000000..698968a --- /dev/null +++ b/platforms/rootfs-light/settings.inc @@ -0,0 +1,27 @@ +if [ "$ARCH" = "arm" ]; then + KERNEL_EXTRAVER= + #KERNEL_PLATFORM="" + KERNEL_ADDITIONAL="" + KERNEL_IGNORE=true +elif [ "$ARCH" = "i586" ]; then + KERNEL_EXTRAVER=mamba + KERNEL_PLATFORM="" + #KERNEL_ADDITIONAL="extramodules sound" + KERNEL_MORE_EXTRAVER=mamba-64GB +elif [ "$ARCH" = "x86_64" ]; then + KERNEL_EXTRAVER=mamba-x86_64 + KERNEL_PLATFORM="" + #KERNEL_ADDITIONAL="extramodules sound" + KERNEL_MORE_EXTRAVER= +fi +APPLICATION_TARGET="" +MEDIA=archive_xz +#ARCH=arm +#INSTALL_PACKAGES="bash" +BUILD_MISSING=true +TARGET_HOSTNAME=openmamba-rootfs-light +#rpmextraargs="--noscripts" +#DEBUG=1 +#DEVEL=1 +KEEP_RPM=1 +#RPM=rpm