Difference between revisions of "DockStar"
(8 intermediate revisions by 2 users not shown) | |||
Line 65: | Line 65: | ||
(The <code>dockstar.debian.squeeze.sh</code> script puts an ext2 filesystem in <code>/dev/sda1</code>, uses debootstrap to put a base Debian installation on it. It also puts an unlocked u-Boot bootloader, a Debian kernel image, and a tiny recovery filesystem into the Dockstar's NAND flash.) |
(The <code>dockstar.debian.squeeze.sh</code> script puts an ext2 filesystem in <code>/dev/sda1</code>, uses debootstrap to put a base Debian installation on it. It also puts an unlocked u-Boot bootloader, a Debian kernel image, and a tiny recovery filesystem into the Dockstar's NAND flash.) |
||
+ | == Installation transcript == |
||
Here is a transcript of an installation being performed on canopus, a DockStar with Ethernet MAC address 00:10:75:1a:0e:a6: |
Here is a transcript of an installation being performed on canopus, a DockStar with Ethernet MAC address 00:10:75:1a:0e:a6: |
||
+ | -bash-3.2# ./dockstar.debian-squeeze.sh |
||
+ | |||
+ | |||
+ | !!!!!! DANGER DANGER DANGER DANGER DANGER DANGER !!!!!! |
||
+ | |||
+ | This script will replace the bootloader on /dev/mtd0. |
||
+ | |||
+ | If you lose power while the bootloader is being flashed, |
||
+ | your device could be left in an unusable state. |
||
+ | |||
+ | |||
+ | This script will configure your Dockstar to boot Debian Squeeze |
||
+ | from a USB device. Before running this script, you should have |
||
+ | used fdisk to create the following partitions: |
||
+ | |||
+ | /dev/sda1 (Linux ext2, at least 400MB) |
||
+ | /dev/sda2 (Linux swap, recommended 256MB) |
||
+ | |||
+ | |||
+ | This script will DESTROY ALL EXISTING DATA on /dev/sda1 |
||
+ | Please double check that the device on /dev/sda1 is the correct device. |
||
+ | |||
+ | By typing ok, you agree to assume all liabilities and risks |
||
+ | associated with running this installer. |
||
+ | If everything looks good, type 'ok' to continue: ok |
||
+ | Installing Bootloader |
||
+ | # checking for /usr/sbin/nandwrite... |
||
+ | # checking for /usr/sbin/nanddump... |
||
+ | # checking for /usr/sbin/flash_erase... |
||
+ | # checking for /usr/sbin/fw_printenv... |
||
+ | # checking for /etc/fw_env.config... |
||
+ | |||
+ | # Validating existing uBoot... |
||
+ | Block size 131072, page size 2048, OOB size 64 |
||
+ | Dumping data starting at 0x00000000 and ending at 0x00080000... |
||
+ | Connecting to jeff.doozan.com (69.163.187.226:80) |
||
+ | valid-uboot.md5 100% |*************************************************************************************************************| 756 --:--:-- ETA |
||
+ | ## Valid uBoot detected: [dockstar jeff-2010-10-23-current ebd566de30c6521e65fb1255415c037f pogov1 jeff-2010-10-23-current] |
||
+ | ## The newest uBoot is already installed on mtd0. |
||
+ | |||
+ | # uBoot installation has completed successfully. |
||
+ | # checking for /sbin/mke2fs... |
||
+ | |||
+ | # Installing /sbin/mke2fs... |
||
+ | Connecting to jeff.doozan.com (69.163.187.226:80) |
||
+ | mke2fs.md5 100% |*************************************************************************************************************| 41 --:--:-- ETA |
||
+ | Connecting to jeff.doozan.com (69.163.187.226:80) |
||
+ | mke2fs 100% |*************************************************************************************************************| 393k 00:00:00 ETA |
||
+ | # Successfully installed /sbin/mke2fs. |
||
+ | mke2fs 1.41.12 (17-May-2010) |
||
+ | Filesystem label= |
||
+ | OS type: Linux |
||
+ | Block size=4096 (log=2) |
||
+ | Fragment size=4096 (log=2) |
||
+ | Stride=0 blocks, Stripe width=0 blocks |
||
+ | 32768 inodes, 131072 blocks |
||
+ | 6553 blocks (5.00%) reserved for the super user |
||
+ | First data block=0 |
||
+ | Maximum filesystem blocks=134217728 |
||
+ | 4 block groups |
||
+ | 32768 blocks per group, 32768 fragments per group |
||
+ | 8192 inodes per group |
||
+ | Superblock backups stored on blocks: |
||
+ | 32768, 98304 |
||
+ | |||
+ | Writing inode tables: done |
||
+ | Writing superblocks and filesystem accounting information: done |
||
+ | |||
+ | This filesystem will be automatically checked every 25 mounts or |
||
+ | 180 days, whichever comes first. Use tune2fs -c or -i to override. |
||
+ | Setting up swapspace version 1, size = 536866816 bytes |
||
+ | |||
+ | |||
+ | # Starting debootstrap installation |
||
+ | I: Retrieving Release |
||
+ | I: Retrieving Packages |
||
+ | I: Validating Packages |
||
+ | I: Resolving dependencies of required packages... |
||
+ | I: Resolving dependencies of base packages... |
||
+ | I: Found additional required dependencies: insserv libbz2-1.0 libdb4.8 libslang2 |
||
+ | I: Found additional base dependencies: adduser cpio debian-archive-keyring devio gnupg gpgv initramfs-tools klibc-utils libbsd0 libcap2 libedit2 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libklibc libkrb5-3 libkrb5support0 libncursesw5 libreadline6 libssl0.9.8 libudev0 libusb-0.1-4 libuuid-perl libwrap0 linux-base linux-image-2.6.32-5-kirkwood openssh-blacklist openssh-client procps readline-common vim-common |
||
+ | I: Checking component main on http://cdn.debian.net/debian... |
||
+ | I: Retrieving libacl1 |
||
+ | I: Validating libacl1 |
||
+ | I: Retrieving adduser |
||
+ | I: Validating adduser |
||
+ | I: Retrieving apt |
||
+ | I: Validating apt |
||
+ | I: Retrieving libattr1 |
||
+ | I: Validating libattr1 |
||
+ | I: Retrieving base-files |
||
+ | I: Validating base-files |
||
+ | I: Retrieving base-passwd |
||
+ | I: Validating base-passwd |
||
+ | I: Retrieving bash |
||
+ | I: Validating bash |
||
+ | I: Retrieving libbz2-1.0 |
||
+ | I: Validating libbz2-1.0 |
||
+ | I: Retrieving coreutils |
||
+ | I: Validating coreutils |
||
+ | I: Retrieving cpio |
||
+ | I: Validating cpio |
||
+ | I: Retrieving dash |
||
+ | I: Validating dash |
||
+ | I: Retrieving libdb4.8 |
||
+ | I: Validating libdb4.8 |
||
+ | I: Retrieving debconf-i18n |
||
+ | I: Validating debconf-i18n |
||
+ | I: Retrieving debconf |
||
+ | I: Validating debconf |
||
+ | I: Retrieving debian-archive-keyring |
||
+ | I: Validating debian-archive-keyring |
||
+ | I: Retrieving debianutils |
||
+ | I: Validating debianutils |
||
+ | I: Retrieving devio |
||
+ | I: Validating devio |
||
+ | I: Retrieving dhcpcd |
||
+ | I: Validating dhcpcd |
||
+ | I: Retrieving diffutils |
||
+ | I: Validating diffutils |
||
+ | I: Retrieving dpkg |
||
+ | I: Validating dpkg |
||
+ | I: Retrieving e2fslibs |
||
+ | I: Validating e2fslibs |
||
+ | I: Retrieving e2fsprogs |
||
+ | I: Validating e2fsprogs |
||
+ | I: Retrieving libcomerr2 |
||
+ | I: Validating libcomerr2 |
||
+ | I: Retrieving libss2 |
||
+ | I: Validating libss2 |
||
+ | I: Retrieving libc-bin |
||
+ | I: Validating libc-bin |
||
+ | I: Retrieving libc6 |
||
+ | I: Validating libc6 |
||
+ | I: Retrieving findutils |
||
+ | I: Validating findutils |
||
+ | I: Retrieving flash-kernel |
||
+ | I: Validating flash-kernel |
||
+ | I: Retrieving gcc-4.4-base |
||
+ | I: Validating gcc-4.4-base |
||
+ | I: Retrieving libgcc1 |
||
+ | I: Validating libgcc1 |
||
+ | I: Retrieving libstdc++6 |
||
+ | I: Validating libstdc++6 |
||
+ | I: Retrieving gnupg |
||
+ | I: Validating gnupg |
||
+ | I: Retrieving gpgv |
||
+ | I: Validating gpgv |
||
+ | I: Retrieving grep |
||
+ | I: Validating grep |
||
+ | I: Retrieving gzip |
||
+ | I: Validating gzip |
||
+ | I: Retrieving hostname |
||
+ | I: Validating hostname |
||
+ | I: Retrieving ifupdown |
||
+ | I: Validating ifupdown |
||
+ | I: Retrieving initramfs-tools |
||
+ | I: Validating initramfs-tools |
||
+ | I: Retrieving insserv |
||
+ | I: Validating insserv |
||
+ | I: Retrieving iproute |
||
+ | I: Validating iproute |
||
+ | I: Retrieving iputils-ping |
||
+ | I: Validating iputils-ping |
||
+ | I: Retrieving libkeyutils1 |
||
+ | I: Validating libkeyutils1 |
||
+ | I: Retrieving klibc-utils |
||
+ | I: Validating klibc-utils |
||
+ | I: Retrieving libklibc |
||
+ | I: Validating libklibc |
||
+ | I: Retrieving libgssapi-krb5-2 |
||
+ | I: Validating libgssapi-krb5-2 |
||
+ | I: Retrieving libk5crypto3 |
||
+ | I: Validating libk5crypto3 |
||
+ | I: Retrieving libkrb5-3 |
||
+ | I: Validating libkrb5-3 |
||
+ | I: Retrieving libkrb5support0 |
||
+ | I: Validating libkrb5support0 |
||
+ | I: Retrieving linux-base |
||
+ | I: Validating linux-base |
||
+ | I: Retrieving linux-image-2.6.32-5-kirkwood |
||
+ | I: Validating linux-image-2.6.32-5-kirkwood |
||
+ | I: Retrieving linux-image-2.6-kirkwood |
||
+ | I: Validating linux-image-2.6-kirkwood |
||
+ | I: Retrieving lsb-base |
||
+ | I: Validating lsb-base |
||
+ | I: Retrieving libbsd0 |
||
+ | I: Validating libbsd0 |
||
+ | I: Retrieving libcap2 |
||
+ | I: Validating libcap2 |
||
+ | I: Retrieving libedit2 |
||
+ | I: Validating libedit2 |
||
+ | I: Retrieving liblocale-gettext-perl |
||
+ | I: Validating liblocale-gettext-perl |
||
+ | I: Retrieving libselinux1 |
||
+ | I: Validating libselinux1 |
||
+ | I: Retrieving libsepol1 |
||
+ | I: Validating libsepol1 |
||
+ | I: Retrieving libtext-charwidth-perl |
||
+ | I: Validating libtext-charwidth-perl |
||
+ | I: Retrieving libtext-iconv-perl |
||
+ | I: Validating libtext-iconv-perl |
||
+ | I: Retrieving libtext-wrapi18n-perl |
||
+ | I: Validating libtext-wrapi18n-perl |
||
+ | I: Retrieving libusb-0.1-4 |
||
+ | I: Validating libusb-0.1-4 |
||
+ | I: Retrieving libuuid-perl |
||
+ | I: Validating libuuid-perl |
||
+ | I: Retrieving mawk |
||
+ | I: Validating mawk |
||
+ | I: Retrieving module-init-tools |
||
+ | I: Validating module-init-tools |
||
+ | I: Retrieving libncurses5 |
||
+ | I: Validating libncurses5 |
||
+ | I: Retrieving libncursesw5 |
||
+ | I: Validating libncursesw5 |
||
+ | I: Retrieving ncurses-base |
||
+ | I: Validating ncurses-base |
||
+ | I: Retrieving ncurses-bin |
||
+ | I: Validating ncurses-bin |
||
+ | I: Retrieving net-tools |
||
+ | I: Validating net-tools |
||
+ | I: Retrieving netbase |
||
+ | I: Validating netbase |
||
+ | I: Retrieving ntpdate |
||
+ | I: Validating ntpdate |
||
+ | I: Retrieving openssh-blacklist |
||
+ | I: Validating openssh-blacklist |
||
+ | I: Retrieving openssh-client |
||
+ | I: Validating openssh-client |
||
+ | I: Retrieving openssh-server |
||
+ | I: Validating openssh-server |
||
+ | I: Retrieving libssl0.9.8 |
||
+ | I: Validating libssl0.9.8 |
||
+ | I: Retrieving libpam-modules |
||
+ | I: Validating libpam-modules |
||
+ | I: Retrieving libpam-runtime |
||
+ | I: Validating libpam-runtime |
||
+ | I: Retrieving libpam0g |
||
+ | I: Validating libpam0g |
||
+ | I: Retrieving perl-base |
||
+ | I: Validating perl-base |
||
+ | I: Retrieving procps |
||
+ | I: Validating procps |
||
+ | I: Retrieving libreadline6 |
||
+ | I: Validating libreadline6 |
||
+ | I: Retrieving readline-common |
||
+ | I: Validating readline-common |
||
+ | I: Retrieving sed |
||
+ | I: Validating sed |
||
+ | I: Retrieving sensible-utils |
||
+ | I: Validating sensible-utils |
||
+ | I: Retrieving login |
||
+ | I: Validating login |
||
+ | I: Retrieving passwd |
||
+ | I: Validating passwd |
||
+ | I: Retrieving libslang2 |
||
+ | I: Validating libslang2 |
||
+ | I: Retrieving initscripts |
||
+ | I: Validating initscripts |
||
+ | I: Retrieving sysv-rc |
||
+ | I: Validating sysv-rc |
||
+ | I: Retrieving sysvinit-utils |
||
+ | I: Validating sysvinit-utils |
||
+ | I: Retrieving sysvinit |
||
+ | I: Validating sysvinit |
||
+ | I: Retrieving tar |
||
+ | I: Validating tar |
||
+ | I: Retrieving libwrap0 |
||
+ | I: Validating libwrap0 |
||
+ | I: Retrieving libudev0 |
||
+ | I: Validating libudev0 |
||
+ | I: Retrieving bsdutils |
||
+ | I: Validating bsdutils |
||
+ | I: Retrieving libblkid1 |
||
+ | I: Validating libblkid1 |
||
+ | I: Retrieving libuuid1 |
||
+ | I: Validating libuuid1 |
||
+ | I: Retrieving mount |
||
+ | I: Validating mount |
||
+ | I: Retrieving liblzma2 |
||
+ | I: Validating liblzma2 |
||
+ | I: Retrieving tzdata |
||
+ | I: Validating tzdata |
||
+ | I: Retrieving uboot-envtools |
||
+ | I: Validating uboot-envtools |
||
+ | I: Retrieving uboot-mkimage |
||
+ | I: Validating uboot-mkimage |
||
+ | I: Retrieving udev |
||
+ | I: Validating udev |
||
+ | I: Retrieving util-linux |
||
+ | I: Validating util-linux |
||
+ | I: Retrieving vim-common |
||
+ | I: Validating vim-common |
||
+ | I: Retrieving vim-tiny |
||
+ | I: Validating vim-tiny |
||
+ | I: Retrieving wget |
||
+ | I: Validating wget |
||
+ | I: Retrieving xz-utils |
||
+ | I: Validating xz-utils |
||
+ | I: Retrieving zlib1g |
||
+ | I: Validating zlib1g |
||
+ | I: Chosen extractor for .deb packages: ar |
||
+ | I: Extracting libacl1... |
||
+ | I: Extracting libattr1... |
||
+ | I: Extracting base-files... |
||
+ | I: Extracting base-passwd... |
||
+ | I: Extracting bash... |
||
+ | I: Extracting libbz2-1.0... |
||
+ | I: Extracting coreutils... |
||
+ | I: Extracting dash... |
||
+ | I: Extracting libdb4.8... |
||
+ | I: Extracting debconf-i18n... |
||
+ | I: Extracting debconf... |
||
+ | I: Extracting debianutils... |
||
+ | I: Extracting diffutils... |
||
+ | I: Extracting dpkg... |
||
+ | I: Extracting e2fslibs... |
||
+ | I: Extracting e2fsprogs... |
||
+ | I: Extracting libcomerr2... |
||
+ | I: Extracting libss2... |
||
+ | I: Extracting libc-bin... |
||
+ | I: Extracting libc6... |
||
+ | I: Extracting findutils... |
||
+ | I: Extracting gcc-4.4-base... |
||
+ | I: Extracting libgcc1... |
||
+ | I: Extracting libstdc++6... |
||
+ | I: Extracting grep... |
||
+ | I: Extracting gzip... |
||
+ | I: Extracting hostname... |
||
+ | I: Extracting insserv... |
||
+ | I: Extracting lsb-base... |
||
+ | I: Extracting liblocale-gettext-perl... |
||
+ | I: Extracting libselinux1... |
||
+ | I: Extracting libsepol1... |
||
+ | I: Extracting libtext-charwidth-perl... |
||
+ | I: Extracting libtext-iconv-perl... |
||
+ | I: Extracting libtext-wrapi18n-perl... |
||
+ | I: Extracting mawk... |
||
+ | I: Extracting libncurses5... |
||
+ | I: Extracting ncurses-base... |
||
+ | I: Extracting ncurses-bin... |
||
+ | I: Extracting libpam-modules... |
||
+ | I: Extracting libpam-runtime... |
||
+ | I: Extracting libpam0g... |
||
+ | I: Extracting perl-base... |
||
+ | I: Extracting sed... |
||
+ | I: Extracting sensible-utils... |
||
+ | I: Extracting login... |
||
+ | I: Extracting passwd... |
||
+ | I: Extracting libslang2... |
||
+ | I: Extracting initscripts... |
||
+ | I: Extracting sysv-rc... |
||
+ | I: Extracting sysvinit-utils... |
||
+ | I: Extracting sysvinit... |
||
+ | I: Extracting tar... |
||
+ | I: Extracting bsdutils... |
||
+ | I: Extracting libblkid1... |
||
+ | I: Extracting libuuid1... |
||
+ | I: Extracting mount... |
||
+ | I: Extracting liblzma2... |
||
+ | I: Extracting tzdata... |
||
+ | I: Extracting util-linux... |
||
+ | I: Extracting xz-utils... |
||
+ | I: Extracting zlib1g... |
||
+ | I: Installing core packages... |
||
+ | I: Unpacking required packages... |
||
+ | I: Unpacking libacl1... |
||
+ | I: Unpacking libattr1... |
||
+ | I: Unpacking base-files... |
||
+ | I: Unpacking base-passwd... |
||
+ | I: Unpacking bash... |
||
+ | I: Unpacking libbz2-1.0... |
||
+ | I: Unpacking coreutils... |
||
+ | I: Unpacking dash... |
||
+ | I: Unpacking libdb4.8... |
||
+ | I: Unpacking debconf-i18n... |
||
+ | I: Unpacking debconf... |
||
+ | I: Unpacking debianutils... |
||
+ | I: Unpacking diffutils... |
||
+ | I: Unpacking dpkg... |
||
+ | I: Unpacking e2fslibs... |
||
+ | I: Unpacking e2fsprogs... |
||
+ | I: Unpacking libcomerr2... |
||
+ | I: Unpacking libss2... |
||
+ | I: Unpacking libc-bin... |
||
+ | I: Unpacking libc6... |
||
+ | I: Unpacking findutils... |
||
+ | I: Unpacking gcc-4.4-base... |
||
+ | I: Unpacking libgcc1... |
||
+ | I: Unpacking libstdc++6... |
||
+ | I: Unpacking grep... |
||
+ | I: Unpacking gzip... |
||
+ | I: Unpacking hostname... |
||
+ | I: Unpacking insserv... |
||
+ | I: Unpacking lsb-base... |
||
+ | I: Unpacking liblocale-gettext-perl... |
||
+ | I: Unpacking libselinux1... |
||
+ | I: Unpacking libsepol1... |
||
+ | I: Unpacking libtext-charwidth-perl... |
||
+ | I: Unpacking libtext-iconv-perl... |
||
+ | I: Unpacking libtext-wrapi18n-perl... |
||
+ | I: Unpacking mawk... |
||
+ | I: Unpacking libncurses5... |
||
+ | I: Unpacking ncurses-base... |
||
+ | I: Unpacking ncurses-bin... |
||
+ | I: Unpacking libpam-modules... |
||
+ | I: Unpacking libpam-runtime... |
||
+ | I: Unpacking libpam0g... |
||
+ | I: Unpacking perl-base... |
||
+ | I: Unpacking sed... |
||
+ | I: Unpacking sensible-utils... |
||
+ | I: Unpacking login... |
||
+ | I: Unpacking passwd... |
||
+ | I: Unpacking libslang2... |
||
+ | I: Unpacking initscripts... |
||
+ | I: Unpacking sysv-rc... |
||
+ | I: Unpacking sysvinit-utils... |
||
+ | I: Unpacking sysvinit... |
||
+ | I: Unpacking tar... |
||
+ | I: Unpacking bsdutils... |
||
+ | I: Unpacking libblkid1... |
||
+ | I: Unpacking libuuid1... |
||
+ | I: Unpacking mount... |
||
+ | I: Unpacking liblzma2... |
||
+ | I: Unpacking tzdata... |
||
+ | I: Unpacking util-linux... |
||
+ | I: Unpacking xz-utils... |
||
+ | I: Unpacking zlib1g... |
||
+ | I: Configuring required packages... |
||
+ | I: Configuring ncurses-base... |
||
+ | I: Configuring sensible-utils... |
||
+ | I: Configuring libc-bin... |
||
+ | I: Configuring gcc-4.4-base... |
||
+ | I: Configuring libc6... |
||
+ | I: Configuring debianutils... |
||
+ | I: Configuring bsdutils... |
||
+ | I: Configuring libsepol1... |
||
+ | I: Configuring libgcc1... |
||
+ | I: Configuring libncurses5... |
||
+ | I: Configuring libattr1... |
||
+ | I: Configuring e2fslibs... |
||
+ | I: Configuring base-passwd... |
||
+ | I: Configuring libcomerr2... |
||
+ | I: Configuring mawk... |
||
+ | I: Configuring libdb4.8... |
||
+ | I: Configuring hostname... |
||
+ | I: Configuring libacl1... |
||
+ | I: Configuring libslang2... |
||
+ | I: Configuring libss2... |
||
+ | I: Configuring liblzma2... |
||
+ | I: Configuring insserv... |
||
+ | I: Configuring gzip... |
||
+ | I: Configuring libbz2-1.0... |
||
+ | I: Configuring libselinux1... |
||
+ | I: Configuring libstdc++6... |
||
+ | I: Configuring coreutils... |
||
+ | I: Configuring ncurses-bin... |
||
+ | I: Configuring diffutils... |
||
+ | I: Configuring tar... |
||
+ | I: Configuring zlib1g... |
||
+ | I: Configuring base-files... |
||
+ | I: Configuring xz-utils... |
||
+ | I: Configuring dpkg... |
||
+ | I: Configuring sysvinit-utils... |
||
+ | I: Configuring dash... |
||
+ | I: Configuring perl-base... |
||
+ | I: Configuring libtext-iconv-perl... |
||
+ | I: Configuring sed... |
||
+ | I: Configuring grep... |
||
+ | I: Configuring findutils... |
||
+ | I: Configuring liblocale-gettext-perl... |
||
+ | I: Configuring bash... |
||
+ | I: Configuring libtext-charwidth-perl... |
||
+ | I: Configuring libtext-wrapi18n-perl... |
||
+ | I: Configuring lsb-base... |
||
+ | I: Configuring debconf-i18n... |
||
+ | I: Configuring debconf... |
||
+ | I: Configuring libpam0g... |
||
+ | I: Configuring sysv-rc... |
||
+ | I: Configuring libpam-modules... |
||
+ | I: Configuring tzdata... |
||
+ | I: Configuring passwd... |
||
+ | I: Configuring libpam-runtime... |
||
+ | I: Configuring initscripts... |
||
+ | I: Configuring login... |
||
+ | I: Configuring libuuid1... |
||
+ | I: Configuring sysvinit... |
||
+ | I: Configuring libblkid1... |
||
+ | I: Configuring util-linux... |
||
+ | I: Configuring mount... |
||
+ | I: Configuring e2fsprogs... |
||
+ | I: Unpacking the base system... |
||
+ | I: Unpacking adduser... |
||
+ | I: Unpacking apt... |
||
+ | I: Unpacking cpio... |
||
+ | I: Unpacking debian-archive-keyring... |
||
+ | I: Unpacking devio... |
||
+ | I: Unpacking dhcpcd... |
||
+ | I: Unpacking flash-kernel... |
||
+ | I: Unpacking gnupg... |
||
+ | I: Unpacking gpgv... |
||
+ | I: Unpacking ifupdown... |
||
+ | I: Unpacking initramfs-tools... |
||
+ | I: Unpacking iproute... |
||
+ | I: Unpacking iputils-ping... |
||
+ | I: Unpacking libkeyutils1... |
||
+ | I: Unpacking klibc-utils... |
||
+ | I: Unpacking libklibc... |
||
+ | I: Unpacking libgssapi-krb5-2... |
||
+ | I: Unpacking libk5crypto3... |
||
+ | I: Unpacking libkrb5-3... |
||
+ | I: Unpacking libkrb5support0... |
||
+ | I: Unpacking linux-base... |
||
+ | I: Unpacking linux-image-2.6.32-5-kirkwood... |
||
+ | I: Unpacking linux-image-2.6-kirkwood... |
||
+ | I: Unpacking libbsd0... |
||
+ | I: Unpacking libcap2... |
||
+ | I: Unpacking libedit2... |
||
+ | I: Unpacking libusb-0.1-4... |
||
+ | I: Unpacking libuuid-perl... |
||
+ | I: Unpacking module-init-tools... |
||
+ | I: Unpacking libncursesw5... |
||
+ | I: Unpacking net-tools... |
||
+ | I: Unpacking netbase... |
||
+ | I: Unpacking ntpdate... |
||
+ | I: Unpacking openssh-blacklist... |
||
+ | I: Unpacking openssh-client... |
||
+ | I: Unpacking openssh-server... |
||
+ | I: Unpacking libssl0.9.8... |
||
+ | I: Unpacking procps... |
||
+ | I: Unpacking libreadline6... |
||
+ | I: Unpacking readline-common... |
||
+ | I: Unpacking libwrap0... |
||
+ | I: Unpacking libudev0... |
||
+ | I: Unpacking uboot-envtools... |
||
+ | I: Unpacking uboot-mkimage... |
||
+ | I: Unpacking udev... |
||
+ | I: Unpacking vim-common... |
||
+ | I: Unpacking vim-tiny... |
||
+ | I: Unpacking wget... |
||
+ | I: Configuring the base system... |
||
+ | I: Configuring uboot-envtools... |
||
+ | I: Configuring module-init-tools... |
||
+ | I: Configuring libusb-0.1-4... |
||
+ | I: Configuring libssl0.9.8... |
||
+ | I: Configuring vim-common... |
||
+ | I: Configuring netbase... |
||
+ | I: Configuring libudev0... |
||
+ | I: Configuring adduser... |
||
+ | I: Configuring libklibc... |
||
+ | I: Configuring libuuid-perl... |
||
+ | I: Configuring libkeyutils1... |
||
+ | I: Configuring iproute... |
||
+ | I: Configuring devio... |
||
+ | I: Configuring klibc-utils... |
||
+ | I: Configuring libkrb5support0... |
||
+ | I: Configuring wget... |
||
+ | I: Configuring net-tools... |
||
+ | I: Configuring uboot-mkimage... |
||
+ | I: Configuring libbsd0... |
||
+ | I: Configuring linux-base... |
||
+ | I: Configuring libncursesw5... |
||
+ | I: Configuring openssh-blacklist... |
||
+ | I: Configuring iputils-ping... |
||
+ | I: Configuring libedit2... |
||
+ | I: Configuring udev... |
||
+ | I: Configuring cpio... |
||
+ | I: Configuring vim-tiny... |
||
+ | I: Configuring readline-common... |
||
+ | I: Configuring libcap2... |
||
+ | I: Configuring libwrap0... |
||
+ | I: Configuring initramfs-tools... |
||
+ | I: Configuring procps... |
||
+ | I: Configuring dhcpcd... |
||
+ | I: Configuring flash-kernel... |
||
+ | I: Configuring libk5crypto3... |
||
+ | I: Configuring ifupdown... |
||
+ | I: Configuring libreadline6... |
||
+ | I: Configuring linux-image-2.6.32-5-kirkwood... |
||
+ | I: Configuring ntpdate... |
||
+ | I: Configuring libkrb5-3... |
||
+ | I: Configuring gpgv... |
||
+ | I: Configuring linux-image-2.6-kirkwood... |
||
+ | I: Configuring libgssapi-krb5-2... |
||
+ | I: Configuring gnupg... |
||
+ | I: Configuring debian-archive-keyring... |
||
+ | I: Configuring openssh-client... |
||
+ | I: Configuring apt... |
||
+ | I: Configuring openssh-server... |
||
+ | I: Configuring initramfs-tools... |
||
+ | I: Base system installed successfully. |
||
+ | Image Name: Linux-2.6.32-5-kirkwood |
||
+ | Created: Fri Dec 31 17:58:41 2010 |
||
+ | Image Type: ARM Linux Kernel Image (uncompressed) |
||
+ | Data Size: 1434156 Bytes = 1400.54 kB = 1.37 MB |
||
+ | Load Address: 0x00008000 |
||
+ | Entry Point: 0x00008000 |
||
+ | Image Name: initramfs-2.6.32-5-kirkwood |
||
+ | Created: Fri Dec 31 17:58:42 2010 |
||
+ | Image Type: ARM Linux RAMDisk Image (gzip compressed) |
||
+ | Data Size: 4736810 Bytes = 4625.79 kB = 4.52 MB |
||
+ | Load Address: 0x00000000 |
||
+ | Entry Point: 0x00000000 |
||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Installation complete |
||
+ | |||
+ | You can now reboot your device into Debian. |
||
+ | If your device does not start Debian after rebooting, |
||
+ | you may need to restart the device by disconnecting the power. |
||
+ | |||
+ | The new root password is 'root' Please change it immediately after |
||
+ | logging in. |
||
+ | |||
+ | Reboot now? [Y/n] |
||
+ | |||
+ | Tell it to reboot, and Debian will be up and running. After restarting, this machine will have a different SSH host key. You'll have to remove the old one from your ~/.ssh/known_hosts file before connecting to it again. As the installer notes, the password for <code>root</code> is now <code>root</code> and should be changed. |
||
+ | |||
+ | == Installation is done, how do things look now? == |
||
+ | Disk layout: |
||
+ | root@debian:~# fdisk -l -u |
||
+ | |||
+ | Disk /dev/sda: 4000 MB, 4000317440 bytes |
||
+ | 64 heads, 32 sectors/track, 3815 cylinders, total 7813120 sectors |
||
+ | Units = sectors of 1 * 512 = 512 bytes |
||
+ | Sector size (logical/physical): 512 bytes / 512 bytes |
||
+ | I/O size (minimum/optimal): 512 bytes / 512 bytes |
||
+ | Disk identifier: 0x9a198ead |
||
+ | |||
+ | Device Boot Start End Blocks Id System |
||
+ | /dev/sda1 * 2048 1050623 524288 83 Linux |
||
+ | /dev/sda2 1050624 2099199 524288 83 Linux |
||
+ | /dev/sda3 2099200 7813119 2856960 8e Linux LVM |
||
+ | root@debian:~# |
||
+ | |||
+ | Disk usage: |
||
+ | root@debian:~# df |
||
+ | Filesystem 1K-blocks Used Available Use% Mounted on |
||
+ | rootfs 516040 260948 228880 54% / |
||
+ | none 60492 36 60456 1% /dev |
||
+ | /dev/sda1 516040 260948 228880 54% / |
||
+ | tmpfs 62864 0 62864 0% /lib/init/rw |
||
+ | tmpfs 62864 0 62864 0% /dev/shm |
||
+ | tmpfs 62864 0 62864 0% /tmp |
||
+ | root@debian:~# |
||
+ | |||
+ | Installed Packages: |
||
+ | root@debian:~# dpkg -l |
||
+ | Desired=Unknown/Install/Remove/Purge/Hold |
||
+ | | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |
||
+ | |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) |
||
+ | ||/ Name Version Description |
||
+ | +++-======================================-===========================-=================================================================== |
||
+ | ii adduser 3.112+nmu2 add and remove users and groups |
||
+ | ii apt 0.8.10 Advanced front-end for dpkg |
||
+ | ii base-files 5.10 Debian base system miscellaneous files |
||
+ | ii base-passwd 3.5.22 Debian base system master password and group files |
||
+ | ii bash 4.1-3 The GNU Bourne Again SHell |
||
+ | ii bsdutils 1:2.17.2-5 Basic utilities from 4.4BSD-Lite |
||
+ | ii coreutils 8.5-1 GNU core utilities |
||
+ | ii cpio 2.11-4 GNU cpio -- a program to manage archives of files |
||
+ | ii dash 0.5.5.1-7.4 POSIX-compliant shell |
||
+ | ii debconf 1.5.36 Debian configuration management system |
||
+ | ii debconf-i18n 1.5.36 full internationalization support for debconf |
||
+ | ii debian-archive-keyring 2010.08.28 GnuPG archive keys of the Debian archive |
||
+ | ii debianutils 3.4 Miscellaneous utilities specific to Debian |
||
+ | ii devio 1.2-1+b1 correctly read (or write) a region of a block device |
||
+ | ii dhcpcd 1:3.2.3-5 DHCP client for automatically configuring IPv4 networking |
||
+ | ii diffutils 1:3.0-1 File comparison utilities |
||
+ | ii dpkg 1.15.8.5 Debian package management system |
||
+ | ii e2fslibs 1.41.12-2 ext2/ext3/ext4 file system libraries |
||
+ | ii e2fsprogs 1.41.12-2 ext2/ext3/ext4 file system utilities |
||
+ | ii findutils 4.4.2-1+b1 utilities for finding files--find, xargs |
||
+ | ii flash-kernel 2.37 utility to make certain embedded devices bootable |
||
+ | ii gcc-4.4-base 4.4.5-8 The GNU Compiler Collection (base package) |
||
+ | ii gnupg 1.4.10-4 GNU privacy guard - a free PGP replacement |
||
+ | ii gpgv 1.4.10-4 GNU privacy guard - signature verification tool |
||
+ | ii grep 2.6.3-3 GNU grep, egrep and fgrep |
||
+ | ii gzip 1.3.12-9 GNU compression utilities |
||
+ | ii hostname 3.04 utility to set/show the host name or domain name |
||
+ | ii ifupdown 0.6.10 high level tools to configure network interfaces |
||
+ | ii initramfs-tools 0.98.7 tools for generating an initramfs |
||
+ | ii initscripts 2.88dsf-13 scripts for initializing and shutting down the system |
||
+ | ii insserv 1.14.0-2 Tool to organize boot sequence using LSB init.d script dependencies |
||
+ | ii iproute 20100519-3 networking and traffic control tools |
||
+ | ii iputils-ping 3:20100418-3 Tools to test the reachability of network hosts |
||
+ | ii klibc-utils 1.5.20-1 small utilities built with klibc for early boot |
||
+ | ii libacl1 2.2.49-4 Access control list shared library |
||
+ | ii libattr1 1:2.4.44-2 Extended attribute shared library |
||
+ | ii libblkid1 2.17.2-5 block device id library |
||
+ | ii libbsd0 0.2.0-1 utility functions from BSD systems - shared library |
||
+ | ii libbz2-1.0 1.0.5-6 high-quality block-sorting file compressor library - runtime |
||
+ | ii libc-bin 2.11.2-7 Embedded GNU C Library: Binaries |
||
+ | ii libc6 2.11.2-7 Embedded GNU C Library: Shared libraries |
||
+ | ii libcap2 1:2.19-3 support for getting/setting POSIX.1e capabilities |
||
+ | ii libcomerr2 1.41.12-2 common error description library |
||
+ | ii libdb4.8 4.8.30-2 Berkeley v4.8 Database Libraries [runtime] |
||
+ | ii libedit2 2.11-20080614-2 BSD editline and history libraries |
||
+ | ii libgcc1 1:4.4.5-8 GCC support library |
||
+ | ii libgssapi-krb5-2 1.8.3+dfsg-4 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism |
||
+ | ii libk5crypto3 1.8.3+dfsg-4 MIT Kerberos runtime libraries - Crypto Library |
||
+ | ii libkeyutils1 1.4-1 Linux Key Management Utilities (library) |
||
+ | ii libklibc 1.5.20-1 minimal libc subset for use with initramfs |
||
+ | ii libkrb5-3 1.8.3+dfsg-4 MIT Kerberos runtime libraries |
||
+ | ii libkrb5support0 1.8.3+dfsg-4 MIT Kerberos runtime libraries - Support library |
||
+ | ii liblocale-gettext-perl 1.05-6 Using libc functions for internationalization in Perl |
||
+ | ii liblzma2 5.0.0-2 XZ-format compression library |
||
+ | ii libncurses5 5.7+20100313-4 shared libraries for terminal handling |
||
+ | ii libncursesw5 5.7+20100313-4 shared libraries for terminal handling (wide character support) |
||
+ | ii libpam-modules 1.1.1-6.1 Pluggable Authentication Modules for PAM |
||
+ | ii libpam-runtime 1.1.1-6.1 Runtime support for the PAM library |
||
+ | ii libpam0g 1.1.1-6.1 Pluggable Authentication Modules library |
||
+ | ii libreadline6 6.1-3 GNU readline and history libraries, run-time libraries |
||
+ | ii libselinux1 2.0.96-1 SELinux runtime shared libraries |
||
+ | ii libsepol1 2.0.41-1 SELinux library for manipulating binary security policies |
||
+ | ii libslang2 2.2.2-4 The S-Lang programming library - runtime version |
||
+ | ii libss2 1.41.12-2 command-line interface parsing library |
||
+ | ii libssl0.9.8 0.9.8o-4 SSL shared libraries |
||
+ | ii libstdc++6 4.4.5-8 The GNU Standard C++ Library v3 |
||
+ | ii libtext-charwidth-perl 0.04-6 get display widths of characters on the terminal |
||
+ | ii libtext-iconv-perl 1.7-2 converts between character sets in Perl |
||
+ | ii libtext-wrapi18n-perl 0.06-7 internationalized substitute of Text::Wrap |
||
+ | ii libudev0 164-3 libudev shared library |
||
+ | ii libusb-0.1-4 2:0.1.12-16 userspace USB programming library |
||
+ | ii libuuid-perl 0.02-4 Perl extension for using UUID interfaces as defined in e2fsprogs |
||
+ | ii libuuid1 2.17.2-5 Universally Unique ID library |
||
+ | ii libwrap0 7.6.q-19 Wietse Venema's TCP wrappers library |
||
+ | ii linux-base 2.6.32-29 Linux image base package |
||
+ | ii linux-image-2.6-kirkwood 2.6.32+28 Linux 2.6 for Marvell Kirkwood (meta-package) |
||
+ | ii linux-image-2.6.32-5-kirkwood 2.6.32-29 Linux 2.6.32 for Marvell Kirkwood |
||
+ | ii login 1:4.1.4.2+svn3283-2 system login tools |
||
+ | ii lsb-base 3.2-23.1 Linux Standard Base 3.2 init script functionality |
||
+ | ii mawk 1.3.3-15 a pattern scanning and text processing language |
||
+ | ii module-init-tools 3.12-1 tools for managing Linux kernel modules |
||
+ | ii mount 2.17.2-5 Tools for mounting and manipulating filesystems |
||
+ | ii ncurses-base 5.7+20100313-4 basic terminal type definitions |
||
+ | ii ncurses-bin 5.7+20100313-4 terminal-related programs and man pages |
||
+ | ii net-tools 1.60-23 The NET-3 networking toolkit |
||
+ | ii netbase 4.44 Basic TCP/IP networking system |
||
+ | ii ntpdate 1:4.2.6.p2+dfsg-1+b1 client for setting system time from NTP servers |
||
+ | ii openssh-blacklist 0.4.1 list of default blacklisted OpenSSH RSA and DSA keys |
||
+ | ii openssh-client 1:5.5p1-6 secure shell (SSH) client, for secure access to remote machines |
||
+ | ii openssh-server 1:5.5p1-6 secure shell (SSH) server, for secure access from remote machines |
||
+ | ii passwd 1:4.1.4.2+svn3283-2 change and administer password and group data |
||
+ | ii perl-base 5.10.1-16 minimal Perl system |
||
+ | ii procps 1:3.2.8-9 /proc file system utilities |
||
+ | ii readline-common 6.1-3 GNU readline and history libraries, common files |
||
+ | ii sed 4.2.1-7 The GNU sed stream editor |
||
+ | ii sensible-utils 0.0.4 Utilities for sensible alternative selection |
||
+ | ii sysv-rc 2.88dsf-13 System-V-like runlevel change mechanism |
||
+ | ii sysvinit 2.88dsf-13 System-V-like init utilities |
||
+ | ii sysvinit-utils 2.88dsf-13 System-V-like utilities |
||
+ | ii tar 1.23-3 GNU version of the tar archiving utility |
||
+ | ii tzdata 2010o-1 time zone and daylight-saving time data |
||
+ | ii uboot-envtools 20081215-2 read/modify the environment for the bootloader U-Boot |
||
+ | ii uboot-mkimage 0.4 generate kernel image for U-Boot |
||
+ | ii udev 164-3 /dev/ and hotplug management daemon |
||
+ | ii util-linux 2.17.2-5 Miscellaneous system utilities |
||
+ | ii vim-common 2:7.2.445+hg~cb94c42c0e1a-1 Vi IMproved - Common files |
||
+ | ii vim-tiny 2:7.2.445+hg~cb94c42c0e1a-1 Vi IMproved - enhanced vi editor - compact version |
||
+ | ii wget 1.12-2.1 retrieves files from the web |
||
+ | ii xz-utils 5.0.0-2 XZ-format compression utilities |
||
+ | ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime |
||
+ | root@debian:~# |
||
+ | |||
+ | Firmware settings: |
||
+ | root@debian:~# fw_printenv |
||
+ | ethact=egiga0 |
||
+ | bootdelay=3 |
||
+ | baudrate=115200 |
||
+ | mainlineLinux=yes |
||
+ | console=ttyS0,115200 |
||
+ | led_init=green blinking |
||
+ | led_exit=green off |
||
+ | led_error=orange blinking |
||
+ | mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data) |
||
+ | mtdids=nand0=orion_nand |
||
+ | partition=nand0,2 |
||
+ | stdin=serial |
||
+ | stdout=serial |
||
+ | stderr=serial |
||
+ | rescue_installed=0 |
||
+ | rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params |
||
+ | rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi |
||
+ | pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi |
||
+ | force_rescue=0 |
||
+ | force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi |
||
+ | ubifs_mtd=3 |
||
+ | ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0:rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params |
||
+ | ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && ubifsload 0x800000 /boot/uImage && ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi |
||
+ | usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done |
||
+ | usb_scan_list=1 2 3 4 |
||
+ | usb_scan_1=usb=0:1 dev=sda1 |
||
+ | usb_scan_2=usb=1:1 dev=sdb1 |
||
+ | usb_scan_3=usb=2:1 dev=sdc1 |
||
+ | usb_scan_4=usb=3:1 dev=sdd1 |
||
+ | usb_init=run usb_scan |
||
+ | usb_device=0:1 |
||
+ | usb_root=/dev/sda1 |
||
+ | usb_rootfstype=ext2 |
||
+ | usb_rootdelay=10 |
||
+ | usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params |
||
+ | usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot |
||
+ | usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; |
||
+ | else bootm 0x800000; fi |
||
+ | bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset |
||
+ | ethaddr=00:10:75:1A:0E:A6 |
||
+ | arcNumber=2097 |
||
+ | root@debian:~# |
||
+ | |||
+ | |||
+ | == Further customization == |
||
+ | These are steps I perform after the base OS is installed: |
||
+ | * Change <code>root</code>'s password. |
||
+ | * Tweak the DHCP client settings in /etc/default/dhcpcd: |
||
+ | ** Uncomment the <code>SET_DNS='yes'</code> line to allow the DHCP server's list of DNS servers to be written to your <code>/etc/resolv.conf</code> config file. |
||
+ | ** Uncomment the <code>SET_HOSTNAME='yes'</code> line to allow the DHCP server to set your DockStar's host name. |
||
+ | ** Uncomment the <code>SET_NTP='yes'</code> line to allow the DHCP server's list of NTP servers to be written to your <code>/etc/ntp.conf</code> config file. |
||
+ | * Install a handful of useful packages: <code>apt-listchanges, debsums, dmsetup, hdparm, less, lvm2, man-db, mtd-utils, ntp, pciutils, perl, python, rsyslog, sudo, ucf</code> |
||
+ | * [[LVMify_the_disk]], moving the system's files to a more flexible storage layout |
||
+ | |||
+ | = network console setup = |
||
+ | The bootloader firmware in the DockStar [http://http://www.denx.de/wiki/U-Boot U-Boot] can interact with a user over the network, saving one from putting together a TTL level serial connection to drive the bootloader. Linux can also use a network console device once it is running. |
||
+ | |||
+ | == configure U-Boot to use a network console == |
||
+ | Run these commands once Linux is up and running. The "serverip" variable will need to be changed for your environment. Set it to a machine you can run netcat/nc on. The "ipaddr" variable sets the local address for the DockStar's bootloader. For this example, it's set to ten less than what the running OS's IP address will be. |
||
+ | fw_setenv serverip 172.16.0.1 |
||
+ | fw_setenv ipaddr 172.16.0.200 |
||
+ | fw_setenv if_netconsole 'ping $serverip' |
||
+ | fw_setenv start_netconsole 'setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;' |
||
+ | fw_setenv preboot 'run if_netconsole start_netconsole' |
||
+ | |||
+ | = USB thumb drive filesystem notes = |
||
+ | See the page about [[USB_flash_drive_notes]] |
Latest revision as of 20:14, 21 March 2011
What is a DockStar?
Seagate's Free Agent DockStar is a very cheap, nifty little Linux machine with the following features:
- 1.2 GHz ARM processor
- 4 powered USB 2.0 ports broken out like so:
- 1 port with a USB mini A connector centered in the drive cradle section of the case allowing the user to just plug in a Seagate FreeAgent Go hard drive
- 3 ports with type A connectors (as you'd find on a mouse, keyboard, or USB flash drive)
- 1 Gigabit Ethernet NIC
- $20 price tag
- HiFN 795x crypto accelerator
- User replacable firmware (it comes with PogoPlug from the factory — the device is intended as a NAS)
It does have a few small annoyances:
- Only 128 Mbytes of RAM (256 or 512 would be so much nicer)
- No battery backed clock (but that's what NTP is for, anyway)
- Serial console is (somewhat) hard to get to (but the bootloader and Linux can use the normal Linux network console setup)
- It runs PogoPlug instead of a general purpose OS.
But it costs $20. So these annoyances are overlookable.
DockStar OS options
There are a number of options for replacing the PogoPlug OS on a DockStar: OpenWRT supports them. Plugbox Linux does, too. But I'm a Debian fan, so that's what I'm running on mine.
Jeff Doozan has done much of the legwork making Debian an easy option on a Dockstar. He has a procedure for installing a new bootloader, kernel, and root filesystem into the Dockstar's flash and bootstrapping a Debian installation onto a USB mass storage device attached to the Dockstar (thumb drive, jump drive, FreeAgent Go, portable USB hard drive or whatever) without breaking open the case and fiddling with a serial console.
Before Installing Debian
Here's the procedure I used to used when putting mine together:
- buy a Dockstar (actually used some Amazon credits to buy three of them for $20 each a few months ago)
- get some USB flash drives (found some 4Gbyte Sandisk Cruzers for $8 each at a local office supply store. Wonder why the 8Gbyte USB drives cost 4 times more instead of 2 times more)
- unbox Dockstar, note Ethernet MAC address from sticker on bottom of the case
- pick an IP address to give it (internal home network is 172.16.0.0/24 and I don't want the Pogoplug firmware phoning home before I've replaced it with Debian)
- set it up with a static IP address on the home network (quick edit to /etc/dhcp/dhcpd.conf)
- prevent IP from the dockstar from reaching the internet (
sudo iptables -I FORWARD -s 172.16.0.200 -j REJECT
on the router) - attach Dockstar to Ethernet switch, power it on, wait until it is pingable
- Make sure we can log in to it:
ssh root@172.16.0.200
(password should bestxadmin
) - Kill the Pogoplug proprietary processes running on the machine:
# killall -9 hbwd; killall -9 hbplug
- Make a backup of the factory firmware (instructions can be found at How to brick your Dockstar and void the warranty
Installing Debian
Jeff Doozan has done me a great service here. At his web site, you'll find instructions on getting Debian installed on a USB mass storage device (a 4Gbyte Sansisk Cruzer in my case). Here are some notes on my installation:
- The Pogoplug OS is used to perform the installation on the Dockstar. It needs to be working first.
- The Pogoplug OS needs internet access to download the Debian bits. But we still don't want Pogoplug phoning home, so be sure the
hbwd
andhbplug
processes aren't running before allowing the device to have internet access. - Jeff Doozan recommends making the Debian filesystem at least 512Mbytes in size. The base OS installed by debootstrap consumes about 300 Mbytes of space. I made mine 512Mbytes, followed by 512Mbytes of swap partition. Later on, I'll make the swap partition into a backup root partition, turn the remaining free space into an LVM physical volume, and slice that up until I'm happy with it.
- The installation target here is a 4Gbyte Sandisk Cruzer USB flash drive. It has been partitions like so:
# fdisk -lu /dev/sda Disk /dev/sda: 4000 MB, 4000317440 bytes 64 heads, 32 sectors/track, 3815 cylinders, total 7813120 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1050623 524288 83 Linux /dev/sda2 1050624 2099199 524288 83 Linux /dev/sda3 2099200 7813119 2856960 8e Linux LVM #
(Note that this partition layout does not show the sda2
device as being a swap partition. This was changed after the installation was done. Post-installation, sda2
was made into a regular filesystem with the backup insatllation on it. This allows me to specify that /dev/sda2
should be my kernel's root device (instead of /dev/sda1
) and fix whatever brain damage I've inflicted on it.
- Remove the
iptables
firewall rule that prevents the Dockstar from reaching the internet (Runsudo iptables -D FORWARD -s 172.16.0.200 -j REJECT
on the router.) - After the USB flash drive has been partitioned, it's time to run Jeff Doozan's installer:
cd /tmp wget http://jeff.doozan.com/debian/dockstar.debian-squeeze.sh chmod +x dockstar.debian-squeeze.sh export PATH=$PATH:/usr/sbin:/sbin # The Pogoplug OS doesn't include /usr/sbin or /sbin in root's PATH ./dockstar.debian-squeeze.sh
(The dockstar.debian.squeeze.sh
script puts an ext2 filesystem in /dev/sda1
, uses debootstrap to put a base Debian installation on it. It also puts an unlocked u-Boot bootloader, a Debian kernel image, and a tiny recovery filesystem into the Dockstar's NAND flash.)
Installation transcript
Here is a transcript of an installation being performed on canopus, a DockStar with Ethernet MAC address 00:10:75:1a:0e:a6:
-bash-3.2# ./dockstar.debian-squeeze.sh !!!!!! DANGER DANGER DANGER DANGER DANGER DANGER !!!!!! This script will replace the bootloader on /dev/mtd0. If you lose power while the bootloader is being flashed, your device could be left in an unusable state. This script will configure your Dockstar to boot Debian Squeeze from a USB device. Before running this script, you should have used fdisk to create the following partitions: /dev/sda1 (Linux ext2, at least 400MB) /dev/sda2 (Linux swap, recommended 256MB) This script will DESTROY ALL EXISTING DATA on /dev/sda1 Please double check that the device on /dev/sda1 is the correct device. By typing ok, you agree to assume all liabilities and risks associated with running this installer. If everything looks good, type 'ok' to continue: ok Installing Bootloader # checking for /usr/sbin/nandwrite... # checking for /usr/sbin/nanddump... # checking for /usr/sbin/flash_erase... # checking for /usr/sbin/fw_printenv... # checking for /etc/fw_env.config... # Validating existing uBoot... Block size 131072, page size 2048, OOB size 64 Dumping data starting at 0x00000000 and ending at 0x00080000... Connecting to jeff.doozan.com (69.163.187.226:80) valid-uboot.md5 100% |*************************************************************************************************************| 756 --:--:-- ETA ## Valid uBoot detected: [dockstar jeff-2010-10-23-current ebd566de30c6521e65fb1255415c037f pogov1 jeff-2010-10-23-current] ## The newest uBoot is already installed on mtd0. # uBoot installation has completed successfully. # checking for /sbin/mke2fs... # Installing /sbin/mke2fs... Connecting to jeff.doozan.com (69.163.187.226:80) mke2fs.md5 100% |*************************************************************************************************************| 41 --:--:-- ETA Connecting to jeff.doozan.com (69.163.187.226:80) mke2fs 100% |*************************************************************************************************************| 393k 00:00:00 ETA # Successfully installed /sbin/mke2fs. mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 32768 inodes, 131072 blocks 6553 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=134217728 4 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. Setting up swapspace version 1, size = 536866816 bytes # Starting debootstrap installation I: Retrieving Release I: Retrieving Packages I: Validating Packages I: Resolving dependencies of required packages... I: Resolving dependencies of base packages... I: Found additional required dependencies: insserv libbz2-1.0 libdb4.8 libslang2 I: Found additional base dependencies: adduser cpio debian-archive-keyring devio gnupg gpgv initramfs-tools klibc-utils libbsd0 libcap2 libedit2 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libklibc libkrb5-3 libkrb5support0 libncursesw5 libreadline6 libssl0.9.8 libudev0 libusb-0.1-4 libuuid-perl libwrap0 linux-base linux-image-2.6.32-5-kirkwood openssh-blacklist openssh-client procps readline-common vim-common I: Checking component main on http://cdn.debian.net/debian... I: Retrieving libacl1 I: Validating libacl1 I: Retrieving adduser I: Validating adduser I: Retrieving apt I: Validating apt I: Retrieving libattr1 I: Validating libattr1 I: Retrieving base-files I: Validating base-files I: Retrieving base-passwd I: Validating base-passwd I: Retrieving bash I: Validating bash I: Retrieving libbz2-1.0 I: Validating libbz2-1.0 I: Retrieving coreutils I: Validating coreutils I: Retrieving cpio I: Validating cpio I: Retrieving dash I: Validating dash I: Retrieving libdb4.8 I: Validating libdb4.8 I: Retrieving debconf-i18n I: Validating debconf-i18n I: Retrieving debconf I: Validating debconf I: Retrieving debian-archive-keyring I: Validating debian-archive-keyring I: Retrieving debianutils I: Validating debianutils I: Retrieving devio I: Validating devio I: Retrieving dhcpcd I: Validating dhcpcd I: Retrieving diffutils I: Validating diffutils I: Retrieving dpkg I: Validating dpkg I: Retrieving e2fslibs I: Validating e2fslibs I: Retrieving e2fsprogs I: Validating e2fsprogs I: Retrieving libcomerr2 I: Validating libcomerr2 I: Retrieving libss2 I: Validating libss2 I: Retrieving libc-bin I: Validating libc-bin I: Retrieving libc6 I: Validating libc6 I: Retrieving findutils I: Validating findutils I: Retrieving flash-kernel I: Validating flash-kernel I: Retrieving gcc-4.4-base I: Validating gcc-4.4-base I: Retrieving libgcc1 I: Validating libgcc1 I: Retrieving libstdc++6 I: Validating libstdc++6 I: Retrieving gnupg I: Validating gnupg I: Retrieving gpgv I: Validating gpgv I: Retrieving grep I: Validating grep I: Retrieving gzip I: Validating gzip I: Retrieving hostname I: Validating hostname I: Retrieving ifupdown I: Validating ifupdown I: Retrieving initramfs-tools I: Validating initramfs-tools I: Retrieving insserv I: Validating insserv I: Retrieving iproute I: Validating iproute I: Retrieving iputils-ping I: Validating iputils-ping I: Retrieving libkeyutils1 I: Validating libkeyutils1 I: Retrieving klibc-utils I: Validating klibc-utils I: Retrieving libklibc I: Validating libklibc I: Retrieving libgssapi-krb5-2 I: Validating libgssapi-krb5-2 I: Retrieving libk5crypto3 I: Validating libk5crypto3 I: Retrieving libkrb5-3 I: Validating libkrb5-3 I: Retrieving libkrb5support0 I: Validating libkrb5support0 I: Retrieving linux-base I: Validating linux-base I: Retrieving linux-image-2.6.32-5-kirkwood I: Validating linux-image-2.6.32-5-kirkwood I: Retrieving linux-image-2.6-kirkwood I: Validating linux-image-2.6-kirkwood I: Retrieving lsb-base I: Validating lsb-base I: Retrieving libbsd0 I: Validating libbsd0 I: Retrieving libcap2 I: Validating libcap2 I: Retrieving libedit2 I: Validating libedit2 I: Retrieving liblocale-gettext-perl I: Validating liblocale-gettext-perl I: Retrieving libselinux1 I: Validating libselinux1 I: Retrieving libsepol1 I: Validating libsepol1 I: Retrieving libtext-charwidth-perl I: Validating libtext-charwidth-perl I: Retrieving libtext-iconv-perl I: Validating libtext-iconv-perl I: Retrieving libtext-wrapi18n-perl I: Validating libtext-wrapi18n-perl I: Retrieving libusb-0.1-4 I: Validating libusb-0.1-4 I: Retrieving libuuid-perl I: Validating libuuid-perl I: Retrieving mawk I: Validating mawk I: Retrieving module-init-tools I: Validating module-init-tools I: Retrieving libncurses5 I: Validating libncurses5 I: Retrieving libncursesw5 I: Validating libncursesw5 I: Retrieving ncurses-base I: Validating ncurses-base I: Retrieving ncurses-bin I: Validating ncurses-bin I: Retrieving net-tools I: Validating net-tools I: Retrieving netbase I: Validating netbase I: Retrieving ntpdate I: Validating ntpdate I: Retrieving openssh-blacklist I: Validating openssh-blacklist I: Retrieving openssh-client I: Validating openssh-client I: Retrieving openssh-server I: Validating openssh-server I: Retrieving libssl0.9.8 I: Validating libssl0.9.8 I: Retrieving libpam-modules I: Validating libpam-modules I: Retrieving libpam-runtime I: Validating libpam-runtime I: Retrieving libpam0g I: Validating libpam0g I: Retrieving perl-base I: Validating perl-base I: Retrieving procps I: Validating procps I: Retrieving libreadline6 I: Validating libreadline6 I: Retrieving readline-common I: Validating readline-common I: Retrieving sed I: Validating sed I: Retrieving sensible-utils I: Validating sensible-utils I: Retrieving login I: Validating login I: Retrieving passwd I: Validating passwd I: Retrieving libslang2 I: Validating libslang2 I: Retrieving initscripts I: Validating initscripts I: Retrieving sysv-rc I: Validating sysv-rc I: Retrieving sysvinit-utils I: Validating sysvinit-utils I: Retrieving sysvinit I: Validating sysvinit I: Retrieving tar I: Validating tar I: Retrieving libwrap0 I: Validating libwrap0 I: Retrieving libudev0 I: Validating libudev0 I: Retrieving bsdutils I: Validating bsdutils I: Retrieving libblkid1 I: Validating libblkid1 I: Retrieving libuuid1 I: Validating libuuid1 I: Retrieving mount I: Validating mount I: Retrieving liblzma2 I: Validating liblzma2 I: Retrieving tzdata I: Validating tzdata I: Retrieving uboot-envtools I: Validating uboot-envtools I: Retrieving uboot-mkimage I: Validating uboot-mkimage I: Retrieving udev I: Validating udev I: Retrieving util-linux I: Validating util-linux I: Retrieving vim-common I: Validating vim-common I: Retrieving vim-tiny I: Validating vim-tiny I: Retrieving wget I: Validating wget I: Retrieving xz-utils I: Validating xz-utils I: Retrieving zlib1g I: Validating zlib1g I: Chosen extractor for .deb packages: ar I: Extracting libacl1... I: Extracting libattr1... I: Extracting base-files... I: Extracting base-passwd... I: Extracting bash... I: Extracting libbz2-1.0... I: Extracting coreutils... I: Extracting dash... I: Extracting libdb4.8... I: Extracting debconf-i18n... I: Extracting debconf... I: Extracting debianutils... I: Extracting diffutils... I: Extracting dpkg... I: Extracting e2fslibs... I: Extracting e2fsprogs... I: Extracting libcomerr2... I: Extracting libss2... I: Extracting libc-bin... I: Extracting libc6... I: Extracting findutils... I: Extracting gcc-4.4-base... I: Extracting libgcc1... I: Extracting libstdc++6... I: Extracting grep... I: Extracting gzip... I: Extracting hostname... I: Extracting insserv... I: Extracting lsb-base... I: Extracting liblocale-gettext-perl... I: Extracting libselinux1... I: Extracting libsepol1... I: Extracting libtext-charwidth-perl... I: Extracting libtext-iconv-perl... I: Extracting libtext-wrapi18n-perl... I: Extracting mawk... I: Extracting libncurses5... I: Extracting ncurses-base... I: Extracting ncurses-bin... I: Extracting libpam-modules... I: Extracting libpam-runtime... I: Extracting libpam0g... I: Extracting perl-base... I: Extracting sed... I: Extracting sensible-utils... I: Extracting login... I: Extracting passwd... I: Extracting libslang2... I: Extracting initscripts... I: Extracting sysv-rc... I: Extracting sysvinit-utils... I: Extracting sysvinit... I: Extracting tar... I: Extracting bsdutils... I: Extracting libblkid1... I: Extracting libuuid1... I: Extracting mount... I: Extracting liblzma2... I: Extracting tzdata... I: Extracting util-linux... I: Extracting xz-utils... I: Extracting zlib1g... I: Installing core packages... I: Unpacking required packages... I: Unpacking libacl1... I: Unpacking libattr1... I: Unpacking base-files... I: Unpacking base-passwd... I: Unpacking bash... I: Unpacking libbz2-1.0... I: Unpacking coreutils... I: Unpacking dash... I: Unpacking libdb4.8... I: Unpacking debconf-i18n... I: Unpacking debconf... I: Unpacking debianutils... I: Unpacking diffutils... I: Unpacking dpkg... I: Unpacking e2fslibs... I: Unpacking e2fsprogs... I: Unpacking libcomerr2... I: Unpacking libss2... I: Unpacking libc-bin... I: Unpacking libc6... I: Unpacking findutils... I: Unpacking gcc-4.4-base... I: Unpacking libgcc1... I: Unpacking libstdc++6... I: Unpacking grep... I: Unpacking gzip... I: Unpacking hostname... I: Unpacking insserv... I: Unpacking lsb-base... I: Unpacking liblocale-gettext-perl... I: Unpacking libselinux1... I: Unpacking libsepol1... I: Unpacking libtext-charwidth-perl... I: Unpacking libtext-iconv-perl... I: Unpacking libtext-wrapi18n-perl... I: Unpacking mawk... I: Unpacking libncurses5... I: Unpacking ncurses-base... I: Unpacking ncurses-bin... I: Unpacking libpam-modules... I: Unpacking libpam-runtime... I: Unpacking libpam0g... I: Unpacking perl-base... I: Unpacking sed... I: Unpacking sensible-utils... I: Unpacking login... I: Unpacking passwd... I: Unpacking libslang2... I: Unpacking initscripts... I: Unpacking sysv-rc... I: Unpacking sysvinit-utils... I: Unpacking sysvinit... I: Unpacking tar... I: Unpacking bsdutils... I: Unpacking libblkid1... I: Unpacking libuuid1... I: Unpacking mount... I: Unpacking liblzma2... I: Unpacking tzdata... I: Unpacking util-linux... I: Unpacking xz-utils... I: Unpacking zlib1g... I: Configuring required packages... I: Configuring ncurses-base... I: Configuring sensible-utils... I: Configuring libc-bin... I: Configuring gcc-4.4-base... I: Configuring libc6... I: Configuring debianutils... I: Configuring bsdutils... I: Configuring libsepol1... I: Configuring libgcc1... I: Configuring libncurses5... I: Configuring libattr1... I: Configuring e2fslibs... I: Configuring base-passwd... I: Configuring libcomerr2... I: Configuring mawk... I: Configuring libdb4.8... I: Configuring hostname... I: Configuring libacl1... I: Configuring libslang2... I: Configuring libss2... I: Configuring liblzma2... I: Configuring insserv... I: Configuring gzip... I: Configuring libbz2-1.0... I: Configuring libselinux1... I: Configuring libstdc++6... I: Configuring coreutils... I: Configuring ncurses-bin... I: Configuring diffutils... I: Configuring tar... I: Configuring zlib1g... I: Configuring base-files... I: Configuring xz-utils... I: Configuring dpkg... I: Configuring sysvinit-utils... I: Configuring dash... I: Configuring perl-base... I: Configuring libtext-iconv-perl... I: Configuring sed... I: Configuring grep... I: Configuring findutils... I: Configuring liblocale-gettext-perl... I: Configuring bash... I: Configuring libtext-charwidth-perl... I: Configuring libtext-wrapi18n-perl... I: Configuring lsb-base... I: Configuring debconf-i18n... I: Configuring debconf... I: Configuring libpam0g... I: Configuring sysv-rc... I: Configuring libpam-modules... I: Configuring tzdata... I: Configuring passwd... I: Configuring libpam-runtime... I: Configuring initscripts... I: Configuring login... I: Configuring libuuid1... I: Configuring sysvinit... I: Configuring libblkid1... I: Configuring util-linux... I: Configuring mount... I: Configuring e2fsprogs... I: Unpacking the base system... I: Unpacking adduser... I: Unpacking apt... I: Unpacking cpio... I: Unpacking debian-archive-keyring... I: Unpacking devio... I: Unpacking dhcpcd... I: Unpacking flash-kernel... I: Unpacking gnupg... I: Unpacking gpgv... I: Unpacking ifupdown... I: Unpacking initramfs-tools... I: Unpacking iproute... I: Unpacking iputils-ping... I: Unpacking libkeyutils1... I: Unpacking klibc-utils... I: Unpacking libklibc... I: Unpacking libgssapi-krb5-2... I: Unpacking libk5crypto3... I: Unpacking libkrb5-3... I: Unpacking libkrb5support0... I: Unpacking linux-base... I: Unpacking linux-image-2.6.32-5-kirkwood... I: Unpacking linux-image-2.6-kirkwood... I: Unpacking libbsd0... I: Unpacking libcap2... I: Unpacking libedit2... I: Unpacking libusb-0.1-4... I: Unpacking libuuid-perl... I: Unpacking module-init-tools... I: Unpacking libncursesw5... I: Unpacking net-tools... I: Unpacking netbase... I: Unpacking ntpdate... I: Unpacking openssh-blacklist... I: Unpacking openssh-client... I: Unpacking openssh-server... I: Unpacking libssl0.9.8... I: Unpacking procps... I: Unpacking libreadline6... I: Unpacking readline-common... I: Unpacking libwrap0... I: Unpacking libudev0... I: Unpacking uboot-envtools... I: Unpacking uboot-mkimage... I: Unpacking udev... I: Unpacking vim-common... I: Unpacking vim-tiny... I: Unpacking wget... I: Configuring the base system... I: Configuring uboot-envtools... I: Configuring module-init-tools... I: Configuring libusb-0.1-4... I: Configuring libssl0.9.8... I: Configuring vim-common... I: Configuring netbase... I: Configuring libudev0... I: Configuring adduser... I: Configuring libklibc... I: Configuring libuuid-perl... I: Configuring libkeyutils1... I: Configuring iproute... I: Configuring devio... I: Configuring klibc-utils... I: Configuring libkrb5support0... I: Configuring wget... I: Configuring net-tools... I: Configuring uboot-mkimage... I: Configuring libbsd0... I: Configuring linux-base... I: Configuring libncursesw5... I: Configuring openssh-blacklist... I: Configuring iputils-ping... I: Configuring libedit2... I: Configuring udev... I: Configuring cpio... I: Configuring vim-tiny... I: Configuring readline-common... I: Configuring libcap2... I: Configuring libwrap0... I: Configuring initramfs-tools... I: Configuring procps... I: Configuring dhcpcd... I: Configuring flash-kernel... I: Configuring libk5crypto3... I: Configuring ifupdown... I: Configuring libreadline6... I: Configuring linux-image-2.6.32-5-kirkwood... I: Configuring ntpdate... I: Configuring libkrb5-3... I: Configuring gpgv... I: Configuring linux-image-2.6-kirkwood... I: Configuring libgssapi-krb5-2... I: Configuring gnupg... I: Configuring debian-archive-keyring... I: Configuring openssh-client... I: Configuring apt... I: Configuring openssh-server... I: Configuring initramfs-tools... I: Base system installed successfully. Image Name: Linux-2.6.32-5-kirkwood Created: Fri Dec 31 17:58:41 2010 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1434156 Bytes = 1400.54 kB = 1.37 MB Load Address: 0x00008000 Entry Point: 0x00008000 Image Name: initramfs-2.6.32-5-kirkwood Created: Fri Dec 31 17:58:42 2010 Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 4736810 Bytes = 4625.79 kB = 4.52 MB Load Address: 0x00000000 Entry Point: 0x00000000 Installation complete You can now reboot your device into Debian. If your device does not start Debian after rebooting, you may need to restart the device by disconnecting the power. The new root password is 'root' Please change it immediately after logging in. Reboot now? [Y/n]
Tell it to reboot, and Debian will be up and running. After restarting, this machine will have a different SSH host key. You'll have to remove the old one from your ~/.ssh/known_hosts file before connecting to it again. As the installer notes, the password for root
is now root
and should be changed.
Installation is done, how do things look now?
Disk layout:
root@debian:~# fdisk -l -u Disk /dev/sda: 4000 MB, 4000317440 bytes 64 heads, 32 sectors/track, 3815 cylinders, total 7813120 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x9a198ead Device Boot Start End Blocks Id System /dev/sda1 * 2048 1050623 524288 83 Linux /dev/sda2 1050624 2099199 524288 83 Linux /dev/sda3 2099200 7813119 2856960 8e Linux LVM root@debian:~#
Disk usage:
root@debian:~# df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 516040 260948 228880 54% / none 60492 36 60456 1% /dev /dev/sda1 516040 260948 228880 54% / tmpfs 62864 0 62864 0% /lib/init/rw tmpfs 62864 0 62864 0% /dev/shm tmpfs 62864 0 62864 0% /tmp root@debian:~#
Installed Packages:
root@debian:~# dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-======================================-===========================-=================================================================== ii adduser 3.112+nmu2 add and remove users and groups ii apt 0.8.10 Advanced front-end for dpkg ii base-files 5.10 Debian base system miscellaneous files ii base-passwd 3.5.22 Debian base system master password and group files ii bash 4.1-3 The GNU Bourne Again SHell ii bsdutils 1:2.17.2-5 Basic utilities from 4.4BSD-Lite ii coreutils 8.5-1 GNU core utilities ii cpio 2.11-4 GNU cpio -- a program to manage archives of files ii dash 0.5.5.1-7.4 POSIX-compliant shell ii debconf 1.5.36 Debian configuration management system ii debconf-i18n 1.5.36 full internationalization support for debconf ii debian-archive-keyring 2010.08.28 GnuPG archive keys of the Debian archive ii debianutils 3.4 Miscellaneous utilities specific to Debian ii devio 1.2-1+b1 correctly read (or write) a region of a block device ii dhcpcd 1:3.2.3-5 DHCP client for automatically configuring IPv4 networking ii diffutils 1:3.0-1 File comparison utilities ii dpkg 1.15.8.5 Debian package management system ii e2fslibs 1.41.12-2 ext2/ext3/ext4 file system libraries ii e2fsprogs 1.41.12-2 ext2/ext3/ext4 file system utilities ii findutils 4.4.2-1+b1 utilities for finding files--find, xargs ii flash-kernel 2.37 utility to make certain embedded devices bootable ii gcc-4.4-base 4.4.5-8 The GNU Compiler Collection (base package) ii gnupg 1.4.10-4 GNU privacy guard - a free PGP replacement ii gpgv 1.4.10-4 GNU privacy guard - signature verification tool ii grep 2.6.3-3 GNU grep, egrep and fgrep ii gzip 1.3.12-9 GNU compression utilities ii hostname 3.04 utility to set/show the host name or domain name ii ifupdown 0.6.10 high level tools to configure network interfaces ii initramfs-tools 0.98.7 tools for generating an initramfs ii initscripts 2.88dsf-13 scripts for initializing and shutting down the system ii insserv 1.14.0-2 Tool to organize boot sequence using LSB init.d script dependencies ii iproute 20100519-3 networking and traffic control tools ii iputils-ping 3:20100418-3 Tools to test the reachability of network hosts ii klibc-utils 1.5.20-1 small utilities built with klibc for early boot ii libacl1 2.2.49-4 Access control list shared library ii libattr1 1:2.4.44-2 Extended attribute shared library ii libblkid1 2.17.2-5 block device id library ii libbsd0 0.2.0-1 utility functions from BSD systems - shared library ii libbz2-1.0 1.0.5-6 high-quality block-sorting file compressor library - runtime ii libc-bin 2.11.2-7 Embedded GNU C Library: Binaries ii libc6 2.11.2-7 Embedded GNU C Library: Shared libraries ii libcap2 1:2.19-3 support for getting/setting POSIX.1e capabilities ii libcomerr2 1.41.12-2 common error description library ii libdb4.8 4.8.30-2 Berkeley v4.8 Database Libraries [runtime] ii libedit2 2.11-20080614-2 BSD editline and history libraries ii libgcc1 1:4.4.5-8 GCC support library ii libgssapi-krb5-2 1.8.3+dfsg-4 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism ii libk5crypto3 1.8.3+dfsg-4 MIT Kerberos runtime libraries - Crypto Library ii libkeyutils1 1.4-1 Linux Key Management Utilities (library) ii libklibc 1.5.20-1 minimal libc subset for use with initramfs ii libkrb5-3 1.8.3+dfsg-4 MIT Kerberos runtime libraries ii libkrb5support0 1.8.3+dfsg-4 MIT Kerberos runtime libraries - Support library ii liblocale-gettext-perl 1.05-6 Using libc functions for internationalization in Perl ii liblzma2 5.0.0-2 XZ-format compression library ii libncurses5 5.7+20100313-4 shared libraries for terminal handling ii libncursesw5 5.7+20100313-4 shared libraries for terminal handling (wide character support) ii libpam-modules 1.1.1-6.1 Pluggable Authentication Modules for PAM ii libpam-runtime 1.1.1-6.1 Runtime support for the PAM library ii libpam0g 1.1.1-6.1 Pluggable Authentication Modules library ii libreadline6 6.1-3 GNU readline and history libraries, run-time libraries ii libselinux1 2.0.96-1 SELinux runtime shared libraries ii libsepol1 2.0.41-1 SELinux library for manipulating binary security policies ii libslang2 2.2.2-4 The S-Lang programming library - runtime version ii libss2 1.41.12-2 command-line interface parsing library ii libssl0.9.8 0.9.8o-4 SSL shared libraries ii libstdc++6 4.4.5-8 The GNU Standard C++ Library v3 ii libtext-charwidth-perl 0.04-6 get display widths of characters on the terminal ii libtext-iconv-perl 1.7-2 converts between character sets in Perl ii libtext-wrapi18n-perl 0.06-7 internationalized substitute of Text::Wrap ii libudev0 164-3 libudev shared library ii libusb-0.1-4 2:0.1.12-16 userspace USB programming library ii libuuid-perl 0.02-4 Perl extension for using UUID interfaces as defined in e2fsprogs ii libuuid1 2.17.2-5 Universally Unique ID library ii libwrap0 7.6.q-19 Wietse Venema's TCP wrappers library ii linux-base 2.6.32-29 Linux image base package ii linux-image-2.6-kirkwood 2.6.32+28 Linux 2.6 for Marvell Kirkwood (meta-package) ii linux-image-2.6.32-5-kirkwood 2.6.32-29 Linux 2.6.32 for Marvell Kirkwood ii login 1:4.1.4.2+svn3283-2 system login tools ii lsb-base 3.2-23.1 Linux Standard Base 3.2 init script functionality ii mawk 1.3.3-15 a pattern scanning and text processing language ii module-init-tools 3.12-1 tools for managing Linux kernel modules ii mount 2.17.2-5 Tools for mounting and manipulating filesystems ii ncurses-base 5.7+20100313-4 basic terminal type definitions ii ncurses-bin 5.7+20100313-4 terminal-related programs and man pages ii net-tools 1.60-23 The NET-3 networking toolkit ii netbase 4.44 Basic TCP/IP networking system ii ntpdate 1:4.2.6.p2+dfsg-1+b1 client for setting system time from NTP servers ii openssh-blacklist 0.4.1 list of default blacklisted OpenSSH RSA and DSA keys ii openssh-client 1:5.5p1-6 secure shell (SSH) client, for secure access to remote machines ii openssh-server 1:5.5p1-6 secure shell (SSH) server, for secure access from remote machines ii passwd 1:4.1.4.2+svn3283-2 change and administer password and group data ii perl-base 5.10.1-16 minimal Perl system ii procps 1:3.2.8-9 /proc file system utilities ii readline-common 6.1-3 GNU readline and history libraries, common files ii sed 4.2.1-7 The GNU sed stream editor ii sensible-utils 0.0.4 Utilities for sensible alternative selection ii sysv-rc 2.88dsf-13 System-V-like runlevel change mechanism ii sysvinit 2.88dsf-13 System-V-like init utilities ii sysvinit-utils 2.88dsf-13 System-V-like utilities ii tar 1.23-3 GNU version of the tar archiving utility ii tzdata 2010o-1 time zone and daylight-saving time data ii uboot-envtools 20081215-2 read/modify the environment for the bootloader U-Boot ii uboot-mkimage 0.4 generate kernel image for U-Boot ii udev 164-3 /dev/ and hotplug management daemon ii util-linux 2.17.2-5 Miscellaneous system utilities ii vim-common 2:7.2.445+hg~cb94c42c0e1a-1 Vi IMproved - Common files ii vim-tiny 2:7.2.445+hg~cb94c42c0e1a-1 Vi IMproved - enhanced vi editor - compact version ii wget 1.12-2.1 retrieves files from the web ii xz-utils 5.0.0-2 XZ-format compression utilities ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime root@debian:~#
Firmware settings:
root@debian:~# fw_printenv ethact=egiga0 bootdelay=3 baudrate=115200 mainlineLinux=yes console=ttyS0,115200 led_init=green blinking led_exit=green off led_error=orange blinking mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data) mtdids=nand0=orion_nand partition=nand0,2 stdin=serial stdout=serial stderr=serial rescue_installed=0 rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi force_rescue=0 force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi ubifs_mtd=3 ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0:rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && ubifsload 0x800000 /boot/uImage && ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done usb_scan_list=1 2 3 4 usb_scan_1=usb=0:1 dev=sda1 usb_scan_2=usb=1:1 dev=sdb1 usb_scan_3=usb=2:1 dev=sdc1 usb_scan_4=usb=3:1 dev=sdd1 usb_init=run usb_scan usb_device=0:1 usb_root=/dev/sda1 usb_rootfstype=ext2 usb_rootdelay=10 usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset ethaddr=00:10:75:1A:0E:A6 arcNumber=2097 root@debian:~#
Further customization
These are steps I perform after the base OS is installed:
- Change
root
's password. - Tweak the DHCP client settings in /etc/default/dhcpcd:
- Uncomment the
SET_DNS='yes'
line to allow the DHCP server's list of DNS servers to be written to your/etc/resolv.conf
config file. - Uncomment the
SET_HOSTNAME='yes'
line to allow the DHCP server to set your DockStar's host name. - Uncomment the
SET_NTP='yes'
line to allow the DHCP server's list of NTP servers to be written to your/etc/ntp.conf
config file.
- Uncomment the
- Install a handful of useful packages:
apt-listchanges, debsums, dmsetup, hdparm, less, lvm2, man-db, mtd-utils, ntp, pciutils, perl, python, rsyslog, sudo, ucf
- LVMify_the_disk, moving the system's files to a more flexible storage layout
network console setup
The bootloader firmware in the DockStar U-Boot can interact with a user over the network, saving one from putting together a TTL level serial connection to drive the bootloader. Linux can also use a network console device once it is running.
configure U-Boot to use a network console
Run these commands once Linux is up and running. The "serverip" variable will need to be changed for your environment. Set it to a machine you can run netcat/nc on. The "ipaddr" variable sets the local address for the DockStar's bootloader. For this example, it's set to ten less than what the running OS's IP address will be.
fw_setenv serverip 172.16.0.1 fw_setenv ipaddr 172.16.0.200 fw_setenv if_netconsole 'ping $serverip' fw_setenv start_netconsole 'setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;' fw_setenv preboot 'run if_netconsole start_netconsole'
USB thumb drive filesystem notes
See the page about USB_flash_drive_notes