2021-04-19-记录学习linux

第五章 开发板系统工具使用
5.1 Linux 磁盘类工具 / 命令使用
注意 :以下操作都是在开发板上操作,我们的教程涉及多款开发板,不同的 linux 版本,命令用法可能
稍有差异。
5.1.1 df :查看系统已用空间
5.1.1.1 df 支持的命令参数简介
[root@imx6ull:~]# df [-PkmhT] [目录或档名]
选项与参数:
-k :以 KBytes 的容量显示各档案系统;
-m :以 MBytes 的容量显示各档案系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-T :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
 
5.1.1.2 示例一: 将系统内所有的 Filesystem 列出来!
5.1.1.3 示例二: 将文件系统容量显示格式以易读的方式展示。
5.1.1.4 示例三:将系统内的文件系统类型和容量大小以易读的方式展示出来。
5.1.1.5 输出结果提示信息含义简介。
Filesystem:代表该系统是在哪个设备的哪个分区,有些是虚拟文件系统比如 tmpfs。
Type: 文件系统类型。
1k-blocks:说明底下的数字单位是 1KB ,可利用 -h 或 -m 来改变单位;
Used:顾名思义,就是使用掉的磁盘空间。
Available:也就是剩下的磁盘空间大小。
Use%:就是磁盘的使用率,如果使用率高达 90% 以上时, 最好需要注意一下了,免得容量不
足造成系统问题。
Mounted on:就是磁盘挂载所在目录。
df 读取的资料整个文件系统的统计信息,在显示的结果中你需要特别留意的是那个根目录(/dev/root)
的剩余容量。所有的资料都是由根目录衍生出来的,当根目录的剩余容量剩下 0 时,那你的 Linux 存储
空间肯定不够了。
5.1.2 du 命令统计目录大小
5.1.2.1 du 命令支持参数简介
[root@imx6ull:~]# du [-aHLdclsxhmk] 文件或目录名称
选项与参数:
-a
同时显示每个文件的文件大小
-d
N 将输出限制为深度<N 的目录
-c
显示总计
-s
每个参数仅显示总计
-x
跳过不同文件系统上的目录
-h
可读格式的大小(例如 1K 243M 2G)
-m
大小(以兆字节为单位)
-k
大小(以千字节为单位)(默认)
5.1.2.2 示例一: 统计/etc 目录下所有文件所占用的容量。
先执行“cd /etc”进入/etc 目录,再执行 du 命令:
5.1.2.3 示例二:统计每个文件和目录所占用的容量大小,并以易读的方式展示出来
5.1.2.4 示例三:统计根目录下每个目录所占用的容量
5.1.2.5 示例四:统计 /etc 目录下层级 1 的所有目录所占用的大小。
5.1.3 fdisk 分区工具使用
5.1.3.1 fdisk 工具使用界面简介
5.1.3.2 查看当前系统内所有分区
使用 fdisk –l 列出系统下的所有磁盘设备分区信息,每个磁盘设备的提示信息意义为:
Device:装置档名,依据不同的磁盘界面/分区位置而变。
StartCHS,EndCHS:指的是 MBR 分区的开始和结束地址。
Boot:是否为开机启动区块?通常 Windows 系统的 C 需要这块。
Start, End:这个分区在哪个磁柱号码之间,可以决定分区的大小;
Sectors:这里指的是此分区占用的扇区个数一共有多少个。
Id,Type:分别代表文件系统代号,磁盘类型。
此时我们需要得知,不同的设备分区来自哪个磁盘设备,如下图所示,/dev/mmcblk0 为我插入的 8GB SD 卡
设备,此时可以从下图中得知 此 sd 卡有两个分区信息,容量大小为 7560MB。
5.1.3.3 新增一个分区
fdisk /dev/mmcblk0 :先进入 fdisk 画面;
p :先看一下分区的信息,这里显示只有一个分区。
n :这个时候让你选择 primary partition(主分区) 还是 extended(扩展分区),我们这里输入 p 选择主分
区。
2 :此时让你输入创建到第几个分区,这里直接输入 2, 输入成功后再次打印显示分区信息,显示已经有两
个分区。
w :按 w 可将分区信息存储到分区表中,并离开 fdisk ;当然啰, 如果你反悔了,直接按下 q 就可以
取消刚刚的删除动作,此时,我们需要格式化并挂载新的分区。
从上图可知,我们的第二个分区设备为 /dev/mmcblk0p2 ,分区类型为 Linux ,此时我们可以用如下
命令对其进行格式化,并挂载。
// 格式化此分区设备为 ext3 格式,如果提示是否强制继续,输入 y 即可
[root@imx6ull:~]# mkfs.ext3 /dev/mmcblk0p2
格式化完成后,需要将其挂载到相应的目录,才可对其进行操作,此时我们挂载的目录为 /mnt
root@imx6ull:~]# mount -t ext3 /dev/mmcblk0p2 /mnt
此时可以使用 df –Th 命令查看系统所有的挂载信息,来确认是否挂载成功 以及分区的详细信息。
5.1.3.4 删除一个分区
fdisk /dev/mmcblk0 :先进入 fdisk 操作界面;
p :先看一下分区的信息,这里显示只有一个分区。
d :这时候让你选择删除那个分区,我们有两个分区就选择删除第 2 个分区好了,删除后,再次输入 p 来
查看当前磁盘设备有几个分区。
w :按 w 可将分区信息存储到分区表中,并离开 fdisk ;当然啰, 如果你反悔了,直接按下 q 就可以
取消刚刚的删除动作。
5.1.3.5 修改某个分区的分区类型
fdisk /dev/mmcblk0 :先进入 fdisk 操作界面;
p :先看一下分区的信息,这里显示只有一个分区。
n :这个时候让你选择 primary partition(主分区) 还是 extended(扩展分区),我们这里输入 p 选择主分
区。
t :输入 t 表示要修改分区类型,然后输入需要修改的分区,这里选择第二个分区,
L :列出所有的分区类型,此时输入我们将要修改成的分区类型,这里是要修改成 FAT32(LBA)分区类型,
所以输入 c 。
p :再次显示所有的分区类型,看是否已经更改。
w :按 w 可将分区信息存储到分区表中,并离开 fdisk ;当然啰, 如果你反悔了,直接按下 q 就可以
取消刚刚的删除动作,此时,我们需要格式化并挂载新的分区。
从上图可知,我们的第二个分区设备为 /dev/mmcblk0p2 ,分区类型为重新设置为 FAT32,此时我们可
以用如下命令对其进行格式化,并挂载。
// 格式化此分区设备为 fat 格式,如果提示是否强制继续,输入 y 即可
[root@imx6ull:~]# mkfs.fat /dev/mmcblk0p2
格式化完成后,需要将其挂载到相应的目录,才可对其进行操作,此时我们挂载的目录为 /mnt
root@imx6ull:~]# mount -t vfat /dev/mmcblk0p2 /mnt
此时可以使用 df –Th 命令查看系统所有的挂载信息,来确认是否挂载成功 以及分区的详细信息。
5.2 linux 网络类工具 / 命令使用
5.2.1 bluez 工具使用说明
5.2.2 wpa 工具使用说明
5.2.3 iw 工具使用说明
5.2.4 ssh 登陆工具使用
5.2.5 samba 传输文件工具使用
5.3 linux 系统工具 / 命令使用
5.3.1 kmod 内核模块管理工具使用
5.3.1.1 lsmod:列出已经安装了哪些模块
[root@imx6ull:~]# lsmod
提示信息含义说明:
Module :表示模块的名称。
Size : 表示模块的大小
Used: 使用者。
5.3.1.2 insmod:手工安装模块
后面讲到的 modprobe 命令,它是从/lib/modules 下的目录里自动安装某个模块。但是在实验过程中,
我们经常需要手工安装其他目录下的模块,可以使用以下命令安装(需要指定模块文件即 ko 文件的位置)。
[root@imx6ull:~]# insmod /path/to/module/xxx.ko
[root@imx6ull:~]# insmod -f /path/to/module/xxx.ko // 强制安装
开发板出厂时运行的是我们编译好的内核,当你做实验时需要先编译出自己的内核,然后编译出自己的
驱动程序。如果你不想替换内核,那么你的驱动程序跟板上的内核并不完全匹配。这时就要用 insmod -f 命
令强制安装驱动程序。下面是一个例子:
5.3.1.3 rmmod:卸载掉某个已安装的模块
[root@imx6ull:~]# rmmod <模块名称>
从上图 lsmod 可知系统已经安装了哪些模块,这里我们以卸载 usb wifi 模块驱动为例,具体操作如
下图所示。
5.3.1.4 modinfo:查看某个模块的详细信息
[root@imx6ull:~]# modinfo <模块>
modinfo 命令用于显示 kernel 模块的信息。
用法:
[root@imx6ull:~]# modinfo [-adlpn0Fkbvh] <模块文件>
-a 或--author 显示模块开发人员。
-d 或--description 显示模块的说明。
-l 或—license 显示版本信息
-p 或--parameters 显示模块所支持的参数。
-0 或--null 用 \0 代替 \n
-F 或--field=FIELD 仅打印提供的字段
-k 或--set-version=VERSION 用 VERSION 代替 `uname -r`
-b 或--basedir=DIR 使用 DIR 作为/lib/modules 的文件系统根目录 100ask_imx6ull
User Manual
-V 或--version 显示版本信息
-h 或--help 显示帮助信息
可以在开发板执行 modinfo -h 命令查看帮助信息,如下图:
下面是一个例子,用来显示 evbug 模块的信息:
[root@imx6ull:~]# modinfo evbug
5.3.1.5 modprobe:自动安装模块
modprobe 可载入指定的个别模块,或是载入一组相依的模块。modprobe
会根据 depmod 所产生的相依
关系,决定要载入哪些模块。若在载入过程中发生错误,则 modprobe 会卸载整组的模块。
insmod 与 modprobe 都是用于安装内核模块,差别是:modprobe 能够处理模块的依赖问题。比方你要加
载 a 模块,但是 a 要求系统先载入 b 模块时,直接用 insmod 加载可能会出现错误讯息。modprobe 会自动
加载 b,才加载 a,帮你处理这些依赖关系。
用法:
[root@imx6ull:~]# modprobe [options] [模块名]
开发板执行 modprobe -h 可以看到命令用法,如下图:
常用的命令解释如下:
-r 卸载模块
-f 名制安装或卸载
-r 删除模块(堆栈)或自动清洁
-D 显示依赖
操作示例,modprobe 自动解析依赖并安装相应模块:
注意 :使用modproe也会碰到insmod同样的内核版本不一致问题,可以使用 modprobe -f 强制安装
5.3.2 使用 rz 命令通过串口下载 Windows 文件到开发板上
注意 :rz命令不稳定,不可靠,在没有其他办法的情况下再用它。
可以使用 rz 命令,将 PC 上的文件传输到开发板。
首先使用串口工具登陆开发板,然后在开发板上输入rz命令,此时终端会提示等待接收 ,此时在
Mobaxterm里面鼠标右键会弹出一个选择框,点击Send file using Z-modem 来传输文件,如下图所示:
注意 : rz命令传输速率太小,适合传输小文件,不适合大文件,我们还是推荐nfs挂载的方式进行文件
的传输。
5.3.3 使用 sz 命令通过串口把开发板文件上传给 PC
注意 :sz命令不稳定,不可靠,在没有其他办法的情况下再用它。
开发板启动进入 Linux 后,先在串口中执行命令“sz <要发送的文件>”,然后按住 shift 键的同时,
用鼠标右键点击串口界面,选择“Receive file using Z-modem”,最后在弹出的文件框保存文件。
如下图所示:
第六章 构建系统
6.1 前言
Linux平台上有许多开源的嵌入式linux系统构建框架(框架的意思就是工具),这些框架极大的方便了
开发者进行嵌入式系统的定制化构建,目前比较常见的有OpenWrt, Buildroot, Yocto,等等。其中
Buildroot功能强大,使用简单,而且采用了类似于linux kernel的配置和编译框架,所以受到广大嵌入式
开发人员的欢迎。
本章重点介绍使用Buildroot_2019.02LTS版构建文件系统和u-boot, kernel镜像的方法,并从这三个
部分入手,描述如何使用Buildroot构建一个适合100ask_imx6ull系列开发板的嵌入式Linux系统。
在构建文件系统时,还简要介绍了如何通过Buildroot将QT5图形系统集成到文件系统中, 方便用户后
续开发QT5的应用程序。
无论你是使用VMware还是docker运行Ubuntu,都需要先在Ubuntu中安装很多软件,比如ssh服务、nfs服
务。确保Ubuntu能ping通外网(比如:ping news.qq.com)后,按以下章节配置Ubuntu:
《第 2 篇 环境搭建、Linux 基本操作、工具使用》
《第四章 使用 NAT 配置 Ubuntu 网络》
《第五章 安装软件及开发示例》
6.2 获取源码
源码的获取方法有2种:本地拷贝、在线下载。这2种方法请选择1种,不要同时选择2种方法。 强烈建议
使用在线下载,这种方式得到的源码肯定是最新的。
6.2.1 本地拷贝
注意 :网盘中没有为mini nand版单独提供源码,请用在线下载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值