初级会员 
  
	- 积分
 - 187
 
        - 金钱
 - 187 
 
       - 注册时间
 - 2020-11-11
 
      - 在线时间
 - 27 小时
 
 
 
 | 
 
1. 串口配置 
将用户名加入uucp用户组内,这样普通用户就可以使用串口了。直接使用以下命令添加即可: 
- sudo usermod -aG uucp $USER
 
  复制代码 2. 安装依赖 
这是我在编译内核、buildroot、uboot时需要安装的依赖,要根据具体报错信息安装。 
- sudo pacman -Sy uboot-tools cpio
 
  复制代码 3. 交叉编译工具 
与Ubuntu系统下安装步骤相同。 
4. stm32wrapper4dbg 工具安装 
与Ubuntu系统下安装步骤相同。 
5. 安装NFS服务 
首先安装NFS服务,命令如下: 
- sudo pacman -Sy nfs-utils rpcbind
 
  复制代码 新建文件夹nfs,在 nfs 配置文件/etc/exports中最后添加 
- /home/lituo/linux/nfs *(rw,sync,no_root_squash)
 
  复制代码 然后重启服务 
- //开机启动
 
 - systemctl enable rpcbind.service
 
 - systemctl enable nfs-server.service
 
 - //启动服务
 
 - systemctl start rpcbind.service
 
 - systemctl start nfs-server.service
 
 - //查看服务
 
 - systemctl status rpcbind
 
 - systemctl status nfs-server
 
  复制代码 在一些嵌入式场景, 有的开发板还只支持nfsv2, 导致挂载失败。 
修改 sudo vim /etc/nfs.conf 文件,添加 vers2=y,然后重启 sudo systemctl restart nfs-server.service 
使用命令sudo cat /proc/fs/nfsd/versions可查看支持的版本,输出如下 
+2 +3 +4 +4.1 +4.2 
6. 安装tftp服务 
和 NFS 一样, TFTP 也需要一个文件夹来存放文件,在用户目录下新建一个目录,命令如下: 
- mkdir /home/lituo/linux/tftpboot
 
 - chmod 777 /home/lituo/linux/tftpboot
 
  复制代码 这样我就在我的电脑上创建了一个名为 tftpboot 的目录(文件夹),路径为/home/lituo/linux/tftpboot。注意!我们要给 tftpboot 文件夹权限,否则的话 uboot 不能从 tftpboot 文件夹里面下载文件。 
最后配置 tftp,新建文件/etc/hosts.allow,如果没有的话自行创建,然后在里面输入如下内容: 
修改sudo vim /etc/conf.d/tftpd文件中的目录为实际目录 
- TFTPD_ARGS="-l -c -s /home/lituo/linux/tftpboot"
 
  复制代码 完了以后启动 tftp 服务,命令如下: 
- sudo systemctl enable tftpd.service
 
 - sudo systemctl start tftpd.service
 
 - sudo systemctl status tftpd.service
 
 - sudo systemctl restart tftpd.service
 
  复制代码 7. 遇到的问题 
uboot编译时出现如下报错: 
- /usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
 
 - collect2: 错误:ld 返回 1
 
 - make[2]: *** [scripts/Makefile.host:106:scripts/dtc/dtc] 错误 1
 
 - make[1]: *** [scripts/Makefile.build:432:scripts/dtc] 错误 2
 
 - make: *** [Makefile:554:scripts] 错误 2
 
  复制代码 意思是yylloc首先在scripts/dtc/dtc-lexer.lex.c中定义,文件scripts/dtc/dtc-parser.tab.c:中重定义了, 
解决办法是将scripts/dtc/dtc-parser.tab.c文件中大约1293行改为extern YYLTYPE yylloc即可。 
配置过程简单记录一下。下面是我的系统信息 
 
 |   
 
 
 
 |