nuc972开发板+EC21模块,实现PPP拨号。
二、相关知识:2.1 驱动在Linux中地位
2.2 Linux内核模块
2.3 Linux文件类型
2.3.1 七种文件类型
- 普通文件类型Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.第一个属性为 [-]
- 目录文件就是目录, 能用 # cd 命令进入的。第一个属性为 [d]
- 块设备文件块设备文件 : 就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。第一个属性为 [b]
- 字符设备字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c]
- 套接字文件这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型
- 管道文件FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。第一个属性为 [p]
- 链接文件类似Windows下面的快捷方式。第一个属性为 [l],例如 [lrwxrwxrwx]
2.3.2 查看文件类型的三种方法
- ls -l +文件 ls-ld +路径
- file命令
- stat命令:查看文件的详细属性
2.3.3Linux中文件扩展名
- 源码.tar、.tar.gz、.tgz、.zip、.tar.bz表示压缩文件,创建命令一般为tar,gzip,zip等。
- sh表示shell脚本文件,通过shell语言开发的程序。
- pl表示perl语言文件,通过perl语言开发的程序。
- py表示python语言文件,通过python语言开发的程序。
- html、.htm、.php、.jsp、.do表示网页语言的文件。
- conf表示系统服务的配置文件。
- .rpm表示rpm安装包文件。
- .img镜像文件
- .ub文件影像文件
- .config文件是linux内核配置文件,当执行#make uImage编译生成内核时,顶层的Makefile会读取.config文件的内容,根据这个配置文件来编译所定制的内核。
2.3.4 文件属性
- ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。
- ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。
- ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。"@"表示符号链接、"|"表示FIFOS、"/"表示目录、"="表示套接字。
- ls -s 在每个文件的后面打印出文件的大小。size(大小)
- ls -t 按时间进行文件的排序Time(时间)
- ls -A 列出除了"."和".."以外的文件。
- ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现
- ls -L 列出文件的链接名。Link(链接)
- ls -S 以文件的大小进行排序
- ls-h人性化显示容量信息
- ls-i列出文件或者目录的索引节点号
3.1 Uboot编译
生成文件u-boot.bin;u-boot-spl.bin make distclean make nuc970_config make all
3.2 内核编译
make nuc972_defconfig Enable CONFIG_USB_SERIAL_OPTION [*] Device Drivers → [*] USB Support → [*] USB Serial Converter support → [*] USB driver forGSM and CDMA modems Configure Kernel to Support PPP [*] Device Drivers → [*] Network device support → [*] PPP (point-to-point protocol) support
添加Yaffs2文件系统支持
General setup --->[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support File systems --->[*] Miscellaneous filesystems ---> <*>yaffs2 file system support <*>Autoselect yaffs2 format <*>Enable yaffs2 xattr support Device Drivers --->Generic Driver Options ---> <*>Nuvoton NUC970 FMI function selection Select FMI device to support (Support MTD NAND Flash) ---> -*- Memory Technology Device (MTD) support ---> <*>Command line partition table parsing <*>Caching block device access to MTD devices -*- NAND Device Support ---> -*- Nuvoton NUC970 MTD NAND --->NUC970 NAND Flash pin selection (Port C) --->
3.3 BusyBox制作文件系统
别忘了make install
1 参考:https://blog.csdn.net/zxw2580/article/details/81132651
2 在制作的文件夹里面,/etc/fstab加入
fstab文件详解:https://blog.csdn.net/richerg85/article/details/17917129
/dev/mtdblock2 /mnt yffs2 defaults 0 0
#./configure #make CC= arm-linux-gcc
编译成功后把chat目录"chat",pppd的"pppd",pppdump的"pppdump",pppstats的"pppstats"复制到/usr/sbin下。
3 配置拨号文件
mkdir /etc/ppp/peers sudo gedit quectel-ppp sudo gedit quectel-chat-connect sudo gedit quectel-chat-disconnect
添加内容:参考https://blog.csdn.net/zhaoxd200808501/article/details/72637695
sudo gedit wcdma sudo gedit wcdma-chat-connect sudo gedit wcdma-chat-disconnect
添加内容参考:https://blog.csdn.net/wwt18811707971/article/details/54291747
系统/var目录下 mkdir /var/run -p mkdir /var/lock -p
3.4 文件系统打包
参考:https://blog.csdn.net/zxw2580/article/details/81144551
3.5 烧录
注意地址与位置
烧录的环境变量:
bootcmd=set bootargs "noinitrd root=/dev/mtdblock2 rootfstype=yaffs2 rootflags=inband-tags console=ttyS0,115200n8 rdinit=/sbin/init mem=64M mtdparts=nand0:0x200000@0x0(u-boot)ro,0x1400000@0x200000(kernel)ro,-(user)"; saveenv; nboot 0x7fc0 0 0x200000; bootm 0x7fc0 (没有换行)
3.6 测试
拨号命令 pppd call wcdma & ping -I ppp0 202.108.22.5(百度)