本文已参与「新人创作礼」活动,一起开启掘金创作之路。
环境搭建小记
问题集锦
1、nfs无法挂载的问题
原因:ubuntu16之后nfs默认使用nfs的版本为3,4
解决:原子用户手册中/【正点原子】I.MX6U网络环境TFTP&NFS搭建手册V1.3.1/第四章 4.3 NFS挂载文件系统
具体:
sudo vim /etc/default/nfs-kernel-server
更改内容为如下所示:
# Number of servers to start up
#RPCNFSDCOUNT=8
RPCNFSDCOUNT="-V 2 8"
# Runtime priority of server (see nice(1))
RPCNFSDPRIORITY=0
# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information,
# see rpc.mountd(8) or http://wiki.debian.org/SecuringNFS
# To disable NFSv4 on the server, specify '--no-nfs-version 4' here
RPCMOUNTDOPTS="-V 2 --manage-gids"
# Do you want to start the svcgssd daemon? It is only required for Kerberos
# exports. Valid alternatives are "yes" and "no"; the default is "no".
NEED_SVCGSSD=""
# Options for rpc.svcgssd.
RPCSVCGSSDOPTS="--nfs-version 2,3,4 --debug --syslog"
重新启动nfs服务
sudo service nfs-kernel-server restart
如果系统比较新,如使用22.04,则还需要参考下面的文章,具体修改文件 /etc/nfs.conf:
imx6ull 开发板uboot无法通过nfs下载ubuntu22虚拟机中共享文件
解决Ubuntu 22.04 LTS作为nfs server时根文件系统挂载失败的问题
2、ubuntu20.04 编译uboot、linux内核时报multiple definition of `yylloc‘ 错误
原因: gcc版本过高导致的
解决:[ubuntu20.04 编译uboot、linux内核时报multiple definition of yylloc‘ 错误](https://blog.csdn.net/qq_39809339/article/details/126653961?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1-126653961-blog-126191871.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1-126653961-blog-126191871.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=1 "ubuntu20.04 编译uboot、linux内核时报multiple definition of yylloc‘ 错误")****
3、内核编译没有生成zImage
原因: 缺少库
解决: 正点原子用户手册/常见问题汇总/第六章 内核移植问题/6.2.5 执行脚本没有生成zImage,只有Image
具体:
sudo apt-get install lzop
4、内核编译make menuconfig报错,<command-line>: fatal error: curses.h: 没有那个文件或目录
原因: 缺少库
解决:内核编译make menuconfig报错,<command-line>: fatal error: curses.h: 没有那个文件或目录****
具体:
sudo apt-get install libncurses5-dev
驱动开发小记
原子QT开发中led文件位置
- 原子的led设备在内核编译的时候使用了linux自带的led驱动,所以最后编译到了平台设备下
将驱动编译进内核中
设备树
原子出厂设备树使用:以7寸屏为例
imx6ull-14x14-emmc-7-1024x600-c.dts ——> imx6ull-14x14-evk-emmc.dts——> imx6ull-14x14-evk.dts ——> imx6ull.dtsi
QT学习小记
关闭原子初始自带的界面
初始运行自己的Demo
- www.openedv.com/forum.php?m…
- 搭建好环境后Qt编译后的文件会放到Opt对应的工程名目录下
问题集锦
depmod报错
- 原子 IMX6ull 2021.06.16虚拟机 depmod报错
编辑
- 因为在lib/modules下缺少了文件,正点院子的linux出厂源码编译后的一些目标文件全部放大了tmp目录下,所以具体参考链接即可解决
modprobe报错
- modprobe 提示 FATAL: Module chrdevbase not found in directory /lib/modules/4.1.15-g06f53e4的解决方法
- 主要是注意在执行modprobe的时候后面不要加.ko
加载驱动的时候报错
- disagrees about version of symbol device_create
- 这个主要是开发板运行的内核版本和驱动编译使用的内核版本不一致导致的,注意在写驱动的时候内核版本一定要和开发板运行的内核版本保持一致
驱动编译报错
- error: expected ‘:’ or ‘)’ before ‘POPCNT64’解决
- 编译linux驱动时提示很多源码头文件和定义缺失
- 本质问题是内核在编译的时候没有指定好编译器,需要在顶层makefile中指定编译器,见参考链接