(3)做项目需要使用新内核和新文件系统启动开发板

ftp://ftp.invisible-island.net/ncurses/

1、虚拟机

2、工具链

3、编译内核

tar xjf linux-3.4.2.tar.bz2
cd linux-3.4.2
打补丁:patch -p1 < …/linux-3.4.2_camera_jz2440.patch
可以直接打新的补丁有网卡有lcd驱动,如过打旧补丁,我们可以自己修改:
lcd_4.3.c 、dm9dev9000c.c、dm9000.h这些文件在毕业班第四课里

把 lcd_4.3.c 复制到 /work/projects/linux-3.4.2/drivers/video
修改/work/projects/linux-3.4.2/drivers/video/Makefile

#obj-$(CONFIG_FB_S3C2410)         += s3c2410fb.o
obj-$(CONFIG_FB_S3C2410)          += lcd_4.3.o

把dm9dev9000c.c、dm9000.h复制到/work/projects/linux-3.4.2/drivers/net/ethernet/davicom
修改/work/projects/linux-3.4.2/drivers/net/ethernet/davicom/Makefile

#obj-$(CONFIG_DM9000) += dm9000.o
obj-$(CONFIG_DM9000) += dm9dev9000c.o

配置内核,因为config_ok里没有UVC驱动程序:
cp config_ok .config
make menuconfig

Device Drivers --->
   <*> Multimedia support  --->
       <*>   Video For Linux 
       [*]   Video capture adapters (NEW)  --->
              [*]   V4L USB devices (NEW)  --->
                   <*>   USB Video Class (UVC) 

// 如果你使用的是百问网自制的USB摄像头,
// 还需要参考第2课1.1.9节视频修改UVC驱动

make uImae

编译出现错误,可能是因为内核是旧版(3.4.2)的在新版linux编译的缘故:

Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/work/projects/linux-3.4.2/kernel/Makefile:129: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:945: recipe for target 'kernel' failed
make: *** [kernel] Error 2

将kernel/timeconst.pl中第373行的defined()去掉,只留下 !@val 就可以了,去掉后如下:
在这里插入图片描述
cp arch/arm/boot/uImage /work/nfs_root/uImage_new

4、文件系统:

cd /work/nfs_root
sudo tar xjf fs_mini_mdev_new.tar.bz2
sudo chown book:book fs_mini_mdev_new

5、用新内核、新文件系统启动开发板

启动开发板至UBOOT
设置UBOOT的环境变量:

set ipaddr 192.168.1.17

set bootcmd 'nfs 32000000 192.168.1.124:/work/nfs_root/uImage_new; bootm 32000000'

set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.1.124:/work/nfs_root/fs_mini_mdev_new ip=192.168.1.17

save

boot

这句命令“set bootcmd ‘nfs 32000000 192.168.1.124:/work/nfs_root/uImage_new; bootm 32000000’”的意思是:
将192.168.1.124服务器上的/work/nfs_root/uImage_new下载到nfs 32000000,然后启动内核

这句命令“set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.1.124:/work/nfs_root/fs_mini_mdev_new ip=192.168.1.17`”的意思是:
将根文件系统设置成192.168.1.124服务器上的/work/nfs_root/uImage_new

发布了56 篇原创文章 · 获赞 3 · 访问量 2359

猜你喜欢

转载自blog.csdn.net/qq_40674996/article/details/105054478