2025-5-27
由于前段时间一直在用ubuntu22.04做操作系统实验,突然得知imx6ull得用18版人傻了,22版配环境弄了好久,不想把我的22版卸载啊。。折腾了一天怎么同时装18版(没有虚拟机装多系统的经验,fuck)
于是乎,现在是连接移动硬盘,里面直接解压的韦东山老师的配好了环境的18版,再把路径加到vmware中。
1.前期工作:
首先将MobaXterm和ubuntu远程连接,ifconfig查询端口号
然后将inet中的端口号输入到下图中
Session->SSH->host->name(book)
port 22 不用改
好的,出现问题了
problem:
1.检查网络
2.检查网络配置
systemd-resolve --status
修改DNS文件:输入命令:sudo vi /etc/resolv.conf
键盘按下 INSERT 修改内容, :wq! 保存并退出
还是没解决
解决办法:
sudo rm /var/lib/ubuntu-release-upgrader/release-upgrade-available
sudo ./usr/lib/ubuntu-release-upgrader/release-upgrade-motd
sudo apt-get upgrade #更新软件
检查串口:设备管理器中
如果没有,可能是连接上了虚拟机,或者没装串口驱动
在MobaXterm中新建工程,选择合适的端口以及波特率
1.session 2.serial 3.serial port 4.speed
串口显示:
2.开发板编译下载程序:
adb --help
adb devices :查询已经连接的设备
编译程序:进入中文目录需要加引号,否则ubuntu无法识别
ubuntu中编译:
将程序转移到开发板编译:
使用命令 gdb push <文件> ,将文件Push到开发板上
使用交叉编译工具链,才能在arm板子上编译
arm-buildroot-linux-gnueabinf-gcc -o hello hello.c
然后在开发板上运行hello.c文件
3.windows和ubuntu互传文件
参考链接:
windows主机和ubuntu互传文件的4种方法_将windows文件放入ubuntu-CSDN博客
4.Linux相机
首先在PC端调通再去做开发板联合LCD显示
4.1 PC端测试
先在PC端调通摄像头:不同的ubuntu版本可能会有所差异,在20.04能用可能到了18.04就有问题
重要:首先查看vediox,确认x是什么
有时候设备信息会更改(可能是修改了虚拟机设置),因此使用前要查看摄像头信息
如图序号发生改变
获取摄像头格式:利用 ioctl 函数获取格式信息,其参数在videodev2.h函数中
文件夹路径为:/usr/include/linux/
进入videodev2.h,输入命令:gedit filename
问题1:出现图片无法加载:
解决办法:修改USB兼容性,在虚拟机设置里面
成功演示:
ctrl + F3 进入字符显示界面,输入用户以及密码
执行可执行文件: sudo ./show2
4.2 上板测试
交叉编译命令有所不同,并将可执行文件通过adb命令上传至开发板
arm-linux-gnueabihf-gcc -o xxx xxx.c
adb push xxx /root
关闭LCD黑屏:在开发板执行命令
echo -e "\033[9;0]" > /dev/tty0
问题1:对于pthread、tslib以及jpeg的头文件找不到
解决方案:需要编译时链接第三方库
问题2:LCD显示时,出现segmentation fault
如图所示我的LCD分辨率为:1024 x 600
解决方案:
问题:LCD显示不全且花屏
移除GUI
#移除GUI
mv /etc/init.d/S99myirhmi2 /root
mv /etc/init.d/S05lvgl /root
关闭LCD黑屏功能
echo -e "\033[9;0]" > /dev/tty0
挂载nfs(用不上,现在用adb上传文件至开发板)
mount -t nfs -o nolock,vers=3 10.180.17.159:/home/book/nfs_rootfs /mnt