3G模块在ARM开发板上实现ppp拨号上网

3G模块在ARM开发板上实现ppp拨号上网
3G模块在ARM开发板上实现ppp拨号上网

3G模块驱动运用开发总结

一:开发环境简述

二:主要步骤

三:开发工作主要内容

四:各项工作集体说明

1. 向linux内核添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,交叉编译并下载内核到开发板。

由于linux-2.6.32.2内核支持“USB driver for GSM and CDMA modems”,所以不需要修改代码,只修改内核配置即可。

编译前期做如下准备:

(1)清除临时文件、中间文件和配置文件

进入内核文件目录,执行命令:make distclean

图1 执行make distclean命令

(2)使用内核/arch/arm/configs目录下的mini2440-defconfig文件作为配置文件,将其拷贝为内核目录下的.config文件。

图2 将mini2440-defconfig作为配置文件

(3)在终端输入:make menuconfig ARCH=arm,出现内核配置界面后选择:Device Drivers---→

USB support---→

<*>USB SerialConverter support--→

[*]USB Generic Serial Driver

<*>USB driver for GSM and CDMA modems

具体步骤如下几幅图所示:

图3 按“Enter”进入“Device Drivers”目录

图4按“Enter”进入“USB support”目录

图5 按“Enter”进入“USB SerialConverter support”目录

图6 按“Y”将“USB Generic Serial Driver”编译进内核

图7 按“Y”将“USB driver for GSM and CDMA modems”编译进内核

到此3G模块驱动添加完成,下面进行ppp协议支持的添加(下面所示的几个选项必选)。

Device Drivers--→

Network device support---→

<*> PPP (point-to-point protocol) support

[*] PPP multilink support (EXPERIMENTAL)

<*> PPP support for async serial ports

<*> PPP support for sync tty ports

<*> PPP Deflate compression

<*> PPP BSD-Compress compression

具体步骤如下几图所示:

图8 按“Enter”进入“Device Drivers”目录

图9 按“Enter”进入“Network device support”目录

图10选择ppp协议支持(之前所提的必选,这里全部选上)编译进内核

完成这些步骤之后,可以进行内核的交叉编译,退出make menuconfig,输入make zImage ARCH=arm CROSS_COMPILE=arm-linux-,编译生成的内核映像文件位于当前内核源代码文件的/arch/arm/boot目录下,将生成的内核映像文件下载到板子上。

内核启动后,会在/dev目录下生成ppp设备节点。如:

ls /dev/ppp -l

crw-rw---- 1 root root 108, 0 Jan 1 00:00 /dev/ppp

内核启动后,在开发板USB HOST 口插上3G模块的USB线,会有打印信息输出:

usb 1-2: new high speed USB device using atmel-ehci and address 4

usb 1-2: configuration #1 chosen from 1 choice

option 1-2:1.0: GSM modem (1-port) converter detected

usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0

option 1-2:1.1: GSM modem (1-port) converter detected

usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1

option 1-2:1.2: GSM modem (1-port) converter detected

usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2

查看设备节点ls /dev/ttyUSB*, 会发现USB虚拟成三串口,在文件系统节点如下/dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2,这说明3G模块驱动已经正确添加到内核当中。

我们跟3G模块交互主要用的设备节点是/dev/ttyUSB0。

2. 交叉编译好工作源代码ppp-2.4.4,得到pppd和chat

解压源代码包,进入目录,进行交叉编译,这里所用的板子的交叉编译器是: #cd /home/ppp-2.4.4

#./configure

#make CC= arm-linux-gcc

拨号所用到的程序就是ppp-2.4.4/pppd下的pppd和ppp-2.4.4/chat下的chat 可执行程序,将交叉编译出来的这两个应用程序拷贝到开发板 /usr/sbin目录下,更改其属性为可执行文件。

3. 配置拨号的脚文件

拨号上网需要的配置文件有3个:

wcdma,wcdma-chat-connect,wcdma-chat-disconnect(存放位置/etc/ppp/peers)。

1)w cdma配置文件内容

#/etc/ppp/peers/cdma

# This is pppd script for China liantong

# Usage: root>pppd call cdma

hide-password

noauth

connect '/usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect'

disconnect '/usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect'

debug

/dev/ttyUSB0

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

2)w cdma-chat-connect配置文件内容ABORT "BUSY"

ABORT "NO CARRIER"

ABORT "NO DIALTONE"

ABORT "ERROR"

ABORT "NO ANSWER"

TIMEOUT 120

"" AT

OK \rA TZ

OK \rA T+CGDCONT=1,"IP","3gnet",,0,0 OK-A T-OK A TDT*99#

CONNECT \d\c

3)w cdma-chat-disconnect配置文件内容ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "\NSending break to the modem\n" ""\k"

""+++ATH"

SAY "\nGood bay\n"

4)应用测试:

(1)连接好硬件设备。

(2)执行pppd call wcdma,出现:

(3)通过PC机(XP操作系统)远程登录到开发板,执行ifconfig:

图12 执行“ifconfig”

若出现如上所示的类似信息,说明拨号成功。打开开发板/etc目录下的resolv.conf文件,将分配得到的两个DNS服务器地址:10.11.12.13和10.11.12.14添加到此文件中。

vi /etc/resolc.conf,加入内容:

nameserver 10.11.12.13

nameserver 10.11.12.14

(4)ping外网测试

输入命令:ping –I ppp0 210.32.200.129

图13ping IP地址输入命令:Ping –I ppp0 https://www.360docs.net/doc/2f9228558.html,

图14 ping网址

(5)telnet测试

输入命令:telnet https://www.360docs.net/doc/2f9228558.html,

图15 telnet测试

注意:

在做的时候将ARM板子上的网线拔掉!

linux中如何挂载NFS文件

如何挂载NFS开发环境的方法步骤 ———mount命令及umount命令的用法详解(附图说明)Step1:设置好网络 主机IP:222.204.59.185 网关:192.168.50.1 子网掩码:255.255.255.0 开发板IP:222.204.59.250 网关:192.168.50.1 子网掩码:255.255.255.0 目的是使得两个处于同一个网段。 Step2:在主机的linux中设置共享目录 运行命令 #gedit /etc/exports 编辑nfs 服务的配置文件(注意:第一次打开时该文件是空的),添加以下内容: /root/share *(rw,sync,no_root_squash) 保存退出 其中: /root/share表示nfs 共享目录,它可以作为开发板的根文件系统通过nfs 挂接; *表示所有的客户机都可以挂接此目录 rw表示挂接此目录的客户机对该目录有读写的权力 no_root_squash表示允许挂接此目录的客户机享有该主机的root 身份 使用showmount –e命令可以查看你的挂载点在哪,不加参数-e显示的是网络地址。 在开发板上的/mnt下建立新的nfs文件(可以放在其他地方,名字除了nfs也可以去其他的名字) Step3:通过命令启动和停止nfs 服务 在命令行下运行: #/etc/init.d/nfs restart 这将启动nfs 服务,可以输入以下命令检验nfs 该服务是否启动。 Step4:在minicom中使用mount命令(也可以在超级终端中使用) 确定 进入minicom界面:

# mount -t nfs 222.204.59.185: /root/share /mnt/nfs 上图为minicom中显示的linux(也即开发板中的) 如果提示:mount:RPC:unable to receive; errno =No route to host 说明你主机linux中的防火墙没关闭在主机linux 中使用一下命令就可以解决:#service iptables stop。在次使用mount命令就ok了。 注意:此处222.204.59.185主机的ip地址,使用mount命令是在超级终端或minicom中使用,而不是在主机的linux系统中。在取消挂载命令时也是在超级终端或minicom中使用,具体用法是:#umount /mnt/ 如果没有出现错误信息, 您将可以浏览到/mnt 目录中的内容和/root/share是一致的。 取消挂载: 使用这个命令可以停止nfs 服务: #/etc/init.d/nfs stop 检查nfs服务器是否开启: #service nfs status 启对应的2个服务:#service portmap restart #service nfs restart 检查防火墙看是否屏蔽了nfs端口:#service iptables stop #service iptables status

嵌入式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开发的文件系统。

使用uboot去挂载根文件系统

1、根文件系统的制作 1)创建根文件系统主目录: mkdir rootfs 2)创建根文件系统的子目录 cd rootfs mkdir bin dev etc lib proc sbin sys usr mnt tmp var 3)然后创建usr下的子目录 mkdir usr/bin usr/lib usr/sbin lib/modules 4)创建设备文件 内核在引导时设备节点console,null必须存在 cd dev/ 注:该目录为/mini2440/nfsroot/rootfs 下的dev目录mknod –m 666 console c 5 1 mknod -m 666 null c 1 3 c:表明类型为字符设备 第一个数字(5,1):主设备号 第二个数字(1,3):次设备号 这两个设备文件设备号是固定的 5)安装etc etc目录主要是一些启动时的脚本文件一般不需要修改 tar etc.tar.gz –C /xxx/rootfs

这个命令可能不给用改为: tar xvzf etc.tar.gz –C /xxx/rootfs 6)编译内核模块 内核模块保存在lib下面的module下 配置内核:*直接编译到zimage m不链接到zimage而是编译成模块到.o就停住 进入Linux内核目录(linux-2.6.32.2) make modules ARCH=arm CROSS_COMPILE=arm-linux- 添加了ARCH=arm表示现在编译的是arm架构的内核 CROSS_COMPILE=arm-linux-表示使用交叉编译工具链 安装内核模块到根文件系统: make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs 7)配置busybox 因为Linux很多命令都是通过软连接实现的,所以无法直接将这些命令复制到根文件系统中。Busybox是一个工具集合,根文件系统很多命令都可以通过busybox编译得到,如命令ls,cd,mkdir。 Busybox相当于一个命令解析器,根文件中命令被软连接到 busybox,由busybox进行命令解析。 a) 解压busybox tar xvzf busybox-1.13.3 b) 配置busybox

Hi3518内核和文件系统烧写以及nfs挂载

Hi3518内核和文件系统烧写以及NFS挂载

修改履历

第一步编译内核和文件系统 文档说明:涉及到目录的请根据自己的实际情况进行更改,本文档仅根据笔者的测试进行举例说明。 1 安装交叉编译器 cd arm-hisiv100nptl-linux ./cross.install 说明:3518e推荐使用100nptl进行编译,arm-hisiv100nptl-linux-(使用uclibc库,uclibc 工具链支持全规格版本和小型化版本 )arm-hisiv200-linux-(glibc 库glibc 工具链只支持全规格版本),实验时没有使用hisiv200,不确定会出什么问题,不推荐使用。 2 编译步骤 cd ./linux-3.0.y ./mk3518.sh mk3518.sh 脚本里面包含了编译linux内核所需的所有的命令,具体看mk3518.sh文件,编译成功将生成在目录arch/arm/boot/uImage文件,这个就是要烧录到板子上的 注意:大小大约为1M。大于1M也许会出问题,在实验前期都是大于1M,烧录的时候出问题。 制作rootfs文件系统,使用的是最新的squashfs只读文件系统,使用的工具为mksquashfs,目录squashfs4.2为这个工具的代码 rm ./rootfs.squashfs //仅仅为了删除之前存在的文件系统,如果没有,可不执行这一步。 ./mksquashfs ./rootfsrootfs.squashfs -b 256K cp ./rootfs.squashfs ./tftpboot //可不用命令,自己拷贝,黏贴,文件夹根据自己实际情况所定。 生成的rootfs.squashfs这个就是要烧录到板子上的文件 注意:生成的文件大约为1.5M 地址空间说明 | 256K | 1M | 1.5M | |------------|---------------|-----------------------| | boot | kernel | rootfs |

根文件系统制作

Linux根文件系统的制作 1. 根文件系统 文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点。 注:对于我们应用开发来说,购买开发板的时候,厂家会提供好现成的根文件系统和BootLoader等,如果需要,我们可以改变其中的命令而无需从头开始制作一个新的根文件系统。不过这儿的制作过程可以让我们更深一点理解Linux的文件系统。 2.主要的根文件系统 * Linux 中,rootfs 是必不可少的。PC 上主要实现有 ramdisk 和直接挂载 HD(Harddisk,硬盘)上的根文件系统;嵌入式中一般不从 HD 启动,而是从 Flash 启动,最简单的方法是 将 rootfs load 到 RAM 的 RAMDisk,稍复杂的就是直接从Flash 读取的 Cramfs,更复杂的是在 Flash 上分区,并构建 JFFS2 等文件系统。 * RAMDisk 将制作好的 rootfs 压缩后写入 Flash,启动的时候由 Bootloader load 到RAM,解压缩,然后挂载到 /。这种方法操作简单,但是在 RAM 中的文件系统不是压缩的,因此需要占用许多嵌入式系统中稀有资源 RAM。 ramdisk 就是用内存空间来模拟出硬盘分区,ramdisk通常使用磁盘文件系统的压缩存放在flash中,在系统初始化时,解压缩到SDRAM并挂载根文件系统, 在linux系统中,ramdisk 有二种,一种就是可以格式化并加载,在linux内核2.0/2.2就已经支持,其不足之处是大小固定;另一种是 2.4的内核才支持,通过,ramfs来实现,他不能被格式化,但用起来方便,其大小 随所需要的空间增加或减少,是目前linux常用的ramdisk技术. * initrd 是 RAMDisk 的格式,kernel 2.4 之前都是 image-initrd,Kernel 2.5 引入了 cpio-initrd,大大简化了 Linux 的启动过程,附合 Linux 的基本哲学:Keep it simple, stupid(KISS). 不过cpio-initrd 作为新的格式,还没有经过广泛测试,嵌入式 Linux 中主要采用的还是 image-initrd。 * Cramfs 是 Linus 写的很简单的文件系统,有很好的压缩绿,也可以直接从 Flash 上运行,不须 load 到 RAM 中,因此节约了 RAM。但是 Cramfs 是只读的,对于需要运行时修 改的目录(如: /etc, /var, /tmp)多有不便,因此,一般将这些目录做成ramfs 等可写的 fs。 * SquashFS 是对 Cramfs 的增强。突破了 Cramfs 的一些限制,在 Flash 和 RAM 的使用量方面也具有优势。不过,据开发者介绍,在性能上可能不如 Cramfs。这也是一种新方法,在嵌入式系统采用之前,需要经过更多的测试。 3.Ramdisk制作 RAMDisk的制作方法如下:

ubifs文件系统挂载及同步

UBIFS分区制作及UBIFS烧写和启动 (转载) 相关命令工具 ubiattach version 1.0 - a tool to attach MTD device to UB I. Usage: ubiattach [-m ] [-d ] [--mtdn=] [--devn ] Example 1: ubiattach /dev/ubi_ctrl -m 0 - attach MTD device 0 (mtd0) to UBI Example 2: ubiattach /dev/ubi_ctrl -m 0 -d 3 - attach MTD device 0 (mtd0) to UBI and and create UBI device number 3 (ubi3) -d, --devn= the number to assign to the newly created UBI device(the number is assigned automatically if this is not specified) -m, --mtdn= MTD device number to attach -O, --vid-hdr-offset VID header offset (do not specify this unless you really know what you do and the optimal defaults will be used) -h, --help print help m essage -V, --version print program v ersion ubimkvol version 1.0 - a tool to create UBI volumes.

nfs挂载根文件系统-tftp下载内核运行

Nfs、tftp联合运行调试内核及文件系统 参考:[https://www.360docs.net/doc/2f9228558.html,/course/6_system/linux/Linuxjs/2008831/139066.html]在烧写了u-boot之后,为了减少烧写根文件系统、调试程序之痛苦,本文档介绍如何通过tftp下载内核,nfs服务挂接根文件系统启动系统,不用每次都烧到开发板上。 一、NFS服务挂载根文件系统 1、Linux服务器端NFS服务器的配置 以root身份登陆Linux服务器,编辑/etc目录下的共享目录配置文件exports,指定共享目录及权限等。执行如下命令编辑文件/etc/exports: #sudo apt-get install nfs-kernel-server #vi/etc/exports 在该文件里添加如下内容: /home/lisongqing/ARM/rootfs192.168.0.*(rw,sync,no_root_squash) 然后保存退出(添加的内容意思是:允许ip地址范围在192.168.0.*的计算机以读写的权限来访问/home/lisongqing/ARM/rootfs目录,/home/lisongqing/ARM/rootfs也称为服务器输出共享目录)。 括号内的参数意义描述如下: 1)rw:读/写权限,只读权限的参数为ro; 2)sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘; 3)no_root_squash:NFS服务器共享目录用户的属性,如果用户是非root,那么对于这个共享目录来说就具有root的权限; 如果用户想修改/etc/exports以修改后或添加其它共享目录,可执行命令 1)#sudo exportfs-rv使/etc/exports文件生效 2)接着执行如下命令,启动端口映射: #/etc/init.d/portmap start(或:#sudo service portmap start) 3)最后启动NFS服务,此时NFS会激活守护进程,然后就开始监听Client端的请求: #/etc/init.d/nfs-kernel-server restart(或:#sudo service nfs-kernel-server restart) Linux服务器端NFS服务器的配置到此就已经配置好了。 二、开发板启动参数设置 当在第一步启动Linux主机NFS服务后,现在就可以在超级终端u-boot控制界面修改命令行参数通过NFS启动根文件系统了。假设Linux主机IP为192.168.0.100,NFS目录为/home/lisongqing/ARM/rootfs,就可以如下设置命令行参数后启动内核。 方式一: #set bootargs noinitrd root=/dev/nfs console=ttySAC0,115200nfsroot=192.168.0. 100:/home/lisongqing/ARM/rootfs ip=192.168.0.150:192.168.0.100:192.168.0.1:255. 255.255.0::eth0:off 方式二: #set bootargs root=/dev/nfs nfsroot=192.168.0.100:/home/lisongqing/ARM/rootfs ip=192.168.0.150:192.168.0.100:192.168.0.1:255.255.255.0console=ttySAC0,115200 mem=64M

nfs挂载根文件系统

用NFS挂载文件系统 1启动虚拟机NFS服务 在安装RedHat 9.0时,如果选择的是完全安装,则NFS相关软件都已经缺省安装好了,请按照以下步骤建立和配置NFS服务。 (注意:请关闭Linux下面的防火墙,否则可能会出现使用不了NFS的情况) 关闭防火墙的命令是: #/etc/init.d/iptables stop 设置共享目录: 运行命令“#gedit /etc/exports”,然后编辑NFS服务的配置文件(注意:第一次打开该文件是空的),添加以下内容: -“/opt/EmbedSky/root_nfs”表示nfs共享目录,它可以作为开发板的根文件系统通过nfs挂载 -“*”表示所有的客户机都可以挂载此目录 -“rw”表示挂载此目录的客户机对该目录有读写的权限 -“no_root_squash”表示允许挂载此目录的客户机享有该主机的root身份建立共享目录: 在光盘的“Linux”目录下面有个名为“root_nfs.tar.bz2”的文件,把它解压到Linux的“/opt/EmbedSky/”目录下面,使用解压命令为“#tar xvfj root_nfs.tar.bz2 -C /”。 启动和停止NFS服务: 在命令行运行“#/etc/init.d/nfs start”将启动NFS服务:

使用下面的指令可以测试NFS服务是否开启: 此时“/opt/EmbedSky/root/”目录里面的内容和“/opt/EmbedSky/root_nfs/”目录里面一样,对上面两个目录中的任何一个操作,另外一个也会有对应的变化(注意:root目录和root_nfs目录都是需要自己建立的,建立目录的方法:mkdir xxx,xxx就是所要建立的目录)。同时上面截图中的命令用到的IP地址是PC端Linux的IP地址,需要自己的实际IP相同。 再更改虚拟机ip地址:ifconfig eth0 192.168.1.10 ifconfig eth0 up 2 配置NFS 在u-boot控制台下,输入“0”:进入设置启动参数操作界面,如下图:

网络文件系统(NFS)

网络文件系统(NFS) 收藏 网络文件系统(NFS) 一、NFS简介 1、NFS就是Network 的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(share files)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器()。 注意:一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。 2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是……不知道,因为NFS传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。 其实,NFS运行在SUN的RPC(Remote Procedure Call,远程过程调用)基础上,RPC定义了一种与系统无关的方法来实现进程间通信,由此,NFS Server也可以看作是RPC Server。正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap 设定。比如:某个NFS Client发起NFS服务请求时,它需要先得到一

个端口(port),所以它先通过portmap得到port number(不仅是NFS,所有的RPC服务程序启动之前,都需要先设定好portmap)。注意:在启动RPC服务(比如NFS)之前,需要先启动portmap服务。 3、NFS允许系统将其目录和文件共享给网络上的其他系统。通过NFS,用户和应用程序可以访问远程系统上的文件,就像它们是本地文件一样。那么NFS最值得注意的优点有: (1)本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。 (2)不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在NFS服务器上设置并使其在整个网络上可用。 (3)存储设备如软盘、光驱及USB设备可以被网络上其它机器使用,这可能可以减少网络上移动设备的数量。 二、与NFS相关的几个文件和命令 1、/etc/exports 对NFS服务的访问是由exports来批准,它枚举了若干有权访问NFS 服务器上文件系统的主机名。 2、/sbin/exportfs 维护NFS的资源共享,可以通过它重新设定/etc/exports的共享目录,卸载NFS Server共享的目录或者重新共享等。

LINUX下NFS文件共享方式和实现的方法

Linux下nfs文件共享方式和实现的方法。 1、首先要开启portmap和nfs服务。 service portmap start service nfs start 2、查看服务是否开启。 netstat-ntpl 3、修改/etc/exports vi/etc/exports #/home/temp*(rw,sync,no_root_squash,all_squash) #/home/temp*(ro,sync,no_root_squash,all_squash) (/home/temp表示要被共享的目录) #/mnt/inst*(ro,sync)(*表示任意地址) rw:可读写的权限; ro:只读的权限; no_root_squash:登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限root_squash:在登入NFS主机使用目录的使用者如果是root时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的UID与GID都会变成nobody那个身份; all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody。anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。 anongid:同anonuid,但是变成group ID就是了! sync:资料同步写入存储器中。 async:资料会先暂时存放在内存中,不会直接写入硬盘。 insecure允许从这台机器过来的非授权访问。 4、exportfs-a(导出所有共享的目录) 5、showmount-e127.0.0.1(查被共享的目录) Export list for127.0.0.1: /mnt/inst* /home/temp*

根文件系统的启动及配置linuxrc

根文件系统的启动及配置linuxrc /linuxrc内容: #!/bin/sh echo"mount/etc as ramfs" /bin/mount-n-t ramfs ramfs/etc /bin/cp-a/mnt/yaffs/etc/*/etc//关机的时候我们会保存/etc的内容到/mnt/yaffs/etc. echo"re-create the/etc/mtab entries" #re-create the/etc/mtab entries /bin/mount-f-t cramfs-o remount,ro/dev/mtdblock/2/ /bin/mount-f-t ramfs ramfs/etc exec/sbin/init 首先你要看懂这个linuxrc, 1./bin/mount-n-t ramfs ramfs/etc 这句话的作用加载一个ramfs作为/etc目录。这样/etc就是一个可写目录。 看这个脚本,得出你的根文件系统是一个cramfs,是一个只读文件系统中,而/etc作为系统运行配置文件的存放地点,可能会写一些运行状态在这里,linuxrc第一件事情就是将一个ramfs mount到/etc只读目录中,使得/etc/目录可写,指定参数-n的目的是告诉mount 不要写/etc/mtab,这个文件存放当前系统mount了的所有文件系统中。因为现在/etc/目录还是只读,所以这次mount不要写这个文件,否则会失败。 而你问到的ramfs在哪里,这个在你的/etc/fstab文件中应该有ramfs一项,mount会去找这项,如果没有,mount会失败。后面就执行不下去。

ARM 开发板 与 PC机ubuntu系统 nfs 挂载

ARM 开发板与PC 机ubuntu 系统nfs 挂载 ARM 开发板与PC 通过NFS 网络文件系统挂接,很方便文件的移动,也 为我们的开发带来了方便。接下来,我就详细的介绍下如何建立ARM 与PC 机的挂接。我是用的UBuntu 系统。 首先,我们需要在主机上安装nfs 服务器,安装过的过程中一并把一些需要 的组件也给安装了。 1. 安装NFS 相关组件 sudo apt-get install nfs-kernel-server 安装完nfs 服务器之后,我们需要建立一 个与下位机挂接的共享文件夹。2. 建立NFS 共享文件夹sudo mkdir -R /mnt/nfs3.设置共享目录修改主机/etc/exports 文件,添加如下代码/mnt/nfs *(rw,sync,no_root_squash) 这里做一下说明:/mnt/nfs 表示所设定的共享文件, 这里可以任意改,* 表示任意网段的下位机都可以连接到此文件夹(rw,sync,no_root_squash) //表示一些权限rw 可读写的权限ro 只读的权限 no_root_squash NFS 客户端分享目录使用者的权限,即如果客户端使用的是root 用户,那么对于这个共享的目录而言,该客户端就具有root 的权限,若是以NFS 挂载根文件系统时,必须设置此项 sync 资料同步写入到内存与硬盘当中async 资料会先暂存于内存当中,而 非直接写入硬盘设置完共享文件夹之后需要重启NFS 服务器,4. 服务操作指 令 #重启$sudo /etc/init.d/portmap restart # 停止sudo /etc/init.d/nfs-kernel-server stop # 启动sudo /etc/init.d/nfs-kernel-server start # 重新启动sudo /etc/init.d/nfs- kernel-server restart 这些做好之后我们可以在自己PC 机上做一下测试5. 测试 首先,我们可以使用如下命令查看所建立的共享文件夹showmount -e 如

ARM开发板如何挂载NFS开发环境的方法步骤

ARM开发板如何挂载NFS开发环境的方法步骤(mini2440无盘启动) 来源: ChinaUnix博客日期:2010.01.03 16:12(共有条评论) 我要评论 这个部分还是比较不好弄的。想象要是不能通过nfs挂载网盘的话,他提出这个方法也就没什么用了。这样看的话,是比较完美了。在你实验之前你可以现挂载一下(用busybox生成文件系统后不用编译就可以了)确认没问题在编译下载镜像文件。还有在作qt文件应用程序的时候很大用这种方法,相信不用考虑编译和裁减的情况下就可以直接运行了。 首先介绍一下我的开发环境: PC环境是ubuntu9。04,开发板为友善之臂的MINI2440 主机IP:192.168.50.72 网关:192.168.50.1 子网掩码:255.255.255.0 开发板IP:192.168.50.168 网关:192.168.50.1 子网掩码:255.255.255.0 为了能和主机建立起连接我必须得把开发板IP改成和主机一个网段的 . 这里首先要说明的是ubuntu的静态IP设置问题: 默认安装完成后,右上角的网络配置上wired ..和eth0为灰色。不能点选。 然后禁用networdmanager启动network以太网设置静态IP的时候,不管怎么设置,子网掩码都和网关一样, 比如说:地址:192.168.0.22 子网掩码: 192.168.0.1 //不管怎么输入255.255.255.0 ,都不行! 网关:192.168.0.1 //这里改了255.255.255.0的话,上面就也成255.255.255.0了。(auto ethernet是可以联上网的)。所以就上GG找答案,找解决方法。 进入FC10,执行终端命令(也可以用VI修改) $ su -c ?gedit /etc/sysconfig/networking/devices/ifcfg-eth0′ 直接修改文件中的子网掩码信息就可以 代码为: # Broadcom Corporation NetXtreme BCM5752 Gigabit Ethernet PCI Express DEVICE=eth0

linux根文件系统构建

一.首先一个嵌入式linux产品开发大致分为以下几个流程: 1.硬件工程师:硬件规划,硬件设计,制板,焊接,硬件调试 2.系统工程师或驱动工程师:bootloader移植到1中所开发出来的硬件平台,移植linux内 核,制作供内核启动的根文件系统 3.驱动工程师:按照产品规划书,要求,移植必备的驱动 4.应用工程师:业务相关的应用程序,开发和产品密切相关的应用程序,驱动程序 5.功能测试,性能测试,系统集成此时 6.实验(系统设备)发布 二.根文件系统分析 1.根文件系统简介 Windows操作系统可以将硬盘划分为C,D,E,F等各个盘分别访问,linux同理将MTD设备划分为若干个分区,在不同的分区存放不同类别的文件。与windows的C盘类似,linux 一样要在一个分区上存放系统启动所必需的文件如下图所示: 内核启动后运行的第一个程序init,给用户提供操作界面的shell脚本程序,应用程序所依赖的库等,这些必需、基本的文件合称为根文件系统,存放在一个分区中,linux系统启动后首先挂接这个分区,称为挂接根文件系统。其他分区上所有的目录,文件的集合,也称为文件系统。有此可见linux启动时使用的第一个文件系统便是根文件系统,若此文件系统挂接不成功或者参数配置不正确则linux内核无法正常启动。 按照FHS标准,根文件系统顶层下一般有如下几个目录: bin:存放所有用户都可以使用的,基本的命令 sbin:存放基本的系统命令,用于启动系统,修复系统 dev:存放设备文件和其它特殊文件 etc:存放系统配置文件,包括启动文件 usr:存放共享,只读的程序和数据 proc:空目录,常作为proc文件系统的挂接点 lib:存放共享库和可加载模块,共享库用于启动系统,运行根文件系统中的可执行程序boot:引导加载程序使用的静态文件 home:用户目录,可选的,包括供服务帐号锁使用的主目录,如FTP mnt:用于临时挂接某个文件系统的挂接点,通常是空目录 opt:给主机额外安装软件所摆放的目录 root:root用户的主目录 tmp:存放临时文件,通常是空目录 var:存放可变数据 2.根文件系统制作工具Busybox Busybox俗称嵌入式开发中的瑞士军刀,将众多的unix命令集合进一个很小的可执行程序中,可以用来替换GNUfileutils,shellutils等工具集,支持uclibc库和glibc库,官方网站为https://www.360docs.net/doc/2f9228558.html,进行下载。 下载完毕,解压后会发现有如下一些配置选项如图:

韦东山视频总结之NFS挂载文件系统

学习韦东山嵌入式linux完全开发手册视频11课4小节的笔记 整理人:KPBoy qq:1056339680 韦东山二期驱动视频教程秒杀价格180元应该是市面上最好的嵌入式学习视频报名只要给我淘宝号和名字就可以了到时自己到他的淘宝店拍下视频的 这里是视频的详细网页介绍https://www.360docs.net/doc/2f9228558.html,/Linuxvideo.html 开发环境:装有红帽企业版6.2的wmware虚拟机一台 交叉工具链是:嵌入式光盘里附送的交叉工具链 arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 Uboot:1.1.6 Linux kernel:linux-2.6.22.6 Filesystem:使用mdev机制的最小根文件系统fs_mini_mdev 还有一个需要注意的地方: 光盘里的linux-2.6.22.6在TQ2440/MINI2440上使用时会导致蜂鸣器响,这是因为JZ2440的LCD用GPB0作为LCD背光使能引脚, 而 TQ2440/MINI2440用GPB0作为蜂鸣器的使能引脚 使用TQ2440/MINI2440时,重新配置内核把自带的LCD驱动去掉即可,方法如下: 在内核目录下执行: make menuconfig -> Device Drivers -> Graphics support <> S3C2410 LCD framebuffer support // 输入N (以上都是使用韦东山老师提供的源码和补丁,现在先熟悉下,等以后自己熟悉了再自己来移植和完善) S3C2440开发板一台 好了,根据韦东山前面的9到11课的视频,搭建好上面的uboot和内核之后,我们就开始搭建在产品开发过程中经常使用到的NFS文件系统了。首先我们来看看Linux文件系统时什么? 问:什么是Linux文件系统? 答:通常一个完整的Linux系统有数千上万个文件组成,文件中存储了程序,数据和各种信息。层次化的目录结构对于文件进行编目和分组。期中采用了各种方法来永久存储所需的结构和数据。 为支持各种本机文件系统,而同时允许访问其他操作系统的文件,Linux内核在用户进程(或C标准库)和文件系统实现之间引入了一个抽象层。该抽象层称之为虚拟文件系统(Virtual File system),简称VFS。 VFS的任务并不简单。一方面。它用来提供操作文件,目录及其他对象的统一方法。另一方面都有一些不同之处。但VFS的回报很高,它使得Linux更加灵活了。 内核支持40多种文件系统,其来源各种各样:如用于CD-ROM的iso9660,网络文件系统(NFS文件系统)和虚拟的文件系统(如proc文件系统)。 问:那么linux文件系统有哪些类型呢? 文件系统一般可以分为下面3中。(我们这里是详细学习下网络文件系统) ①基于磁盘的文件系统

OK6410之NFS挂载操作

这样就把共享目录挂到了/mnt目录,取消挂载用: #sudo umount /mnt 如果用在嵌入式设备上挂载,要加上参数-o nolock 我在开发板上使用的挂载命令: mount -t nfs -o nolock 192.168.1.8:/home/kevin /mnt OK6410之NFS挂载操作 环境:开发板:OK6410A 虚拟机:VM7.0 操作系统:Red Hat Enterprise Linux 5 一、TFTP服务器 1、tftp安装

2、tftp配置 3、tftp重启 注:解决网络ping不通的问题 #setup--→ network configuration --→修改IP地址---→重启tftp服务器(#/etc/init.d/network restart)--→查看是否能够ping通(ping 192.168.0.47)

注:使用tftp时,记得一定要关闭linux的防火墙和selinux **因为没有关闭,在服务器与目标机进行NFS挂载,tftp下载uImage时,能够ping通,但是无法下载。此外,最先也是没法ping通的,后来连接开发的板网线不直接连接到电脑,而是连接到交换机后,就可以ping通了。最后,电脑一定要设置IP,而不是自动分配IP。 二、NFS服务器 1、NFS安装 注:需要挂载Linux操作系统的安装光盘: (1)、虚拟机VM- setting

(2)、#mount /dev/cdrom /mnt/ 将光驱挂载到/mnt的目录下2、NFS配置:加入允许被哪些计算机访问、访问的目录和访问权限 如: 3、NFS启动 4、NFS的使用

nfs详细配置说明

网络文件系统(NFS) 一、NFS简介 1、NFS就是Network File System的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(share files)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器(File Server)。 注意:一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。 2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是……不知道,因为NFS传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。 其实,NFS运行在SUN的RPC(Remote Procedure Call,远程过程调用)基础上,RPC 定义了一种与系统无关的方法来实现进程间通信,由此,NFS Server也可以看作是RPC Server。正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。比如:某个NFS Client发起NFS服务请求时,它需要先得到一个端口(port),所以它先通过portmap得到port number(不仅是NFS,所有的RPC服务程序启动之前,都需要先设定好portmap)。 注意:在启动RPC服务(比如NFS)之前,需要先启动portmap服务。 3、NFS允许系统将其目录和文件共享给网络上的其他系统。通过NFS,用户和应用程序可以访问远程系统上的文件,就像它们是本地文件一样。那么NFS最值得注意的优点有:(1)本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。 (2)不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在NFS服务器上设置并使其在整个网络上可用。 (3)存储设备如软盘、光驱及USB设备可以被网络上其它机器使用,这可能可以减少网络上移动设备的数量。 二、与NFS相关的几个文件和命令 1、/etc/exports 对NFS服务的访问是由exports来批准,它枚举了若干有权访问NFS服务器上文件系统的主机名。 2、/sbin/exportfs 维护NFS的资源共享,可以通过它重新设定/etc/exports的共享目录,卸载NFS Server共享的目录或者重新共享等。 3、/usr/sbin/showmount

相关文档
最新文档