Jivin Sima Baymani lays it down ... > David, thanks a lot for your input. > > > On Thu, Oct 14, 2010 at 6:28 AM, David McCullough > <david_mccullo...@mcafee.com> wrote: > > > > Jivin Sima Baymani lays it down ... > > > Hi all, > > I've been lurking a bit on this list since I got a uClinux project in > my lap this summer. I've fiddled a bit with Linux, but this is my first > uClinux project and I've not worked this deep with linux drivers before even > though I'm familiar with working low level. > > And now to the question! I know this is ancient 2.4, but this is what > I have to work with. I don't expect answers but am grateful for any advice or > thoughts you might have. > > > > Platform: ARM7 from Nuvoton, more precisely called NUC745. > > uClinux version: 2.4.20 > > The product is a webcam with ethernet and wifi, a clone of one of the > FOSCAM cameras, produced by Apexis. I need to do a lot of changes in the > software and the programs on it. They will not share their source code even > though I _know_ they have used uClinux and other open source software under > GPL. I got the uClinux-source from a BSP somewhere else. The BSP source runs > fine with ethernet working. My problem is that I need wifi to work as well. > The driver I have is the RT73 driver from Ralink. Apexis use the same driver > but I don't know how much they had to change it to work. > > > > I have managed to add the driver to the kernel build and it seems to > be loaded (full logs at end of email): > > usb.c: registered new driver hub > > add a static ohci host controller device > > : USB OHCI at membase 0xfff05000, IRQ 15 > > hc_alloc_ohci > > usb-ohci.c: AMD756 erratum 4 workaround > > hc_reset > > usb.c: new USB bus registered, assigned bus number 1 > > Product: USB OHCI Root Hub > > SerialNumber: fff05000 > > hub.c: USB hub found > > hub.c: 2 ports detected > > -RT73-<7>usb_rtusb_init--> //usb_rtusb_init is the module_init > function though this is a compiled in driver > > SIMA in da house! > > usb.c: registered new driver rt73 > > > This only tells you the driver was registered. There doesn't seem to > be any > device detected that matches the rt73 driver. > > > > I've had the same thoughts but had no idea how to debug, good to know I was > on the right track. The BSP does not have any lsusb program to compile in, > neither standalone nor in busybox. I will look into if I can get lsusb in the > build some other way. > > I'm not sure how to talk to the device otherwise, is it with some kind of > ioctl-call? I don't know anything about this, but it's what I have stumbled > over that makes some sense. > What I'm thinking is that the manufacturer kick-starts the device somehow by > making some kind of HW-configuration - but I have no idea where to start > there. Would it be something like > ioctl(DEV_ADDR, DEV_OPERATION)? What should I be looking for?
Go looking under /proc/bus/usb > > SIMA - Registered RT73 driver! > > Usb device driver by ns24 zswan designed successfully! > > Initializing USB Mass Storage driver... > > usb.c: registered new driver usb-storage > > USB Mass Storage support registered. > > > > But when I get to the prompt neither ifconfig nor iwconfig list any > wireless interfaces. If I compare to the original boot log, it looks like > hub.c does a bit of probing that my log doesn't have: > > > > hub.c: connect-debounce failed, port 1 disabled > > new USB device :80fc8004-fed640 > > hub.c: new USB device 1, assigned address 2 > > probing sonix288 usb camera ... > > dvm camera registered as video0 > > new USB device :80fc8604-fed640 > > hub.c: new USB device 2, assigned address 3 > > idVendor = 0x148f, idProduct = 0x2573 > > > > trying to set up the wireless interfaces gives me this: > > /> ifconfig rausb0 inet 192.168.5.135 up > > > How long after boot ? Sometimes it takes a while for the usb devices to > appear, but if you waited at least 15-20 seconds, it isn't going to > show :-) > > > > I've waited that long and more, and it doesn't pop up =/ > It seems like I'm missing something, some code I might lack or daemon I don't > have perhaps? > > > You need to get lsusb or look at the appropriate /proc files and see if > the wireless USB is actually appearing. > > > > Unfortunately no lsusb, unless I find out how to get it into my build myself. > I've had a look in the /proc files but not found anything relevant, any ideas > on what kind of files I shall look for? would it be usb-files or net files or > wireless files? > > I understand all of this is very dependent on the implementation of the > driver, but any directions for me are welcome as it makes it easier for me to > start untangling the mess =) > At least I will know where it's not, and can proceed with new ideas. Start with looking through /proc/bus/usb, turn on USB debugging in the kernel (might be a config option or something in a header, can't remember). Cheers, Davidm > > > SIOCSIFADDR: No such device > > SIOCGIFFLAGS: No such device > > > > > > So, it seems the driver is loaded but not started. I have double > checked the vend/prod id (0x148f/0x2573), and they seem to be right and in > the source code devices list. My first questions: > > - How can I start the driver? Is there a common > practice/standard/usual way of doing that? I'm totally in the dark about this > =/ > > > > > > The second question: > > Since this has been such a hassle for me, I'm thinking of switching > to a 2.6 kernel. The driver has a version for that kernel as well and it > might work better there. > > But doing a simple find on "nuvoton" and "nuc" in my source code > shows me there are some drivers they have added to the build: > > vad...@ubuntu:~/nuc700_restart/uClinux-dist$ find . -iname *nuc*.c > > ./linux-2.4.x/drivers/mtd/nand/nuc700_128mb_nand.c > > ./linux-2.4.x/drivers/mtd/nand/nuc700_32mb_nand.c > > ./linux-2.4.x/drivers/mtd/maps/nuc700_map.c > > ./linux-2.4.x/drivers/scsi/nuc700_sd.c > > ./linux-2.4.x/drivers/video/nuc700_osd.c > > ./linux-2.4.x/drivers/video/nuc700fb.c > > ./linux-2.4.x/drivers/net/nuc740_mac.c > > ./linux-2.4.x/drivers/net/nuc700_mac.c > > ./linux-2.4.x/drivers/sound/nuc700_ac97.c > > ./linux-2.4.x/drivers/sound/nuc700_i2s.c > > ./linux-2.4.x/drivers/sound/nuc700_audio.c > > ./linux-2.4.x/drivers/usb/usbd/nuc700_vcom.c > > ./linux-2.4.x/drivers/usb/usbd/nuc700_mass.c > > ./linux-2.4.x/drivers/char/nuc700_ps2.c > > ./linux-2.4.x/drivers/char/nuc700_uart0.c > > ./linux-2.4.x/drivers/char/nuc700_uart1.c > > ./linux-2.4.x/drivers/char/nuc700_keymap.c > > ./linux-2.4.x/drivers/char/nuc740_uart.c > > ./linux-2.4.x/drivers/char/nuc700_i2c.c > > ./linux-2.4.x/drivers/char/nuc700_rtc.c > > ./linux-2.4.x/drivers/char/nuc700_keypad.c > > ./linux-2.4.x/drivers/char/nuc700_uart3.c > > ./linux-2.4.x/drivers/char/nuc700_sc.c > > ./linux-2.4.x/drivers/char/nuc700_spi.c > > ./linux-2.4.x/drivers/char/nuc700_uart2.c > > > > I've read up a bit and it seems most people advice against porting > from 2.4 to 2.6. I understand that for more complex devices like ethernet > devices, the changes between 2.4 and 2.6 are too big. But does anyone know if > the changes for i2c/uart/spi were simpler? I'm hoping to simply be able to > move the files, do some magic and hope to get it to work... right. Any > thoughts? > > > > Thanks for any advice on this! > > Below are full boot logs, first my boot log and then the original > Apexis log. > > > > -Sima > > > > ------------------------- MY BOOT LOG------------------------- > > Linux version 2.4.20-uc0 (vad...@ubuntu) (gcc version 3.0) #73 Tue > Sep 21 16:46:52 CEST 2010 > > Processor: Nuvoton NUC745 revision 1 > > Architecture: NUC700 > > On node 0 totalpages: 2048 > > zone(0): 0 pages. > > zone(1): 2048 pages. > > zone(2): 0 pages. > > Kernel command line: root=/dev/nfs rw rootfstype=nfs > nfsroot=192.168.5.50:/srv/nfs/nuc700_fs ip=192.168.5.134:192.168.5.50:192.16 > > 8.5.1:255.255.255.0:nuc700:eth0:off > > Calibrating delay loop... 39.83 BogoMIPS > > Memory: 8MB = 8MB total > > Memory: 6336KB available (1428K code, 231K data, 52K init) > > Dentry cache hash table entries: 1024 (order: 1, 8192 bytes) > > Inode cache hash table entries: 512 (order: 0, 4096 bytes) > > Mount-cache hash table entries: 512 (order: 0, 4096 bytes) > > Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) > > Page-cache hash table entries: 2048 (order: 1, 8192 bytes) > > POSIX conformance testing by UNIFIX > > Linux NET4.0 for Linux 2.4 > > Based upon Swansea University Computer Society NET3.039 > > Initializing RT netlink socket > > Starting kswapd > > JFFS2 version 2.2. (C) 2001-2003 Red Hat, Inc. > > Nuvoton NUC700 Serial driver version 1.0 (2005-08-15) with no serial > options enabled > > ttyS00 at 0xfff80000 (irq = 9) is a NUC700 > > Nuvoton NUC7001 Serial driver version 1.0 (2005-08-15) with no serial > options enabled > > ttyS00 at 0xfff80100 (irq = 10) is a NUC7001 > > Nuvoton NUC7002 Serial driver version 1.0 (2005-08-15) with no serial > options enabled > > ttyS00 at 0xfff80200 (irq = 11) is a NUC7002 > > I2C Bus Driver has been installed successfully. > > Blkmem copyright 1998,1999 D. Jeff Dionne > > Blkmem copyright 1998 Kenneth Albanowski > > Blkmem 1 disk images: > > 0: 7F0E0000-7F1703FF [VIRTUAL 7F0E0000-7F1703FF] (RO) > > RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize > > loop: loaded (max 8 devices) > > SCSI subsystem driver Revision: 1.00 > > NUC700 Audio Driver v1.0 Initialization successfully. > > mtd flash device: Found 1 x16 devices at 0x0 in 16-bit bank > > Amd/Fujitsu Extended Query Table at 0x0040 > > mtd flash device: Swapping erase regions for broken CFI table. > > number of CFI chips: 1 > > cfi_cmdset_0002: Disabling erase-suspend-program due to code > brokenness. > > Creating 2 MTD partitions on "mtd flash device": > > 0x00000000-0x00300000 : "images 3M" > > 0x00300000-0x00400000 : "user 1M" > > usb.c: registered new driver hub > > add a static ohci host controller device > > : USB OHCI at membase 0xfff05000, IRQ 15 > > hc_alloc_ohci > > usb-ohci.c: AMD756 erratum 4 workaround > > hc_reset > > usb.c: new USB bus registered, assigned bus number 1 > > Product: USB OHCI Root Hub > > SerialNumber: fff05000 > > hub.c: USB hub found > > hub.c: 2 ports detected > > -RT73-<7>usb_rtusb_init--> > > SIMA in da house! > > usb.c: registered new driver rt73 > > SIMA - Registered RT73 driver! > > Usb device driver by ns24 zswan designed successfully! > > Initializing USB Mass Storage driver... > > usb.c: registered new driver usb-storage > > USB Mass Storage support registered. > > NET4: Linux TCP/IP 1.0 for NET4.0 > > IP Protocols: ICMP, UDP, TCP > > IP: routing cache hash table of 512 buckets, 4Kbytes > > TCP: Hash tables configured (established 512 bind 1024) > > > > Wait for auto-negotiation complete...OK > > 100MB - FULL > > IP-Config: Complete: > > device=eth0, addr=192.168.5.134, mask=255.255.255.0, > gw=192.168.5.1, > > host=nuc700, domain=, nis-domain=(none), > > bootserver=192.168.5.50, rootserver=192.168.5.50, rootpath= > > Looking up port of RPC 100003/2 on 192.168.5.50 > > Looking up port of RPC 100005/1 on 192.168.5.50 > > VFS: Mounted root (nfs filesystem). > > Freeing init memory: 52K > > Shell invoked to run file: /bin/init > > Command: #!/bin/sh -t > > Command: #SIMA commented out > > Command: #/bin/ifconfig eth0 up > > Command: mount -t proc none /proc > > Command: mount -t ramfs none /tmp > > new USB device :807ef804-7e68c0 > > hub.c: new USB device 1, assigned address 2 > > Manufacturer: Sonix Technology Co., Ltd. > > Product: USB 2.0 Camera > > usb.c: USB device 2 (vend/prod 0xc45/0x62f1) is not claimed by any > active driver. > > Command: #inetd& > > Command: #SIMA commented out > > Command: sh > > > > Sash command shell (version 1.1.1) > > /> > > > > -------------------- APEXIS BOOT LOG------------------------------ > > Linux version 2.4.20-uc0 (r...@maverick-linux) (gcc version 3.0) > #1091 ?? 12?? 10 09:18:28 CST 2009 > > Processor: Winbond W90N745 revision 1 > > Architecture: W90N745 > > On node 0 totalpages: 4096 > > zone(0): 0 pages. > > zone(1): 4096 pages. > > zone(2): 0 pages. > > Kernel command line: root=/dev/rom0 rw > > Calibrating delay loop... 39.83 BogoMIPS > > Memory: 16MB = 16MB total > > Memory: 14344KB available (1469K code, 287K data, 40K init) > > Dentry cache hash table entries: 2048 (order: 2, 16384 bytes) > > Inode cache hash table entries: 1024 (order: 1, 8192 bytes) > > Mount-cache hash table entries: 512 (order: 0, 4096 bytes) > > Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) > > Page-cache hash table entries: 4096 (order: 2, 16384 bytes) > > POSIX conformance testing by UNIFIX > > Linux NET4.0 for Linux 2.4 > > Based upon Swansea University Computer Society NET3.039 > > Initializing RT netlink socket > > Starting kswapd > > PTZ Driver has been installed successfully. > > Winbond W90N745 Serial driver version 1.0 (2005-08-15) with no serial > options enabled > > ttyS00 at 0xfff80000 (irq = 9) is a W90N745 > > Winbond W90N7451 Serial driver version 1.0 (2005-08-15) with no > serial options enabled > > ttyS00 at 0xfff80100 (irq = 10) is a W90N7451 > > I2C Bus Driver has been installed successfully. > > Blkmem copyright 1998,1999 D. Jeff Dionne > > Blkmem copyright 1998 Kenneth Albanowski > > Blkmem 1 disk images: > > 0: 7F0E0000-7F1853FF [VIRTUAL 7F0E0000-7F1853FF] (RO) > > W19B320BTT Flash Detected > > 01 eth0 initial ok! > > which:0 > > PPP generic driver version 2.4.2 > > Linux video capture interface: v1.00 > > Winbond Audio Driver v1.0 Initialization successfully. > > usb.c: registered new driver hub > > add a static ohci host controller device > > : USB OHCI at membase 0xfff05000, IRQ 15 > > hc_alloc_ohci > > usb-ohci.c: AMD756 erratum 4 workaround > > hc_reset > > usb.c: new USB bus registered, assigned bus number 1 > > hub.c: USB hub found > > hub.c: 2 ports detected > > usb.c: registered new driver audio > > audio.c: v1.0.0:USB Audio Class driver > > usb.c: registered new driver serial > > usbserial.c: USB Serial Driver core v1.4 > > > > _____ ____ _ ____ > > |__ / _| _ \ / \ / ___| > > / / | | | | | |/ _ \ \___ \ > > / /| |_| | |_| / ___ \ ___) | > > /____\__, |____/_/ \_\____/ > > |___/ > > ZD1211B - version 2.24.0.0 > > usb.c: registered new driver zd1211b > > main_usb.c: VIA Networking Wireless LAN USB Driver 1.20.04 > > usb.c: registered new driver vntwusb > > usb.c: registered new driver rt73 > > dvm usb cam driver 0.0.0.0 by Maverick Gao in 2006-8-12 > > usb.c: registered new driver dvm > > dvm usb cam driver 0.1 for sonix288 by Maverick Gao in 2009-4-20 > > usb.c: registered new driver dvm usb cam driver for sonix288 > > NET4: Linux TCP/IP 1.0 for NET4.0 > > IP Protocols: ICMP, UDP, TCP > > IP: routing cache hash table of 512 buckets, 4Kbytes > > TCP: Hash tables configured (established 1024 bind 2048) > > VFS: Mounted root (romfs filesystem) readonly. > > Freeing init memory: 40K > > BINFMT_FLAT: bad magic/rev (0x6e74202d, need 0x4) > > BINFMT_FLAT: bad magic/rev (0x6e74202d, need 0x4) > > Shell invoked to run file: /bin/init > > Command: > > Command: mount -t proc none /proc > > Command: mount -t ramfs none /usr > > Command: mount -t ramfs none /swap > > Command: mount -t ramfs none /var/run > > Command: mount -t ramfs none /etc > > Command: mount -t ramfs none /flash > > Command: mount -t ramfs none /home > > Command: mount -t ramfs none /tmp > > Command: > > Command: camera& > > no support > > [8] > > Command: > > Command: #need to wait for connection to get up before we try > downloading > > Command: sleep 40 > > hub.c: connect-debounce failed, port 1 disabled > > new USB device :80fc8004-fed640 > > hub.c: new USB device 1, assigned address 2 > > probing sonix288 usb camera ... > > dvm camera registered as video0 > > new USB device :80fc8604-fed640 > > hub.c: new USB device 2, assigned address 3 > > idVendor = 0x148f, idProduct = 0x2573 > > aw version is 0.22.2.14 > > aw version is 20.8.2.26 > > > > Wait for auto-negotiation complete...OK > > 100MB - FULL > > video0 opened > > 1 > > 1 > > 1 > > 1 > > 1 > > 1 > > unknown command > > __pthread_initial_thread_bos:35c000 > > manage pid:15 > > 2 > > 2 > > 2 > > 2 > > 2 > > 2 > > audio_dev.state not AU_STATE_RECORDING > > wb_audio_start_record > > inet_sr.c INET_rinput 321 > > action===1 > > options==33 > > inet_sr.c INET_setroute 75 > > *args===255.255.255.255 > > *args===netmask > > *args===eth0 > > [27] > > > > > > > > _______________________________________________ > > uClinux-dev mailing list > > uClinux-dev@uclinux.org > > http://mailman.uclinux.org/mailman/listinfo/uclinux-dev > > This message was resent by uclinux-dev@uclinux.org > > To unsubscribe see: > > http://mailman.uclinux.org/mailman/options/uclinux-dev > > > -- > David McCullough, david_mccullo...@mcafee.com, Ph:+61 734352815 > McAfee - SnapGear http://www.mcafee.com > http://www.uCdot.org > _______________________________________________ > uClinux-dev mailing list > uClinux-dev@uclinux.org > http://mailman.uclinux.org/mailman/listinfo/uclinux-dev > This message was resent by uclinux-dev@uclinux.org > To unsubscribe see: > http://mailman.uclinux.org/mailman/options/uclinux-dev > > > > > _______________________________________________ > uClinux-dev mailing list > uClinux-dev@uclinux.org > http://mailman.uclinux.org/mailman/listinfo/uclinux-dev > This message was resent by uclinux-dev@uclinux.org > To unsubscribe see: > http://mailman.uclinux.org/mailman/options/uclinux-dev -- David McCullough, david_mccullo...@mcafee.com, Ph:+61 734352815 McAfee - SnapGear http://www.mcafee.com http://www.uCdot.org _______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev