Linux +开发板若干问题

本文详细介绍了在Linux环境下配置开发板的过程,包括通过uboot使用tftp下载内核、设置文件夹权限、解决编译uImage时的错误、挂载NFS、检查服务状态、上网设置、Ubuntu与Windows的互访、处理库文件缺失问题、配置BOA服务器、移植及调试常见问题。还涵盖了开发板启动流程、交叉编译motion、动态库错误解决及Mplayer安装等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一: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

### 哪吒开发板简介 哪吒开发板是一款基于RISC-V架构的开发平台,其核心处理器采用全志D1-H/D1s芯片,该芯片内置平头哥C906内核[^2]。这款开发板因其高性能、低功耗的特点而受到广泛欢迎,适用于嵌入式系统开发、物联网应用以及其他创新项目。 --- ### 开发板规格 哪吒开发板的主要硬件规格包括但不限于以下几点: - **处理器**:全志D1-H/D1s RISC-V处理器,集成平头哥C906内核。 - **内存**:支持多种容量配置,通常提供512MB至2GB DDR3/DDR4内存选项。 - **存储**:配备eMMC接口,支持外部MicroSD卡扩展。 - **网络功能**:支持千兆以太网、Wi-Fi模块(可选)、蓝牙模块(可选)。 - **显示接口**:HDMI输出,LVDS显示屏接口。 - **其他外设**:USB Host接口、UART调试串口、GPIO扩展接口等。 - **电源需求**:通过Micro USB供电或DC插孔输入。 以上规格可能因具体型号略有不同,请参考官方数据表获取更详细的参数说明[^1]。 --- ### 官方文档下载 对于哪吒开发板的使用者而言,官方提供了丰富的技术文档和支持资源,以下是几个重要的参考资料: 1. **快速上手指南** 提供了关于如何开箱并初始化开发板的内容,涵盖了Windows和Linux系统的安装教程。 2. **SDK开发环境配置手册** 参考《T113_Longan_Linux_SDK开发环境配置手册.pdf》,其中详细描述了Linux环境下工具链的搭建方法,并提到了一些额外依赖项的安装命令,例如`sudo apt-get install libgl1-mesa-dev:i386`以及解决特定错误所需的包`u-boot-tools`[^3]。 3. **Datasheet** 数据手册包含了有关SoC内部结构、寄存器定义及其他关键技术细节的信息,可以从相关论坛或者厂商官网下载获得。 4. **固件与驱动程序** 部分用户分享了自己的经验成果,比如自定义编译U-Boot引导加载程序的过程记录,这些都可以作为学习材料来辅助深入理解设备的工作原理。 --- ### 示例代码片段 为了帮助开发者更好地熟悉哪吒开发板的操作流程,这里给出一段简单的Bash脚本用于检测当前连接到系统的USB设备列表: ```bash #!/bin/bash echo "正在扫描已接入的所有USB设备..." lsusb | grep -i "Full Speed" if [[ $? -eq 0 ]]; then echo "发现若干个标准速度模式下的USB装置。" else echo "未找到任何匹配条件的USB组件。" fi ``` 此脚本利用`lsusb`命令枚举所有可用的USB端点,并筛选出那些运行于“Full Speed”速率等级上的实例。 --- ####
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值