本文摘录于本人博客:http://blog.csdn.net/chengdong1314/ar
ticle/details/50418344
按照视频笔记上是如此编译的:
给HAME A100刷固件
目的:
1. 给HAME A100刷固件
2. 配置上UVC驱动
3. 修改内核自带的UVC驱动,使其支持我们自制的二合一摄像头
4. 移植mjpg-streamer
5. 实现开机自启动、热拔插功能
便携的无线监控设备 = 路由器(HAME A100) + USB摄像头(二合一摄像头) +
手机
HAME A100:
CPU: RT5350
FLASH: 8M SPI FLASH
SDRAM: 32M
固件:
可以理解为我们自己的内核和文件系统
一,环境的搭建
a,解压100ask_toolchain.bz2:
tar xjvf 100ask_toolchain.bz2
b,安装工具连:
cd toolchain/
sudo tar jxf buildroot-gcc342.tar.bz2 -C /opt
c,安装内核压缩工具:
cd lzma-4.32.0beta5
./configure
make
sudo make install
d,安装rootfs工具:linux 2.6
cd ..
cd mksquash_lzma-3.2
make
sudo make install
二,配置与编译固件
tar xjvf 100ask.bz2
cd 5350_source/
vim .config
-- CONFIG_CROSS_COMPILER_PATH="/opt/buildroot-gcc342/bin"
make clean
make
注意在编译这个固件的时候顺序不能够有所改变,也就是说应该先配置再make clean
结果:
flash_100ask_IP_Camera_debug_V1.0.4.bin
但是如果我按照这样的编译方式将出现如下问题:
[color=rgb(153,153,153)!important]
错误是这样的:
[color=rgb(153,153,153)!important]
smbd/chgpasswd.c: In function `change_oem_password':
smbd/chgpasswd.c:973: warning: assignment makes pointer from integer without a cast
smbd/chgpasswd.c:991: warning: passing arg 1 of `chgpasswd' makes pointer from integer without a cast
make[5]: *** [smbd/chgpasswd.o] Error 1
make[5]: Leaving directory `/work/nfs_root/fs_mini_mdev_new/video_surveillance_source/1.1_14/hame_a100/source/5350_source/user/samba-3.0.2/source'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/work/nfs_root/fs_mini_mdev_new/video_surveillance_source/1.1_14/hame_a100/source/5350_source/user/samba-3.0.2/source'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/work/nfs_root/fs_mini_mdev_new/video_surveillance_source/1.1_14/hame_a100/source/5350_source/user/samba-3.0.2'
make[2]: *** [samba-3.0.2] Error 2
make[2]: Leaving directory `/work/nfs_root/fs_mini_mdev_new/video_surveillance_source/1.1_14/hame_a100/source/5350_source/user'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/work/nfs_root/fs_mini_mdev_new/video_surveillance_source/1.1_14/hame_a100/source/5350_source/user'
make: *** [user_only] Error 2
book@book-desktop:/work/nfs_root/fs_mini_mdev_new/video_surveillance_source/1.1_14/hame_a100/so14/hame_a100/source/5350_source$
为了好看些,这里截图一份:
从上面的错误可知是在编译
smbd软件时出现了错误,如果把该软件的目录从Makefile文件中去除掉就能够编译通过,但是这并不是解决之道,经过请教韦东山老师,老师给出了下面最佳的解决方法:
错误的原因是这样的:samb的Makefile会用gawk命令来制作一些头文件;如果没有这个命令,那些头文件就是空的,会导致编译错误
所以解决办法如下:
安装 gawk
如果ubuntu里没有gawk命令,需要自己安装。(可以执行 gawk 确认是否有此命令)
有2种方法:
e.1 sudo apt-get install gawk
e.2
tar xjf gawk-3.1.8.tar.bz2
cd gawk-3.1.8
./confiure
make
sudo make install
做完能后,再到5350_source里执行:
make clean
make
其实就是安装上gawk软件,装上之后编译通过
本实验中注意事项:
解压固件的时候可能会解压出错,可以用这个命令解压:sudo tar xjvf 100ask.bz2
华美路由器串口波特率:57600
华美路由器引出线的名称: 棕:远离网卡近USB GND 绿:紧挨GND RX->TX 黑:远离GND TX->RX
实验步骤是这样的:插上网线-》下载固件-》拔掉网线-》运行程序 这里要用手机来看视频就要拔掉网线,否则不知道路由器的IP,但是要用网线来下载,所以要有顺序
有图有真相:
现在把资料上传上来。注意这里只有libjpeg和mjpg-streamer和生成的固件,因为内核源代码真的太大了没法上传:
http://download.csdn.net/detail/chengdong1314/9380563
最后把华美A100的拆机图片打包上传:
http://download.csdn.net/detail/chengdong1314/9381909