Linux "Plug Computer" for $99 - many possibilities

A place for discussion of topics that are not specific to ZoneMinder. This could include Linux, Video4Linux, CCTV cameras or any other topic.
User avatar
Blazer
Posts: 234
Joined: Sun Jun 05, 2005 12:57 pm

Post by Blazer »

It arrived today! I took some pictures:
http://digg.com/d1ntRM

I've only just now plugged it in, hopefully will get some real testing done this weekend :)
User avatar
kingofkya
Posts: 1110
Joined: Mon Mar 26, 2007 6:07 am
Location: Las Vegas, Nevada

Post by kingofkya »

now if you could just find a usb video capture carde for it it could be a cheap Network Digitizers for old anolog cams
User avatar
Blazer
Posts: 234
Joined: Sun Jun 05, 2005 12:57 pm

Post by Blazer »

I have noticed that there are several other companies now using this exact same model, and basically re-selling them as fancy NAS devices. Here is some more info on that: http://www.linuxdevices.com/news/NS9634061300.html (the list of similar products is near the bottom).

I havn't really gotten a chance to put it through its paces yet, as I have been slowed down by trying to compile the uvcvideo module so that I can plug in a usb 2.0 web cam for testing some video-security applications I am working on.

Since I'm ssh'd into it now, I will just cut and paste some stuff:

root@debian:~# uname -a
Linux debian 2.6.22.18 #1 Thu Mar 19 14:46:22 IST 2009 armv5tejl GNU/Linux

root@debian:~# cat /proc/cpuinfo
Processor : ARM926EJ-S rev 1 (v5l)
BogoMIPS : 1192.75
Features : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part : 0x131
CPU revision : 1
Cache type : write-back
Cache clean : cp15 c7 ops
Cache lockdown : format C
Cache format : Harvard
I size : 16384
I assoc : 4
I line length : 32
I sets : 128
D size : 16384
D assoc : 4
D line length : 32
D sets : 128

Hardware : Feroceon-KW
Revision : 0000
Serial : 0000000000000000

root@debian:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00400000 00020000 "uImage"
mtd1: 1fb00000 00020000 "rootfs"

root@debian:~# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 507M 329M 179M 65% /
tmpfs 252M 0 252M 0% /lib/init/rw
varrun 252M 36K 252M 1% /var/run
varlock 252M 0 252M 0% /var/lock
udev 252M 8.0K 252M 1% /dev
tmpfs 252M 0 252M 0% /dev/shm
tmpfs 252M 0 252M 0% /var/cache/apt
(Note that when I received the unit the FS was only about 23% full, I have since then installed kernel-source and other packages).

Here are the options available in the "uboot" pre-boot environment:
Marvell>> ?
? - alias for 'help'
base - print or set address offset
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootext2 dev:boot_part1,boot_part2 addr boot_image linux_dev_name
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
bubt - Burn an image on the Boot Nand Flash.
chpart - change active partition
cmp - memory compare
cmpm - Compare Memory
cp - memory copy
cpumap - Display CPU memory mapping settings.
crc32 - checksum calculation
date - get/set/reset date & time
dclk - Display the MV device CLKs.
dhcp - invoke DHCP client to obtain IP/boot params
diskboot- boot from IDE device
echo - echo args to console
eeprom - EEPROM sub-system
erase - erase FLASH memory
ext2load- load binary file from a Ext2 filesystem
ext2ls - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
fi - Find value in the memory.
flinfo - print FLASH memory information
fsinfo - print information about filesystems
fsload - load binary file from a filesystem image
g - start application at cached address 'addr'(default addr 0x40000)
go - start application at address 'addr'
help - print online help
icrc32 - checksum calculation
ide - IDE sub-system
iloop - infinite loop on address range
imd - i2c memory display
imm[.b, .s, .w, .l] - i2c memory modify (auto-incrementing)
imw - memory write (fill)
inm - memory modify (constant address)
iprobe - probe to discover valid I2C chip addresses
ir - reading and changing MV internal register values.
loop - infinite loop on address range
ls - list files in a directory (default /)
map - Diasplay address decode windows
md - memory display
me - PCI master enable
mm - memory modify (auto-incrementing)
mp - map PCI BAR
mtdparts- define flash/nand partitions
mtest - simple RAM test
mv_diag - perform board diagnostics
mv_diag
- display all available tests
mv_diag all
- run all available tests
mv_diag test1
- run specified test
mw - memory write (fill)
nand - NAND sub-system
nboot - boot from NAND device
nbubt - Burn a boot loader image on the Boot Nand Flash.
nm - memory modify (constant address)
pci - list and access PCI Configuration Space
phyRead - Read PCI-E Phy register
pciePhyWrite - Write PCI-E Phy register
phyRead - Read Phy register
phyWrite - Write Phy register
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
rarpboot- boot image via network using RARP/TFTP protocol
rcvr - Satrt recovery process (Distress Beacon with TFTP server)
reset - Perform RESET of the CPU
resetenv - Return all environment variable to default.
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
se - PCI Slave enable
setenv - set environment variables
sflash - read, write or erase the external SPI Flash.
sg - scanning the PHYs status
sp - Scan PCI bus.
tftpboot- boot image via network using TFTP protocol
usb - USB sub-system
usbboot - boot from USB device
version - print monitor version
User avatar
Blazer
Posts: 234
Joined: Sun Jun 05, 2005 12:57 pm

Post by Blazer »

I got some time to work on the SheevaPlug, and this is the progress I have made so far:

* Had lots of "fun" figuring out how to use, erase, and reflash mtd partitions and using the jffs filesystem

Code: Select all

root@debian:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00020000 "uBoot"
mtd1: 00400000 00020000 "uImage"
mtd2: 1fb00000 00020000 "rootfs"
* Compiled, installed, and booted latest kernel using an arm cross-compiler on a CentOS 5.3 system

Code: Select all

root@debian:~# uname -a
Linux debian 2.6.30-rc1-00002-g1758996 #1 PREEMPT Wed Apr 15 11:44:25 MST 2009 armv5tel GNU/Linux
* Compiled a modular kernel including Video4Linux and UVC support, and successfully connected a Logitech QuickCam 9000

Code: Select all

root@debian:~# lsmod
Module                  Size  Used by
uvcvideo               59836  1
videodev               33944  2 uvcvideo
v4l1_compat            16180  2 uvcvideo,videodev

orion-ehci orion-ehci.0: new USB bus registered, assigned bus number 1
orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00
USB Video Class driver (v0.1.0)
usb 1-1: new high speed USB device using orion-ehci and address 3
usb 1-1: configuration #1 chosen from 1 choice
input: UVC Camera (046d:0990) as /devices/platform/orion-ehci.0/usb1/1-1/1-1:1.0/input/input0

root@debian:~# ls -l /dev/vide*
crw-rw---- 1 root video 81, 0 2009-04-15 22:21 /dev/video0
* Compiled mjpeg-streamer and got it working

Code: Select all

root@debian:~/mjpg-streamer# ./start.sh
MJPG Streamer Version.: 2.0
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 960 x 720
 i: Frames Per Second.: 30
 i: Format............: MJPEG
 o: www-folder-path...: ./www/
 o: HTTP TCP port.....: 8080
 o: username:password.: disabled
 o: commands..........: enabled

Code: Select all

top - 03:00:31 up  7:17,  1 user,  load average: 0.00, 0.01, 0.00
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.9%us,  1.0%sy,  0.1%ni, 98.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    514888k total,    90052k used,   424836k free,        0k buffers
Swap:        0k total,        0k used,        0k free,    66768k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2797 root      20   0 48752 2856 2368 S  1.2  0.6   3:44.89 mjpg_streamer
* Installed motion, havn't done much testing with it yet as I have never used it before

Code: Select all

Apr 16 03:21:17 debian motion: [0] Processing thread 0 - config file /etc/motion/motion.conf
Apr 16 03:21:17 debian motion: [0] Motion 3.2.11 Started
Apr 16 03:21:17 debian motion: [0] ffmpeg LIBAVCODEC_BUILD 3410688 LIBAVFORMAT_BUILD 3414017
Apr 16 03:21:17 debian motion: [0] Thread 1 is from /etc/motion/motion.conf
Apr 16 03:21:17 debian motion: [1] cap.driver: "uvcvideo"
Apr 16 03:21:17 debian motion: [1] cap.card: "UVC Camera (046d:0990)"
Apr 16 03:21:17 debian motion: [1] cap.bus_info: "usb-orion-ehci.0-1"
Apr 16 03:21:17 debian motion: [1] cap.capabilities=0x04000001
Apr 16 03:21:17 debian motion: [1] - VIDEO_CAPTURE
Apr 16 03:21:17 debian motion: [1] - STREAMING
Apr 16 03:21:17 debian motion: [1] Supported palettes:
Apr 16 03:21:17 debian motion: [1] 0: MJPG (MJPEG)
Apr 16 03:21:17 debian motion: [1] Selected palette MJPG
Apr 16 03:21:17 debian motion: [1] index_format 2 Test palette MJPG (320x240)
Apr 16 03:21:17 debian motion: [1] Using palette MJPG (320x240) bytesperlines 0 sizeimage 102400 colorspace 00000008
Apr 16 03:21:17 debian motion: [1] found control 0x00980900, "Brightness", range 0,255
Apr 16 03:21:17 debian motion: [1] ^I"Brightness", default 128, current 128
Apr 16 03:21:17 debian motion: [1] found control 0x00980901, "Contrast", range 0,255
Apr 16 03:21:17 debian motion: [1] ^I"Contrast", default 32, current 32
Apr 16 03:21:17 debian motion: [1] found control 0x00980902, "Saturation", range 0,255
Apr 16 03:21:17 debian motion: [1] ^I"Saturation", default 32, current 32
Apr 16 03:21:17 debian motion: [1] found control 0x00980913, "Gain", range 0,255
Apr 16 03:21:17 debian motion: [1] ^I"Gain", default 0, current 226
Apr 16 03:21:17 debian motion: [1] Resizing pre_capture buffer to 1 items
Apr 16 03:21:34 debian motion: [1] Closing video device /dev/video0
Apr 16 03:21:36 debian motion: [0] Motion terminating
I havn't tried installing ZoneMinder directly on the SheevaPlug yet, but I am absolutely certain it would work. I'm not sure how many cameras it could run, I need to get a USB hub so that I can plug more than one in, and find out.
newvisionantenna
Posts: 381
Joined: Sat Jan 17, 2009 7:49 pm
Location: Germany

Post by newvisionantenna »

If you have motion working you should play around with it. I have it working on the router here and it works great. It's a fully functional security system and I've already got scripts that will email you on alarm and also wput files to a remote server. It can make videos on the fly and also wput them out. It doesn't have the pretty interface like Zoneminder but can easily be configured looking at the motion.conf or we could make up a custom web interface to make it easier to configure.

I can also control a lot of PTZ type stuff and do motion tracking. It's alittle harder on the CPU compared to mjpg_streamer but it's got to be far less then Zoneminder. It doesn't need apache2, mysql, and all the rest of that stuff. You can use mysql with it and also a live stream but it's not required as far as I know. I've yet to receive this device and it shipped a long time ago. I'll have to call and see what's up. I've moved on to the Uquiqity Routerstation, pretty impressive device for $60.

btw, jffs2 is used all the time in DD-WRT and Openwrt. You should try out openwrt sometime, you would be impressed with the packages they have compiled for it and the amount of devices it runs on.
jdonth
Posts: 1
Joined: Sun Apr 26, 2009 5:49 pm

Post by jdonth »

Blazer wrote:I got some time to work on the SheevaPlug, and this is the progress I have made so far:

* Had lots of "fun" figuring out how to use, erase, and reflash mtd partitions and using the jffs filesystem

Code: Select all

root@debian:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00020000 "uBoot"
mtd1: 00400000 00020000 "uImage"
mtd2: 1fb00000 00020000 "rootfs"
Would you post your instructions on how you changed the "uImage" partition size from 2M to 4M?

Thanks,
~Joe Donth
newvisionantenna
Posts: 381
Joined: Sat Jan 17, 2009 7:49 pm
Location: Germany

Post by newvisionantenna »

This thing must be really slow to produce, finally the other day I got the email saying it's been shipped. It's been so long since I purchased it I almost forgot about it.

Since I've got the Routerstation doing everything I need for half the price I'm probably going to sell it if anyone want's one. Pretty soon I'll be booting a full debian install like I've did with my ASUS deluxe.
User avatar
rdmelin
Posts: 863
Joined: Wed Oct 29, 2003 2:23 pm
Location: Ellensburg, WA USA

Post by rdmelin »

I've moved on to the Uquiqity Routerstation, pretty impressive device for $60.
Just curious. Does that include a radio (mini pci right?), or are they extra?
User avatar
cordel
Posts: 5210
Joined: Fri Mar 05, 2004 4:47 pm
Location: /USA/Washington/Seattle

Post by cordel »

The radio cards are extra. I have a few of these boards that I use and love it though. Very responsive, plenty of room in flash 16MB I think, and an over all great board. Passive POE on one of the three ether jacks.
newvisionantenna
Posts: 381
Joined: Sat Jan 17, 2009 7:49 pm
Location: Germany

Post by newvisionantenna »

Hey cordel, glad to see you have these also. I've went back and forth between Openwrt and dd-wrt. The best is Openwrt and booting Debian, that's sort of on the downlow for now until it's all stable and refined :)
souverain
Posts: 16
Joined: Tue Jan 13, 2009 2:24 am

Low Cost Wireless IP Camera

Post by souverain »

Is Low Cost Wireless IP Camera a triple oxy-moron?

Any recommendations (that work with zm) will be appreciated.

BTW: I just got my sheevaplug - the packaging is very cute - I am impressed.

Once I get zm working on it, I will post the steps here.

Thanks
newvisionantenna
Posts: 381
Joined: Sat Jan 17, 2009 7:49 pm
Location: Germany

Post by newvisionantenna »

Consider this when talking about Low Cost Wireless IP Camera,

ASUS WL500W = $90
Atheros mini pci card = $12 (if you want wireless working)
UVC camera = $30-$100
Openwrt = $0

or another router that I've found for $49 that runs Openwrt and is capable of running Motion with the Orbit. I have it up and running right now at 640x480 at 10 fps +. That combo could be under $100. I just set it all to the side now since most people either don't get what I'm trying to setup or just stick with the really expensive camera's.

For around $200 you can have Pan and Tilt Control with the Oribit AF using the above combo. You'll get resolution that is on Par with some really high priced cam's. Plus you get all the power of Openwrt,

1. Run a hotspot with Coova at the same Time your running a security camera, yes this is possible with the use of OPENVPN which fits on the router.

2. Run not only client mode but Virutal AP's with mulitple SSID's using only one radio card.

3. Choose from hundred's of pre-compiled packages to install.

The list goes on and on, so after you spend $99 on the sheeva plug + $CAM and spend hours compiling stuff to get it to work and still lack wireless my solution starts to look alittle better. Don't get me wrong, have a sheeva on the way but I'm second guessing what I'm actually going to do with the thing. Would be nice to have Zoneminder running on it, but "Motion" seems like the better choice for the low performance your going to get out of it.
souverain
Posts: 16
Joined: Tue Jan 13, 2009 2:24 am

Post by souverain »

newvisionantenna:

I think your solution is probably better - I just personally don't understand it. The sheevaplug+zm solution seems more straightforward.
newvisionantenna
Posts: 381
Joined: Sat Jan 17, 2009 7:49 pm
Location: Germany

Post by newvisionantenna »

If you can compile all the needed stuff for Zoneminder then trust me, you can flash Openwrt onto a router and set it up.

Think of it like this router+motion+camera = sheeva+zm+camera or like this router+mjpg_streamer+camera and the stream being feed into a remote Zoneminder server, any combo will work. In the mean time still waiting to hear how Zoneminder turned out for Blazer or if he started working with Motion. I've been waiting for over a month on this Sheeva plug, i'll figure out something for it.
souverain
Posts: 16
Joined: Tue Jan 13, 2009 2:24 am

Post by souverain »

Got my Plug, I plugged it into my network, and it got DHCP address. I can telnet to it as root.

Question:

The documentation seems written by developers for other developers. Unfortunately I am not one, so can some tell me why:

(1) I need the hyperterminal/minicom stuff for when I have a telnet/ssh connection?

(2) Why do I need to write the jaunty file system for?


About the only thing I get about this is the cross-compiler piece, which I have installed on my linux host.

(3) Once I compile zm on my host, how do I install it in the plug?

Thanks
Post Reply