News:

Re-organized the forum to more cleanly delineate the development section, as the end user support side appears to have taken a life of its own!

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - admin

Pages: 1 2 [3] 4 5 6
31
uCLinux / Compiling in WebCam Device Drivers
« on: June 19, 2011, 05:33:07 am »
So, you have a working kernel, and you want some video?

Ok, so you need some device drivers.

Unfortunately we're on an ancient kernel, and all the love and joy is going to others.
What to do?

Backport...


First - we need to know what device we have (from a USB perspective).
Mine is a PixArt device, but I also have a Sonix zc3xx based one.

We can find this out by looking at the USB id's shown during boot.

If you miss these, you can always use dmesg to check the boot log (assuming you have that compiled in also!).

All files in this tutorial are available at http://www.openipcam.com/files/Tutorials/WebCam

So, lets start.


First up, we need to add a USB kernel patch to our usb drivers folder, so that we have the spca5xx drivers for our webcam.  I got this from the mxhard.fr site, which of course is blocked in China.  Joy.

http://mxhaard.free.fr/spca50x/embedded/KernelPatch/usb-2.4.31LE06.patch.tar.gz


Go to the uClinux-dist/linux-2.4.x/drivers/usb folder

and download the patch from there, or from the tutorial folder, and unzip

Now patch the files

patch -p1 < usb-2.4.31.patch

It will ask about reversing, say no (this is the default), and then ask if you want to go ahead and make the changes (say yes).

It will now tell you that its done, and it had 2 issues.

Take a look at Config.in.rej and Makefile.rej

Code: [Select]
cat Config.in.rej
--- Config.in 2004-02-19 15:14:06.000000000 +0100
+++ Config.in 2005-11-25 21:11:03.000000000 +0100
@@ -76,6 +76,7 @@
       dep_tristate '  USB Konica Webcam support' CONFIG_USB_KONICAWC $CONFIG_USB $CONFIG_VIDEO_DEV
       dep_tristate '  USB OV511 Camera support' CONFIG_USB_OV511 $CONFIG_USB $CONFIG_VIDEO_DEV
       dep_tristate '  USB Philips Cameras' CONFIG_USB_PWC $CONFIG_USB $CONFIG_VIDEO_DEV
+      dep_tristate '  USB SPCA5XX Sunplus Vimicro Sonix Cameras' CONFIG_USB_SPCA5XX $CONFIG_USB $CONFIG_VIDEO_DEV
       dep_tristate '  USB SE401 Camera support' CONFIG_USB_SE401 $CONFIG_USB $CONFIG_VIDEO_DEV
       dep_tristate '  USB STV680 (Pencam) Camera support' CONFIG_USB_STV680 $CONFIG_USB $CONFIG_VIDEO_DEV
       dep_tristate '  USB W996[87]CF Camera support' CONFIG_USB_W9968CF $CONFIG_USB $CONFIG_VIDEO_DEV $CONFIG_I2C

Config.in.rej actually worked, but its not identical to our Config.in, so it says it failed.
The Patch file adds the SPCA5XX line to the Config.in file.

Check to make sure thats there.

Code: [Select]
grep SPCA5 Config.ingrep SPCA5 Config.in
      dep_tristate '  USB SPCA5XX Sunplus Vimicro Sonix Cameras' CONFIG_USB_SPCA5XX $CONFIG_USB $CONFIG_VIDEO_DEV

Yup, so we can forget that one.

How about the Makefile?

Code: [Select]
cat Makefile.rej
--- Makefile 2004-02-19 15:14:06.000000000 +0100
+++ Makefile 2005-11-13 13:02:18.000000000 +0100
@@ -77,6 +77,11 @@
  obj-y += host/usb-ohci.o
 endif
 
+subdir-$(CONFIG_USB_SPCA5XX) += spca5xx
+ifeq ($(CONFIG_USB_SPCA5XX),y)
+ obj-y += spca5xx/spca5xx.o
+endif
+
 subdir-$(CONFIG_USB_SL811HS_ALT) += host
 subdir-$(CONFIG_USB_SL811HS) += host

That looks like it adds the CONFIG_USB_SPCA5XX to our Makefile.  Lets check.
Nope, it didn't, so we need to add that in manually.

Add the below

Code: [Select]
subdir-$(CONFIG_USB_SPCA5XX)    += spca5xx
ifeq ($(CONFIG_USB_SPCA5XX),y)
        obj-y += spca5xx/spca5xx.o
endif

..above this line near the bottom of the Makefile

Code: [Select]
include $(TOPDIR)/Rules.make

Save.


Good, now we need to patch the spca5xx folder files, as we have 2.4.20, and our kernel is still missing stuff it would like.

Code: [Select]
cd spca5xx
We need to change the spca_core.c file slightly to compile.
There are 3 changes needed.

Find this:

Code: [Select]
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
static struct usb_driver spca5xx_driver = {
.owner = THIS_MODULE,
.name = "spca5xx",
.id_table = device_table,
.probe = spca5xx_probe,
.disconnect = spca5xx_disconnect
};
#else
static struct usb_driver spca5xx_driver = {
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20)
THIS_MODULE,
#endif
"spca5xx",
spca5xx_probe,
spca5xx_disconnect,
{NULL,NULL}
};
#endif


And replace that entire text with this:
Code: [Select]
static struct usb_driver spca5xx_driver = {
name: "spca5xx",
id_table: device_table,
probe: spca5xx_probe,
disconnect: spca5xx_disconnect
};


Next, find this:
Code: [Select]
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
static int
spca5xx_probe (struct usb_interface *intf, const struct usb_device_id *id)
#else
static void *
spca5xx_probe (struct usb_device *dev, unsigned int ifnum,
const struct usb_device_id *id)
#endif

And replace that entire text with this:
Code: [Select]
static void *
spca5xx_probe (struct usb_device *dev, unsigned int ifnum,
const struct usb_device_id *id)


Save that, and lets try it out.

change to your main uClinux folder, and

make menuconfig
select Customise Kernel Settings
Exit, Exit, Say yes to do you wish to save your new kernel configuration.

You'll now see the Kernel Configuration page.
Lets see if our Drivers are there.

Go to Multimedia Devices, and make sure V4L is checked.
Exit back a page, then go to USB Devices, and check USB SPCA5XX.
Exit, Exit, Say yes to do you wish to Save.

Now, lets see if that worked.

Code: [Select]
make dep
make

Oh no, it didn't work.

Code: [Select]
make[4]: Entering directory `/home2/NUVO/uClinux-dist/linux-2.4.x/drivers/usb/spca5xx'
arm-elf-gcc -D__KERNEL__ -I/home2/NUVO/uClinux-dist/linux-2.4.x/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-common -pipe -fno-builtin -D__linux__ -DNO_MM -mapcs-32 -march=armv4 -mtune=arm7tdmi -mshort-load-bytes -DMODULE  -nostdinc -iwithprefix include -DKBUILD_BASENAME=spca_core  -c -o spca_core.o spca_core.c
spca_core.c: In function `kvirt_to_pa':
spca_core.c:598: structure has no member named `pgd'
make[4]: *** [spca_core.o] Error 1
make[4]: Leaving directory `/home2/NUVO/uClinux-dist/linux-2.4.x/drivers/usb/spca5xx'
make[3]: *** [_modsubdir_spca5xx] Error 2
make[3]: Leaving directory `/home2/NUVO/uClinux-dist/linux-2.4.x/drivers/usb'
make[2]: *** [_modsubdir_usb] Error 2
make[2]: Leaving directory `/home2/NUVO/uClinux-dist/linux-2.4.x/drivers'
make[1]: *** [_mod_drivers] Error 2
make[1]: Leaving directory `/home2/NUVO/uClinux-dist/linux-2.4.x'
make: *** [modules] Error 2

Lets go see why - remember to change back to the spca5xx folder first though.

Code: [Select]
cd uClinux-dist/linux-2.4.x/drivers/usb/spca5xx

Its complaining about pgd in kvirt_to_pa.
Any idea?

Here's a hint.  armnommu.

Still no idea?  tsk tsk.

Our SoC has no MMU, so we don't have virtual paging to deal with.
So, lets take a look at another driver in our BSP, and see how they do it in that.

ov511.c uses kvirt_to_pa, and does it this way
Code: [Select]
static inline unsigned long
kvirt_to_pa(unsigned long adr)
{
        unsigned long kva, ret;

        kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
        kva |= adr & (PAGE_SIZE-1); /* restore the offset */
        ret = __pa(kva);
        return ret;
}

I'll bet if we replaced the equivalent code in the spca_core.c file that would work.

Open up spca_core.c
Find kvirt_to_pa

Replace all this text:
Code: [Select]
#ifdef RH9_REMAP
static inline unsigned long
kvirt_to_pa (unsigned long adr)
{
  unsigned long kva, ret;

  kva = (unsigned long) page_address (vmalloc_to_page ((void *) adr));
  kva |= adr & (PAGE_SIZE - 1); /* restore the offset */
  ret = __pa (kva);
  return ret;
}

#else /* RH9_REMAP */
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
static inline unsigned long
kvirt_to_pa (unsigned long adr)
{
  unsigned long kva, ret;

  kva = (unsigned long) page_address (vmalloc_to_page ((void *) adr));
  kva |= adr & (PAGE_SIZE - 1);
  ret = __pa (kva);
  return ret;
}
#else
static inline unsigned long
kvirt_to_pa (unsigned long adr)
{
  unsigned long va, kva, ret;

  va = VMALLOC_VMADDR (adr);
  kva = uvirt_to_kva (pgd_offset_k (va), va);
  ret = __pa (kva);
  return ret;
}
#endif
#endif /* RH9_REMAP */

with this:

Code: [Select]
static inline unsigned long
kvirt_to_pa(unsigned long adr)
{
        unsigned long kva, ret;

        kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
        kva |= adr & (PAGE_SIZE-1); /* restore the offset */
        ret = __pa(kva);
        return ret;
}


Now lets see if that compiles.

Change back to the uClinux folder, and try another make

Assuming you didn't make any mistakes it should compile cleanly.

We'll end up with kernel modules compiled, but not added to our kernel.
These still have to be tested before we add them statically to our kernel build.

I've made a test kernel, and romfs with appropriate files, and put it in the work folder.
I've also put a prepatched fileset into the work folder also.  You can download those files, and copy over into
your uClinux-dist/linux-2.4.x/drivers/usb/folder in the uClinux BSP to add without all the work.

If you want to test, compile.
Then insmod the modules in your test firmware

eg

insmod videodev
insmod spca_core

and see if the driver works for your hardware.   

I've put a precompiled Linux kernel, and ROMFS into the folder.  You can test if you dare  8)
If it works for you, let me know.














32
Firmware / Submitting new Firmware
« on: June 18, 2011, 08:30:18 am »
New Firmware can be submitted by PM'ing me, or replying to this thread so I know where to download it from.

Lets try to be helpful in how we dump firmware, and make it as easy as possible for others to restore.

So..

Firmware should consist of split files where possible.


Linux.zip
Romfs.img
WebUI.img

Make a notes file listing the file locations in memory, and their executable location.
ls -al  in the bootloader is enough for that.
Also note if its for a 4M flash, or a 2M flash device.

If you really want to be nice, add a page in the wiki with a boot log, and /dev /proc listings  ;D
I'll upload the ones I get onto the files section so we have an archive.

Lawrence.

33
Links etc / Robot
« on: June 16, 2011, 11:59:28 am »

34
uCLinux / My Compiler Settings for building a Kernel on a 4M flash.
« on: June 15, 2011, 07:14:08 am »
Overall config

uClinux-dist # cat .config

Code: [Select]
#
# Automatically generated by make menuconfig: don't edit
#

#
# Target Platform Selection
#
# CONFIG_DEFAULTS_NUVOTON_NUC710 is not set
# CONFIG_DEFAULTS_NUVOTON_NUC740 is not set
CONFIG_DEFAULTS_NUVOTON_NUC745=y
CONFIG_DEFAULTS_KERNEL_2_4=y
# CONFIG_DEFAULTS_OVERRIDE is not set
# CONFIG_DEFAULTS_VENDOR is not set
# CONFIG_DEFAULTS_VENDOR_UPDATE is not set
CONFIG_VENDOR=nuvoton
CONFIG_PRODUCT=nuc745
CONFIG_LINUXDIR=linux-2.4.x
CONFIG_LIBCDIR=
CONFIG_LANGUAGE=


Kernel config

uClinux-dist/linux-2.4.x # cat .config

Code: [Select]
#
# Automatically generated by make menuconfig: don't edit
#
CONFIG_ARM=y
# CONFIG_SBUS is not set
CONFIG_UID16=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_UCLINUX=y
MAGIC_ROM_PTR=y

#
# Code maturity level options
#
# CONFIG_EXPERIMENTAL is not set
# CONFIG_OBSOLETE is not set

#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y

#
# System Type
#
CONFIG_ARCH_NUVOTON=y
# CONFIG_CPU_BIG_ENDIAN is not set
CONFIG_SET_MEM_PARAM=y
DRAM_BASE=00000000
DRAM_SIZE=00700000
FLASH_MEM_BASE=FF000000
FLASH_SIZE=00200000
ROMFS_BASE=7F0E0000
# CONFIG_RAMKERNEL is not set
CONFIG_ROMKERNEL=y
# CONFIG_CPU_NUC710 is not set
# CONFIG_CPU_NUC740 is not set
CONFIG_CPU_NUC745=y
CONFIG_CPU_NAME="NUC745"
CONFIG_CPU_ARM710=y
CONFIG_CPU_32v4=y
CONFIG_CPU_32=y
# CONFIG_CPU_26 is not set
CONFIG_NO_PGT_CACHE=y
CONFIG_CPU_WITH_CACHE=y
# CONFIG_CPU_WITH_MCR_INSTRUCTION is not set
CONFIG_ARM_CLK=80000000
CONFIG_SERIAL_NUC745=y
CONFIG_NUC700_INTF_MAC=y
# CONFIG_NUC700_INTF_KPI is not set
CONFIG_NUC700_INTF_I2C=y
# CONFIG_NUC700_INTF_SPI is not set
CONFIG_NUC700_INTF_AUDIO=y
# CONFIG_NUC700_INTF_UART3 is not set
CONFIG_NUC700_INTF_UART2=y
# CONFIG_NUC700_INTF_PS2 is not set
# CONFIG_NUC700_INTF_UART1FC is not set

#
# General setup
#
CONFIG_HOTPLUG=y

#
# PCMCIA/CardBus support
#
# CONFIG_PCMCIA is not set
CONFIG_NET=y
# CONFIG_SYSVIPC is not set
# CONFIG_REDUCED_MEMORY is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_NWFPE=y
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
CONFIG_BINFMT_FLAT=y
CONFIG_BINFMT_ZFLAT=y
CONFIG_KERNEL_ELF=y
# CONFIG_ARTHUR is not set
# CONFIG_ALIGNMENT_TRAP is not set

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK_DEV is not set
# CONFIG_NETFILTER is not set
# CONFIG_FILTER is not set
# CONFIG_UNIX is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set

#
# Appletalk devices
#
# CONFIG_DEV_APPLETALK is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_IPSEC is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set

#
# Network device support
#
CONFIG_NETDEVICES=y

#
# ARCnet devices
#
# CONFIG_ARCNET is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_ETH_NUC700=y
# CONFIG_ARM_AM79C961A is not set
# CONFIG_SUNLANCE is not set
# CONFIG_SUNBMAC is not set
# CONFIG_SUNQE is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_NET_ISA is not set
# CONFIG_NET_PCI is not set
# CONFIG_NET_POCKET is not set
# CONFIG_FEC is not set
# CONFIG_CS89x0 is not set
# CONFIG_UCCS8900 is not set

#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_MYRI_SBUS is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
# CONFIG_FDDI is not set
# CONFIG_PLIP is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
# CONFIG_PPP_ASYNC is not set
# CONFIG_PPP_SYNC_TTY is not set
# CONFIG_PPP_DEFLATE is not set
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPPOATM is not set
# CONFIG_SLIP is not set

#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set

#
# Token Ring devices
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set

#
# Wan interfaces
#
# CONFIG_WAN is not set

#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set

#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set

#
# Bluetooth support
#
# CONFIG_BLUEZ is not set

#
# ATA/IDE/MFM/RLL support
#
# CONFIG_IDE is not set
# CONFIG_BLK_DEV_IDE_MODES is not set
# CONFIG_BLK_DEV_HD is not set

#
# SCSI support
#
# CONFIG_SCSI is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Parallel port support
#
# CONFIG_PARPORT is not set

#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_CONCAT is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AFS_PARTS is not set
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
CONFIG_MTD_CFI_GEOMETRY=y
# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
CONFIG_MTD_MAP_BANK_WIDTH_2=y
# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
# CONFIG_MTD_CFI_I2 is not set
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_CFI_INTELEXT is not set
CONFIG_MTD_CFI_AMDSTD=y
# CONFIG_MTD_CFI_STAA is not set
CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_OBSOLETE_CHIPS is not set
# CONFIG_MTD_AMDSTD is not set
# CONFIG_MTD_SHARP is not set
# CONFIG_MTD_JEDEC is not set

#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_CDB89712 is not set
# CONFIG_MTD_SA1100 is not set
# CONFIG_MTD_DC21285 is not set
# CONFIG_MTD_IQ80310 is not set
# CONFIG_MTD_LUBBOCK is not set
# CONFIG_MTD_IXP425 is not set
# CONFIG_MTD_EPXA10DB is not set
# CONFIG_MTD_FORTUNET is not set
# CONFIG_MTD_AUTCPU12 is not set
CONFIG_MTD_NUC700=y
# CONFIG_MTD_EDB7312 is not set
# CONFIG_MTD_H720X is not set
# CONFIG_MTD_IMPA7 is not set
# CONFIG_MTD_CEIVA is not set
# CONFIG_MTD_NOR_TOTO is not set
# CONFIG_MTD_UCLINUX is not set
# CONFIG_MTD_PCI is not set
# CONFIG_MTD_PCMCIA is not set

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLKMTD is not set
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_DOCPROBE is not set
# CONFIG_MTD_DOCECC is not set

#
# NAND Flash Device Drivers
#
CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_NUC700 is not set
# CONFIG_MTD_NAND_SPIA is not set
# CONFIG_MTD_NAND_TOTO is not set
# CONFIG_MTD_NAND_AUTCPU12 is not set
# CONFIG_MTD_NAND_EDB7312 is not set
CONFIG_MTD_NAND_IDS=y
# CONFIG_MTD_NAND_DISKONCHIP is not set

#
# Plug and Play configuration
#
# CONFIG_PNP is not set
# CONFIG_ISAPNP is not set

#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_CISS_SCSI_TAPE is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=1024
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_BLK_DEV_RAMDISK_DATA is not set
CONFIG_BLK_DEV_BLKMEM=y
# CONFIG_NOFLASH is not set
CONFIG_AMDFLASH=y
# CONFIG_INTELFLASH is not set
CONFIG_FLASHAUTO=y
# CONFIG_FLASH128KB is not set
# CONFIG_FLASH1MB is not set
# CONFIG_FLASH2MB is not set
# CONFIG_FLASH4MB is not set
# CONFIG_FLASH6MB is not set
# CONFIG_FLASH8MB is not set
# CONFIG_FLASH16MB is not set
CONFIG_FLASHAUTOBIT=y
# CONFIG_FLASH8BIT is not set
# CONFIG_FLASH16BIT is not set
# CONFIG_FLASH32bit is not set
# CONFIG_EXTRA_FLASH is not set
CONFIG_BLK_STATS=y

#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m

#
# Video For Linux
#
CONFIG_VIDEO_PROC_FS=y
# CONFIG_I2C_PARPORT is not set
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIDEO_ZORAN_BUZ is not set
# CONFIG_VIDEO_ZORAN_DC10 is not set
# CONFIG_VIDEO_ZORAN_LML33 is not set
# CONFIG_VIDEO_ZR36120 is not set

#
# Radio Adapters
#
# CONFIG_RADIO_GEMTEK_PCI is not set
# CONFIG_RADIO_MAXIRADIO is not set
# CONFIG_RADIO_MAESTRO is not set
# CONFIG_RADIO_MIROPCM20 is not set

#
# File systems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_ADFS_FS is not set
# CONFIG_ADFS_FS_RW is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BFS_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_JBD is not set
# CONFIG_JBD_DEBUG is not set
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
# CONFIG_UMSDOS_FS is not set
CONFIG_VFAT_FS=y
# CONFIG_EFS_FS is not set
# CONFIG_JFFS_FS is not set
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=1
# CONFIG_JFFS2_FS_NAND is not set
# CONFIG_JFFS2_ZLIB is not set
# CONFIG_JFFS2_RTIME is not set
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_JFFS2_LZO is not set
# CONFIG_JFFS2_LZARI is not set
# CONFIG_JFFS2_CMODE_NONE is not set
CONFIG_JFFS2_CMODE_PRIORITY=y
# CONFIG_JFFS2_CMODE_SIZE is not set
# CONFIG_JFFS2_PROC is not set
# CONFIG_YAFFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_TMPFS is not set
CONFIG_RAMFS=y
# CONFIG_ISO9660_FS is not set
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_JFS_FS is not set
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_NTFS_RW is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVFS_MOUNT is not set
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX4FS_RW is not set
CONFIG_ROMFS_FS=y
# CONFIG_EXT2_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UDF_RW is not set
# CONFIG_UFS_FS is not set
# CONFIG_UFS_FS_WRITE is not set

#
# Network File Systems
#
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
# CONFIG_NFS_FS is not set
# CONFIG_NFS_V3 is not set
# CONFIG_ROOT_NFS is not set
# CONFIG_NFSD is not set
# CONFIG_NFSD_V3 is not set
# CONFIG_NFSD_TCP is not set
# CONFIG_SUNRPC is not set
# CONFIG_LOCKD is not set
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set
# CONFIG_NCPFS_PACKET_SIGNING is not set
# CONFIG_NCPFS_IOCTL_LOCKING is not set
# CONFIG_NCPFS_STRONG is not set
# CONFIG_NCPFS_NFS_NS is not set
# CONFIG_NCPFS_OS2_NS is not set
# CONFIG_NCPFS_SMALLDOS is not set
# CONFIG_NCPFS_NLS is not set
# CONFIG_NCPFS_EXTRAS is not set
# CONFIG_ZISOFS_FS is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
# CONFIG_SMB_NLS is not set
CONFIG_NLS=y

#
# Native Language Support
#
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set

#
# Character devices
#
# CONFIG_NIOS_SERIAL is not set
# CONFIG_NIOS_SPI is not set
CONFIG_NUC700_UART0=y
CONFIG_NUC700_CONSOLE=y
CONFIG_NUC700_UART1=y
CONFIG_NUC700_UART2=y
CONFIG_NUC700_I2C=y
# CONFIG_LEDMAN is not set
# CONFIG_DS1302 is not set
# CONFIG_VT is not set
# CONFIG_SERIAL is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_UNIX98_PTYS is not set

#
# I2C support
#
# CONFIG_I2C is not set

#
# Mice
#
# CONFIG_BUSMOUSE is not set
# CONFIG_MOUSE is not set

#
# Joysticks
#
# CONFIG_INPUT_GAMEPORT is not set
# CONFIG_INPUT_NS558 is not set
# CONFIG_INPUT_LIGHTNING is not set
# CONFIG_INPUT_PCIGAME is not set
# CONFIG_INPUT_CS461X is not set
# CONFIG_INPUT_EMU10K1 is not set
# CONFIG_INPUT_SERIO is not set
# CONFIG_INPUT_SERPORT is not set
# CONFIG_INPUT_ANALOG is not set
# CONFIG_INPUT_A3D is not set
# CONFIG_INPUT_ADI is not set
# CONFIG_INPUT_COBRA is not set
# CONFIG_INPUT_GF2K is not set
# CONFIG_INPUT_GRIP is not set
# CONFIG_INPUT_INTERACT is not set
# CONFIG_INPUT_TMDC is not set
# CONFIG_INPUT_SIDEWINDER is not set
# CONFIG_INPUT_IFORCE_USB is not set
# CONFIG_INPUT_IFORCE_232 is not set
# CONFIG_INPUT_WARRIOR is not set
# CONFIG_INPUT_MAGELLAN is not set
# CONFIG_INPUT_SPACEORB is not set
# CONFIG_INPUT_SPACEBALL is not set
# CONFIG_INPUT_STINGER is not set
# CONFIG_INPUT_DB9 is not set
# CONFIG_INPUT_GAMECON is not set
# CONFIG_INPUT_TURBOGRAFX is not set
# CONFIG_QIC02_TAPE is not set

#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_AMD_PM768 is not set
# CONFIG_NVRAM is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_AGP is not set
# CONFIG_DRM is not set

#
# USB support
#
CONFIG_NUC700_USBD=y
# CONFIG_NUC700_USBD_VCOM is not set
CONFIG_NUC700_USBD_MASS=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_DEVICEFS is not set
# CONFIG_USB_BANDWIDTH is not set
# CONFIG_USB_LONG_TIMEOUT is not set
# CONFIG_USB_EHCI_HCD is not set
# CONFIG_USB_UHCI is not set
# CONFIG_USB_UHCI_ALT is not set
CONFIG_USB_OHCI=y
# CONFIG_USB_SL811HS is not set
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_BLUETOOTH is not set
# CONFIG_USB_MIDI is not set
# CONFIG_USB_STORAGE is not set
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_HP8200e is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_HID is not set
# CONFIG_USB_HIDINPUT is not set
# CONFIG_USB_HIDDEV is not set
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_DC2XX is not set
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_SCANNER is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_HPUSBSCSI is not set
# CONFIG_USB_IBMCAM is not set
# CONFIG_USB_OV511 is not set
# CONFIG_USB_W99683 is not set
# CONFIG_USB_PWC is not set
# CONFIG_USB_SPCA5XX is not set
# CONFIG_USB_SE401 is not set
# CONFIG_USB_STV680 is not set
# CONFIG_USB_VICAM is not set
# CONFIG_USB_DSBR is not set
# CONFIG_USB_DABUSB is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_CATC is not set
# CONFIG_USB_CDCETHER is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_USS720 is not set

#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_BRLVGER is not set
# CONFIG_USB_LCD is not set

#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_I2O_BLOCK is not set
# CONFIG_I2O_LAN is not set
# CONFIG_I2O_SCSI is not set
# CONFIG_I2O_PROC is not set

#
# Sound support
#
CONFIG_SOUND=y
CONFIG_SOUND_NUC700=y
# CONFIG_SOUND_ALI5455 is not set
# CONFIG_SOUND_BT878 is not set
# CONFIG_SOUND_CMPCI is not set
# CONFIG_SOUND_EMU10K1 is not set
# CONFIG_MIDI_EMU10K1 is not set
# CONFIG_SOUND_FUSION is not set
# CONFIG_SOUND_CS4281 is not set
# CONFIG_SOUND_ES1370 is not set
# CONFIG_SOUND_ES1371 is not set
# CONFIG_SOUND_ESSSOLO1 is not set
# CONFIG_SOUND_MAESTRO is not set
# CONFIG_SOUND_MAESTRO3 is not set
# CONFIG_SOUND_FORTE is not set
# CONFIG_SOUND_ICH is not set
# CONFIG_SOUND_RME96XX is not set
# CONFIG_SOUND_SONICVIBES is not set
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
# CONFIG_SOUND_VIA82CXXX is not set
# CONFIG_MIDI_VIA82CXXX is not set
# CONFIG_SOUND_OSS is not set
# CONFIG_SOUND_TVMIXER is not set

#
# Kernel hacking
#
CONFIG_FRAME_POINTER=y
# CONFIG_REVISIT is not set
# CONFIG_DEBUG_ERRORS is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_INFO is not set
# CONFIG_MAGIC_SYSRQ is not set

#
# Library routines
#
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y



Do a make clean
make dep
make

This is for a 4M flash. 
If you need a 2M flash, change flash size to this (in Kernel .config):
FLASH_SIZE=00200000



35
Feature Suggestions / UI for Camera
« on: June 14, 2011, 12:50:22 am »
Have been chatting again to Maverick and the people at the factory.  They seem to be more into us doing stuff now.
Talking to them at the moment about redoing the WebUI for them in something more modern.

As we'll probably be doing it, anyone have suggestions for things they want added?

Note - talking about UI, not functionality for the moment.

36
General Discussion / How I develop
« on: June 12, 2011, 09:52:07 pm »
As most of my posts so far have been technical in nature, I thought I'd post something different for a change.
This is a post of how my development hardware is laid out.

First up - I have a piece of board thats large enough to place parts down on.
There's nothing more annoying than having cables come out or pull something off, so I like to screw my equipment down in a secure way.  Spending the few minutes to screw things down securely make a world of difference!



I've mounted the main board semi securely using screws (around the edges!) and have my serial plugged into my TTL to RS232 adapter.  I've unmounted the top shell also and placed it to the right. 
To do that I've unplugged the left /right motor and the left / right position sensor.  I generally don't need that plugged in unless I'm testing that side of things, and the default firmware works fine with that unplugged.  It makes it easier to get at the mainboard if necessary also.

Going back to the serial side of things -
I have 2 mounted on my dev board - one is connected to a USB adaptor, another to serial cable.  Which one I use depends on what machine I'm on at the time. 




Generally I prefer the Serial as the USB has some timing issues occasionally. Its ok for shell stuff, but uploading firmware can be a bit iffy.



Where possible I've mounted stuff externally - eg wifi antenna.  No real need for that, but I thought I may as well as its one less cable to worry about.

You'll also note that I have 2 wifi boards.  I use both in development, as I need to test different drivers for hardware.
One is an RT3070, another is a VT6656



Power is directly at the back.  I probably should wire up a power on / off momentary switch for resets but for now I just yank the power on / off as needed.

The observant may note a black cable plugged into the alarm out.  Thats ground.  I found it easier to use the pin closest to power on the green connector for ground than the ground at the serial side.  Mostly as I don't quite have the right connectors for the pinsize used, and I keep forgetting to order some.  doh!

On the PC side I either use a Mac or Linux, connected via USB or Serial.
Both cables are long enough that I can put the development board in an appropriate position to do stuff with, and use the laptop.


My Linux box is a venerable T60^T62p  :P with a high resolution 15" LCD  (2048 x 1536)
Its a bit of a hodgepodge of hardware in that T60p shell but it works for what I need, plus I'm one of the few that own such a beast, although there is a thieving bastard in Cape Town that has one too (Rondebosch police suck - I found the laptop for sale, they did nothing...).

In Linux I use minicom to talk to the board.


minicom is relatively easy to use, and does XModem.  So its good for uploading firmware if you don't use TFTP.
My T6x has a proper serial port (in the basestation), so I connect via that.

Hope thats of interest to people :)




Lawrence.

37
uCLinux / Making a default set of device nodes
« on: June 11, 2011, 11:56:18 pm »
I've made a small shell script to assist in creating the default set of device nodes and folders for a romfs.

May be of use to others.

To use, go to the dev folder you want to create the nodes and folders in, and run the script.


Code: [Select]
#!/bin/bash

#----
#To be run from the folder that you want to create the dev nodes for your filesystem to be created in.
#Lawrence@openipcam.com
#June 2011
#-----

pause()
{
 OLDCONFIG=`stty -g`
stty -icanon -echo min 1 time 0
dd count=1 2>/dev/null
stty $OLDCONFIG
}

genlp()
{
declare -i j=0

while [ $j != 10 ]
do
        mknod --m=777 lp$j c 18 $j
        j=$j+1
done

}

echo This will create a default set of device nodes for a romfs
echo To use copy into your romfs dev folder, and run.
echo eg
echo
echo cd myromfsdir/dev
echo ./genfs_dev.sh
echo
echo Press any key to begin creating the nodes or control C to quit.
pause


mknod console c 5 1
mknod display c 196 1
mknod dsp0  c 14 3
mknod dsp1 c 14 19
mknod dsp2  c 14 35
ln -s dsp1 dsp
mknod fb0        c 29 0
mknod hda    b 3 0
mknod hda1 b 3 1
mknod hda2 b 3 2
mknod hdb b 3 64
mknod i2c0 c 89 0
mknod i2c1 c 89 1
mknod key c 191 1
mknod keypad c 192 0
mknod lp0 c 6 0
mknod mixer0 c 14 0
mknod mixer1 c 14 16
mknod mixer2 c 14 32
ln -s mixer1 mixer
mknod mouse c 10 1
mknod mtd0 c 90 0
mknod mtd1 c 90 2
mknod mtdblock0 b 30 0
mknod mtdblock1 b 30 1
mknod nftla b 93 0
mknod nftla1 b 93 1
mknod null c 1 3
mknod ppp c 108 0
mknod ppp1 c 108 1
mknod ptmx c 5 2
mkdir pts
mknod ptyp0 c 2 0
mknod ptyp1 c 2 1
mknod ptyp2 c 2 2
mknod ptyp3 c 2 3
mknod ptyp4 c 2 4
mknod ptyp5 c 2 5
mknod ptyp6 c 2 6
mknod ptyp7 c 2 7
mknod ptyp8 c 2 8
mknod ptyp9 c 2 9
mknod ptz0 c 200 0
mknod rom0 b 31 0
mknod rom1 b 31 1
mknod rom2 b 31 2
mknod sda b 8 0
mknod sda1 b 8 1
mknod sda2 b 8 2
mknod sdb b 8 16
mknod sdb1 b 8 17
mknod sdb2 b 8 18
mknod smartcard0 c 124 0
mknod smartcard1 c 124 1
mknod tty c 5 0
mknod tty1 c 4 1
mknod ttyp0 c 3 0
mknod ttyp1 c 3 1
mknod ttyp2 c 3 2
mknod ttyp3 c 3 3
mknod ttyp4 c 3 4
mknod ttyp5 c 3 5
mknod ttyp6 c 3 6
mknod ttyp7 c 3 7
mknod ttyp8 c 3 8
mknod ttyp9 c 3 9
mknod ttyS0 c 4 64
mknod ttyS1 c 4 65
mknod ttyS2 c 4 66
mknod ttyS3 c 4 67
mknod urandom c 1 9
mkdir usb
mknod usi c 231 0
mknod video0 c 81 0
mknod video1 c 81 1

#Create USB lp0-lp9
cd usb
genlp


cd ..


38
Site Announcements / Unused Accounts
« on: June 11, 2011, 10:12:29 pm »
Have deleted a bunch of unused forum accounts - most appeared to be spambot.

Apologies if I deleted anyones actual account - but you need to post content if you registered so I don't kill the account with all the other spambots.

Lawrence.

39
uCLinux / 2.6
« on: June 11, 2011, 05:18:47 am »
The folks at MCUOS have ported 2.6.38 to run on the N745.

http://sourceforge.net/apps/mediawiki/nuc700/index.php?title=Main_Page

Still a bit bleeding edge, but its working -

So far a few releases..

20110501 1.3.1.20100501_alpha.
目前支持ethernet,usb host已经测试过,WDT, RTC, KPI, I2C P0 P1, SPI, AC97,已经编写好,但是由于multifunction pin模块还没设计好,所以此版本上的驱动要使用的话需自行添加multifunction pin的寄存器设置在相应的驱动中。

20110509日发布了项目的当前版本1.4.1.20100509_alpha.
较前一个版本,主要是修正了gpio bug,添加了mfp软件实现模块,添加了AC97 audio的支持,jffs2+nor的根文件系统挂载。

20110514 uart1 uart2 uart3 support added.

20110601 SD drivers added



They're using GIT, so

git clone git://nuc700.git.sourceforge.net/gitroot/nuc700/nuc700 Linux2.6-armnommu-nuc700

...and away you go.

I'll still be using 2.4 for the meanwhile, but will look strongly to porting over to 2.6 once I get my current req's done.


40
General Discussion / Bootloader (uBoot)
« on: June 11, 2011, 05:13:56 am »
The uBoot (bootloader) source files have been uploaded to the site (as I was missing those).

Persuaded Maverick to shoot me a copy on MSN - was either that, or talk to Nuvoton on Monday  ::)

Up in the files section here - http://www.openipcam.com/files/ARM7/NUC745/n710%20n745%20bootloader.zip

41
General Discussion / KaiCom Camera decompile
« on: June 10, 2011, 11:28:21 pm »
Added a new firmware to the Firmware Collection

Inspired by example, I've included the file locations in the flash too.
Its for a 4M flash

http://www.openipcam.com/files/Firmware/KaiCom%20IP1018%20Firmware/

I've also disassembled the camera executable from the romfs as its quite a bit larger than the others I've seen.  This looks to be due to ssl functionality compiled in (from a guesstimate).
It also seems to have functionality for MSN and Zoom (although the hardware doesn't support zoom).

Decompiled files here -

http://www.openipcam.com/files/Reverse%20Engineering/KaiCom1018/

.txt is plain text asm file
.html is htmlized asm file


Note that the html is about 30Meg, so most browsers won't load fully.  Firefox also struggles to search through, so use a better browser (Safari, Chrome ...)


The camera executable has these cgi functions

snapshot.cgi
get_status.cgi
get_camera_params.cgi
decoder_control.cgi
camera_control.cgi
reboot.cgi
restore_factory.cgi
upgrade_firmware.cgi
upgrade_htmls.cgi
get_params.cgi
set_alias.cgi
set_datetime.cgi
set_users.cgi
set_devices.cgi
set_network.cgi
set_wifi.cgi
set_pppoe.cgi
set_upnp.cgi
set_ddns.cgi
set_ftp.cgi
set_mail.cgi
set_msn.cgi
set_alarm.cgi
videostream.cgi
video.cgi
test_ftp.cgi
test_mail.cgi
set_misc.cgi
get_misc.cgi
set_smarteye.cgi
set_smarteye_factory_params.cgi
get_smarteye.cgi
get_realip.cgi
set_factory_ddns.cgi
get_factory_ddns.cgi
restore_factory_ddns.cgi
set_p2p.cgi
get_p2p.cgi
set_forbidden.cgi
get_forbidden.cgi
set_decoder.cgi
comm_write.cgi
wifi_scan.cgi
get_wifi_scan_result.cgi
get_log.cgi
check_user.cgi
check_user2.cgi
backup_params.cgi
restore_params.cgi
erase_allparams.cgi
set_mac.cgi

The set functions look like they call /proc/flash_4m for writes, so will have a quick peek at where I think they store the params next time I boot up.

42
Site Announcements / Donations
« on: April 28, 2011, 11:00:41 am »
Well, I've finally gotten a PayPal account again, despite their best efforts.

If you want to donate to the Lawrence needs toys fund(tm), then send your spare cash to:


43
Site Announcements / Wiki
« on: April 18, 2011, 07:44:28 am »
Added a wiki component on here - http://wiki.openipcam.com

Go wild!

44
Firmware / Unpack Tool for the WebUI
« on: March 15, 2011, 04:52:24 pm »
Unpacker for the WebUI

http://www.openipcam.com/files/Reverse%20Engineering/extractwebui.c

This file once compiled, will allow you to split the webui bin file into its actual contents (mostly html, js and an ocx file).



Compile instructions.

gcc -o extractwebui extractwebui.c


Usage instructions

extractwebui   input file     folder to write to
eg

./extractwebui somewebui.bin  .

45
uCLinux / GIT Repo
« on: March 15, 2011, 04:16:35 pm »
We now have a GIT repo for the site.

http://git.openipcam.com

Suggestions, complaints, access rights should be addressed to this topic  ::)

Pages: 1 2 [3] 4 5 6