当前位置:文档之家› 4418的4G模块在QT文件系统的移植_EC20

4418的4G模块在QT文件系统的移植_EC20

4418的4G模块在QT文件系统的移植_EC20
4418的4G模块在QT文件系统的移植_EC20

迅为Qt移植移动4G模块第一部分

1.首先要配置内核,这个一步和Android系统移植3G或者4G模块是一样的。一般模块的厂家会提供移植文档,按照文档配置内核的ppp协议,USB转串,wcdma等,添加PID VID 即可。这一步严格按照模块内核修改就行。

这里主要分析qt文件系统的修改,对内核不做过多的分析。

配置好的内核在开机后可以在dev下找到ttyUSB0-3的设备节点。

2.准备工作;下载ppp-2.4.4.tar.gz,这个我会上传。

①.解压:tar -vxf ppp-2.4.4.tar.gz。

②.运行configure,生成Makefile:./configure

③.编译输入命令:make CC=arm-none-linux-gnueabi-gcc-4.4.1

这里说明一下,CC=arm-none-linux-gnueabi-gcc-4.4.1是指明编译器,这里可以输入arm 然后双按tab键找自己的交叉编译器。

经过以上三步就会分别在chat、pppd、pppdump、pppstats中生成四个可执行文件chat、pppd、pppdump、pppstats,用于拨号。

3.以下操作是在qt文件系统,这里使用迅为提供的qt文件系统:rootfs.tgz

①.解压rootfs.tgz:tar -vxf rootfs.tgz

②.在etc中新建文件夹ppp

③.把上面生成的四个可执行文件chat、pppd、pppdump、pppstats拷贝到ppp里面。

4.写配置文件

①.在etc/ppp下文件pap-secrets:vim pap-secrets

②.输入

# Secrets for authentication using PAP

# client server secret IP addresses

card * card *

在4G信号在通信时候有一个密码的比对,密码对了就可以通信了。上面显示用户是card 密码是card

③.在etc/ppp下新建文件夹peers:mkdir peers

在peers里面新建文件wcdma:vim wcdma

输入:

# /etc/ppp/peers/wcdma

# This is pppd script for China liantong

# Usage: root>pppd call wcdma

hide-password

noauth

connect '/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect' disconnect '/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect' debug

/dev/ttyUSB2

115200

defaultroute

noipdefault

novj

novjccomp

noccp

ipcp-accept-local

ipcp-accept-remote

local

lock

dump

nodetach

user "card"

password "card"

crtscts

remotename 3gppp

ipparam 3gppp

usepeerdns

这里需要注意的是/dev/ttyUSB2,这句话要根据自己的情况而定,4G模块手册上应该会有些那个是用于AT指令,ppp拨号的。看自己的手册决定是不是ttyUSB2。

另外:

user "card"

password "card"

这就对应了上面的用户和密码。

④.同样在peers中新建文件wcdma-chat-connect:vim wcdma-chat-connect 输入:ABORT "BUSY"

ABORT "NO CARRIER"

ABORT "NO DIALTONE"

ABORT "ERROR"

ABORT "NO ANSWER"

TIMEOUT 120

"" AT

OK \rATZ

OK \rAT+CGDCONT=1,"IP","3gnet",,0,0

OK-AT-OK ATDT*99#

CONNECT \d\c

在这里OK \rAT+CGDCONT=1,"IP","3gnet",,0,0

OK-AT-OK ATDT*99#

这两句话会根据移动联通或者是电信而变化,我这里用的是移动4G。

⑤.同样在peers中新建wcdma-chat-disconnect:vim wcdma-chat-disconnect 输入:ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "INSending break to the modem\n"

""\k"

""+++ATH"

SAY "\nGood bye\n"

致此就完成了大半部分可以先烧录进去试试。

测试方法:

开机后先输入:ifconfig eth0 down 将eth0关掉,因为他会和模块有冲突。

然后在/etc/ppp下输入指令:

pppd call wcdma&

使其一直在后台运行,如果移植成功将会打印一些信息,下面是截取的最后的部分:CHAP authentication succeeded

CHAP authentication succeeded

sent [IPCP ConfReq id=0x1 ]

rcvd [IPCP ConfReq id=0x0]

sent [IPCP ConfNak id=0x0 ]

rcvd [IPCP ConfNak id=0x1 ]

sent [IPCP ConfReq id=0x2 ]

rcvd [IPCP ConfReq id=0x1]

sent [IPCP ConfAck id=0x1]

rcvd [IPCP ConfAck id=0x2 ]

Could not determine remote IP address: defaulting to 10.64.64.64

local IP address 10.211.219.99

remote IP address 10.64.64.64

primary DNS address 221.130.33.60

secondary DNS address 221.130.33.52

在这里可以是一下ping ip地址,这里注意要是可以平通的ip地址,可先在电脑上试试能否ping通,然后在开发板上ping 。到这里输入ifconfig会有ppp0出现。

但是到这里,即使ping通了ip,域名应该也是ping不通的。

5.ping不通域名一般是DNS没有设置对造成的。在etc下有一个文件resolv.conf。这个文件是用来放DNS的。就是这个里面的域名没有设置对。然而在eth0的运行脚本里强制性的把这个文件复制为了192.168.1.1 。这就造成即便在这里文件里设置上正确的DNS,再开机后也会发现这个文件里已经是192.168.1.1了。这是因为eth0,是开机自启动的。

6.所以我们要在etc下新建一个文件resolv.conf_back:vim resolv.conf_back输入DNS:nameserver 202.99.160.68

nameserver 221.130.33.52

nameserver 221.130.33.60

nameserver 192.168.1.1

7.在etc下新建一个脚本文件ppp0:vim ppp0 输入:

#!/bin/sh

ifconfig eth0 down

cp /etc/resolv.conf_back /etc/resolv.conf

/etc/ppp/pppd call wcdma&

这里第一步是将eth0关掉,第二步将我们的DNS文件覆盖到resolv.conf上,第三步运行。开机后到etc下输入ppp0即可。

致此全部完成。

嵌入式蓝牙文件传送方案的实现

嵌入式蓝牙文件传送方案的实现 摘要:针对蓝牙技术在无线通信中的应用需求,基于ARM9微处理器S3C2440的嵌入式系统,设计并实现了蓝牙文件传送方案。系统已经通过板级验证及实际应用测试,完全实现系统设计功能。关键词:嵌入式;蓝牙;单点传送;多点传送 蓝牙是一种低成本、短距离无线通信技术,工作频段使用全球统一开放的2.4 GHz的ISM 频段[1],并将此频段分为79个跳频点,采用跳频技术,增强了蓝牙通信的可靠性。蓝牙技术现已被广泛应用于无线通信领域中,如个人无线通信设备、无线网络通信以及各种传宣系统[2]。利用蓝牙技术实现不同类型的文件传送是蓝牙通信的重要应用,而传统的基于蓝牙1.0规范的蓝牙通信只支持单点传输,随着蓝牙技术的发展,蓝牙 2.0规范中增加了EDR(Enhance Data Rate)技术,提高了蓝牙数据传输的吞吐量,为蓝牙多点通信提供了条件。本文依据蓝牙2.0规范,结合TDD技术,在实现了单点文件传送的基础上,成功完成了嵌入式系统对远程蓝牙设备的多点文件传送方案,并应用个人区域网络技术实现了嵌入式系统与PC机之间的网络文件传送,扩展了蓝牙通信在网络领域的应用。蓝牙文件传送和网络文件传送功能为广告产业及其他信息发布相关产业提供了广阔的发展空间,具有良好的市场前景。1 方案设计概述方案设计以ARM嵌入式系统作为硬件实现平台,并基于Linux操作系统,完成蓝牙文件传送方案。文件单点传送方案依据对象交换协议OBEX(Object Exchange),利用蓝牙官方协议栈BlueZ以及openobex上层应用函数库实现对象推送功能,从而完成对远程设备的文件单点传送。文件多点传送方案将在底层应用全双工时分复用(TDD)技术以及EDR (Enhance Data Rate)技术实现蓝牙数据通道共享和宽带、高吞吐量数据发送,在上层以文件单点传送方案为基础,辅以嵌入式技术建立并管理多个文件发送进程,完成文件向多个远程设备的同时发送,加入了重发机制以保证文件多点传送的可靠性。此外,基于个人区域网络技术的网络文件传送功能,使用户可在PC机端以FTP方式访问并更新嵌入式系统中的文件。 2 方案硬件架构本方案基于ARM硬件开发平台,以SAMSUNG S3C2440作为核心处理器,并与64 MB SDRAM和64 MB Flash共同组成核心嵌入式系统,运行ARM-Linux-2.6.12内核操作系统,其中内核配置蓝牙子系统,可为USB蓝牙适配器提供驱动。蓝牙适配器作为系统的核心通信部件接至USB Device接口,并通过适配器完成文件传送功能。同时本硬件系统易于功能扩展和系统移植,开发人员可通过USB Host接口将操作系统内核以及上层应用程序下载到SDRAM或烧写至Flash中,并通过RS232串口对应用程序进程调试。硬件整体架构。 3 方案软件框架软件框架主要由蓝牙核心协议、会话层协议以及上层应用程序构成,。其中蓝牙核心协议包括:RF协议、基带(Baseband)协议、LMP、L2CAP,主要完成蓝牙数据由逻辑链路层到实际物理通道的控制和处理。 会话层协议将建立对应功能的模型描述,并定义相关操作方法,为上层应用程序提供接口。其中RFCOMM协议提供对基于L2CAP协议的串口仿真,基于ETSI07.10,可支持在两个蓝牙设备之间同时保持高达60路的通信连接。其次,本方案利用服务发现协议(SDP)获取周边蓝牙设备服务信息,并自动筛选出带有对象推送服务的远程设备作为发送目标,此协议由BlueZ 所提供的接口函数实现。而OBEX作为实现文件传送的核心协议,将为被传送文件建立对象模型,并面向对象及传送过程定义对应操作方法,以实现文件传送。PAN协议用于建立蓝牙无线网络与以太网之间的访问点,以完成与TCP/IP之间的无缝连接。上层应用程序将基于应用层协议所提供的接口函数,主要依据对象交换协议(OBEX)实现对象推送(OBEX PUSH)功能,从而完成文件的单点传送,并在此基础上,结合Linux多进程技术实现文件多点传送。此外,利用BlueZ提供的PAN工具实现嵌入式系统与PC机之间的组网,完成网络文件传送功能。4 文

busybox详解制作根文件系统

详解制作根文件系统 单击,返回主页,查看更多内容 一、FHS(Filesystem Hierarchy Standard)标准介绍 当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。 该标准规定了根目录下各个子目录的名称及其存放的内容: 制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括: ?编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录 ?利用交叉编译工具链,构建/lib目录 ?手工构建/etc目录 ?手工构建最简化的/dev目录 ?创建其它空目录 ?配置系统自动生成/proc目录 ?利用udev构建完整的/dev目录 ?制作根文件系统的jffs2映像文件 下面就来详细介绍这个过程。 二、编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录

这些目录下存储的主要是常用命令的二进制文件。如果要自己编写这几百个常用命令的源程序,my god,这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀——busybox,事情就简单很多。 1、从https://www.doczj.com/doc/b87753842.html,/下载busybox-1.7.0.tar.bz2 2、tar xjvf busybox-1.7.0.tar.bz2解包 3、修改Makefile文件 175 ARCH ?= arm 176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busybox busybox配置主要分两部分。 第一部分是Busybox Settings,主要编译和安装busybox的一些选项。这里主要需要配置:

蓝牙协议栈BlueZ的移植与开发

蓝牙协议栈BlueZ的移植与开发* 欧阳鑫 于红岩 吕杨 (昆明理工大学信息工程与自动化学院,昆明,650051) 摘要:蓝牙技术是当前国内外科技界和产业界研究开发的热点技术,其应用范围包括手机、PDA、信息家电设备等领域,蓝牙技术在嵌入式系统上必将得到广泛的应用。而要在嵌入式系统上提供蓝牙开发支持,蓝牙协议栈的移植是关键。本文分析了蓝牙协议栈BlueZ体系结构,详细介绍了在S3C2410开发板上移植BlueZ的步骤,建立了嵌入式蓝牙应用开发平台,并提出了用BlueZ 开发蓝牙应用程序的思路。 关键字:蓝牙技术;蓝牙协议栈BlueZ;移植;S3C2410;Linux 中图分类号:TP368.1 文献标识码:A BlueZ Porting and Programming Ou Yangxin,Yu Hongyan,Lv Yang (College of Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650051,China) Abstract: Bluetooth technology is the focused on by the domestic and overseas research institutes. This technology is widely used in mobile phone, PDA, and Information Appliance devices. In the future,bluetooth technology will be widely used in embedded system. Built some bluetooth applications on embedded system,the key technology is porting bluetooth protocol suites to platform. In this paper,we study the BlueZ architecture,describe the steps of Porting BlueZ to S3C2410 Platform in detail,and build the embedded bluetooth application programming platform. In the end, we also give the idea of bluetooth programming. Keywords: bluetooth technology,bluetooth protocol suites BlueZ,porting, S3C2410, Linux 1引言 蓝牙技术是一项低价格、低功耗的射频技术,它能使蓝牙设备实现近距离无线通信。由于蓝牙技术有广泛的应用前景,它已成为当前国内外科技界和产业界研究开发的热点技术。Linux 操作系统的开放的蓝牙协议栈主要包括IBM公司的BlueDrekar,Nokia公司的Affix, Axis公司的OpenBT和官方协议栈BlueZ[1]。BlueZ是公布在Internet上的免费蓝牙协议栈,由于它结构简单,应用方便,具有灵活、高效和模块化的特点且具有较强的兼容性,因此BlueZ已经成为Linux操作系统下的官方的蓝牙协议栈。 S3C2410x是三星公司推出的一款高性价比32位的RISC处理器,内含一个由ARM公司设计的ARM920T核,具有低功耗高性能的特点,适用于对价格及功耗敏感的场合。本文使用的S3C2410开发板主要包含以下部件:S3C2410x芯片,32MB Nor Flash,64MB SDRAM,IIC存储器接口,LCD控制器,UART接口,一个USB(Host)接口。 利用S3C2410开发板上的USB接口,可以外扩蓝牙适配器,但S3C2410开发板上没有实现蓝牙设备驱动。本文对蓝牙协议栈BlueZ进行分析,移植BlueZ到开发板上实现蓝牙设备驱动,提出了使用BlueZ开发蓝牙应用程序的基本思路。 *基金项目:云南省自然科学基金项目(2004F0024M)。

liu改udhcpc配置+根文件系统制作

基于ubuntu12.06 Mini2440 256M 试验通过2013年4月8日星期一 1、获得simple.script #解压busybox tar jxvf busybox-1.5.0.tar.ba2 mv busybox-1.5.0 busybox cd busybox #添加交叉工具链 export PATH=/usr/local/arm/3.3.2/bin:$PATH make defconfig make menuconfig #配置时,我们基于默认配置,再配置它为静态编译,安装时不要/usr路径,把Miscellaneous Utilities #下的“taskset”选项去掉,不然会出错。 #如下: Busybox setting ->builds options ->[*] build busybox as a static binary ->installitation options ->[*] don’t use /usr Miscellaneous Utilities ―> [ ] taskset 保存退出。 #编译安装 make ARCH=arm CROSS_COMPILE=arm-linux- CONFIG_PREFIX=/root/build_rootfs/rootfs all install ARCH指定平台 CROSS_COMPILE指定交叉编译 CONFIG_PRRFIX指定安装的路径 或者直接修改Makefile文件 生成的udhcpc是一个链接在上面的安装目录/all/sbin 下 此时把busybox考到根文件系统的/bin下和把udhcpc拷到根文件系统的/sbin(其实原有的根文件系统里可能已经包含了udhcpc{这样该不该都行,或许吧})开机运行/sbin 下的udhcpc就可以自动获得IP。 关键点要把busybox目录下的examples/udhcp/simple.script 脚本文件做为default.script拷贝到根文件系统的/usr/share/udhcpc/default.script。没有则自己创建。

实验四 ramdisk 根文件系统的制作

实验四ramdisk根文件系统的制作 一.实验目的 1.熟悉根文件系统组织结构; 2.定制、编译ramdisk根文件系统。 二.实验设备 1.硬件:EduKit-IV 嵌入式教学实验平台、Mini2410 核心子板、PC 机; 2.软件:Windows 2000/NT/XP、Ubuntu 8.04、其他嵌入式软件包。 三.实验内容 利用6.3 中的已经完成的文件系统,生成一个根文件系统镜像。 四.实验原理 ramdisk是内核初始化的时候用到的一个临时文件系统,是一个最小的linuxrootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,做为启动引导驱动,包含如下目录: bin,dev,etc,home,lib,mnt,proc,sbin,usr,var。还需要有一些基本的工具:sh,ls,cp,mv……(位于/bin 目录中);必要的配置文件:inittab,rc,fstab……位于(/etc目录种);必要的设备文件:/dev/tty*,/dev/console,/dev/men……(位于/dev目录中);sh,ls等工具必要的运行库:glibc。1.制作ramdisk根文件系统映像 1)单击菜单应用程序->附件->终端打开终端,设置环境变量: $ source /usr/local/src/EduKit-IV/Mini2410/set_env_linux.sh $ source /usr/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/path.sh 2)执行命令切换到ramdisk实验目录下: $cd $SIMPLEDIR/6.4-ramdisk 3)运行脚本文件: $ sudosh ramdisk-install.sh shell 脚本命令说明: #!/bin/bash # # ramdisk-install.sh - Make ramdiskfilesystem. # # Copyright (C) 2002-2007

linux蓝牙驱动代码阅读笔记

导读: linux蓝牙驱动代码阅读笔记 转载时请注明出处和作者联系方式 作者联系方式:李先静 昨天看了一下介绍蓝牙协议文档,今天索性对照看了看kernel里的代码(bluez),这里记点笔记,还是继承了老毛病,只关注整体流程而忽略细节,先了解个大概,等真正需要时再仔细分析。 net/hci_core.c HCI在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像UART、USB 和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式胶合起来,并提供一些公共函数的实现。 hci_cmd_task是负责发送CMD的任务,它从hdev->cmd_q队列中取CMD,然后调用hci_send_frame把CMD发送出去,hci_send_frame又会调用实际的HCI驱动的send函数发送数据。 hci_rx_task是负责接收数据的任务,它从hdev->rx_q队列中取数据,然后根据数据的类型调用上层函数处理。数据包有三种类型: HCI_EVENT_PKT:用于处理一些通信事件,比如连接建立,连接断开,认证和加密等事件,这些事件控制协议状态的改变。 HCI_ACLDATA_PKT:异步非连接的数据包,通过hci_acldata_packet提交给上层的L2CAP协议处理(hci_proto[HCI_PROTO_L2CAP])。 HCI_SCODATA_PKT:同步面向连接的数据包,通过hci_scodata_packet提供给上层的SCO协议处理(hci_proto[HCI_PROTO_SCO])。 hci_tx_task是负责发送数据的任务,发送所有connection中的ACL和SCO数据,以及hdev->raw_q中的数据包。 HCI为上层提供的接口主要有: hci_send_sco:发送SCO数据包,把要发送的数据包放入connection的发送队列中,然后调度发送任务去发送。 hci_send_acl:发送ACL数据包,把要发送的数据包放入connection的发送队列中,然后调度发送任务去发送。 hci_send_cmd:发送命令数据,把要发送的数据包放入hdev->cmd_q队列中,然后调度命令发送任务去发送。 hci_register_proto/hci_unregister_proto:注册/注销上层协议,HCI会把接收到的数据转发给这些上层协议。 hci_register_dev/hci_unregister_dev: 注册/注销设备,HCI会把要发送的数据通过这些设备发送出去。 其它一些公共函数。 net/hci_conn.c 提供了一些连接管理,论证和加密的函数。 net/hci_event.c 事件处理函数,负责状态机的维护,这些事件通常会使连接从一个状态转换另一个状态。 hci_si_event:用于发送事件。 hci_event_packet:用于处理底层上报的事件,从hci_rx_task处调用过来。 net/hci_sock.c

基于busybox的根文件系统制作

龙源期刊网 https://www.doczj.com/doc/b87753842.html, 基于busybox的根文件系统制作 作者:李飞,武金虎,石颖博 来源:《电脑知识与技术》2010年第17期 摘要:Busybox是构建嵌入式Linux文件系统的必备软件,它是所有文件和设备节点的起始点,是决定系统能否正常启动的关键。通过busybox-1.1.3为例,进行配置、编译、安装等过程,从而形成简单的根文件系统映像文件,为以后嵌入式Linux系统的移植打下了良好的开端。 关键词:Busybox;嵌入式Linux;Linux操作系统;根文件系统;cramfs 文件系统 中国分类号:TP316.81文献标识码:A文章编号:1009-3044(2010)17-4655-02 Making Root File System Based on Busybox LI Fei, WU Jin-hu, SHI Ying-bo (College of Computer Science and Information, Guizhou University, Guiyang 550025, China) Abstract: Busybox is an essentiaL software to buiLd an embedded Linux fiLe system. It is the starting node point of aLL the fiLes and devices and the key whether the system can have a normaL start. Taking busybox-1.1.3 for exampLe, making a simpLe root image system fiLe by configuration compiLation and instaLLation Lays a good foundation for migration of the embedded Linux system. Key words: busybox; embedded linux; Linux OS; root file system; cramfs file system 1 根文件系统结构 根文件系统是所有文件和设备节点的起始点,包括系统所必须的各种工具软件、库文件、 脚本、配置文件等一系列的文件。一个基本的Linux根文件系统包含有以下的目录:dev、proc、bin、etc、usr、Lib、temp、var、usr等等目录。其中dev是设备文件节点目录,proc是挂载proc文件系统所用的目录,bin目录下面包含了系统的基本命令,etc目录是系统启动脚本所在的目录,Lib是系统默认的动态链接库目录,usr是用户目录,temp是临时目录,用来保存临时文 件,var目录包含系统运行时要改变的数据。以上都是根文件系统所必须的目录 2 Busybox简介 熟练嵌入式Linux的朋友对busybox一定不会陌生,它是标准Linux工具的一个单个可执行实现,被形象的称为嵌入式Linux系统中的“瑞士军刀”,因为它将许多常用的UNIX工具和命令 结合到一个单独的可执行程序中。虽然busybox中的这些工具相对于GNU常用工具功能有所

bluez how to

Linux BlueZ Howto Bluetooth protocol stack for Linux Jan Beutel j.beutel@https://www.doczj.com/doc/b87753842.html,,Maksim Krasnyanskiy maxk@https://www.doczj.com/doc/b87753842.html, 14th November2001 1Introduction BlueZ is the of?cial Linux Bluetooth stack.It provides support for core Bluetooth layers and protocols. Bluez has many interesting features: Flexible,ef?cient and modular architecture Support for multiple Bluetooth devices Multithreaded data processing Hardware abstraction Standard socket interface to all layers Currently BlueZ consists of(see also?gure1): HCI Core HCI UART,USB and Virtual HCI device drivers L2CAP protocol module Con?guration and testing utilities 2Setting up BlueZ 2.1Obtaining BlueZ Y ou can download the BlueZ source from https://www.doczj.com/doc/b87753842.html,.There is also an up to date CVS tree available there.

在硬盘上制作根文件系统.doc

在硬盘上制作根文件系统 一、实验目标: 在硬盘上建立一个根文件系统,硬盘镜像文件的名称为:hdc-0.11.new.img 二、实验环境: 1、Vmware workation, bochs虚拟机,ultraedit编辑环境 2、用到的四个重要的镜像文件:bootimage-0.11-hd,hdc-0.1.img,并将他们放到 mylinux0.11文件夹中。 3、实验环境:redhat linux 三、实验理论依据: 1、Linux引导启动时,默认使用的文件系统是根文件系统。其中一般都包括以下一些子目录和文件: etc/ 目录主要含有一些系统配置文件; dev/ 含有设备特殊文件,用于使用文件操作语句操作设备; bin/ 存放系统执行程序。例如sh、mkfs、fdisk等; usr/ 存放库函数、手册和其它一些文件; usr/bin 存放用户常用的普通命令; var/ 用于存放系统运行时可变的数据或者是日志等信息。 存放文件系统的设备就是文件系统设备。Linux 0.11内核所支持的文件系统是MINIX 1.0文件系统。 2、inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬 盘、软盘、U盘... ... )被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode 值最快的找到相对应的文件。每一个文件开头都是一个inode。 做个比喻,比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode 就相当于这本书前面的目录,一本书有很多的内容,如果想查找某部份的内容,我们可以先查目录,通过目录能最快的找到我们想要看的内容。

Linux蓝牙协议栈OpenBT及其应用程序开发

2003.10 电子设计应用  www.eaw.com.cn52 引言 Linux蓝牙协议栈主要有三个:OpenBT、BlueDrekar、BlueZ,其中OpenBT被认为在性价比上超过BlueDrekar和BlueZ,可运行于X86、ARM、MIPS、PowerPC等硬件平台,与任何2.x版本的Linux内核兼容,支持JAVA。本文介绍了OpenBT的 体系结构及其对互操作性的影响,并以客户机/服务器(C/S)实例说明如何在OpenBT上开发蓝牙应用程序。 OpenBT的体系结构 使用不同蓝牙协议栈的设备在通信时往往会遇到互操作性问题。开发者需要了解各种协议栈的体系 结构并考虑其差异。通过分析源 码,本文给出了如图1所示的OpenBT的体系结构。OpenBT包括HCI、L2CAP、SDP、SP、Networking、OpenBT Utility、后台 程序、内核接口8个模块,分别解释如下: * HCI模块由Driver、Transport子模块构成。Driver负责HCI命令、HCI事件和HCI数据接口;Transport提供USB、RS-232、UART的驱动。 * L2CAP模块由State Handle、Security子模块构成。State Handle负责运行L2CAP的状态机和数据的分段组装;Security负责L2CAP级别安全管理。 * SP模块由RFCOMM、串口仿真子模块组成。RFCOMM负责完成蓝牙RFCOMM协议中所描述的内容,核心是一个RFCOMM状态机;串口仿真负责提供接口。 * SDP模块负责完成蓝牙SDP协议中所描述的内容,在功能上分为XML文件管理、SDP查询处理和SDP响应处理三部分。 * Networking模块由PPP、Modem Emulation、TCS子模块构 Linux蓝牙协议栈OpenBT 及其应用程序开发 ■ 西安交通大学电信学院 马毅华 冯恩信 摘 要:本文分析了OpenBT软件体系结构,根据客户机/服务器模型的实例,介绍了OpenBT应用程 序的开发,并提出了一种实用的开发模式。 关键词:蓝牙技术;Linux;OpenBT

嵌入式Linux根文件系统制作

实训项目四-嵌入四Linux系统根文件系统制作一. 项目实施目的 了解 UP-CUP2440 型实验平台Linux 系统下根文件系统结构 掌握根文件系统的搭建过程 掌握busybox、mkcramfs等工具的使用方法 二. 项目主要任务 使用busybox生成文件系统中的命令部分,使用mkcramfs工具制作CRAMFS 格式的根文件系统。 分析根文件系统etc目录下重要配置文件的格式及语法,熟悉根文件系统的启动过程 三. 基本概念 1.文件系统基本概念 Linux的一个最重要特点就是它支持许多不同的文件系统。这使Linux非常灵活,能够与许多其他的操作系统共存。Linux支持的常见的文件系统有:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。随着时间的推移, Linux支持的文件系统数还会增加。Linux是通过把系统支持的各种文件系统链接到一个单独的树形层次结构中,来实现对多文件系统的支持的。该树形层次结构把文件系统表示成一个整个的独立实体。无论什么类型的文件系统,都被装配到某个目录上,由被装配的文件系统的文件覆盖该目录原有的内容。该个目录被称为装配目录或装配点。在文件系统卸载时,装配目录中原有的文件才会显露出来。在Linux 文件系统中,文件用i节点来表示、目录只是包含有一组目录条目列表的简单文件,而设备可以通过特殊文件上的I/O 请求被访问。 2.常见的嵌入式文件系统 嵌入式Linux系统一般没有大容量的磁盘,多使用flash存储器,所以多采用基于Flash(NOR和NAND)的文件系统或者RAM内存的文件系统。 (1)Flash根据结构不同分为 NOR Flash和NAND Flash。基于flash的文件系统主要有: jffs2:RedHat基于jffs开发的文件系统。

bluez 交叉编译--测试通过(参考了网上的教程,并做了修改)

bluez 交叉编译--测试通过(参考了网上的教程,并做了修改) arm-linux-gcc 4.3.3 ========================================== 我用到的几个库: bluez-lib-3.36.tar.gz expat-2.0.1.tar.gz dbus-1.2.16.tar.gz glib-2.22.4.tar.bz2 libusb-0.1.12.tar.gz bluez-utils-3.36.tar.gz ==================================================== /opt/libs 和/opt/utils是我自己编译时用的路径,你可以随便的选取。 1,编译安装bluez-lib-3.36.tar.gz 这个库不需要什么依赖,直接解压,配置,编译然后安装即可。 #tar zxvf bluez-lib-3.36.tar.gz #./configure --prefix=/opt/libs --host=arm-linux --target=arm-linux CC=arm-linux-gcc #make #make install 2,编译安装expat-2.0.1.tar.gz 这个库是后面的dbus依赖的,你也可以用libxml2来代替expat,官方网站上说dbus必须依赖于他们中的一个,我这里用的是expat-2.0.1.tar.gz。 #tar zxvf expat-2.0.1.tar.gz #./configure --prefix=/opt/libs --host=arm-linux --target=arm-linux CC=arm-linux-gcc #make #make install 3,编译安装dbus-1.2.16.tar.gz #tar zxvf dbus-1.2.16.tar.gz #echo ac_cv_have_abstract_sockets=yes>arm-linux.cache #./configure --prefix=/opt/libs --host=arm-linux --target=arm-linux CC="arm-linux-gcc -I/opt/libs/include -L/opt/libs/lib" --cache-file=arm-linux.cache --with-x=no #make #make install ======================================================= 4,编译安装glib-2.22.4.tar.bz2 #tar -zxjf glib-2.22.4.tar.bz2 #echo ac_cv_type_long_long=yes>arm-linux.cache #echo glib_cv_stack_grows=no>>arm-linux.cache #echo glib_cv_uscore=no>>arm-linux.cache #echo c_cv_func_posix_getpwuid_r=yes>>arm-linux.cache #echo ac_cv_func_posix_getgrgid_r=yes>>

实验八 构建根文件系统

实验八构建根文件系统 一、实验目的 1、了解嵌入式Linux文件系统的作用和类型; 2、了解jffs2文件系统的优点和在嵌入式系统中的应用; 3、理解文件系统的挂载过程; 4、使用BusyBox制作一个根文件系统。 二、实验环境 预装redhat9.0(内核版本2.4.x)的pc机一台,XScale嵌入式实验箱一台(已构建嵌入式Linux系统),以太网线一根,交叉编译工具链,BusyBox软件包。 三、实验步骤 1、解压BusyBox软件包; 2、使用make menuconfig来配置BusyBox,修改交叉编译器前缀; Build Option [*] Build BusyBox as a static binary(no shared library) [*]Do you want to build BusyBox with a Cross ompile /usr/local/hybus-linux-R1.1/bin/arm-linux- Installation Option [*]Don't’t use /use Coreutils [*]ls

[*]cp [*]reboot [*]echo [*]mkdir [*]rm Editors [*]vi Login Utilities [*]getty 3、交叉编译BusyBox; make make install 4、建立BusyBox顶层目录结构 mkdir etc dev proc tmp lib var sys 5、在dev目录下创建必要的设备节点 (ram0,console,null,zero); mknod mdblock b 31 3 mknod console c 5 1 mknod null c 1 3 mknod zero c 1 5 cp –dpR /dev /_install/dev (假设busybox的安装目录为/_install)

linux 蓝牙编程 bluez

linux蓝牙编程bluez 收藏 从别的地方转了一篇蓝牙编程的,感觉比较详细,接下来自己慢慢验证一下。 实战Linux Bluetooth编程 实战Linux Bluetooth编程(一)协议栈概述 前言:随着嵌入式系统的飞速发展,很多嵌入式平台上需要Bluetooth设备和应用。但在Linux 下如何对 Bluetooth编程,一直没有一份很好的中文文档。Sam结合自己的工作,一步一步将一些有用的东西记录下来 ,希望对其它Linux下Bluetooth编程的朋友有点帮助。 一:Bluetooth基本概念: Bluetooth是爱立信、诺基亚、东芝、IBM和Intel 5家公司在1998年联合推出的一项无线网络技术。其宗旨 是提供一种短距离、低成本的无线传输应用技术。在行业协会筹备阶段,需要一个极具有表现力的名字来命 名这项高新技术。行业组织人员,在经过一夜关于欧洲历史和未来无限技术发展的讨论后,有些人认为用 Blatand国王的名字命名再合适不过了。Blatand国王将现在的挪威,瑞典和丹麦统一起来;就如同这项即将 面世的技术,将标准不一的短距离无线传输技术统一起来。 Intel负责半导体芯片和传输软件的开发,爱立信负责无线射频和移动电话软件的开发,IBM 和东芝负责笔记 本电脑接口规格的开发。 蓝牙是无线数据和语音传输的开放式标准,它将各种通信设备、计算机及其终端设备、各种数字数据系统、 甚至家用电器采用无线方式联接起来。它的传输距离为10cm~10m,如果增加功率或是加上某些外设便可达 到100m的传输距离。它采用2.4GHz ISM频段和调频、跳频技术,使用权向纠错编码、ARQ、TDD和基带协议。

qt课程设计实验报告

程序设计课程设计实验报告 (qt实验报告) 信息科学与技术学院 软件三班 高文博 201005070309 2011年5月

实验1:计算当初存入本金的钱数。(12题) 1.实验目的、要求 目的: 1)熟悉qt中的常用属性; 2)熟悉vbox hbox模型及怎样根据需求设计控件,边框等; 3)熟悉各个槽函数的使用,准确的将c++语言转换成qt语言,将控件功 能与函数结合起来。 要求: 1)掌握对控件的文本色,背景色等常用属性的设置。 2)掌握对控件、边框尺寸与结构的设置 3)掌握对函数的设置 2.实验设备 笔记本电脑,已安装Qt 开发环境。 3.实验内容、步骤 ●先在vc++上进行编译。 ●应用qt3.38进行编译,运行。 实验步骤: 1)根据题目需求在草纸上画出结构图; 2)根据草图用代码设计整体框架和控件; 3)在qt上运行; 4)运行成功后根据功能添加函数; 5)在头文件中添加头文件。 6)将添加的功能函数与功能控件相连; 7)分别对每个函数进行测试; 8)将整个程序在qt运行调试; 9)运行通过后给每个函数写注释; 实验代码如下所示 A (1)主框架结构代码 #include"gwbsave.h"

GwbSave::GwbSave(QWidget*parent,const char*name):QWidget(parent,name) { //?? vBox=new QVBoxLayout(this); vBox->setMargin(5); vBox->setSpacing(5); label=new QLabel("Please input the lilv:",this,"label"); vBox->addWidget(label); //?? hBox=new QHBoxLayout(this); hBox->setMargin(5); hBox->setSpacing(5); vBox->addLayout(hBox); le1=new QLineEdit(this,"le1"); hBox->addWidget(le1); //?,?? hBox2=new QHBoxLayout(this); hBox2->setMargin(5); hBox2->setSpacing(5); vBox->addLayout(hBox2); leResult=new QLineEdit(this,"leResult"); leResult->setReadOnly(true); leResult->setPaletteBackgroundColor(Qt::gray); hBox->addWidget(leResult);

Ubuntu for Arm根文件系统制作

1.安装rootstock软件 rootstock是一个用来制作Ubuntu根文件系统的工具,可以使用apt-get install rootstock获取,也可以在官网直接下载:https://https://www.doczj.com/doc/b87753842.html,/project-rootstock 若选择前者:直接使用rootstock命令 若选择后者:解压下载文件rootstock-0.1.99.4.tar.gz得到rootstock可执行文件,可以将其拷贝到系统bin目录下 2.rootstock创建根文件系统 [html]view plaincopy 得到文件系统压缩文件qemu-armel-201408271515.tar.gz 创建一个空镜像: [html]view plaincopy 在镜像上创建文件系统: [html]view plaincopy 挂载镜像: [html]view plaincopy 将文件系统解压到挂载目录: [html]view plaincopy 这时可以修改挂载目录中的东西了: [html]view plaincopy 最后是得到最后的文件系统镜像: [html]view plaincopy

3.模拟器中运行根文件系统 下载模拟器qemu: [html]view plaincopy 在2中的“若干修改”中执行: [cpp]view plaincopy 在仿真环境中访问文件系统 [cpp]view plaincopy 此时在仿真环境下就可以安装SPICE了:[cpp]view plaincopy 安装完SPICE后保存文件系统: [cpp]view plaincopy

bluez编译移植

Dbus移植步骤 1.进入dbus的目录运行./configure --host=arm-linux --prefix=/bluetooth/dbus 2.出现错误can not run test program while cross compiling [mystic@moolenaar]$ . checking for getpeereid... no checking abstract socket namespace... configure: error: cannot run test program while cross compiling See `config.log' for more details. 执行./configure时要在宿主系统中运行一些测试程序,因为是交叉编译所以这个测试是一定通不过的。不过没问题,我们可以在configure 时指定cache-file文件来屏障掉测试程序,在下面编译glib包时会遇到同样的问题。 处理方法: 在源码包根目录下执行 [mystic@moolenaar]$ echo ac_cv_have_abstract_sockets=yes > arm-linux.cache 或者自己新建一个文件,vim arm-linux.cache 在里面输入:ac_cv_have_abstract_sockets=yes

[mystic@moolenaar]$ ./configure --host=arm-linux --prefix=/bluetooth/dbus --cache-file=arm-linux.cache 参数解释:--prefix指定编译好的文件存放的路径,默认会放到/usr/bin 下 --host 指定编译器的类型,这里指定为arm-linux交叉编 译,默认是本机的gcc编译 --cache 指定测试的信息写的地方,这里是写到了 arm-linux.cache里面 一会会提示缺少xml库,下载libxlm2,解压后: ./configure –-prefix=/bluetooth/libxml –-host=arm-linux make ->make install 编译完成后一定要检查libxml/lib下的库文件的格式是否是ARM的,否则不能用。查看的方式是file libxml.so.2.6.so(库名),出现ARM 表示是交叉编译的,出现i686等信息表示是本机编译的。 2. 编译dbus,cannot find -lX11 [mystic@moolenaar]$ make arm-linux/bin/ld: cannot find -lX11 collect2: ld returned 1 exit status make[2]: *** [dbus-launch] error 1 make[2]: Leaving directory `/3.3.2/dbus-1.0.2/tools'

相关主题
文本预览
相关文档 最新文档