Blog Just another tech site


Foscam FI9903P Support For Synology Surveillance Station

Foscam Options

Add to (stop Surveillance Station First - within Package Center): /volume1/@appstore/SurveillanceStation/device_pack/camera_support/FOSCAM.conf

api = foscam-h264-v2
channel_list = 1
default_channel = 1
multi_streams = 2
default_rec_stream_h264 = 1
default_live_stream_h264 = 1
h264 = rtsp
motion = h264
motion_param = sensitivity
alarm_input = 1
alarm_output = 1
camera_parameters = yes
ntp_server = Surveillance Station,,,,time.nuri.n
video_mirror = yes
video_flip = yes
exposure_control = 50,60,outdoor
default_exposure_control = 60
exposure_mode = auto,day,night,schedule
default_exposure_mode = auto
osd_timestamp = yes
osd_format = datetime,text
default_osd_format = datetime
default_username = admin
rtsp_protocol = auto,udp,tcp
default_rtsp_protocol = auto
extra_liveview_stream = mobile
resolutions_h264 = 320x180,320x240,640x360,640x480,1280x720,1280x960,1920x1080
default_resolution_h264 = 1920x1080
fps_h264_[320x180,320x240,640x360,640x480,1280x720,1280x960] = 1-30
default_fps_h264_[320x180,320x240,640x360,640x480,1280x720,1280x960] = 10
bitrate_control_h264 = vbr,cbr
default_bitrate_control_h264 = vbr
default_vbr_quality_h264 = 5
cbr_list_h264 = 20,50,100,200,512,1024,2048,4096
resolutions_h264 = 320x240,640x480
default_resolution_h264 = 320x240
fps_h264_[320x240,640x480] = 15
default_fps_h264_[320x240,640x480] = 15

Other profiles in surveillance station will work - but does not support 1080p (which has a much wider FOV).

Filed under: Software 1 Comment

Zabbix Proxy Dependencies


I experienced the following issues when trying to configure the zabbix proxy source. These were the packages that needed to be installed for it to compile.

zabbix-2.2.4# ./configure --prefix=/usr --enable-proxy --with-net-snmp --with-mysql --with-ssh2 --enable-ipv6 --with-libcurl --with-libxml2

checking for mysql_config... no
configure: error: MySQL library not found
# apt-get install libmysqlclient-dev

checking for xml2-config... no
configure: error: LIBXML2 library not found
# apt-get install libxml2-dev

configure: error: Not found Net-SNMP library
apt-get install libsnmp-dev
# apt-get install snmp

configure: error: SSH2 library not found
Built from source and installed. 

E: Unable to locate package curl-dev
# apt-get install libcurl4-openssl-dev

configure: error: Not found Net-SNMP library
# sudo apt-get install libsnmp-dev


After these packages were installed it built successfully.

Filed under: Software No Comments

Create new Windows Homegroup when there is an exisiting Homegroup on the network

Windows 7 Homegroup

I decided to try Homegroups between a windows 7 and Windows 8 to see if this really does facilitate easier sharing, while still being secure. I will leave my judgement for later as I only just configured this. I ran in to issues where a house mate had his own Homegroup on the existing network and I could not see an option to create one, only to join the existing one.

Steps to create a new one:

  1. Open up the Homegroup options within the control panel.
  2. Disable the network adapter / disconnect the Ethernet cable.
  3. Enable the network adapter and be prepared to create a new Homegroup quickly when the options appears.
  4. When the create new Homegroup option appears and quickly enter a password, as it will fail if it has enough time to find the exisiting Homegroup.
  5. Follow the prompts to set up and then insert your password on the other computers in the network like normal and it should automatically find the matching Homegroup.
Filed under: Software 13 Comments
15Sep/121 Update grid view after updating a linked form view

Grid View linked to Form View

A personal project I am currently working on is creating a database site, which will drive a organizations on-line membership management system.

One of the pages relies on a grid view at the top, which has selectable rows which a form view below relies on. The form view has a data key name of the selected row in the grid view.

When a row / field is updated in the form view, this is not instantly shown in the grid view, but instead will show after a page reload. I first presumed that auto post back would update the grid view, but as it is not the data view that is updated, the system does not automatically update it.

One way I have found to get around this pain, is to create a custom method which rebinds the data source to the grid view after the form view has been updated.

Under the formview object on the aspx page add the following (change the method name as required):


Adding on item updated method

The related method in the backend code then needs to be created, add the following code:

protected void FormView1_ItemUpdated(object sender, EventArgs e)

Since this is being called after the item has been updated, the datasource will have already been updated, therefore the new data simply needs to be pushed / bound to the grid view object.

Adding the required back-end code

After these changes my grid view now updates instantly without the need to refresh the page.

Filed under: Asp.Net, Software 1 Comment

Using minicom to interface with serial devices on Linux

I came across a problem recently, I needed to configure a Cisco switch and all I had was a Ubuntu machine that had a serial port. Since then I've got a Cisco 2511, with octal cable, which is very handy when configuring many devices, but that is for another post.

I found a program called 'minicom' which is available as far as I'm aware in all the main repositories. This post is a brief explanation on how to find your serial port and setup / use minicom.

1. First of all lets start with finding the computers serial ports, make sure you have your device powered on and connected:

dmesg | grep tty

Listing Linux serial devices

This shows in my example that the physical serial port is at ttyS0, where as usb > serial converters will show as ttyUSB0

2. Time to open up minicom, I believe the later versions will allow running as an unprivileged user, but this will mean that you can not save configurations. Better to run as root if you have the option.

Start-up Minicom

Default page after starting Minicom

3. Checking the options available is very easy, to put minicom in to command mode control+a needs to be pressed, with a following 'z' to show the options. For example, control+a then x will close minicom.

Minicom Options

4. Now it is time to setup minicom, as you can see from the help page you need to use control+a then o (for options). Scroll down to "Serial port setup" and hit enter.

Minicom serial settings.

5. From there is is pretty straight forward to follow the prompts to change to your required settings. Typically Cisco networking equipment uses 9600 Bps/Par/Bits, "8-N-1", Yes to Hardware Control Flow and no to Software Control Flow. Also set your serial device to the one you found in the first step.

Minicom Cisco Settings

6. Now save your configuration for quicker access in the future, personally I save it as "Cisco".

Saving configuration

7. Now close minicom with control+a then x will prompt you the option to close the program or simply scroll to "Exit".

Resetting Minicom

8. If you saved a configuration within minicom, it can be used to open minicom directly in to those settings. For example, "minicom cisco".

Initialising Minicom

9. Everything should be ready for using your serial device.

Functioning Minicom


Windows – Finding which process is bound to a port

Sometimes I have the issue that a port is already bound to a port, stopping another process using that port. Other times I just plainly needed to find which process was using a particular port.

Usually a simple nmap scan of the localhost shows enough information to get by. For beginners after installing nmap simply run the command "nmap localhost" to run a regular scan. Nmap can be found here

If the exact proccess bound to a port needs to be found a few steps need to be taken.

  1. Open command prompt and run the command "netstat -ao". -a displays all listening ports. -o lists the owning process ID.

    netstat -ao

  2. Find the related port, make sure to differenciate between TCP / UDP ports and take note of processes PID.
  3. Open up task manager and select View > Select columns.

    Task Manager - Show columns.

  4. Select the top checkbox for "PID (Process Identifier)".

    Task Manager - Select PID column.

  5. Now simply find the related PID from netstat in the processes tab. Now you should have your related process.

    Task manager PIDs showing.


Multiple DNS suffixes in Windows

Working in multiple domains can be a hassel, but there are a few things to make life easier. I have needed to do this recently to allow quicker access to two standard domains containing users, servers and workstations and a domain dedicated networking equipment.

Why would you need to do this? In my case instead of typing a full qaulified domain name to access a device in another domain, the device name can be used. For example if I am in '' and I need to access 'device1' in '' normally the full name '' would have to be used. Instead once the second dns sufix as been added to your network interface to access '', only 'device1' would have to be input.

Steps to add other dns suffixes:

  1. In your desired network adapters settings, select IPv4's properties

    Select Ipv4 properties

  2. Select advanced in the properties dialogue.

    Select Advanced

  3. Select the DNS tab.

    Select the DNS tab.

  4. Select "Append these DNS suffixes (in order):" and add your desired domains.

    Select 'Append' and add the desired DNS suffixes.


Now you should be able to access the devices from other domains without the fully qualified domain name. I presume if there are exactly the same names in both domains, it will use the first match of domains in the list.


WordPress running on a Raspberry Pi Issues

I have been monitoring the Raspberry Pi running apache2, php5, mysql powering a wordpress blog under very low traffic. I have noticed the load times are very unreasonable, with every page load causing a 100% spike in cpu activity for a fair period of time.

Response Time (in ms)

As can be seen in the above graph load times were very extreme considering the device was solely used just for running wordpress and the related software.

Page load response times

Frequently the raspberry pi would become completely unresponsive even to SSH connections.

Raspberry Pi Unresponsive

Availability Chart

Obviously a low powered device like this simply cant handle the standard software's demands. Mathew Shadel's blog talks about some interesting ways minimalise the software load with different software, I may try this in the future but for now I want to try a few different things with my Pi and not have it tied up in a server room.


WordPress running on a Raspberry Pi

Raspberry Pi

Just a heads up, there is a clone of this very blog running at on a Raspberry Pi.

It is running the standard Debian install provided at the Raspberry Pi website running stock standard apache2/php5/mysql server. This is very heavy for the low powered Raspberry Pi so if your trying it out, expect very slow load times and occasional crashes. From my experiences it seems that with an overload will cause the whole system to become unresponsive and requires a power cycle.

There are other software packages around for lower powered linux servers which I may look in to sometime in the future.

I recently received an MK802, so who knows may the blog will be dished out from that eventually.


Centos: Yum update error “file from install of conflicts with file from package”

Centos Yum Update Issue

Recently I decided to update a few linux servers that I maintain and found some issues while running yum update which were stopping updates. Many errors showing that file conflicts with the file from package etc. All of the servers are 64 bit, but it seemed that yum had previously downloaded 32 bit versions of the programs installed, so these useless copies have to be removed.

file /usr/share/man/man1/perlplan9.1.gz from install of perl-5.8.8-38.el5.x86_64 conflicts with file from package perl-5.8.8-32.el5_7.6.i386
file /usr/share/man/man1/perlpod.1.gz from install of perl-5.8.8-38.el5.x86_64 conflicts with file from package perl-5.8.8-32.el5_7.6.i386
file /usr/share/man/man1/perlpodspec.1.gz from install of perl-5.8.8-38.el5.x86_64 conflicts with file from package perl-5.8.8-32.el5_7.6.i386
file /usr/share/man/man1/perlport.1.gz from install of perl-5.8.8-38.el5.x86_64 conflicts with file from package perl-5.8.8-32.el5_7.6.i386

The steps I took to resolve the issues:

  1. yum remove \*.i386 \*.i686
  2. If you don't want to issue to reoccur, echo "exclude = *.i?86" >> /etc/yum.conf
  3. yum reinstall \* or yum update
Filed under: General Linux 2 Comments