文章目录
0 前言
既然选定了正点原子开发板与教程,那就一步一步的跟着正点原子教程学习。在学习过程中记录重点、疑惑点。
1.1 常用指令
make clean // 清理工程
mkdir lcd // 新建lcd目录
cp 01_chrdevbase/* lcd/ // 复制01_chrdevbase目录下的所有内容到lcd目录下
cp 01_chrdevbase/.vscode/ lcd -r // 复制01_chrdevbase目录下 .vscode/的所有内容到lcd目录下
mv 1_chrdevbase.code-workspace lcd.code-workspace // 修改文件名
cp arch/arm/boot/zImage /home/yixi/linux/tftpboot/ -f //从指定文件夹下复制文件到指定文件夹下
cp arch/arm/boot/dts/imx6ull-alientek-emmc.dtb /home/yixi/linux/tftpboot/ -f //从指定文件夹下复制文件到指定文件夹下
1.1.1 文件相关命令
-
创建新文件命令— —touch
touch 不仅仅可以用来创建文本文档,其它类型的文档也可以创建,命令格式如下:touch [参数] [文件名]
使用 touch 创建文件的时候,如果[文件名]的文件不存在,那就直接创建一个以[文件名]命名的文件,如果[文件名]文件存在的话就仅仅修改一下此文件的最后修改日期,常用的命令参数如下:
-a 只更改存取时间。
-c 不建立任何文件。
-d< 日期> 使用指定的日期,而并非现在日期。
-t< 时间> 使用指定的时间,而并非现在时间。
举例:touch test
-
文件夹创建命令— —mkdir
创建文件夹使用命令 mkdir,命令格式如下:mkdir [参数] [文件夹名目录名]
主要参数如下:
-p 如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录。
举例:mkdir temp
-
文件及目录删除命令 — — rm
要删除一个文件或者文件夹可以使用命令 rm,此命令可以完成删除一个文件或者多个文件及文件夹,它可以实现递归删除。对于链接文件( 类似Windows 下的快捷方式文件),只删除链接,原文件保持不变。此命令格式如下:rm [参数] [目的文件或文件夹目录名]
命令主要参数如下:
-d 直接把要删除的目录的硬连接数据删成 0,删除该目录。
-f 强制删除文件和文件夹(目录)。
-i 删除文件或者文件夹(目录)之前先询问用户。
-r 递归删除,指定文件夹(目录)下的所有文件和子文件夹全部删除掉。
-v 显示删除过程。
举例:rm temp -rf
-
文件夹( 目录) 删除命令— —rmdir
使用“rm”删除文件夹,需要加上参数“-rf”,其实 Linux 提供了直接删除文件夹(目录)的命令—rmdir,它可以不加任何参数的删除掉指定的文件夹(目录),
命令格式如下:rmdir [参数] [文件夹(目录)]
命令主要参数如下:
-p 删除指定的文件夹(目录)以后,若上层文件夹(目录)为空文件夹(目录)的话就将其一起删除。
举例:rmdir temp
-
解压缩命令 tar
压缩和解压使用命令tar,tar 将压缩和解压缩集合在一起,使用不同的参数即可,命令格式如下:tar [参数] [压缩文件名] [被压缩文件名]
常用参数如下:
-c 创建新的压缩文件。
-C< 目的目录> 切换到指定的目录。
-f< 备份文件> 指定压缩文件。
-j 用 tar 生成压缩文件,然后用 bz2 进行压缩。
-k 解开备份文件时,不覆盖已有的文件。
-m 还原文件时,不变更文件的更改时间。
-r 新增文件到已存在的备份文件的结尾部分。
-t 列出备份文件内容。
-v 显示指令执行过程。
-w 遭遇问题时先询问用户。
-x 从备份文件中释放文件,也就是解压缩文件。
-z 用 tar 生成压缩文件,用 gz 压缩。
-Z 用 tar 生成压缩文件,用 compress 压缩。
使用 tar 如下两个命令将 test1 文件夹压缩为 .bz2 和 .gz 这两个格式。下面两行命令中,-vcjf 表示创建 .bz2 格式的压缩文件,-vczf 表示创建 .gz 格式的压缩文件:tar -vcjf test1.tar.bz2 test1 tar -vczf test1.tar.gz test1
使用tar 如下所示两行命令完成 .bz2 和 .gz 格式文件的解压缩。下面两行命令中,-vxjf 用来完成 .bz2 格式压缩文件的解压,-vxzf 用来完成 .gz 格式压缩文件的解压。
tar -vxjf test1.tar.bz2 tar -vxzf test2.tar.gz
1.2 常用操作
1.2.1 查看SD卡在设备
ls /dev/sd*
1.2.2 .bin文件烧录到SD卡
正点原子专门编写了一个软件来将编译出来的.bin 文件烧写到 SD 卡中,这个软件叫做 imxdownload,软件存放在开发板光盘中,路径为:开发板光盘->5、开发工具->2、Ubuntu 下裸机烧写软件->imxdownload,imxdownlaod 只能在 Ubuntu 下使用,使用步骤如下:
-
将 imxdownload 拷贝到工程目录下
使用FileZilla软件将Windows下的imxdownload 拷贝到Ubuntu相应的工程目录下。 -
给予 imxdownload 可执行权限
chmod 777 imxdownload //给予 imxdownload 可执行权限,执行该命令后imxdowanload由白色变为绿色
-
将.bin文件烧录到SD卡
./imxdownload u-boot.bin /dev/sdd //烧写到 SD 卡中(注意查看自己的SD卡号),不能烧写到/dev/sda 或 sda1 里面
1.2.3 在VScode工程中排除不需要的文件或文件夹
参考教程《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》第三十一章 VScode工程创建
1.2.4 修改 bootargs 变量
参考《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.8》 38.3 根文件系统初步测试
1.2.5 修改 bootcmd 变量
参考《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.8》 33.4.2 从网络启动 Linux 系统
1.2.6 将Linux镜像文件zImage和设备树文件 xxx.dtb 复制到开发板网络启动目录
cp arch/arm/boot/zImage /home/yixi/linux/tftpboot/ -f
cp arch/arm/boot/dts/imx6ull-alientek-emmc.dtb /home/yixi/linux/tftpboot/ -f
3 系统移植篇
第三十章 U-Boot使用实验
30.4.4 网络操作命令
- tftp命令
在Ubuntu中安装并配置好环境后,在开发板串口测试,出现如下问题
使用print命令可以得到如下
说明开发板配置的服务器IP地址是192.168.3.122
在ubuntu中查看IP地址
所以该问题是开发板配置的服务器IP地址不对,需要重新配置
最后操作成功
第三十三章 U-Boot 移植
33.2.7 网络驱动修改
在完成前面的移植修改后,网络驱动也修改后,进行测试时,有如下问题:
-
教程中只启动了u-boot,而我的开发板不仅启动了u-boot,还启动了linux内核zImage,这可能时我之前做测试时遗留的,该如何不启动zmage?
-
启动u-boot后,网络分配是DHCP模式,如何修改
4 第四篇 ARM Linux驱动开发篇
第四十章 字符设备驱动开发
40.4.4 运行测试
在执行 modprobe chrdevbase.ko
指令时出现如下问题
原因是教程 Linux 内核版本是4.1.15,但开发板烧录的 Linux 内核版本是4.1.15+,从开发板启动时的信息可以看到,
所以,最后将文件夹4.1.15改为4.1.15+