[beagleboard] Please help, I can't initialize LI-5M03CS camera module

Hello,

I compiled the kernel and the mt9p031 LI-5M03CS camera module driver but I cannot initialize it.

These are the commands I’m using:

sudo insmod /lib/modules/3.2.29-x14/kernel/drivers/media/video/mt9p031.ko
insmod: error inserting ‘/lib/modules/3.2.29-x14/kernel/drivers/media/video/mt9p031.ko’: -1 Unknown symbol in module

tail dmesg
[ 6794.219543] mt9p031: Unknown symbol v4l2_i2c_subdev_init (err 0)
[ 6794.219635] mt9p031: Unknown symbol v4l2_ctrl_handler_setup (err 0)
[ 6794.219665] mt9p031: Unknown symbol v4l2_device_unregister_subdev (err 0)
[ 6794.219757] mt9p031: Unknown symbol v4l2_ctrl_new_custom (err 0)
[ 6794.219818] mt9p031: Unknown symbol v4l2_ctrl_handler_init (err 0)
[ 6794.219848] mt9p031: Unknown symbol v4l2_ctrl_new_std (err 0)
[ 6794.219879] mt9p031: Unknown symbol v4l2_ctrl_handler_free (err 0)

marine@beagle:~$ sudo i2cdetect -r 1
[sudo] password for marine:
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1 using read byte commands.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- UU UU UU UU – -- – --
50: – -- – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
marine@beagle:~$

marine@beagle:~$ sudo i2cdetect -r 2
[sudo] password for marine:
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-2 using read byte commands.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – -- – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --

marine@beagle:~$ sudo i2cdetect -r 3
[sudo] password for marine:
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-3 using read byte commands.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – 37 – -- 3a – -- – -- –
40: – -- – -- – -- – -- – -- – -- – -- – --
50: 50 51 52 53 54 55 56 57 – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
marine@beagle:~$

Can you run through the steps you used to build your kernel?

The error means that the kernel wasn't able to resolve certain symbols
the module references.

Also, can you paste the output of "cat /proc/kallsyms|grep v4l2"

Regards,
Joel

Hello,

After loading the mt9p031 module (sudo insmod /lib/modules/3.2.29-x14/
kernel/drivers/media/video/mt9p031.ko # can’ t load the module) I can read the following:

marine@beagle:~$ sudo modprobe mt9p031
[sudo] password for marine:
marine@beagle:~$ cat /proc/kallsyms | grep v4l2
00000000 t $a [v4l2_common]
00000000 t $d [v4l2_common]
00000000 r $d [v4l2_common]
00000000 t $a [v4l2_common]
00000000 t $d [v4l2_common]
00000000 t $a [v4l2_common]
00000000 t clamp_align [v4l2_common]
00000000 t $d [v4l2_common]
00000000 t $a [v4l2_common]
00000000 t $d [v4l2_common]
00000000 t $a [v4l2_common]
00000000 t $d [v4l2_common]
00000000 t $a [v4l2_common]
00000000 t $d [v4l2_common]
00000000 t $a [v4l2_common]
00000000 t $d [v4l2_common]
00000000 t $a [v4l2_common]
00000000 t $d [v4l2_common]
00000000 t $a [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r CSWTCH.21 [v4l2_common]
00000000 r radio_addrs.22144 [v4l2_common]
00000000 r demod_addrs.22145 [v4l2_common]
00000000 r tv_addrs.22146 [v4l2_common]
00000000 r dv_presets.22238 [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_i2c_tuner_addrs [v4l2_common]
00000000 r __kstrtab_v4l2_i2c_tuner_addrs [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_i2c_subdev_init [v4l2_common]
00000000 r __kstrtab_v4l2_i2c_subdev_init [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_i2c_new_subdev [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_ctrl_next [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l_fill_dv_preset_info [v4l2_common]
00000000 r __kstrtab_v4l_fill_dv_preset_info [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_chip_ident_i2c_client [v4l2_common]
00000000 r __kstrtab_v4l2_chip_ident_i2c_client [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_chip_match_i2c_client [v4l2_common]
00000000 r __kstrtab_v4l2_chip_match_i2c_client [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_spi_subdev_init [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_i2c_tuner_addrs [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_i2c_subdev_init [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_ctrl_query_menu [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_find_nearest_format [v4l2_common]
00000000 r __kstrtab_v4l2_find_nearest_format [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_spi_new_subdev [v4l2_common]
00000000 r __kstrtab_v4l2_spi_new_subdev [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_ctrl_query_fill [v4l2_common]
00000000 r __kstrtab_v4l2_ctrl_query_fill [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_i2c_new_subdev_board [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_ctrl_next [v4l2_common]
00000000 r __kstrtab_v4l2_ctrl_next [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_chip_ident_i2c_client [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_chip_match_i2c_client [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_spi_new_subdev [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_i2c_subdev_addr [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_chip_match_host [v4l2_common]
00000000 r __kstrtab_v4l2_chip_match_host [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_ctrl_query_menu [v4l2_common]
00000000 r __kstrtab_v4l2_ctrl_query_menu [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l_bound_align_image [v4l2_common]
00000000 r __kstrtab_v4l_bound_align_image [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_find_nearest_format [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_ctrl_check [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_ctrl_check [v4l2_common]
00000000 r __kstrtab_v4l2_ctrl_check [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_ctrl_query_menu_valid_items [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l_fill_dv_preset_info [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_spi_subdev_init [v4l2_common]
00000000 r __kstrtab_v4l2_spi_subdev_init [v4l2_common]
00000000 r __kstrtab_v4l2_i2c_subdev_addr [v4l2_common]
00000000 r __kstrtab_v4l2_i2c_new_subdev [v4l2_common]
00000000 r __kstrtab_v4l2_i2c_new_subdev_board [v4l2_common]
00000000 r __kstrtab_v4l2_ctrl_query_menu_valid_items [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_ctrl_query_menu_valid_items [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_ctrl_query_fill [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_i2c_new_subdev [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l2_chip_match_host [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_i2c_new_subdev_board [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __kcrctab_v4l_bound_align_image [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r __ksymtab_v4l2_i2c_subdev_addr [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r $d [v4l2_common]
00000000 r $d [v4l2_common]
00000000 d $d [v4l2_common]
00000000 t v4l2_i2c_subdev_init [v4l2_common]
00000000 d __this_module [v4l2_common]
00000000 t v4l2_i2c_new_subdev_board [v4l2_common]
00000000 t v4l2_spi_new_subdev [v4l2_common]
00000000 T v4l2_chip_match_i2c_client [v4l2_common]
00000000 T v4l2_ctrl_query_fill [v4l2_common]
00000000 t v4l2_i2c_subdev_addr [v4l2_common]
00000000 t v4l2_spi_subdev_init [v4l2_common]
00000000 t v4l_bound_align_image [v4l2_common]
00000000 T v4l2_ctrl_query_menu_valid_items [v4l2_common]
00000000 T v4l2_ctrl_next [v4l2_common]
00000000 T v4l2_ctrl_query_menu [v4l2_common]
00000000 T v4l2_ctrl_check [v4l2_common]
00000000 t v4l_fill_dv_preset_info [v4l2_common]
00000000 T v4l2_chip_ident_i2c_client [v4l2_common]
00000000 t v4l2_i2c_tuner_addrs [v4l2_common]
00000000 t v4l2_find_nearest_format [v4l2_common]
00000000 T v4l2_chip_match_host [v4l2_common]
00000000 t v4l2_i2c_new_subdev [v4l2_common]
00000000 t v4l2_poll [videodev]
00000000 t v4l2_release [videodev]
00000000 t v4l2_mmap [videodev]
00000000 t v4l2_ioctl [videodev]
00000000 t v4l2_write [videodev]
00000000 t v4l2_read [videodev]
00000000 t v4l2_open [videodev]
00000000 t v4l2_device_release [videodev]
00000000 r v4l2_fops [videodev]
00000000 r __kcrctab_v4l2_prio_init [videodev]
00000000 r __kcrctab_v4l2_prio_change [videodev]
00000000 r __ksymtab_v4l2_prio_max [videodev]
00000000 r __kstrtab_v4l2_prio_max [videodev]
00000000 r __ksymtab_v4l2_prio_check [videodev]
00000000 r __kstrtab_v4l2_prio_check [videodev]
00000000 r __kcrctab_v4l2_prio_close [videodev]
00000000 r __kstrtab_v4l2_prio_close [videodev]
00000000 r __kstrtab_v4l2_prio_open [videodev]
00000000 r __kstrtab_v4l2_prio_change [videodev]
00000000 r __kstrtab_v4l2_prio_init [videodev]
00000000 d v4l2_ioctl_mutex.18715 [videodev]
00000000 r __ksymtab_v4l2_prio_init [videodev]
00000000 r __ksymtab_v4l2_prio_change [videodev]
00000000 r __kcrctab_v4l2_prio_check [videodev]
00000000 r __ksymtab_v4l2_prio_close [videodev]
00000000 r __ksymtab_v4l2_prio_open [videodev]
00000000 r __kcrctab_v4l2_prio_open [videodev]
00000000 r __kcrctab_v4l2_prio_max [videodev]
00000000 r v4l2_ioctls [videodev]
00000000 r v4l2_memory_names [videodev]
00000000 r __ksymtab_v4l2_field_names [videodev]
00000000 r __kstrtab_v4l2_field_names [videodev]
00000000 r __ksymtab_v4l2_norm_to_name [videodev]
00000000 r __kstrtab_v4l2_norm_to_name [videodev]
00000000 r __kcrctab_v4l2_type_names [videodev]
00000000 r __kcrctab_v4l2_field_names [videodev]
00000000 r __kstrtab_v4l2_type_names [videodev]
00000000 r __kstrtab_v4l2_video_std_construct [videodev]
00000000 r __kstrtab_v4l2_video_std_frame_period [videodev]
00000000 r __kcrctab_v4l2_video_std_frame_period [videodev]
00000000 r __ksymtab_v4l2_video_std_frame_period [videodev]
00000000 r __kcrctab_v4l2_norm_to_name [videodev]
00000000 r __kcrctab_v4l2_video_std_construct [videodev]
00000000 r __ksymtab_v4l2_video_std_construct [videodev]
00000000 r __ksymtab_v4l2_type_names [videodev]
00000000 t v4l2_device_release [videodev]
00000000 t v4l2_device_release_subdev_node [videodev]
00000000 r __kstrtab_v4l2_device_unregister_subdev [videodev]
00000000 r __kstrtab_v4l2_device_register_subdev_nodes [videodev]
00000000 r __kstrtab_v4l2_device_register_subdev [videodev]
00000000 r __kstrtab_v4l2_device_unregister [videodev]
00000000 r __kstrtab_v4l2_device_disconnect [videodev]
00000000 r __kstrtab_v4l2_device_set_name [videodev]
00000000 r __kstrtab_v4l2_device_put [videodev]
00000000 r __kstrtab_v4l2_device_register [videodev]
00000000 r __ksymtab_v4l2_device_register [videodev]
00000000 r __kcrctab_v4l2_device_put [videodev]
00000000 r __kcrctab_v4l2_device_register [videodev]
00000000 r __kcrctab_v4l2_device_unregister_subdev [videodev]
00000000 r __kcrctab_v4l2_device_set_name [videodev]
00000000 r __ksymtab_v4l2_device_register_subdev_nodes [videodev]
00000000 r __ksymtab_v4l2_device_register_subdev [videodev]
00000000 r __ksymtab_v4l2_device_set_name [videodev]
00000000 r __kcrctab_v4l2_device_register_subdev_nodes [videodev]
00000000 r __ksymtab_v4l2_device_put [videodev]
00000000 r __kcrctab_v4l2_device_unregister [videodev]
00000000 r __ksymtab_v4l2_device_unregister [videodev]
00000000 r __ksymtab_v4l2_device_disconnect [videodev]
00000000 r __ksymtab_v4l2_device_unregister_subdev [videodev]
00000000 r __kcrctab_v4l2_device_register_subdev [videodev]
00000000 r __kcrctab_v4l2_device_disconnect [videodev]
00000000 r __kstrtab_v4l2_fh_is_singular [videodev]
00000000 r __kstrtab_v4l2_fh_release [videodev]
00000000 r __kstrtab_v4l2_fh_exit [videodev]
00000000 r __kstrtab_v4l2_fh_del [videodev]
00000000 r __kstrtab_v4l2_fh_open [videodev]
00000000 r __kstrtab_v4l2_fh_add [videodev]
00000000 r __kstrtab_v4l2_fh_init [videodev]
00000000 r __kcrctab_v4l2_fh_init [videodev]
00000000 r __kcrctab_v4l2_fh_release [videodev]
00000000 r __ksymtab_v4l2_fh_del [videodev]
00000000 r __kcrctab_v4l2_fh_exit [videodev]
00000000 r __ksymtab_v4l2_fh_release [videodev]
00000000 r __ksymtab_v4l2_fh_add [videodev]
00000000 r __ksymtab_v4l2_fh_is_singular [videodev]
00000000 r __ksymtab_v4l2_fh_exit [videodev]
00000000 r __ksymtab_v4l2_fh_open [videodev]
00000000 r __kcrctab_v4l2_fh_del [videodev]
00000000 r __kcrctab_v4l2_fh_is_singular [videodev]
00000000 r __ksymtab_v4l2_fh_init [videodev]
00000000 r __kcrctab_v4l2_fh_add [videodev]
00000000 r __kcrctab_v4l2_fh_open [videodev]
00000000 t __v4l2_event_dequeue [videodev]
00000000 t v4l2_event_subscribed [videodev]
00000000 t __v4l2_event_queue_fh [videodev]
00000000 r __kstrtab_v4l2_event_unsubscribe [videodev]
00000000 r __kstrtab_v4l2_event_unsubscribe_all [videodev]
00000000 r __kstrtab_v4l2_event_subscribe [videodev]
00000000 r __kstrtab_v4l2_event_pending [videodev]
00000000 r __kstrtab_v4l2_event_queue_fh [videodev]
00000000 r __kstrtab_v4l2_event_queue [videodev]
00000000 r __kstrtab_v4l2_event_dequeue [videodev]
00000000 r __ksymtab_v4l2_event_queue_fh [videodev]
00000000 r __kcrctab_v4l2_event_pending [videodev]
00000000 r __kcrctab_v4l2_event_subscribe [videodev]
00000000 r __ksymtab_v4l2_event_unsubscribe_all [videodev]
00000000 r __kcrctab_v4l2_event_unsubscribe [videodev]
00000000 r __ksymtab_v4l2_event_unsubscribe [videodev]
00000000 r __ksymtab_v4l2_event_pending [videodev]
00000000 r __kcrctab_v4l2_event_queue_fh [videodev]
00000000 r __ksymtab_v4l2_event_queue [videodev]
00000000 r __ksymtab_v4l2_event_dequeue [videodev]
00000000 r __ksymtab_v4l2_event_subscribe [videodev]
00000000 r __kcrctab_v4l2_event_queue [videodev]
00000000 r __kcrctab_v4l2_event_unsubscribe_all [videodev]
00000000 r __kcrctab_v4l2_event_dequeue [videodev]
00000000 t v4l2_ctrl_new [videodev]
00000000 r __kcrctab_v4l2_ctrl_add_ctrl [videodev]
00000000 r __ksymtab_v4l2_ctrl_add_event [videodev]
00000000 r __kstrtab_v4l2_ctrl_add_event [videodev]
00000000 r __kcrctab_v4l2_ctrl_s_ctrl [videodev]
00000000 r __kstrtab_v4l2_ctrl_del_event [videodev]
00000000 r __kstrtab_v4l2_ctrl_s_ctrl [videodev]
00000000 r __kstrtab_v4l2_subdev_s_ctrl [videodev]
00000000 r __kstrtab_v4l2_s_ctrl [videodev]
00000000 r __kstrtab_v4l2_subdev_s_ext_ctrls [videodev]
00000000 r __kstrtab_v4l2_subdev_try_ext_ctrls [videodev]
00000000 r __kstrtab_v4l2_s_ext_ctrls [videodev]
00000000 r __kstrtab_v4l2_try_ext_ctrls [videodev]
00000000 r __kstrtab_v4l2_ctrl_g_ctrl [videodev]
00000000 r __kstrtab_v4l2_subdev_g_ctrl [videodev]
00000000 r __kstrtab_v4l2_g_ctrl [videodev]
00000000 r __kstrtab_v4l2_subdev_g_ext_ctrls [videodev]
00000000 r __kstrtab_v4l2_g_ext_ctrls [videodev]
00000000 r __kstrtab_v4l2_subdev_querymenu [videodev]
00000000 r __kstrtab_v4l2_querymenu [videodev]
00000000 r __kstrtab_v4l2_subdev_queryctrl [videodev]
00000000 r __kstrtab_v4l2_queryctrl [videodev]
00000000 r __kstrtab_v4l2_ctrl_handler_setup [videodev]
00000000 r __kstrtab_v4l2_ctrl_handler_log_status [videodev]
00000000 r __kstrtab_v4l2_ctrl_grab [videodev]
00000000 r __kstrtab_v4l2_ctrl_activate [videodev]
00000000 r __kstrtab_v4l2_ctrl_auto_cluster [videodev]
00000000 r __kstrtab_v4l2_ctrl_cluster [videodev]
00000000 r __kstrtab_v4l2_ctrl_add_handler [videodev]
00000000 r __kstrtab_v4l2_ctrl_add_ctrl [videodev]
00000000 r __kstrtab_v4l2_ctrl_new_std_menu [videodev]
00000000 r __kstrtab_v4l2_ctrl_new_std [videodev]
00000000 r __kstrtab_v4l2_ctrl_new_custom [videodev]
00000000 r __kstrtab_v4l2_ctrl_find [videodev]
00000000 r __kstrtab_v4l2_ctrl_handler_free [videodev]
00000000 r __kstrtab_v4l2_ctrl_handler_init [videodev]
00000000 r __kstrtab_v4l2_ctrl_fill [videodev]
00000000 r __kstrtab_v4l2_ctrl_get_name [videodev]
00000000 r __kstrtab_v4l2_ctrl_get_menu [videodev]
00000000 r __kcrctab_v4l2_ctrl_handler_free [videodev]
00000000 r __ksymtab_v4l2_s_ctrl [videodev]
00000000 r __ksymtab_v4l2_subdev_s_ext_ctrls [videodev]
00000000 r __ksymtab_v4l2_ctrl_fill [videodev]
00000000 r __kcrctab_v4l2_s_ext_ctrls [videodev]
00000000 r __kcrctab_v4l2_ctrl_get_menu [videodev]
00000000 r __ksymtab_v4l2_ctrl_s_ctrl [videodev]
00000000 r __ksymtab_v4l2_ctrl_handler_free [videodev]
00000000 r __ksymtab_v4l2_subdev_querymenu [videodev]
00000000 r __ksymtab_v4l2_subdev_queryctrl [videodev]
00000000 r __ksymtab_v4l2_ctrl_find [videodev]
00000000 r __kcrctab_v4l2_subdev_g_ext_ctrls [videodev]
00000000 r __ksymtab_v4l2_ctrl_grab [videodev]
00000000 r __ksymtab_v4l2_g_ctrl [videodev]
00000000 r __kcrctab_v4l2_ctrl_g_ctrl [videodev]
00000000 r __ksymtab_v4l2_s_ext_ctrls [videodev]
00000000 r __kcrctab_v4l2_ctrl_handler_setup [videodev]
00000000 r __kcrctab_v4l2_ctrl_add_event [videodev]
00000000 r __ksymtab_v4l2_ctrl_get_name [videodev]
00000000 r __kcrctab_v4l2_subdev_querymenu [videodev]
00000000 r __kcrctab_v4l2_ctrl_new_std [videodev]
00000000 r __kcrctab_v4l2_ctrl_grab [videodev]
00000000 r __ksymtab_v4l2_ctrl_add_ctrl [videodev]
00000000 r __kcrctab_v4l2_s_ctrl [videodev]
00000000 r __kcrctab_v4l2_ctrl_activate [videodev]
00000000 r __ksymtab_v4l2_g_ext_ctrls [videodev]
00000000 r __kcrctab_v4l2_subdev_queryctrl [videodev]
00000000 r __ksymtab_v4l2_ctrl_del_event [videodev]
00000000 r __kcrctab_v4l2_try_ext_ctrls [videodev]
00000000 r __kcrctab_v4l2_ctrl_auto_cluster [videodev]
00000000 r __kcrctab_v4l2_ctrl_handler_init [videodev]
00000000 r __kcrctab_v4l2_querymenu [videodev]
00000000 r __ksymtab_v4l2_subdev_try_ext_ctrls [videodev]
00000000 r __kcrctab_v4l2_g_ctrl [videodev]
00000000 r __ksymtab_v4l2_ctrl_activate [videodev]
00000000 r __kcrctab_v4l2_ctrl_new_custom [videodev]
00000000 r __kcrctab_v4l2_subdev_g_ctrl [videodev]
00000000 r __kcrctab_v4l2_subdev_s_ctrl [videodev]
00000000 r __ksymtab_v4l2_try_ext_ctrls [videodev]
00000000 r __kcrctab_v4l2_ctrl_handler_log_status [videodev]
00000000 r __kcrctab_v4l2_ctrl_get_name [videodev]
00000000 r __kcrctab_v4l2_queryctrl [videodev]
00000000 r __kcrctab_v4l2_ctrl_new_std_menu [videodev]
00000000 r __ksymtab_v4l2_ctrl_handler_init [videodev]
00000000 r __ksymtab_v4l2_queryctrl [videodev]
00000000 r __ksymtab_v4l2_ctrl_get_menu [videodev]
00000000 r __ksymtab_v4l2_ctrl_handler_setup [videodev]
00000000 r __ksymtab_v4l2_subdev_s_ctrl [videodev]
00000000 r __ksymtab_v4l2_ctrl_add_handler [videodev]
00000000 r __ksymtab_v4l2_ctrl_auto_cluster [videodev]
00000000 r __kcrctab_v4l2_subdev_s_ext_ctrls [videodev]
00000000 r __ksymtab_v4l2_ctrl_handler_log_status [videodev]
00000000 r __kcrctab_v4l2_ctrl_find [videodev]
00000000 r __ksymtab_v4l2_subdev_g_ext_ctrls [videodev]
00000000 r __kcrctab_v4l2_g_ext_ctrls [videodev]
00000000 r __kcrctab_v4l2_subdev_try_ext_ctrls [videodev]
00000000 r __ksymtab_v4l2_ctrl_new_custom [videodev]
00000000 r __kcrctab_v4l2_ctrl_add_handler [videodev]
00000000 r __ksymtab_v4l2_querymenu [videodev]
00000000 r __ksymtab_v4l2_ctrl_new_std [videodev]
00000000 r __ksymtab_v4l2_ctrl_g_ctrl [videodev]
00000000 r __ksymtab_v4l2_ctrl_cluster [videodev]
00000000 r __ksymtab_v4l2_ctrl_new_std_menu [videodev]
00000000 r __kcrctab_v4l2_ctrl_fill [videodev]
00000000 r __ksymtab_v4l2_subdev_g_ctrl [videodev]
00000000 r __kcrctab_v4l2_ctrl_del_event [videodev]
00000000 r __kcrctab_v4l2_ctrl_cluster [videodev]
00000000 r __kstrtab_v4l2_subdev_init [videodev]
00000000 r __ksymtab_v4l2_subdev_init [videodev]
00000000 r __kcrctab_v4l2_subdev_init [videodev]
00000000 t v4l2_fh_exit [videodev]
00000000 T v4l2_subdev_queryctrl [videodev]
00000000 T v4l2_norm_to_name [videodev]
00000000 t v4l2_device_put [videodev]
00000000 T v4l2_querymenu [videodev]
00000000 T v4l2_subdev_s_ext_ctrls [videodev]
00000000 T v4l2_prio_max [videodev]
00000000 T v4l2_ctrl_add_handler [videodev]
00000000 t v4l2_fh_del [videodev]
00000000 T v4l2_g_ctrl [videodev]
00000000 t v4l2_fh_add [videodev]
00000000 T v4l2_prio_change [videodev]
00000000 T v4l2_g_ext_ctrls [videodev]
00000000 t v4l2_device_register_subdev_nodes [videodev]
00000000 T v4l2_subdev_init [videodev]
00000000 t v4l2_fh_open [videodev]
00000000 T v4l2_subdev_try_ext_ctrls [videodev]
00000000 T v4l2_ctrl_grab [videodev]
00000000 T v4l2_s_ext_ctrls [videodev]
00000000 t v4l2_device_register_subdev [videodev]
00000000 T v4l2_ctrl_auto_cluster [videodev]
00000000 T v4l2_ctrl_get_name [videodev]
00000000 T v4l2_video_std_construct [videodev]
00000000 T v4l2_ctrl_handler_log_status [videodev]
00000000 T v4l2_ctrl_handler_setup [videodev]
00000000 T v4l2_ctrl_find [videodev]
00000000 T v4l2_subdev_s_ctrl [videodev]
00000000 D v4l2_type_names [videodev]
00000000 D v4l2_field_names [videodev]
00000000 t v4l2_device_unregister_subdev [videodev]
00000000 T v4l2_ctrl_add_event [videodev]
00000000 T v4l2_prio_check [videodev]
00000000 T v4l2_ctrl_new_custom [videodev]
00000000 t v4l2_device_set_name [videodev]
00000000 t v4l2_fh_is_singular [videodev]
00000000 t v4l2_fh_release [videodev]
00000000 T v4l2_prio_close [videodev]
00000000 t v4l2_fh_init [videodev]
00000000 t v4l2_event_pending [videodev]
00000000 T v4l2_prio_init [videodev]
00000000 t v4l2_event_subscribe [videodev]
00000000 T v4l2_s_ctrl [videodev]
00000000 T v4l2_ctrl_s_ctrl [videodev]
00000000 t v4l2_device_disconnect [videodev]
00000000 T v4l2_ctrl_new_std_menu [videodev]
00000000 T v4l2_ctrl_get_menu [videodev]
00000000 t v4l2_device_register [videodev]
00000000 T v4l2_subdev_g_ext_ctrls [videodev]
00000000 T v4l2_ctrl_add_ctrl [videodev]
00000000 T v4l2_ctrl_activate [videodev]
00000000 T v4l2_subdev_g_ctrl [videodev]
00000000 T v4l2_ctrl_handler_init [videodev]
00000000 t v4l2_event_dequeue [videodev]
00000000 T v4l2_ctrl_new_std [videodev]
00000000 T v4l2_prio_open [videodev]
00000000 T v4l2_ctrl_g_ctrl [videodev]
00000000 T v4l2_ctrl_handler_free [videodev]
00000000 t v4l2_device_unregister [videodev]
00000000 t v4l2_event_unsubscribe_all [videodev]
00000000 T v4l2_subdev_querymenu [videodev]
00000000 t v4l2_event_queue [videodev]
00000000 T v4l2_video_std_frame_period [videodev]
00000000 T v4l2_ctrl_fill [videodev]
00000000 T v4l2_try_ext_ctrls [videodev]
00000000 r v4l2_subdev_fops [videodev]
00000000 t v4l2_event_queue_fh [videodev]
00000000 T v4l2_queryctrl [videodev]
00000000 T v4l2_ctrl_del_event [videodev]
00000000 T v4l2_ctrl_cluster [videodev]
00000000 t v4l2_event_unsubscribe [videodev]
marine@beagle:~$

To compile the kernel I followed these steps:
I downloaded Ubuntu kernel following the instructions in: http://elinux.org/BeagleBoardUbuntu#Building_Kernel

  • I ran build_dev.sh
  • Then I activated Device Drivers->Multimedia support->V4L2 sub-device userspace API (EXPERIMENTAL) menuconfig kernel option.
  • After this I activated Device Drivers->Multimedia support->Video Capture adapters->Encoders, decoders, sensors and other helper chips->Aptina MT9P031 support
    And then I continued compiling the kernel.

To compile the kernel I followed these steps:
I downloaded Ubuntu kernel following the instructions in: http://elinux.org/BeagleBoardUbuntu#Building_Kernel

  • I ran build_dev.sh
  • Then I activated Device Drivers->Multimedia support->V4L2 sub-device userspace API (EXPERIMENTAL) menuconfig kernel option.
  • After this I activated Device Drivers->Multimedia support->Video Capture adapters->Encoders, decoders, sensors and other helper chips->Aptina MT9P031 support
    And then I continued compiling the kernel.
    After the kernel compilation I got the .deb packages and I installed them doing a “dpkg -i”

Hello,

After loading the mt9p031 module (sudo insmod /lib/modules/3.2.29-x14/
kernel/drivers/media/video/mt9p031.ko # can' t load the module) I can read the following:

marine@beagle:~$ sudo modprobe mt9p031
[sudo] password for marine:

So, what's the problem? Your previous message indicated missing symbols,
but that was because you used 'insmod' to install the module. If you use
'modprobe' as you have done here, additional modules will be installed to
resolve the missing symbols. The output above indicates that the mt9p031
module and all of its dependencies have been loaded. You should now be
able to access the device.
   <snip>

Hello,

The problem is that though the module mt9p031 is loaded, no /dev/video? is created.

I also got similar problems, I got the solution by going to Uenv.txt file in boot partition and adding following lines:
camera=lbcm5m03

Hope it works

I think that the problem is that the i2s camera pull ups aren’t activated because Ubuntu’s u-boot.img doesn’t support this option or maybe I must somehow activate them. I say this because i2cdetect doesn’t show any device in i2c2 0x48, which is the camera address.

Please, does anybody know how to activate the pull ups in Ubuntu? How can I specify the camera in uEnv.txt?
Please, does anybody know who should I get in contact with to solve the camera problem?

Hello,

Please, are you using Angstrom or Ubuntu? Where can I get the image file?
Thanks a lot.

I think that the problem is that the i2s camera pull ups aren't activated because Ubuntu's u-boot.img doesn't support this option or maybe I must somehow activate them. I say this
because i2cdetect doesn't show any device in i2c2 0x48, which is the camera address.

Are you sure? I think the MP9P031 is on address 0x5D

I think I’m sure. In Leopard Board the camera module is in 0x48. I2C devices provide their own address:
https://www.ridgerun.com/developer/wiki/index.php/LeopardBoard_365_I2C_Devices

The advantage of a directly-connected camera (e.g. the LI-5M03 and similar) is that it uses the OMAP processor’s direct camera interface, achieving higher bandwidth (thus resolution + frame rate combinations) than are possible over USB with this board.

Many people (including me) have had great success using the Leopard Imaging camera boards.

Robert Nelson’s recent kernels have the MT9P031 sensor and LI camera board support included - you just need to enable it with a kernel command line argument.

Cheers,
Chris

For some applications like high resolution image processing I liked the EV1900-5 from Scintific Canada, because of its ease of use software API for both windows&linux and wide range of custom optics support. I guess it is the application which determines but so far I am comfortable with this one.

Adeel.