环境配置
一.安装配置TFTP服务端
安装TFTP服务
book@100ask:~$ sudo apt-get install tftp-hpa tftpd-hpa
然后,创建TFTP服务器工作目录,并打开TFTP服务配置文件,如下:
book@100ask:~$ mkdir -p /home/book/tftpboot
book@100ask:~$ chmod 777 /home/book/tftpboot
book@100ask:~$ sudo vim /etc/default/tftpd-hpa
在配置文件/etc/default/tftpd-hpa中,添加以下字段:
TFTP_DIRECTORY="/home/book/tftpboot"
TFTP_OPTIONS="-l -c -s"
最后,重启TFTP服务:
book@100ask:~$ sudo service tftpd-hpa restart
然后开在开发板设置启动参数,如设置
set bootcmd tftp 0x41000000 uImage \; tftp 0x42000000 exynos4412-fs4412.dtb \; bootm
0x41000000 - 0x42000000
这样重启开发板就会自动加载内核和dtb设备文件,启动
比如我再tftp目录新建一个文件touch a.txt
然后再arm板上进入相应目录输入
tftp -g -r a.text 192.168.0.103(主机ip),这样就直接完成了文件传输
二.安装并配置NFS服务
NFS即网络文件系统,允许开发板直接通过网络挂载PC机中的文件夹。下面介绍在ubuntu上的NFS服务安装和配置。
首先,执行以下命令安装NFS服务:
book@100ask:~$ sudo apt-get install nfs-kernel-server
然后编辑/etc/exports文件,添加NFS服务导出的工作目录:
book@100ask:~$ sudo vim /etc/exports
添加NFS目录:下面以/home/book/rootfs为例,将其添加到/etc/exports文件中, 如下:
/home/book/nfs_rootfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
最后,重启NFS服务:
book@100ask:~$ sudo service nfs-kernel-server restart
如果一切正常,可以在ubuntu中测试NFS服务:
book@100ask:~$ sudo mount -t nfs 127.0.0.1:/home/book/nfs_rootfs /mnt
比如我想通过busybox制作stm32mp根文件系统,测试完成后可以通过这个命令进行挂载,但是我在调试的时候发现
busybox mount -t nfs -o nolock 192.168.0.105:/work/nfs_root/first_fs /mnt
前面必须加busybox(v1.29.2版本)才能运行mount命令
三.安装sshfs和挂载远程终端文件夹
1)sudo apt-get install sshfs
2)远程连接终端
ssh board@boardIP;
3)挂载远程文件夹
ssfs board@boardIP:boardPATH mount_path
注意在使用的时候,如果使用了sudo ,那么在访问挂载文件夹的时候,只能使用管理员权限去访问文件夹。
4.解除挂载文件夹
sudo umount -v mount_path
5.调试发现,STM32MP157的编译器每次需要执行一次脚本才生效,为避免每次输入命令,可以在系统启动脚本添加这执行脚本的命令,source .sh PATH,这样就不用每次输入命令了
/etc/profile:系统配置文件,用户登录时读取一次
/etc/bash.bashrc:系统配置文件 ,用户登录时读取一次,每次打开一个新终端会话时读取一次
~/.profile(~/.bash_profile、~/.bash_login):用户配置文件,用户登录时读取一次
~/.bashrc:用户配置文件,用户登录时读取一次,每次打开一个新终端会话时读取一次
有几点提请注意
系统配置文件作用于全局,而用户配置文件仅针对当前登录的用户
先读取系统配置文件,再读取用户配置文件,用户配置文件的变量和表达式等都继承自系统配置文件