编译模块后,加载出现 error
dmesg后 ,打印如下:
当前编译的源码版本跟系统内核的版本没有一致
重新insmod myuvc.ko后 仍然没有输出信息:
lsusb -v -d 0xbda: ---->注意不要掉了冒号
如何设置ubuntu 从串口输出 内核的 log信息:
1先设置虚拟机,添加串口设备,然后设置输出到文件!
2 # vi /etc/default//grub
11 GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8" 补上
修改完成后执行:update-grub
3. root@book-virtual-machine:/home/book# cat /proc/sys/kernel/printk
4 4 1 7
root@book-virtual-machine:/home/book# echo "4 4 1 7" > /proc/sys/kernel/printk 修改内核的打印级别
调试应用程序:
让程序在开发板上直接运行,当它发生错误的时候,令他产生core dump文件
然后使用gdb根据core dump文件找到错误的地方
在arm板上:
1.ulimit -c unlimited
2.执行应用程序:程序出错时会在当前目录下名为core的文件
在PC上:也就是在ubuntu上
3. /bin/arm-linux-gdb ./test_debug ./core 例如:arm-linux-gdb video2lcd /work/nfs_root/fs_mini_mdev_new/core
4.PC控制台执行backtrace 命令:
1.把 lcd_4.3.c复制到 /work/system/linux-3.4.2/drivers/video ---->修改/drivers/video/Makefile
2.添加网卡驱动
注释:cp config_ok .config的必要性:
3.make menuconfig·
搜索 USB_VIDEO......
4.make uImage && cp /arch/arm/boot/uImage /work/nfs_root/uImage_uvc_lcd
reset后启动不起来,分析发现需要修改UBOOT 内核的大小要修改
修改 u-boot-2012.04.01_100ask.patch
打patch
vi u-boot-2012.04.01_100ask/include/configs/smdk2440.h 查看是否打了
重新编译uboot
生成了
烧录后,可以正常启动
但是kernel打印的分区信息不对,需要修改kernel的参数但不影响系统跑起来
在烧录uImage_UVC_LCD内核以前,插入usb 摄像头,没有输出相应的usb设备的讯息
现在插入:
运行uvc的应用程序试看效果:
mount 服务器的文件系统:
mount -t nfs -o nolock,vers=2 192.168.2.102:/work/nfs_root/fs_mini_mdev_new
程序正常运行,但是只是显示部分图像: