《linux 相关工具record》

简介:

今天翻到之前学习的记录,整理了一下,但还是有点乱,发出来记录一下。主要的是ftp,nfs在linux上的部署方法,五、六、七是针对于nxp平台arm32位的一个soc实践记录,其中记录了kernel zImage 在emmc相关内容,有用也没用。一、repo相关,是一个链接介绍了repo,git管理代码的方式,前几天更新了一个nxp上repo上传代码的步骤,可以参考:
https://blog.csdn.net/m0_57123509/article/details/121808895

一:repo相关

https://blog.csdn.net/wh_19910525/article/details/37334889?locationNum=3&fps=1

二:windows 和 linux 文件ftp互传

  1. linux 下安装ftp服务
    sudo apt-get install vsftpd
    sudo vi /etc/init.d/vsftpd.conf
    修改为 local_enable = YES
    write_enable = YES

    安装:sshd服务
    sudo apt-get install openssh-server
    service sshd status

2.window下安装filezilla.exe
新建站点:ipcom

三:安装nfs

sudo apt-get nfs-kernel-server portmap
mkdir -d linux/nfs

sudo vi /etc/exports

添加/home/zhaoyy/linux/nfs *(rw,sync,no_root_squash)

/etc/init.d/nfs-kernel-server restart

四:安装ssh,使用默认配置/etc/ssh/sshd-config/

安装:sshd服务
	sudo apt-get install openssh-server
	service sshd status

五:TFTP

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd
mkdir /home/zyy/tftpdboot
chmod 777 /home/zyy/tftpdboot
##vi /etc/xinetd.d/tftp

server tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/zyy/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

sudo service tftpd-hpa start	
vi /etc/default/tftpd-hpa

#/etc/default/tftpd-hpa
TFTP_USERNAME=“tftp”
TFTP_DIRECTORY="/home/zyy/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"

sudo service tftpd-hpa restart

chmod 777 zImage
tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

tftpboot 80800000 zImage

六:交叉编译工具

交叉编译链是运行在x86平台上的arm平台编译器。
https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/

七:内存操作命令

1)显示内存值
md [b、w、l ] addr length
md.b b 8000000 14(16进制)

2)修改指定地址的内存值
nm [bwl] addr

  1. mm 修改指定内存地址值
    与 nm命令一样,但是修改的内存地址会递增,nm不会

4) nw 填充指定内存地址的数据
nw [bwl] addr value count

  1. cp 拷贝一段内存数据到另一段内存中
    cp [bwl] source target count

  2. cmp 比较两端内存数据是否相等
    cmp [bwl] addr1 addr2 count

网络操作命令 目的使用网络功能做调试,uboot支持dhcp tftp ping nfs
与网络相关的环境变量:
ipaddr 开发板ip,可以不设置,通过dhcp从路由器上获取
ethaddr 开发板的mac,一定要设置
gatewayip 网关地址
netmask 子网掩码
serverip 服务器ip地址

1.nfs
nfs [loadAddress] [[hostIPaddr:]bootfilename]
nfs 80800000 192.168.1.106:/home/zyy/nfs/zImage

2.tftp
tftp 80800000 zImage 不需要ip
tftp 83000000 imx6ull-alientek-emmc.dtb
bootz 80800000 – 83000000 不需要
命令运行结果如图 30.4.9.2 所示

  1. emmc 、sd 操作命令
    mmc info 当前mmc 信息
    mmc rescan 扫描硬件当前的所有mmc设备,包括emmc和sd卡
    mmc list 查看当前板子上一共有几个mmc设备
    mmc dev 切换mmc设备
    mmc part 查看mmc设备的分区,如果mmc有系统的话,第一个分区为uboot,第二个为kernel,dtb,第三个分区为linux根文件系统。
    对于sd而言,默认是一个分区 ,前面uboot就是烧写到这个分区里面,后面会讲解如何将创建第二个分区,并将kernel和根文件系统放到第二个分区中。
    mmc read 读取mmc设备的数据 mmc read addr blk# cnt
    mmc write 将数据写到mmc设备里
    通过tftp 在uboot中,用mmc write更新sd里的uboot.img
    1. 将编译好的uboot拷贝到tftpboot目录,tftp 80800000 u-boot.img
      2. mmc dev 0 0
      mmc write 80800000 2 33E 2表示从sd卡第一个分区,第二个分区块,33E表示
      uboot.img的大小 33E x 512 =
      3. reboot
      通过tftp 在uboot中,用mmc write更新emmc里的uboot.img
      mmc dev 1 0
      tftp 80800000 u-boot.img 到dram中
      mmc write 80800000 2 33E
      mmc part 1 1 0 0 分区配置,emmc需要这一步
      注意,千万不要写到sd卡或者emmc的前两个块() 扇区) ,里面保存着分区表。

mmc erase ,擦除指定块
mmc erase blk#cnt

  1. fat 格式文件操作命令
    fatinfo 查看指定存储设备分区的文件系统信息
    fatinfo [<dev[:part]>]
    fatinfo emmc 1:1
    fatls 查看fat格式设备的目录和文件,
    fatls [<dev[:part]>] [dir]
    fatls emmc 1:1
    fsttype 查看mmc设备某个分区的文件系统格式
    fstype :
    fstype mmc 1:0
    fatload 将指定文件读取到dram中
    fatload [<dev[:part]> [ [ [bytes [pos]]]]]
    fatload mmc 1:1 80800000 zImage
    fatwrite
    fatwrite <dev[:part]>
    从dram指定地址读取这么大bytes的filename到mmc 1 :1中。

    tftp 80800000 zImage
    fatwrite mmc 1:1 80800000 zImage 0x5c2720

  2. ext格式文件系统操作命令
    uboot有ext2和ext4 两种格式,常用命令ext2load、ext2ls、ext4load、ext4ls。
    ext4ls mmc 1:2

6.nand 操作命令

7 boot操作命令
uboot的本质是引导linux,所以有些命令用来启动linux,常用命令有bootz,bootm,boot
A.bootz命令,启动linux,要将linux系统镜像拷贝到dram中,有设备树,也将设备数拷贝到DRAM中。两种copy方式,1. 可以从emmc和nand中,将linux文件拷贝到dram中,
tftp 80800000 zImage
tftp 83000000 imx6ull-alientek-emmc.dtb 将文件下载到dram中,

fatwrite mmc 1:1 80800000 zImage 0x5c2720 将文件从dram中写到mmc中,
fatwrite mmc 1:1 83000000 imx6ull-alientek-emmc.dtb 0x35969

fatload mmc 1:1 80800000 zImage 将文件从emmc中load 到dram中
fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb 
bootz 80800000 - 83000000 启动


2.也可以通过nfs和tftp将设备数和镜像文件拷贝到sdarm中。
bootz [addr [initrd[:size]] [fdt]]

tftp 80800000 zImage
tftp 83000000 imx6ull-alientek-emmc.dtb
bootz 80800000 – 83000000

B.
bootm和booz功能类似,如果不使用设备数,
bootm addr —— zIMAGE在dram中的地址
		    如果使用设备树
和booz一样 bootm addr 
    bootm [addr [initrd[:size]] [fdt]]


C.boot 也是用来启动linux系统,但是boot回去定bootcmd来启动linux系统,

bootcmd是一个很重要的命令,()引导命令),比如从tftp启动,可以设置
setenv bootcmd ‘tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000’
saveenv
boot

从emmc启动
setenv bootcmd 'fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ullalientek_emmc.dtb; bootz 80800000 - 83000000'
savenev
boot
  1. reset go run

    setenv mybootemmc ‘fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ullalientek-emmc.dtb;bootz 80800000 - 83000000’
    setenv mybootnand ‘nand read 80800000 4000000 800000;nand read 83000000 6000000 100000;bootz 80800000 - 83000000’
    setenv mybootnet ‘tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000’
    saveenv

run mybootemmc
run mytoobnand
run mybootnet

mtest 内存测试命令
测试ddr 
mtest [start [end [pattern [iterations]]]]
mtest 80000000 80001000

9.uboot设置ip
setenv ipaddr 192.168.1.50
setenv ethaddr 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

setenv bootargs ‘console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw’
setenv bootcmd ‘tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000’
saveenv

bootargs=console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw

setenv bootargs ‘console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.1.106:/home/zyy/nfs/ubuntu-rootfs rw ip=192.168.1.50:192.168.1.106:192.168.1.1:255.255.255.0::eth0:off’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值