DroboFS firmware - droboports/droboports.github.io GitHub Wiki

Uname

# uname -a
Linux DroboFS 2.6.22.18 #1 Wed May 22 16:43:02 PDT 2013 armv5tejl GNU/Linux
# cat /proc/version
Linux version 2.6.22.18 (root@jwinfield01) (gcc version 4.2.0 20070413 (prerelease)) #1 Wed May 22 16:43:02 PDT 2013

Libraries

# /lib/libc-2.5.so 
GNU C Library stable release version 2.5, by Roland McGrath et al.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.2.0 20070413 (prerelease).
Compiled on a Linux >>2.6.17-12-generic<< system on 2007-10-15.
Available extensions:
	crypt add-on version 2.1 by Michael Glad and others
	GNU Libidn by Simon Josefsson
	GNU libio by Per Bothner
	NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
	Native POSIX Threads Library by Ulrich Drepper et al
	Support for some architectures added on, not maintained in glibc core.
	BIND-8.2.3-T5B
Thread-local storage support included.
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

# grep "^GLIBCXX" /usr/lib/libstdc++.so.6.0.9 
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_FORCE_NEW
GLIBCXX_3.4.9
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4
GLIBCXX_3.4.5
GLIBCXX_3.4.1
GLIBCXX_3.4.4
GLIBCXX_3.4.2
GLIBCXX_3.4.3

# grep "^GLIBC" /usr/lib/libgcc_s.so.1
GLIBC_2.0
GLIBC_2.4
GLIBC_2.0

# ls -la /lib/
drwxr-xr-x    4 root     root            0 Mar 12  2010 .
drwxr-xr-x   16 root     root            0 Jan  1  1970 ..
-rwxr-xr-x    1 root     root       143016 Jan 20  2009 ld-2.5.so
lrwxrwxrwx    1 root     root            9 May 22  2013 ld-linux.so.3 -> ld-2.5.so
-rwxr-xr-x    1 root     root        14419 Jan 20  2009 libanl-2.5.so
lrwxrwxrwx    1 root     root           13 May 22  2013 libanl.so.1 -> libanl-2.5.so
lrwxrwxrwx    1 root     root           24 May 22  2013 libavahi-common.so -> libavahi-common.so.3.5.1
lrwxrwxrwx    1 root     root           24 May 22  2013 libavahi-common.so.3 -> libavahi-common.so.3.5.1
-rwxr-xr-x    1 root     root       156128 Mar  9  2010 libavahi-common.so.3.5.1
lrwxrwxrwx    1 root     root           22 May 22  2013 libavahi-core.so -> libavahi-core.so.6.0.1
lrwxrwxrwx    1 root     root           22 May 22  2013 libavahi-core.so.6 -> libavahi-core.so.6.0.1
-rwxr-xr-x    1 root     root       692659 Mar  9  2010 libavahi-core.so.6.0.1
lrwxrwxrwx    1 root     root           13 May 22  2013 libblkid.so -> libblkid.so.1
lrwxrwxrwx    1 root     root           15 May 22  2013 libblkid.so.1 -> libblkid.so.1.0
-rwxr-xr-x    1 root     root       162142 Dec 15  2009 libblkid.so.1.0
-rwxr-xr-x    1 root     root         7669 Jan 20  2009 libBrokenLocale-2.5.so
lrwxrwxrwx    1 root     root           22 May 22  2013 libBrokenLocale.so.1 -> libBrokenLocale-2.5.so
-rwxr-xr-x    1 root     root      1481034 Jan 20  2009 libc-2.5.so
lrwxrwxrwx    1 root     root           19 May 22  2013 libcharset.so -> libcharset.so.1.0.0
lrwxrwxrwx    1 root     root           19 May 22  2013 libcharset.so.1 -> libcharset.so.1.0.0
-rwxr-xr-x    1 root     root        28741 Mar 12  2010 libcharset.so.1.0.0
-rwxr-xr-x    1 root     root       192366 Jan 20  2009 libcidn-2.5.so
lrwxrwxrwx    1 root     root           14 May 22  2013 libcidn.so.1 -> libcidn-2.5.so
lrwxrwxrwx    1 root     root           15 May 22  2013 libcom_err.so -> libcom_err.so.2
lrwxrwxrwx    1 root     root           17 May 22  2013 libcom_err.so.2 -> libcom_err.so.2.1
-rwxr-xr-x    1 root     root        28816 Dec 15  2009 libcom_err.so.2.1
-rwxr-xr-x    1 root     root        26660 Jan 20  2009 libcrypt-2.5.so
lrwxrwxrwx    1 root     root           18 May 22  2013 libcrypto.so -> libcrypto.so.0.9.8
-rwxr-xr-x    1 root     root      1558687 Apr  9  2010 libcrypto.so.0.9.8
lrwxrwxrwx    1 root     root           15 May 22  2013 libcrypt.so.1 -> libcrypt-2.5.so
lrwxrwxrwx    1 root     root           11 May 22  2013 libc.so.6 -> libc-2.5.so
lrwxrwxrwx    1 root     root           18 May 22  2013 libdaemon.so -> libdaemon.so.0.5.0
lrwxrwxrwx    1 root     root           18 May 22  2013 libdaemon.so.0 -> libdaemon.so.0.5.0
-rwxr-xr-x    1 root     root        61009 Mar  9  2010 libdaemon.so.0.5.0
-rwxrwxr-x    1 root     root      1492066 Mar  9  2010 libdb-4.8.so
lrwxrwxrwx    1 root     root           12 May 22  2013 libdb-4.so -> libdb-4.8.so
lrwxrwxrwx    1 root     root           12 May 22  2013 libdb.so -> libdb-4.8.so
-rwxr-xr-x    1 root     root        14593 Jan 20  2009 libdl-2.5.so
lrwxrwxrwx    1 root     root           12 May 22  2013 libdl.so.2 -> libdl-2.5.so
lrwxrwxrwx    1 root     root           11 May 22  2013 libe2p.so -> libe2p.so.2
lrwxrwxrwx    1 root     root           13 May 22  2013 libe2p.so.2 -> libe2p.so.2.3
-rwxr-xr-x    1 root     root        89145 Dec 15  2009 libe2p.so.2.3
lrwxrwxrwx    1 root     root           17 May 22  2013 libexpat.so -> libexpat.so.1.5.2
lrwxrwxrwx    1 root     root           17 May 22  2013 libexpat.so.1 -> libexpat.so.1.5.2
-rwxr-xr-x    1 root     root       320353 Mar  9  2010 libexpat.so.1.5.2
lrwxrwxrwx    1 root     root           14 May 22  2013 libext2fs.so -> libext2fs.so.2
lrwxrwxrwx    1 root     root           16 May 22  2013 libext2fs.so.2 -> libext2fs.so.2.4
-rwxr-xr-x    1 root     root       806302 Dec 15  2009 libext2fs.so.2.4
-rwxr-xr-x    1 root     root        44863 Jan 20  2009 libgcc_s_softfp.so.1
lrwxrwxrwx    1 root     root           19 May 22  2013 libgcrypt.so -> libgcrypt.so.11.5.3
lrwxrwxrwx    1 root     root           19 May 22  2013 libgcrypt.so.11 -> libgcrypt.so.11.5.3
-rwxr-xr-x    1 root     root      1407533 Mar  9  2010 libgcrypt.so.11.5.3
lrwxrwxrwx    1 root     root           21 May 22  2013 libgpg-error.so -> libgpg-error.so.0.5.0
lrwxrwxrwx    1 root     root           21 May 22  2013 libgpg-error.so.0 -> libgpg-error.so.0.5.0
-rwxr-xr-x    1 root     root        42225 Mar  9  2010 libgpg-error.so.0.5.0
lrwxrwxrwx    1 root     root           17 May 22  2013 libiconv.so -> libiconv.so.2.5.0
lrwxrwxrwx    1 root     root           17 May 22  2013 libiconv.so.2 -> libiconv.so.2.5.0
-rwxr-xr-x    1 root     root      1193953 Mar 12  2010 libiconv.so.2.5.0
lrwxrwxrwx    1 root     root           20 May 22  2013 libipworksssl.so -> libipworksssl.so.8.0
lrwxrwxrwx    1 root     root           20 May 22  2013 libipworksssl.so.8 -> libipworksssl.so.8.0
-rwxr-xr-x    1 root     root      2289540 Apr  9  2010 libipworksssl.so.8.0
-rwxr-xr-x    1 root     root       739248 Jan 20  2009 libm-2.5.so
-rwxr-xr-x    1 root     root        22183 Jan 20  2009 libmemusage.so
lrwxrwxrwx    1 root     root           11 May 22  2013 libm.so.6 -> libm-2.5.so
-rwxr-xr-x    1 root     root        96602 Jan 20  2009 libnsl-2.5.so
lrwxrwxrwx    1 root     root           13 May 22  2013 libnsl.so.1 -> libnsl-2.5.so
-rwxr-xr-x    1 root     root        37742 Jan 20  2009 libnss_compat-2.5.so
lrwxrwxrwx    1 root     root           20 May 22  2013 libnss_compat.so.2 -> libnss_compat-2.5.so
-rwxr-xr-x    1 root     root        22010 Jan 20  2009 libnss_dns-2.5.so
lrwxrwxrwx    1 root     root           17 May 22  2013 libnss_dns.so.2 -> libnss_dns-2.5.so
-rwxr-xr-x    1 root     root        49532 Jan 20  2009 libnss_files-2.5.so
lrwxrwxrwx    1 root     root           19 May 22  2013 libnss_files.so.2 -> libnss_files-2.5.so
-rwxr-xr-x    1 root     root        22903 Jan 20  2009 libnss_hesiod-2.5.so
lrwxrwxrwx    1 root     root           20 May 22  2013 libnss_hesiod.so.2 -> libnss_hesiod-2.5.so
-rwxr-xr-x    1 root     root        48892 Jan 20  2009 libnss_nis-2.5.so
-rwxr-xr-x    1 root     root        58241 Jan 20  2009 libnss_nisplus-2.5.so
lrwxrwxrwx    1 root     root           21 May 22  2013 libnss_nisplus.so.2 -> libnss_nisplus-2.5.so
lrwxrwxrwx    1 root     root           17 May 22  2013 libnss_nis.so.2 -> libnss_nis-2.5.so
lrwxrwxrwx    1 root     root           22 May 22  2013 libparted-1.9.so.0 -> libparted-1.9.so.0.0.0
-rwxr-xr-x    1 root     root       953929 Sep  4  2009 libparted-1.9.so.0.0.0
lrwxrwxrwx    1 root     root           22 May 22  2013 libparted.so -> libparted-1.9.so.0.0.0
-rwxr-xr-x    1 root     root         7889 Jan 20  2009 libpcprofile.so
-rwxr-xr-x    1 root     root       125515 Jan 20  2009 libpthread-2.5.so
lrwxrwxrwx    1 root     root           17 May 22  2013 libpthread.so.0 -> libpthread-2.5.so
-rwxr-xr-x    1 root     root        76017 Jan 20  2009 libresolv-2.5.so
lrwxrwxrwx    1 root     root           16 May 22  2013 libresolv.so.2 -> libresolv-2.5.so
-rwxr-xr-x    1 root     root        38251 Jan 20  2009 librt-2.5.so
lrwxrwxrwx    1 root     root           12 May 22  2013 librt.so.1 -> librt-2.5.so
lrwxrwxrwx    1 root     root           16 May 22  2013 libscew.so -> libscew.so.1.0.2
lrwxrwxrwx    1 root     root           16 May 22  2013 libscew.so.1 -> libscew.so.1.0.2
-rwxr-xr-x    1 root     root       124463 Jan 19  2010 libscew.so.1.0.2
-rwxr-xr-x    1 root     root        12624 Jan 20  2009 libSegFault.so
lrwxrwxrwx    1 root     root           15 May 22  2013 libssl.so -> libssl.so.0.9.8
-rwxr-xr-x    1 root     root       315087 Apr  9  2010 libssl.so.0.9.8
lrwxrwxrwx    1 root     root           14 May 22  2013 libtalloc.so -> libtalloc.so.1
-rwxr-xr-x    1 root     root        94285 Feb  5  2010 libtalloc.so.1
lrwxrwxrwx    1 root     root           11 May 22  2013 libtdb.so -> libtdb.so.1
-rwxr-xr-x    1 root     root       116364 Feb  5  2010 libtdb.so.1
-rwxr-xr-x    1 root     root        33815 Jan 20  2009 libthread_db-1.0.so
lrwxrwxrwx    1 root     root           19 May 22  2013 libthread_db.so.1 -> libthread_db-1.0.so
-rwxr-xr-x    1 root     root        13428 Jan 20  2009 libutil-2.5.so
lrwxrwxrwx    1 root     root           14 May 22  2013 libutil.so.1 -> libutil-2.5.so
lrwxrwxrwx    1 root     root           14 May 22  2013 libuuid.so -> libuuid.so.1.2
lrwxrwxrwx    1 root     root           14 May 22  2013 libuuid.so.1 -> libuuid.so.1.2
-rwxr-xr-x    1 root     root        71625 Sep  4  2009 libuuid.so.1.2
lrwxrwxrwx    1 root     root           16 May 22  2013 libwbclient.so -> libwbclient.so.0
-rwxr-xr-x    1 root     root       100365 Sep  9  2009 libwbclient.so.0
lrwxrwxrwx    1 root     root           15 May 22  2013 libz.so -> libz.so.1.2.3.4
lrwxrwxrwx    1 root     root           15 May 22  2013 libz.so.1 -> libz.so.1.2.3.4
-rwxr-xr-x    1 root     root        82124 Apr  9  2010 libz.so.1.2.3.4
drwxr-xr-x    2 root     root            0 Jan 20  2009 modules
drwxr-xr-x    2 root     root            0 Mar 12  2010 vfs

# ls -la /usr/lib/
drwxr-xr-x    2 root     root            0 Nov  9 11:41 .
drwxr-xr-x    6 root     root            0 Nov  9 11:41 ..
lrwxrwxrwx    1 root     root           13 May 22  2013 libgcc_s.so -> libgcc_s.so.1
-rw-r--r--    1 root     root        65824 Jan 20  2009 libgcc_s.so.1
lrwxrwxrwx    1 root     root           18 May 22  2013 libstdc++.so -> libstdc++.so.6.0.9
lrwxrwxrwx    1 root     root           18 May 22  2013 libstdc++.so.6 -> libstdc++.so.6.0.9
-rwxr-xr-x    1 root     root      1196727 Jan 20  2009 libstdc++.so.6.0.9

Partitions and filesystems

# cat /proc/partitions
major minor  #blocks  name

  31     0       3072 mtdblock0
  31     1      21504 mtdblock1
  31     2       2048 mtdblock2
   8     0 17179869184 sda
   8     1 17174804671 sda1
   8     2    3906250 sda2

# cat /etc/fstab
proc		/proc	proc	defaults    0	0
devpts         /dev/pts    devpts     gid=4,mode=620 0    0

# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / jffs2 rw 0 0
proc /proc proc rw 0 0
devpts /dev/pts devpts rw 0 0
none /sys sysfs rw 0 0
/dev/shm /dev/shm tmpfs rw 0 0
/dev/mtdblock/2 /var jffs2 rw 0 0
/dev/sda1 /mnt/DroboFS ext3 rw,noatime,nodiratime,data=ordered 0 0
tmpfs /tmp tmpfs rw 0 0
/dev/sda1 /root ext3 rw,noatime,nodiratime,data=ordered 0 0
/dev/sda1 /home ext3 rw,noatime,nodiratime,data=ordered 0 0

Note: There is no tmpfs on /tmp. Shares created using the Dashboard are located under /mnt/DroboFS/Shares.

Layout of flash memory

  • /dev/mtdblock/0 is not a partition ('mount -t jffs2' fails), maybe kernel?
  • /dev/mtdblock/1 is mounted by the boot loader, and contains the root partition.
  • /dev/mtdblock/2 is mounted from /etc/init.d/enable_var.

How to dump the flash memory (/dev/mtdblock)

In an SSH session as root:

# dd if=/dev/mtdblock/0 of=/mnt/DroboFS/Shares/Public/mtdblock0
6144+0 records in
6144+0 records out

# dd if=/dev/mtdblock/1 of=/mnt/DroboFS/Shares/Public/mtdblock1
43008+0 records in
43008+0 records out

# dd if=/dev/mtdblock/2 of=/mnt/DroboFS/Shares/Public/mtdblock2
4096+0 records in
4096+0 records out

mtdblock0 is 3145728 bytes (3 MB), mtdblock1 is 22020096 bytes (21 MB), and mtdblock2 is 2097152 bytes (2 MB).

Mount sequence

  • /sys and /dev/shm are mounted from /etc/init.d/rcS.
  • /proc and /dev/pts are in /etc/fstab. mount -a is called from /etc/init.d/rcS.
  • /dev/sda1 is mounted by /usr/bin/nasd, using the script /etc/init.d/mount_fs. nasd is called from /etc/init.d/rcS.

Reading the DroboFS serial number

The serial number of the FS is contained in the file /sys/bus/dri_dnas_fake_bus/drivers/dri_dnas_scsi/serial