# # Werner's customized development root FS. # # Highlights: # - no GUI or fancy system daemons # - has lots of exploration tools used (only) for system-level development # - wherever possible, installs full versions of programs, not busybox # # ----- paths ----------------------------------------------------------------- root calypso=http://people.openmoko.org/joerg/calypso_moko_FW/ my=$SVN/developers/werner # ----- basic setup ----------------------------------------------------------- pkg udev procps pkg task-proper-tools # OE.net's talk-proper-tools already has the following packages in # task-proper-tools, but OM.org hasn't caught up with it yet pkg net-tools iproute2 iputils-ping psmisc debianutils tcptraceroute pkg grep bash debianutils pkg mtd-utils sysfsutils apm pkg e2fsprogs-mke2fs e2fsprogs-tune2fs pkg openssh ntpdate netkit-telnet bind-utils pkg dhcp-client wireless-tools wpa-supplicant pkg portmap ppp rsync pkg alsa-state alsa-utils-alsamixer alsa-utils-alsactl alsa-utils-aplay pkg file pkg opkg gzip pkg perl python make pkg xserver-kdrive-glamo xset xhost xdpyinfo # ----- general exploration tools --------------------------------------------- pkg s3c24xx-gpio pkg gdb strace ldd make -C $my/poke clean all cp $my/poke/poke usr/bin make -C $my/pmu clean all cp $my/pmu/pmu usr/bin make -C $my/wkalrm clean all cp $my/wkalrm/wkalrm usr/bin ln -s /usr/sbin/s3c24xx-gpio usr/bin/gpio # ----- fun with GSM ---------------------------------------------------------- pkg $calypso/fluid_0.0+svn20070817-r2_armv4t_eabi.ipk pkg cu #echo "uucp:*:2:2:uucp:/:/bin/true" >>etc/passwd #chown 2 dev/ttySAC0 # ----- network testing ------------------------------------------------------- pkg tcpdump wmiconfig make -C $my/ttcp clean all cp $my/ttcp/ttcp-1.12/ttcp usr/bin make -C $my/owping clean all cp $my/owping/owping usr/bin cp $my/bin/wlanscan usr/bin # ----- for u-boot ------------------------------------------------------------ make -C $SVN/trunk/src/host/envedit clean all cp $SVN/trunk/src/host/envedit/envedit usr/bin cp $my/neobin/envi usr/bin # ----- create /sbin/init ----------------------------------------------------- # inspired by kboot's scripts/kboot cp $my/myroot/werner.init sbin/init # ----- set up sshd ----------------------------------------------------------- # @@@ cache the keys ? mkdir -p etc/ssh ssh-keygen -t rsa1 -f etc/ssh/ssh_host_key -N "" ssh-keygen -t dsa -f etc/ssh/ssh_host_dsa_key -N "" ssh-keygen -t rsa -f etc/ssh/ssh_host_rsa_key -N "" echo "sshd:*:1:1:SSH:/:/bin/true" >>etc/passwd mkdir -p var/run/sshd # ----- enable passwordless SSH entry ----------------------------------------- cd home/root mkdir .ssh chmod 700 .ssh cp $HOME/.ssh/id_rsa.pub .ssh/authorized_keys root # ----- install things we don't have in the feed yet -------------------------- # only df is missing now ! # ----- copy configuration files from the host -------------------------------- cp /etc/hosts etc/hosts cp /etc/services etc/services # cp /etc/resolv.conf etc/resolv.conf # prefer to hard-code it here cat <>etc/resolv.conf # opendns nameserver 208.67.222.222 nameserver 208.67.220.220 EOF # prevent DHCP from messing with it chmod 444 etc/resolv.conf # ----- shell init ------------------------------------------------------------ sed -i 's|/bin/sh|/bin/bash|' etc/passwd cat <home/root/.bash_profile [ "\${PS1#con}" = "\$PS1" ] && PS1='ssh:\w\\\$ ' export PS1 EOF # ----- save some space ------------------------------------------------------- rm usr/lib/opkg/lists/* rm -rf usr/share/vim ln -sf uptime.procps usr/bin/uptime # ----- miscellaneous --------------------------------------------------------- ln -s bash bin/sh # vim gets a little confused on the console. Fortunately, this is easy to fix: # see http://vt100.net/docs/vt102-ug/chapter5.html # restore cursor, reset scrolling region, restore cursor cat <usr/bin/vi #!/bin/sh /usr/bin/vim "\$@" code=\$? echo -ne '\e7\e[;r\e8' exit \$? EOF chmod 755 usr/bin/vi # seems that we've reached the limits of the update-alternatives hack ;-) for n in sbin/*.26; do mv $n sbin/`basename $n .26` done echo "audio:*:10:" >>etc/group # -----------------------------------------------------------------------------