From: Richard M. <rma...@gm...> - 2006-06-27 15:30:33
|
I recently got nano-X running on the gumstix, but now I need a way to control the interface. I have a custom-made daughterboard with a directional pad wired up to GPIO, but I'm not sure how to trigger an event when a button is pushed. Can anyone give me some pointers on accessing the GPIO information, or for example triggering a program to run when a button is pushed? I eventually want to be able to navigate thru a web-interface with this directional pad. Thank you. Richard rma...@gm... |
From: Chris D. <cg...@co...> - 2006-06-27 15:40:25
|
On 6/27/06, Richard Marchant <rma...@gm...> wrote: > I recently got nano-X running on the gumstix, but now I need a way to > control the interface. I have a custom-made daughterboard with a > directional pad wired up to GPIO, but I'm not sure how to trigger an event > when a button is pushed. Can anyone give me some pointers on accessing the > GPIO information, or for example triggering a program to run when a button > is pushed? I eventually want to be able to navigate thru a web-interface > with this directional pad. Thank you. Richard, Your best bet is probably to start with David Hylands' sample character driver. His code (if I recall correctly) watches for edge transitions on a single GPIO pin and, when loaded into the kernel, will allow userspace applications to listen for these events. http://www.gumstix.org/tikiwiki/tiki-index.php?page=Kernel-Programming Obviously you'll have to extend this a bit to do what you want, but it should provide a good starting point. best, -chris |
From: Richard M. <rma...@gm...> - 2006-06-27 16:31:14
|
Thank you for the quick response. I can't seem to get the sample character driver to load. I tried using the precompiled driver and I compiled my own, but each time I try to load the module I get the following error: # insmod char-driver.ko insmod: cannot insert `char-driver.ko': Unknown symbol in module (-1): No such file or directory Any ideas? Thanks again -Richard On 6/27/06, Chris Danis <cg...@co...> wrote: > > On 6/27/06, Richard Marchant <rma...@gm...> wrote: > > I recently got nano-X running on the gumstix, but now I need a way to > > control the interface. I have a custom-made daughterboard with a > > directional pad wired up to GPIO, but I'm not sure how to trigger an > event > > when a button is pushed. Can anyone give me some pointers on accessing > the > > GPIO information, or for example triggering a program to run when a > button > > is pushed? I eventually want to be able to navigate thru a > web-interface > > with this directional pad. Thank you. > > Richard, > > Your best bet is probably to start with David Hylands' sample > character driver. His code (if I recall correctly) watches for edge > transitions on a single GPIO pin and, when loaded into the kernel, > will allow userspace applications to listen for these events. > > http://www.gumstix.org/tikiwiki/tiki-index.php?page=Kernel-Programming > > Obviously you'll have to extend this a bit to do what you want, but it > should provide a good starting point. > > best, > -chris > > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |
From: Chris D. <cg...@co...> - 2006-06-27 16:38:18
|
On 6/27/06, Richard Marchant <rma...@gm...> wrote: > # insmod char-driver.ko > insmod: cannot insert `char-driver.ko': Unknown symbol in module (-1): No > such file or directory > > Any ideas? Richard, Were there any kernel messages generated when you tried to load the module? Run dmesg after attempting to insmod it and see if there are any messages at the end about char-driver. best, -chris |
From: Richard M. <rma...@gm...> - 2006-06-27 16:44:32
|
Chris, dmesg displayed the following after attempting to load the module: char_driver: Unknown symbol class_destroy char_driver: Unknown symbol class_create char_driver: Unknown symbol class_device_create char_driver: Unknown symbol class_device_destroy -Richard On 6/27/06, Chris Danis <cg...@co...> wrote: > > On 6/27/06, Richard Marchant <rma...@gm...> wrote: > > # insmod char-driver.ko > > insmod: cannot insert `char-driver.ko': Unknown symbol in module (-1): > No > > such file or directory > > > > Any ideas? > > Richard, > > Were there any kernel messages generated when you tried to load the > module? Run dmesg after attempting to insmod it and see if there are > any messages at the end about char-driver. > > best, > -chris > > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |
From: Dave H. <dhy...@gm...> - 2006-06-27 18:50:06
|
Hi Richard, > dmesg displayed the following after attempting to load the module: > > char_driver: Unknown symbol class_destroy > char_driver: Unknown symbol class_create > char_driver: Unknown symbol class_device_create > char_driver: Unknown symbol class_device_destroy Ahh. These are present in the 2.6.15 version of the kernel and you must be still using 2.6.11. To fix it to make it work with 2.6.11 make the following changes: In the sample_init routine, replace this code: if (( rc = alloc_chrdev_region( &gSampleDevNum, 0, 1, SAMPLE_DEV_NAME )) < 0 ) { printk( KERN_WARNING "sample: Unable to allocate major, err: %d\n", rc ); return rc; } printk( "sample driver allocated major:%d minor:%d\n", MAJOR( gSampleDevNum ), MINOR( gSampleDevNum )); with this: if (( rc = register_chrdev( SAMPLE_MAJOR, SAMPLE_DEV_NAME, &sample_fops )) < 0 ) { printk( KERN_WARNING "sample: register_chrdev failed for major %d\n", SAMPLE_MAJOR ); return rc; } and delete everything from the // Register our device. comment to the end, leaving the return statement. In the sample_exit routine, remove these 3 lines: class_device_destroy( gSampleClass, gSampleDevNum ); class_destroy( gSampleClass ); cdev_del( &gSampleCDev ); and replace the unregister_chrdev_region( gSampleDevNum, 1 ); with unregister_chrdev( SAMPLE_MAJOR, SAMPLE_DEV_NAME ); You'll need to execute (once from the gumstix command line): mknod c 241 /dev/sample to create the device entry. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Richard M. <rma...@gm...> - 2006-06-27 19:23:07
|
Great! It works now. Thank you very much for all your help Chris. -Richard On 6/27/06, Dave Hylands <dhy...@gm...> wrote: > > Hi Richard, > > > dmesg displayed the following after attempting to load the module: > > > > char_driver: Unknown symbol class_destroy > > char_driver: Unknown symbol class_create > > char_driver: Unknown symbol class_device_create > > char_driver: Unknown symbol class_device_destroy > > Ahh. These are present in the 2.6.15 version of the kernel and you > must be still using 2.6.11. > > To fix it to make it work with 2.6.11 make the following changes: > > In the sample_init routine, replace this code: > > if (( rc = alloc_chrdev_region( &gSampleDevNum, 0, 1, > SAMPLE_DEV_NAME )) < 0 ) > { > printk( KERN_WARNING "sample: Unable to allocate major, err: > %d\n", rc ); > return rc; > } > printk( "sample driver allocated major:%d minor:%d\n", MAJOR( > gSampleDevNum ), MINOR( gSampleDevNum )); > > with this: > > if (( rc = register_chrdev( SAMPLE_MAJOR, SAMPLE_DEV_NAME, > &sample_fops )) < 0 ) > { > printk( KERN_WARNING "sample: register_chrdev failed for major > %d\n", SAMPLE_MAJOR ); > return rc; > } > > and delete everything from the // Register our device. comment to the > end, leaving the return statement. > > In the sample_exit routine, remove these 3 lines: > > class_device_destroy( gSampleClass, gSampleDevNum ); > class_destroy( gSampleClass ); > > cdev_del( &gSampleCDev ); > > and replace the > > unregister_chrdev_region( gSampleDevNum, 1 ); > > with > > unregister_chrdev( SAMPLE_MAJOR, SAMPLE_DEV_NAME ); > > You'll need to execute (once from the gumstix command line): > > mknod c 241 /dev/sample > > to create the device entry. > > -- > Dave Hylands > Vancouver, BC, Canada > http://www.DaveHylands.com/ > > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |
From: Chris D. <cg...@co...> - 2006-06-27 19:25:03
|
On 6/27/06, Richard Marchant <rma...@gm...> wrote: > Great! It works now. Thank you very much for all your help Chris. Don't forget Dave :) -chris |
From: Richard M. <rma...@gm...> - 2006-06-27 19:27:52
|
Oops! :X A VERY special thank you to Dave! -Richard On 6/27/06, Chris Danis <cg...@co...> wrote: > > On 6/27/06, Richard Marchant <rma...@gm...> wrote: > > Great! It works now. Thank you very much for all your help Chris. > > Don't forget Dave :) > > -chris > > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |