当前位置: 代码迷 >> 综合 >> uboot+linux常用指令 - 工程笔记
  详细解决方案

uboot+linux常用指令 - 工程笔记

热度:0   发布时间:2023-12-12 15:13:26.0

目录

  • uboot案例
    • 详细解释
    • help
    • bdinfo
    • printenv
    • setenv
    • saveenv
    • 自定义环境变量
    • md 命令
    • nm 修改指定地址数据信息
    • mm
    • cp
    • cmp 比较内存数据
  • 网络操作命令
    • ping
      • 主机地址设置
      • 虚拟机设置
    • 开发板网络配置IP
    • dhcp
    • nfs
    • ssh
    • tftp 开发 +网络启动uboot
    • emmc 和 sd卡
    • mmc read addr blk# cnt
    • mmc write addr blk# cnt
    • fatinfo- fatls-fatload 格式文件系统操作命令
    • fatload 加载文件+ 启动bootz
  • uboot 源码详解
    • configs是uboot 的默认配置文件
    • disk 磁盘不管
    • drivers 驱动
    • dts 设备树
    • 移植u-boot
    • uboot 顶层Makefile分析(太难了)
      • 版本号
      • Makefile 编译过程
    • bootcmd----bootargs环境变量
  • uboot图形化配置
  • 常用命令行熟悉
    • shell 脚本使用的3中方法
    • 环境变量添加
    • ls命令
    • cd 进入相应的目录
    • pwd 显示当前进去的目录
    • uname 系统名字
    • clear 只是移上去
    • cat 显示文件内容
    • 安装软件 apt-get install
    • sudo su 切换root
    • 创建文件touch
    • 拷贝文件 cp
    • rm 删除命令
    • rmdir 删除文件夹(专有)
    • 创建一个文件夹mkdir
    • 网络配置ifconfig
    • 重新设置地址sudo ifconfig +网卡名称+地址
    • 移动文件 mv 目标 + 移动地址
    • reboot 重启系统
    • 关机命令 poweroff
    • 系统帮助命令 man help
    • 磁盘同步 sync
    • find 查找文件地址
    • grep 查找文件内容
    • 查看文件大小 du + 内容 + -sh
    • 空间磁盘df
    • 空间磁盘du
    • gedit 打开某个文件
    • 查看进程 ps
    • file
    • 软件安装 sudo apt-get install git
    • 如何安装软件包 deb
    • 自己下载包
    • 前提有个U盘
    • mount 挂载
    • umount 卸载
    • 磁盘分区 fdisk
    • 压缩命令
      • 使用gzip命令压缩
      • bzidp2 命令压缩
      • tar 打包工具
    • linux 官网www.kernel.org
    • 解压缩
  • 用户和用户组内容
    • 添加用户
      • 图形
    • 改变文件权限 chmod 指令
    • chown
    • 符号链接和硬链接
    • vim 使用
    • linux c编程
    • gcc
    • Makefile
    • 写一个Makefile
    • 执行Makefile
    • Makefile 语法
      • 安装FTP
      • NFS和SSH

uboot案例

?       - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
bmode   - sd1|sd2|qspi1|normal|usb|sata|ecspi1:0|ecspi1:1|ecspi1:2|ecspi1:3|esdhc1|esdhc2|esdhc3|esdhc4 [noreset]
bmp     - manipulate BMP image data
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz   - boot Linux zImage image from memory
clocks  - display clocks
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
dcache  - enable or disable data cache
dhcp    - boot image via network using DHCP/TFTP protocol
dm      - Driver model low level access
echo    - echo args to console
editenv - edit environment variable
env     - environment handling commands
erase   - erase FLASH memory
exit    - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls  - list files in a directory (default /)
ext4size- determine a file's size
ext4write- create a file in the root directory
false   - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatsize - determine a file's size
fatwrite- write file into a dos filesystem
fdt     - flattened device tree utility commands
flinfo  - print FLASH memory information
fstype  - Look up a filesystem type
fuse    - Fuse sub-system
go      - start application at address 'addr'
gpio    - query and control gpio pins
help    - print command description/usage
i2c     - I2C sub-system
icache  - enable or disable instruction cache
iminfo  - print header information for application image
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
load    - load binary file from a filesystem
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
md      - memory display
mdio    - MDIO utility commands
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - display MMC info
mtest   - simple RAM read/write test
mw      - memory write (fill)
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
pmic    - PMIC
printenv- print environment variables
protect - enable or disable FLASH write protection
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
save    - save file to a filesystem
saveenv - save environment variables to persistent storage
setenv  - set environment variables
setexpr - set environment variable as the result of eval expression
sf      - SPI flash sub-system
showvar - print local hushshell variables
size    - determine a file's size
sleep   - delay execution for some time
source  - run script from memory
test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
true    - do nothing, successfully
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version

详细解释

help

查看命令帮助信息?

bdinfo

信息查询
在这里插入图片描述

printenv

在这里插入图片描述

setenv

设置环境变量

saveenv

在这里插入图片描述

自定义环境变量

md 命令

显示内存值
md[.b,.w,.l] address [#pf objects]
在这里插入图片描述
在这里插入图片描述

nm 修改指定地址数据信息

nm[.b,.w,.l] address [#pf objects]
在这里插入图片描述

mm

内存地址会加
在这里插入图片描述

cp

内存拷贝
cp[.b,.w,.l] 源 目标 长度
在这里插入图片描述

cmp 比较内存数据

cmp[.b,.w,.l] add1 addr2 conut
在这里插入图片描述

网络操作命令

ping

主机地址设置

在这里插入图片描述

虚拟机设置

桥接模式
在这里插入图片描述
设置桥接网卡参数
在这里插入图片描述
ubuntu设置网络地址
在这里插入图片描述

开发板网络配置IP

setenv ipaddr 192.168.1.50
setenv ethaddt 00:04:9f:04:d2:35
setenv  gatewayip 192.168.1.1
setenv  netmask 255.255.255.0
setenv serverip 192.168.1.250
saveenv

然后这边就可以随便ping通了
在这里插入图片描述

dhcp

nfs

sudo apt-get install nfs-kernel-server rpcbind
sudo vi /etc/exports

打开/etc/exports 以后在后面添加如下所示内容:
/home/zuozhongkai/linux/nfs *(rw,sync,no_root_squash)
在这里插入图片描述
在这里插入图片描述

ssh

sudo apt-get install openssh-server

tftp 开发 +网络启动uboot

sudo apt-get install tftp-hpa tftpd-hpa

在这里插入图片描述
在这里插入图片描述
启动中!!!
在这里插入图片描述
启动完成!!
在这里插入图片描述

emmc 和 sd卡

mmc info
在这里插入图片描述
mmc rescan
mmc list
mmc dev x 切换
mmc part
在这里插入图片描述

mmc read addr blk# cnt

mmc read 80800000 600 10
从EMMC 的第1536(0x600)个块读取 16个数据到addr处

在这里插入图片描述

mmc write addr blk# cnt

可使用升级
在这里插入图片描述
mmc 擦除一般很少用

fatinfo- fatls-fatload 格式文件系统操作命令

fatinfo mmc 0:1

fatls mmc 1:1
在这里插入图片描述

fatload 加载文件+ 启动bootz

fatload mmc 1:1 80800000 zimage //将zimage 下载到ddr的 80800000
fatload mmc 1:1 83000000 imx6ull-14x14-emmc-4.3-480x272-c.dtb
bootz 80800000 - 83000000

uboot 源码详解

在这里插入图片描述
arch\arm\cpu\u-boot.lds是整个Uboot的链接脚本
board\freescale\mx6ullevk

configs是uboot 的默认配置文件

在这里插入图片描述
在这里插入图片描述

disk 磁盘不管

drivers 驱动

dts 设备树

。。。

移植u-boot

重点关注
alientek_uboot\board\freescale
\alientek_uboot\configs

/.config
在这里插入图片描述
arch-y 是编译选项

uboot 顶层Makefile分析(太难了)

版本号

在这里插入图片描述

Makefile 编译过程

1 #!/bin/bash
2 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

在这里插入图片描述

3 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_de fconfig

4 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
在这里插入图片描述

bootcmd----bootargs环境变量

在这里插入图片描述
CONFIG_BOOTCOMMAND 可以设置bootcmd的值
CONFIG_BOOTARGS也可以设置bootargs的值
在这里插入图片描述

uboot图形化配置

找到uboot 根目录下面
make mx6ull_XXX_emmc_defconfig //默认配置
输入 make menuconfig 指令
在这里插入图片描述

常用命令行熟悉

// An highlighted block
var foo = 'bar';

shell 脚本使用的3中方法

在这里插入图片描述
退出sh 命令 exit 然后回车

环境变量添加

/etc/environment是设置整个系统的环境而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。

sudo vi /etc/profile
打开/etc/profile 以后,在最后面输入如下所示内容:
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
在这里插入图片描述

ls命令

常用:
显示当前的目标

  • -l 显示目录的详细信息
    在这里插入图片描述
  • -a 显示一下隐藏的文件
    在这里插入图片描述

cd 进入相应的目录

pwd 显示当前进去的目录

在这里插入图片描述

uname 系统名字

在这里插入图片描述

clear 只是移上去

在这里插入图片描述

cat 显示文件内容

安装软件 apt-get install

在这里插入图片描述

sudo su 切换root

在这里插入图片描述

创建文件touch

在这里插入图片描述

拷贝文件 cp

在这里插入图片描述

rm 删除命令

-f 不管什么属性 都可以删除
-r 删除文件夹

rmdir 删除文件夹(专有)

创建一个文件夹mkdir

在这里插入图片描述

网络配置ifconfig

在这里插入图片描述
该网卡名称为ens33名字
lo 本地回环地址

  • a 所有网卡

重新设置地址sudo ifconfig +网卡名称+地址

移动文件 mv 目标 + 移动地址

在这里插入图片描述

reboot 重启系统

关机命令 poweroff

系统帮助命令 man help

在这里插入图片描述

磁盘同步 sync

比如 U盘插入 写入数据 可能储存缓存区

find 查找文件地址

在这里插入图片描述

grep 查找文件内容

查看文件大小 du + 内容 + -sh

在这里插入图片描述
-sh 以人类可读

空间磁盘df

在这里插入图片描述

空间磁盘du

du -h --max-depth=1

gedit 打开某个文件

查看进程 ps

ps -aux 所有程序

file

在这里插入图片描述

软件安装 sudo apt-get install git

在这里插入图片描述

如何安装软件包 deb

sudo dpkg -i XXXX.deb
安装包
在这里插入图片描述

自己下载包

一般都是Make
Make install

前提有个U盘

在这里插入图片描述
sdb 是设备
sdb 1是U盘的第一个分区

mount 挂载

mount 当前文件 挂载到 目标地址
当前有中文内容是
sudo mount -o iocharset=utf8 原地址 + 目标地址

umount 卸载

磁盘分区 fdisk

在这里插入图片描述

压缩命令

这边可以下载一个软件7ZIP
linux下常用的压缩扩展名 .tar .tar.bz2 .tar.gz

使用gzip命令压缩

gzip xxx
gzip -t xxx.gz 解压缩

gzip 压缩文件夹
gzip -r 对文件文件进行

bzidp2 命令压缩

zidp2 -z xxx //压缩
bzip2 -d xxx.gz //解压缩

tar 打包工具

tar -vcf 目标文件 to 压缩文件
例如:tar -vcf test test.tar
tar -vxf test.tar 解包

详细参数
-f
-c 创建新归档,创建压缩文件
-x 从图档中解出文件,解压缩
-j 使用bzip2格式压缩
-z 使用gzip 格式进行压缩
-v 打印出命令执行的过程

linux 官网www.kernel.org

在这里插入图片描述

解压缩

用户和用户组内容

linux 用户组记录在/etc/passwd这个文件夹
在这里插入图片描述

linux 用户密码记录在/etc/shadow这个文件内
在这里插入图片描述

添加用户

图形

sudo apt-get install gnome-system-tools
也可以命令 百度 adduser

改变文件权限 chmod 指令

chown

符号链接和硬链接

ln --help
是多个文件指向一个inode
具有相同的多个文件互为硬链接文件
对于硬链接,只有删除源文件已经对应的所有硬链接文件实体文件才能被删除。

在这里插入图片描述
修改任何一个文件 其他的文件都会被修改
硬链接 不能跨U盘

  • 软连接其实是快捷键
    注意 :软连接要输入绝对路径

vim 使用

sudo apt-get install vim
输入 i
x 保存并退出
q 退出
w 保存

删除行 dd
u 撤销
… 重新当前操作
yy 复制光标所在行
nyy 复制光标一下n 个所在行
p q

linux c编程

设置vi 编译器tab 行
/etc/vim/vimrc
set ts=4
set nu

gcc

-c 只编译不连接
-o 编译后输出文件名称
-O 加优化

Makefile

什么是Makefile呢???
其实就是编译怎么去编译的一个软件
场景:make工具所使用的文件,Makefile指明了编译的规则
假如没有Makefile gcc x1.c x2.c x2.c main
在这里插入图片描述
工具Makefile执行的原则是
没有被编译过 那么.c都要被编译成链接
有个个别文件修改了,那么我们就编译所有引用的C文件并且编译成可执行文件

写一个Makefile

未完成

执行Makefile

输入make

Makefile 语法

目标 :依赖文件集合
命令一
命令二

安装FTP

sudo apt-get install vsftpd
sudo vi /etc/vsftpd.conf
打开以后 vsftpd.conf 文件以后找到如下两行:
local_enable=YES
write_enable=YES

NFS和SSH