Marvell RD-6192-NAS-A comes with old 2009 Marvell NAS software featured Twonkymedia server – DLNA-compliant UPnP AV server software from PacketVideo. This software is located on /dev/sda1 partition of built-in SATA drive.
ArchLinux ARM supports plug-computers, home NAS appliances and community ARM Cortex-A8 , Cortex-A9 development boards from known chip vendors:
ARMv5: SheevaPlug, TonidoPlug, PogoPlug v2, PogoPlug Series 4, Seagate DockStar/GoFlex ; ARMv6: PogoPlug Pro/v3 ; ARMv7: Gumstix Overo, BeagleBoard TI OMAP 3530, BeagleBoard-xM TI DM3730, PandaBoard TI OMAP 4430, TrimSlice NVIDIA Tegra 2
ArchLinux has a special site dedicated to ARM architecture support: http://archlinuxarm.org/
Latest ARMv5 snapshot (around 138MB) can be taken from here:
http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz
Buildroot-2011.xx with sheevaplug_defconfig gives a fast way of making uImage with embedded initramfs and some busybox packages. After loading Buildroot’s uImage with tftpboot method in u-boot, one can mount a partition on built-in SATA drive (/dev/sda1), remove Marvell’s NAS software, download and untar ArchLinuxARM tarball.
After successful boot into ArchLinux, let’s verify that package management works:
Uncompressing Linux… done, booting the kernel.
Linux version 2.6.39.4 (vano@vano-notebook) (gcc version 4.3.6 (Buildroot 2011.08) ) #4 PREEMPT Sun Jan 15 20:49:54 FET 2012
CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
CPU: VIVT data cache, VIVT instruction cache
Machine: Marvell RD-88F6192-NAS Development Board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: console=ttyS0,115200 root=/dev/sda1
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 124440k/124440k available, 6632k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 – 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 – 0xfffe0000 ( 896 kB)
DMA : 0xffc00000 – 0xffe00000 ( 2 MB)
vmalloc : 0xc8800000 – 0xfe800000 ( 864 MB)
lowmem : 0xc0000000 – 0xc8000000 ( 128 MB)
modules : 0xbf000000 – 0xc0000000 ( 16 MB)
.init : 0xc0008000 – 0xc002e000 ( 152 kB)
.text : 0xc002e000 – 0xc04941cc (4505 kB)
.data : 0xc0496000 – 0xc04c0040 ( 169 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptable hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:114
sched_clock: 32 bits at 166MHz, resolution 5ns, wraps every 25769ms
Console: colour dummy device 80×30
Calibrating delay loop… 789.70 BogoMIPS (lpj=3948544)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Kirkwood: MV88F6192-A0, TCLK=166666667.
Feroceon L2: Enabling L2
Feroceon L2: Cache support initialised.
Kirkwood PCIe port 0:
link down, ignoring
bio: create slab <bio-0> at 0
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource orion_clocksource
Switched to NOHz mode on CPU #0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
squashfs: version 4.0 (2009/01/31) Phillip Lougher
NTFS driver 2.1.30 [Flags: R/W].
JFFS2 version 2.2. (NAND) (SUMMARY) �© 2001-2006 Red Hat, Inc.
msgmni has been set to 243
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 33) is a 16550A
console [ttyS0] enabled
loop: module loaded
sata_mv sata_mv.0: version 1.28
sata_mv sata_mv.0: slots 32 ports 2
scsi0 : sata_mv
scsi1 : sata_mv
ata1: SATA max UDMA/133 irq 21
ata2: SATA max UDMA/133 irq 21
m25p80 spi0.0: m25p128 (16384 Kbytes)
mtd: Giving out device 0 to spi0.0
mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4
mv643xx_eth smi: probed
mv643xx_eth_port mv643xx_eth_port.0: eth0: port 0 with MAC address 00:50:43:3c:3b:5d
ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
orion-ehci orion-ehci.0: Marvell Orion EHCI
orion-ehci orion-ehci.0: new USB bus registered, assigned bus number 1
orion-ehci orion-ehci.0: irq 19, io mem 0xf1050000
orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver…
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
mousedev: PS/2 mouse device common for all mice
rtc-mv rtc-mv: rtc core: registered rtc-mv as rtc0
i2c /dev entries driver
Orion Watchdog Timer: Initial timeout 25 sec
cpuidle: using governor ladder
cpuidle: using governor menu
mv_xor_shared mv_xor_shared.0: Marvell shared XOR driver
mv_xor_shared mv_xor_shared.1: Marvell shared XOR driver
mv_xor mv_xor.0: Marvell XOR: ( xor cpy )
mv_xor mv_xor.1: Marvell XOR: ( xor fill cpy )
mv_xor mv_xor.2: Marvell XOR: ( xor cpy )
mv_xor mv_xor.3: Marvell XOR: ( xor fill cpy )
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
oprofile: hardware counters not available
oprofile: using timer interrupt.
TCP cubic registered
NET: Registered protocol family 17
rtc-mv rtc-mv: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl F300)
ata1.00: ATA-7: ST3250410AS, 3.AAF, max UDMA/133
ata1.00: 488397168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata1.00: configured for UDMA/133
scsi 0:0:0:0: Direct-Access ATA ST3250410AS 3.AA PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn’t support DPO or FUA
sda: sda1 sda2 sda3
sd 0:0:0:0: [sda] Attached SCSI disk
ata2: SATA link up 3.0 Gbps (SStatus 123 SControl F300)
ata2.15: Port Multiplier 1.2, 0x11ab:0x4140 r193, 4 ports, feat 0x1/0x1f
ata2.00: hard resetting link
ata2.01: hard resetting link
ata2.02: hard resetting link
ata2.03: hard resetting link
ata2: EH complete
EXT3-fs: barriers not enabled
kjournald starting. Commit interval 5 seconds
EXT3-fs (sda1): using internal journal
EXT3-fs (sda1): mounted filesystem with ordered data mode
VFS: Mounted root (ext3 filesystem) on device 8:1.
Freeing init memory: 152K
INIT: version 2.88 booting
> Arch Linux ARM
> http://www.archlinuxarm.org
——————————
modprobe: FATAL: Could not load /lib/modules/2.6.39.4/modules.dep: No such file or directory
:: Mounting Root Read-Only [BUSY] [DONE]
bootlogd: cannot find console device 4:64 under /dev
:: Adjusting system time and setting kernel timezone [BUSY] FATAL: Could not load /lib/modules/2.6.39.4/modules.dep: No such file or directory [DONE]
:: Starting UDev Daemon [BUSY] [DONE]
:: Triggering UDev uevents [BUSY] [DONE]
:: Waiting for UDev uevents to be processed [BUSY] [DONE]
:: Bringing up loopback interface [BUSY] [DONE]
:: Checking Filesystems [BUSY] [DONE]
:: Remounting Root Read/Write [BUSY] EXT3-fs (sda1): using internal journal [DONE]
:: Mounting Local Filesystems [BUSY] [DONE]
:: Activating Swap [BUSY] [DONE]
:: Configuring Time Zone [BUSY] [DONE]
:: Removing Leftover Files [BUSY] [DONE]
:: Setting Hostname: alarm [BUSY] [DONE]
:: Setting Locale: en_US.UTF-8 [BUSY] [DONE]
:: Setting Consoles to UTF-8 mode [BUSY] [DONE]
:: Loading Keyboard Map: us [BUSY] [DONE]
:: Saving dmesg Log [BUSY] [DONE]
INIT: Entering runlevel: 3
:: Starting Syslog-NG [BUSY] [DONE]
:: Starting Network [BUSY] mv643xx_eth_port mv643xx_eth_port.0: eth0: link up, 100 Mb/s, full duplex, flow control disabled [DONE]
:: Mounting Network Filesystems [BUSY] [DONE]
:: Starting crond daemon [BUSY] [DONE]
:: Starting Secure Shell Daemon [BUSY] ssh-keygen: generating new host keys: RSA1 RSA DSA ECDSA [DONE]
Arch Linux 2.6.39.4 (alarm) (ttyS0)
alarm login: root
Password:
[root@alarm ~]#
[root@alarm ~]# pacman -Q
acl 2.2.51-1
attr 2.4.46-1
bash 4.2.020-1
binutils 2.22-4
bzip2 1.0.6-3
coreutils 8.14-1
cracklib 2.8.18-2
cronie 1.4.8-1
cryptsetup 1.4.1-1
dash 0.5.7-2
db 5.3.15-1
dbus-core 1.4.16-1
device-mapper 2.02.88-1
dhcpcd 5.2.12-4
diffutils 3.2-1
e2fsprogs 1.41.14-2
eventlog 0.2.12-3
expat 2.0.1-7
file 5.10-1
filesystem 2011.12-2
findutils 4.4.2-4
fuse 2.8.6-1
gawk 4.0.0-2
gcc-libs 4.6.2-5
gdbm 1.10-1
gettext 0.18.1.1-4
glib2 2.30.2-1
glibc 2.15-3
gmp 5.0.2-3
grep 2.10-1
groff 1.21-2
gzip 1.4-4
heirloom-mailx 12.5-3
iana-etc 2.30-2
inetutils 1.9-1
initscripts 2011.07.3-1
iproute2 3.2.0-1
iputils 20101006-2
jfsutils 1.1.15-3
kbd 1.15.3-2
keyutils 1.5.5-1
krb5 1.9.2-2
less 444-2
libarchive 2.8.5-2
libcap 2.22-2
libedit 20110802_3.0-1
libfetch 2.33-1
libffi 3.0.10-1
libgcrypt 1.5.0-1
libgpg-error 1.10-1
libgssglue 0.3-1
libidn 1.22-1
libldap 2.4.28-1
libnl 1.1-3
libpcap 1.2.1-1
libpipeline 1.2.0-2
libsasl 2.1.23-8
libsigsegv 2.6-2
libtirpc 0.2.2-2
libusb 1.0.8-2
libusb-compat 0.1.3-2
licenses 2.9-1
linux 3.1.7-2
linux-api-headers 3.1.6-1
linux-firmware 20110822-1
linux-headers 3.1.7-2
logrotate 3.8.1-1
lvm2 2.02.88-1
man-db 2.6.0.2-3
man-pages 3.32-1
mdadm 3.2.2-4
mkinitcpio 0.8.0-3
mkinitcpio-busybox 1.19.2-1
module-init-tools 3.16-3
nano 2.2.6-2
ncurses 5.9-2
net-tools 1.60.20110819cvs-3
ntfs-3g 2011.4.12-1
openssh 5.9p1-5
openssl 1.0.0.f-1
pacman 3.5.4-4
pacman-mirrorlist 20120109-1
pam 1.1.5-2
pciutils 3.1.8-1
pcmciautils 017-1
pcre 8.21-1
perl 5.14.2-6
popt 1.16-4
ppp 2.4.5-3
procps 3.2.8-4
psmisc 22.14-1
readline 6.2.002-1
reiserfsprogs 3.6.21-4
run-parts 4.0.4-1
sed 4.2.1-4
shadow 4.1.4.3-5
sysfsutils 2.1.0-7
syslog-ng 3.3.3-1
sysvinit 2.88-3
tar 1.26-2
tcp_wrappers 7.6-12
texinfo 4.13a-7
tzdata 2011n-1
udev 175-1
usbutils 004-1
util-linux 2.20.1-2
vi 1:050325-2
wget 1.13.4-1
which 2.20-5
wpa_supplicant 0.7.3-4
xfsprogs 3.1.7-1
xz 5.0.3-1
zlib 1.2.5-4
[root@alarm ~]# pacman -S mc
resolving dependencies…
looking for inter-conflicts…
Targets (3): gpm-1.20.6-7 slang-2.2.4-1 mc-4.8.1-1
Total Download Size: 2.12 MB
Total Installed Size: 10.28 MB
Proceed with installation? [Y/n] y
:: Retrieving packages from core…
gpm-1.20.6-7-arm 118.2K 81.2K/s 00:00:01 [######################] 100%
:: Retrieving packages from extra…
slang-2.2.4-1-arm 703.1K 138.7K/s 00:00:05 [######################] 100%
:: Retrieving packages from community…
mc-4.8.1-1-arm 1348.0K 158.8K/s 00:00:08 [######################] 100%
(3/3) checking package integrity [######################] 100%
(3/3) checking for file conflicts [######################] 100%
(1/3) installing gpm [######################] 100%
(2/3) installing slang [######################] 100%
(3/3) installing mc [######################] 100%
Optional dependencies for mc
p7zip: support for 7zip archives
mtools: a+ extfs
cdparanoia: audio extfs
gawk: hp48+ extfs
cdrkit: iso9660 extfs
perl: needed by several extfs scripts
python-boto: s3+ extfs
python2-pytz: s3+ extfs
p7zip: u7z extfs
unace: uace extfs
unarj: uarj extfs
cabextract: ucab extfs
unrar: urar extfs
zip: uzip extfs
[root@alarm ~]#
Test installation of mc package went fine and as result we have fully functional ArchLinux development system which can be tuned by package manager – packman. More info on packman usage is here: https://wiki.archlinux.org/index.php/Pacman