一:uboot下 tftp 下载内核
1.开发板和windows能够ping通
保证通过一个网段 windows防火墙关闭
2.windows和linux能够ping通
linux 防火墙关闭 /etc/init.d/iptables stop
setenforce permissive(0)
启动NFS服务器 :
service nfs restart
3.交换机(极大的增加了ping通的概率)
二:
关于修改文件夹的权限 进入文件夹下 使用命令 chmod 777 ./ -R
三:
关于编译uImage 出现make[1] [usr/initramfs_data.cpio] 错误 是文件系统没有挂载
四:关于挂载NFS 开发板启动参数设置
setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.5:/nfs/rootfs ip=192.168.1.230:192.168.1.5:192.168.1.1:255.255.255.0::eth0:off
五:linux查看安装包是否安装的命令 rpm -qa | grep tftp*
六:关于查看服务是否启动 netstat
七:启动nfs服务器 service nfs restart
/nfs *(rw,sync,no_root_squash)
八:修改nfs服务器配置 /etc/exports
九:复制文件夹 cp 文件夹名 -rf
十:让内核识别NFS并可从NFS启动
编译内核
在内核源代码目录树下,配置内核:
$make menuconfig
依次进入 File Systems -> Network File System中选择 NFS client support 以及 Root file system on NFS。如果找不到Root file system on NFS 选项,要打开第一级菜单下的Networking support -> Networking options -> TCP/IP networking -> IP: kernel level autoconfiguration。如果NFS要使用DHCP,还得选上 IP: DHCP support。
保存配置并重新编译即可。
十一:关于redhat上网的问题
window主机插上网线 自动获取IP linux重启 点击浏览器即可上网
十二:ubuntu ping windows
root@stgman-desktop:~# sudo ufw disable防火墙在系统启动时自动禁用
采用桥接方式 同一个网段即可ping通
ubuntu上网
windows主机插上网线 自动获取ip 重启ubuntu即可上网
ubuntu使用winscp 用户名为forlinux 密码为root密码
十三:ubuntu firefox访问开发板出现html源码的问题 浏览器版本问题 windows下360浏览器访问没问题 试一下windows下firefox浏览器访问
十四:redhat下编译motion出现libavcode.c libavcode.so libavformat.a libavformat.so库找不到 MySQL cannot support cannot build without MySQL libraries
在ubuntu下编译motion出现 libavcode.c libavcode.so libavformat.a libavformat.so库 可以使用-L 指定库路径 -I 指定头文件路径 把 编译ffmpeg产生的_install/lib下的相应库拷贝到/usr/lib下即可解决这个问题 但是又产生了avformat.h 找不到 这是可以把编译ffmpeg产生的_install/include/libavformat/avformat.h拷贝到/usr目录下即可解决此问题 但是继续使用命名make是出现 ffmpeg.c 128行 cannot find avsting.h 这时要去ffmpeg _install/include/libavutil 目录下的avstring.h拷贝到 motion源码的顶层目录中去
总结:遇到类似的问题要学会查看makefile文件或是configue.in文件
十五:关于报错 libc.so.6: version `GLIBC_2.7' cannot found
参见http://blog.youkuaiyun.com/qq160816/article/details/7679426
用命令查看glibc库的信息
rpm -qi glibc
十六:开发板下uboot的环境变量
SMDK6410 # print
bootcmd=nand read 0xc0008000 0x100000 0x500000;bootm 0xc0008000
bootdelay=1
baudrate=115200
ethaddr=00:40:5c:26:0a:5b
ipaddr=192.168.1.230
serverip=192.168.1.5
gatewayip=192.168.1.1
netmask=255.255.255.0
bootargs=noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192
.168.1.5:/nfs/rootfs ip=192.168.1.230:192.168.1.5:192.168.1.1:255.255.255.0::eth
0:off
stdin=serial
stdout=serial
stderr=serial
Environment size: 411/524284 bytes
十七:挂载本地文件夹到开发板目录
1.本地要搭建配置nfs服务器
2.开发板要ping的通主机linux
3.在终端输入命令 mount -t nfs -o nolock 192.168.1.5:/nfs /mnt
命令意思是将本地根目录下的nfs文件夹挂载到开发板mnt目录下
十八:关于使用tftp下载文件到开发板
1.本地安装配置tftp服务器
2.开发板ping的通主机linux
3.在开发板的要下载到的目录下使用命令 tftp -g -r 下载文件名 192.168.1.5(服务器的ip)
十九:关于OK6410开发板boa 有两个配置文件
一个在/etc/boa/boa.conf 另一个在/usr/local/boa/boa.conf
这两者是个什么关系 冲突 分别起什么作用
按照手册修改配置文件 访问boa不成功 出了什么问题
二十:关于ubuntu下使用minicom 参见飞凌OK6410开发板Linux用户手册
二十一:关于redhat5 使用mincom 出现minicom: cannot open /dev/ttyUSB0: 没有那个设备OK6410
/dev/ttyUSB0没有 但换成Tiny6410就可以 在redhat6 ubuntu下都可以识别
Cannot connect the virtual device serial0 because no corresponding device is available on the host.
二十二:404 Not Found
The requested URL /login.cgi was not found on this server.
400 Bad Request
Your client has issued a malformed or illegal request.
502 Bad Gateway
The CGI was not CGI/1.1 compliant.
二十三;关于在ok6410开发板上移植boa
在Ok6410上移植boa出现 boa.c 226-icky linux kernel bug ! No such file or directory\
二十四:关于现代产品(C、C++)易出现难调试bug的地方:
1是位运算,逻辑运算,和算术运算等混合运算的运算符优先级
2是多线程编程时 各个线程间的交互
3是强制类型转换
嵌入式Linux系统人才学习路线及阶段目标
嵌入式Linux可以分为两类:底层系统、应用开发
1.先把开发板当作单片机来用,这可以让你熟悉LINUX环境编程、熟悉ARM板的硬件操作就是写各种裸板程序
2.接着学习UBOOT,你可以认为UBOOT就是各种裸板程序的集合。如果觉得UBOOT太复杂,可以看毕业班视频里从零写Bootloader,你把它理解了就可以
3.接着移植LINUX,这稍做一下就可以了,不用深究,知道怎么配置、编译就可以
4.文件系统:这是要弄懂的,这让你对LINUX启动后的流程有所了解
5.驱动程序:这才是重点,看第2期视频吧。我都是由浅到深地讲,每个驱动从零现场写代码
6.最后是整个项目的经验,看第3期视频,从应用到驱动,实现了3个大项目及6个衍生项目
request "GET /cam/images.cgi HTTP/1
.1" ("/web/cam/images.cgi"): pipe write: Broken pipe
安装并配置tftp服务器
使用命令rpm -qa | grep tftp 查看tftp服务是否安装
如果没有安装 执行命令 rpm -ivh tftp-server-0.42-3.1.i386.rpm进行安装
键入命令 vi /etc/xinetd.d/tftp进入tftp服务器配置文件
通过命令/etc
通过命令/init.d/xinetd start 启动tftp服务器
通过命令netstat -a | grep tftp查看tftp服务器是否成功启动
NFS服务器的安装与使用
使用命令rpm -qa | grep nfs 查看tftp服务是否安装
通过命令vi /etc/exports开打NFS配置文件
通过命令/etc/init.d/nfs start 启动nfs服务
通过命令netstat -a | grep nfs 查看nfs服务器是否成功启动
开发板系统的搭建
第一步:制作uboot
第二步:制作内核
第三步:制作文件系统
第四步:烧写uboot(通过sd卡将uboot.bin烧写到开发板的nandflash中)
第五步:修改uboot的环境变量 设置对挂载文件系统的支持 以便启用网络文件系统
第六步:在pc机上 安装nfs tftp服务器 将内核考入到tftpboot目录下 将文件系统考入到nfs目录下 关闭防火墙
第七步:连接开发板和PC机 网口和串口 网口是用来启用nfs文件系统的 串口是用来输入命令烧写内核
第八步:通过串口输入命令 tftp 51000000 uImage 下载内核到开发板内存 启动内核bootm 51000000
libjpeg.so.8
嵌入式系统的启动流程:
上电->bootloader(u-boot)->内核->挂载文件系统->运行应用程序
u-boot的作用:初始化时钟 初始化串口 初始化SDRAM等硬件相关的初始化 读flash+写flash 启动内核
编译motion的命令4.5.1
./configure --prefix=${PWD}/_install --host=arm-linux --without-mysql --without-pgsql --with-ffmpeg=/usr/local/arm/4.5.1/arm-none-linux-gnueabi/sys-root/
编译motion的命令4.3.2
./configure --prefix=${PWD}/_install --host=arm-linux --with-ffmpeg=/root/gtt/SDK-MOTION/resources/ffmpeg/ffmpeg-0.5.1/_install/ --without-mysql --without-pgsql
redhat6下 摄像头监测到移动物体后Illegal instruction:原因 可能是动态库坏了
redhat5
交叉编译工具4.3.2编译运行motion'出现
motion: error while loading shared libraries: libjpeg.so.62:
cannot open shared object file: No such file or directory
在redhat6下安装Mplayer 多用播放器
Mplayer 多用播放器,支持多种格式的音频、视频文件。
Step 1: 下载解码包
1 # wget http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20110131.tar.bz2
解压,并将解压后的文件夹移至 /usr/lib/codecs 下 mkdir /usr/lib/codecs
1 # tar jxvf all-20110131.tar.bz2
2 # mv all-20110131 /usr/lib/codecs
Step 2: 下载 Mplayer
1 # wget http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc4.tar.bz2
解压,并转到解压后的文件夹目录
1 # tar jxvf MPlayer-1.0rc4.tar.bz2
2 # cd MPlayer-1.0rc4
编译、安装
1 # ./configure
# make # make install安装结束...
测试#mplayer cam.wav
像素1024*768
1.开发板和windows能够ping通
保证通过一个网段 windows防火墙关闭
2.windows和linux能够ping通
linux 防火墙关闭 /etc/init.d/iptables stop
setenforce permissive(0)
启动NFS服务器 :
service nfs restart
3.交换机(极大的增加了ping通的概率)
二:
关于修改文件夹的权限 进入文件夹下 使用命令 chmod 777 ./ -R
三:
关于编译uImage 出现make[1] [usr/initramfs_data.cpio] 错误 是文件系统没有挂载
四:关于挂载NFS 开发板启动参数设置
setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.5:/nfs/rootfs ip=192.168.1.230:192.168.1.5:192.168.1.1:255.255.255.0::eth0:off
五:linux查看安装包是否安装的命令 rpm -qa | grep tftp*
六:关于查看服务是否启动 netstat
七:启动nfs服务器 service nfs restart
/nfs *(rw,sync,no_root_squash)
八:修改nfs服务器配置 /etc/exports
九:复制文件夹 cp 文件夹名 -rf
十:让内核识别NFS并可从NFS启动
编译内核
在内核源代码目录树下,配置内核:
$make menuconfig
依次进入 File Systems -> Network File System中选择 NFS client support 以及 Root file system on NFS。如果找不到Root file system on NFS 选项,要打开第一级菜单下的Networking support -> Networking options -> TCP/IP networking -> IP: kernel level autoconfiguration。如果NFS要使用DHCP,还得选上 IP: DHCP support。
保存配置并重新编译即可。
十一:关于redhat上网的问题
window主机插上网线 自动获取IP linux重启 点击浏览器即可上网
十二:ubuntu ping windows
root@stgman-desktop:~# sudo ufw disable防火墙在系统启动时自动禁用
采用桥接方式 同一个网段即可ping通
ubuntu上网
windows主机插上网线 自动获取ip 重启ubuntu即可上网
ubuntu使用winscp 用户名为forlinux 密码为root密码
十三:ubuntu firefox访问开发板出现html源码的问题 浏览器版本问题 windows下360浏览器访问没问题 试一下windows下firefox浏览器访问
十四:redhat下编译motion出现libavcode.c libavcode.so libavformat.a libavformat.so库找不到 MySQL cannot support cannot build without MySQL libraries
在ubuntu下编译motion出现 libavcode.c libavcode.so libavformat.a libavformat.so库 可以使用-L 指定库路径 -I 指定头文件路径 把 编译ffmpeg产生的_install/lib下的相应库拷贝到/usr/lib下即可解决这个问题 但是又产生了avformat.h 找不到 这是可以把编译ffmpeg产生的_install/include/libavformat/avformat.h拷贝到/usr目录下即可解决此问题 但是继续使用命名make是出现 ffmpeg.c 128行 cannot find avsting.h 这时要去ffmpeg _install/include/libavutil 目录下的avstring.h拷贝到 motion源码的顶层目录中去
总结:遇到类似的问题要学会查看makefile文件或是configue.in文件
十五:关于报错 libc.so.6: version `GLIBC_2.7' cannot found
参见http://blog.youkuaiyun.com/qq160816/article/details/7679426
用命令查看glibc库的信息
rpm -qi glibc
十六:开发板下uboot的环境变量
SMDK6410 # print
bootcmd=nand read 0xc0008000 0x100000 0x500000;bootm 0xc0008000
bootdelay=1
baudrate=115200
ethaddr=00:40:5c:26:0a:5b
ipaddr=192.168.1.230
serverip=192.168.1.5
gatewayip=192.168.1.1
netmask=255.255.255.0
bootargs=noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192
.168.1.5:/nfs/rootfs ip=192.168.1.230:192.168.1.5:192.168.1.1:255.255.255.0::eth
0:off
stdin=serial
stdout=serial
stderr=serial
Environment size: 411/524284 bytes
十七:挂载本地文件夹到开发板目录
1.本地要搭建配置nfs服务器
2.开发板要ping的通主机linux
3.在终端输入命令 mount -t nfs -o nolock 192.168.1.5:/nfs /mnt
命令意思是将本地根目录下的nfs文件夹挂载到开发板mnt目录下
十八:关于使用tftp下载文件到开发板
1.本地安装配置tftp服务器
2.开发板ping的通主机linux
3.在开发板的要下载到的目录下使用命令 tftp -g -r 下载文件名 192.168.1.5(服务器的ip)
十九:关于OK6410开发板boa 有两个配置文件
一个在/etc/boa/boa.conf 另一个在/usr/local/boa/boa.conf
这两者是个什么关系 冲突 分别起什么作用
按照手册修改配置文件 访问boa不成功 出了什么问题
二十:关于ubuntu下使用minicom 参见飞凌OK6410开发板Linux用户手册
二十一:关于redhat5 使用mincom 出现minicom: cannot open /dev/ttyUSB0: 没有那个设备OK6410
/dev/ttyUSB0没有 但换成Tiny6410就可以 在redhat6 ubuntu下都可以识别
Cannot connect the virtual device serial0 because no corresponding device is available on the host.
二十二:404 Not Found
The requested URL /login.cgi was not found on this server.
400 Bad Request
Your client has issued a malformed or illegal request.
502 Bad Gateway
The CGI was not CGI/1.1 compliant.
二十三;关于在ok6410开发板上移植boa
在Ok6410上移植boa出现 boa.c 226-icky linux kernel bug ! No such file or directory\
二十四:关于现代产品(C、C++)易出现难调试bug的地方:
1是位运算,逻辑运算,和算术运算等混合运算的运算符优先级
2是多线程编程时 各个线程间的交互
3是强制类型转换
嵌入式Linux系统人才学习路线及阶段目标
嵌入式Linux可以分为两类:底层系统、应用开发
1.先把开发板当作单片机来用,这可以让你熟悉LINUX环境编程、熟悉ARM板的硬件操作就是写各种裸板程序
2.接着学习UBOOT,你可以认为UBOOT就是各种裸板程序的集合。如果觉得UBOOT太复杂,可以看毕业班视频里从零写Bootloader,你把它理解了就可以
3.接着移植LINUX,这稍做一下就可以了,不用深究,知道怎么配置、编译就可以
4.文件系统:这是要弄懂的,这让你对LINUX启动后的流程有所了解
5.驱动程序:这才是重点,看第2期视频吧。我都是由浅到深地讲,每个驱动从零现场写代码
6.最后是整个项目的经验,看第3期视频,从应用到驱动,实现了3个大项目及6个衍生项目
request "GET /cam/images.cgi HTTP/1
.1" ("/web/cam/images.cgi"): pipe write: Broken pipe
安装并配置tftp服务器
使用命令rpm -qa | grep tftp 查看tftp服务是否安装
如果没有安装 执行命令 rpm -ivh tftp-server-0.42-3.1.i386.rpm进行安装
键入命令 vi /etc/xinetd.d/tftp进入tftp服务器配置文件
通过命令/etc
通过命令/init.d/xinetd start 启动tftp服务器
通过命令netstat -a | grep tftp查看tftp服务器是否成功启动
NFS服务器的安装与使用
使用命令rpm -qa | grep nfs 查看tftp服务是否安装
通过命令vi /etc/exports开打NFS配置文件
通过命令/etc/init.d/nfs start 启动nfs服务
通过命令netstat -a | grep nfs 查看nfs服务器是否成功启动
开发板系统的搭建
第一步:制作uboot
第二步:制作内核
第三步:制作文件系统
第四步:烧写uboot(通过sd卡将uboot.bin烧写到开发板的nandflash中)
第五步:修改uboot的环境变量 设置对挂载文件系统的支持 以便启用网络文件系统
第六步:在pc机上 安装nfs tftp服务器 将内核考入到tftpboot目录下 将文件系统考入到nfs目录下 关闭防火墙
第七步:连接开发板和PC机 网口和串口 网口是用来启用nfs文件系统的 串口是用来输入命令烧写内核
第八步:通过串口输入命令 tftp 51000000 uImage 下载内核到开发板内存 启动内核bootm 51000000
libjpeg.so.8
嵌入式系统的启动流程:
上电->bootloader(u-boot)->内核->挂载文件系统->运行应用程序
u-boot的作用:初始化时钟 初始化串口 初始化SDRAM等硬件相关的初始化 读flash+写flash 启动内核
编译motion的命令4.5.1
./configure --prefix=${PWD}/_install --host=arm-linux --without-mysql --without-pgsql --with-ffmpeg=/usr/local/arm/4.5.1/arm-none-linux-gnueabi/sys-root/
编译motion的命令4.3.2
./configure --prefix=${PWD}/_install --host=arm-linux --with-ffmpeg=/root/gtt/SDK-MOTION/resources/ffmpeg/ffmpeg-0.5.1/_install/ --without-mysql --without-pgsql
redhat6下 摄像头监测到移动物体后Illegal instruction:原因 可能是动态库坏了
redhat5
交叉编译工具4.3.2编译运行motion'出现
motion: error while loading shared libraries: libjpeg.so.62:
cannot open shared object file: No such file or directory
在redhat6下安装Mplayer 多用播放器
Mplayer 多用播放器,支持多种格式的音频、视频文件。
Step 1: 下载解码包
1 # wget http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20110131.tar.bz2
解压,并将解压后的文件夹移至 /usr/lib/codecs 下 mkdir /usr/lib/codecs
1 # tar jxvf all-20110131.tar.bz2
2 # mv all-20110131 /usr/lib/codecs
Step 2: 下载 Mplayer
1 # wget http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc4.tar.bz2
解压,并转到解压后的文件夹目录
1 # tar jxvf MPlayer-1.0rc4.tar.bz2
2 # cd MPlayer-1.0rc4
编译、安装
1 # ./configure
# make # make install安装结束...
测试#mplayer cam.wav
像素1024*768