![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 77
冷月枫啊
暑假,我们一起努力!
展开
-
基于Linux和Qt5的简易平板的设计与实现
基于Linux和Qt5制作的简易平板,主控采用全志的V3s原创 2022-06-15 00:09:46 · 1231 阅读 · 2 评论 -
全志V3S开启启动
一、TurnOffMute.sh创建自己需要的脚本我这里创建关闭静音的脚本。vi TurnOffMute.sh 然后往其中添加需要执行的命令然后赋予可执行的权限chmod 777 TurnOffMute.sh 二、/etc/rc.local在第一步我们创建了脚本文件,现在我们需要添加到/etc/rc.local这个文件中,如果我们的文件系统中没有这个文件,那么就自己创建这个文件,vi /etc/rc.local创建完成之后,给它可执行的权限。chmod 777 /etc/rc.原创 2022-02-03 11:49:37 · 2418 阅读 · 0 评论 -
挂载nfs报错合集
问题一:报错:VFS: Unable to mount root fs via NFS, trying floppy[ 83.929713] random: fast init done[ 100.366640] VFS: Unable to mount root fs via NFS, trying floppy.[ 100.373516] VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6[ 100.3原创 2021-11-08 21:42:45 · 1782 阅读 · 0 评论 -
QT程序开机自启
文章目录一、添加启动信息怎么设置一个qt程序在开机自启动呢?今天我们就来学习一下。一、添加启动信息在/etc/init.d/rcS中添加下面的内容cd /root/OperaPlayer/app_bin./App -platform linuxfb &cd /然后重启,qt程序就会自动运行。...原创 2021-09-12 08:04:49 · 429 阅读 · 0 评论 -
v3S配置QT环境
文章目录一、前言二、配置ARM平台的Qt Creator Kits三、验证ARM平台的Qt编译四、命令行编译Qt工程从现在开始我就要开始编写QT应用了,期待能有好的结果。一、前言在前面的章节中,我们已经在文件系统中配置好了QT,在更早之前的学习中我们已经在ubuntu下下载好了QT应用程序,请查看QT安装在那个环境中配置的是正点原子的阿尔法开发板的编译环境,今天,我们就换成v3s的qt编译环境。二、配置ARM平台的Qt Creator Kits打开 Qt Creator 界面,找到 Tools(原创 2021-09-04 20:56:17 · 1595 阅读 · 0 评论 -
v3S移植nes手柄
文章目录一、前言二、FC手柄介绍三、硬件连接四、修改设备树五、编写驱动程序六、运行一、前言在上一节我们移植了nes游戏,但是没有手柄不能操作,这只能看不能玩着实无趣。在家里翻出来了小时候玩的游戏机的手柄,这里移植过来玩。二、FC手柄介绍先看一下手柄原型感觉还挺不错的,哈哈图片中可以看出,小霸王游戏机的手柄接口从外形上类似我们常说的DB9接口,但是其引脚定义与引脚功能与DB9接口差别较大。游戏中是高电平有效三、硬件连接从上面我们可以知道驱动这个FC手柄需要3个IO,我从自己的开发板原创 2021-09-04 17:04:57 · 1005 阅读 · 0 评论 -
v3S移植NES游戏
文章目录一、获取源码二、解压三、编译nes源码四、烧录一、获取源码https://github.com/nejidev/arm-NES-linux二、解压unzip arm-NES-linux-master.zip cd arm-NES-linux-master/三、编译nes源码在源码目录的linux文件夹下建立一个work文件夹mkdir -p linux/work2.修改源码目录下linux文件夹中的makefie1.修改CCFLAGS 增加alsa的头文件目录(该原创 2021-09-03 17:56:23 · 1441 阅读 · 3 评论 -
v3S移植mplayer播放器
文章目录一、前言二、移植 zlib 库三、移植 mplayer一、前言mplayer播放器非常好用,奈何buildroot2019这个版本没有(好像2018.2之后就都没有,升级为mpv了好像,但是这个mpv不会用),这里就自行编译(虽然麻烦一点,但是还是得用啊)二、移植 zlib 库mplayer 用到了 zlib 库,因此要先移植 zlib 库。zlib 源码下载地址为:http://zlib.net/下载压缩包拷贝到ubuntu下并解压tar -vxzf zlib-1.2.11.tar.g原创 2021-09-03 11:49:54 · 1493 阅读 · 0 评论 -
v3S驱动音频
文章目录一、buildroot 配置 alsa-lib 和 alsa-utils移植(测试不通过)1. 使能 alsa-lib2. 使能 alsa-utils二、自行配置 alsa-lib 和 alsa-utils移植(麻烦但不得不用)1. 将压缩包拷贝到ubuntu下2.alsa-lib移植3. alsa-utils移植三、声卡设置与测试1. amixer使用方法1. 查看帮助信息2.更多操作请看2.其他配置1. 查看CODEC设备2. 查看设备3. 调节音量4. 查看控制器 amixer content原创 2021-09-02 16:18:31 · 2227 阅读 · 0 评论 -
v3S 驱动串口
文章目录一、修改设备树二、移植minicom1. 配置buildroot2.验证三、测试串口功能1.硬件连接2. minicom设置3. 发送测试4. 接收测试一、修改设备树在sun8i-v3s.dtsi中添加 uart1_pins_a: uart1@0 { pins = "PE21", "PE22"; function = "uart1"; bias-pull-up; };原创 2021-09-02 10:08:36 · 1153 阅读 · 0 评论 -
v3S驱动gt911触摸
文章目录一、修改设备树二、编写驱动三、运行测试四、编译进内核1. 拷贝文件2. 修改对应的 Makefile3. 编译运行4.测试1.注释掉坐标信息五、移植tslib1. buildroot配置tslib2. 配置tslib3. 测试一、修改设备树在sun8i-v3s-licheepi-zero-dock.dts中添加pio节点(其实经过测试不添加也是可以的,后面会说)&pio{ /* 按键 */ key_pins:key_pins@0{ pins = "PG2";原创 2021-09-01 20:57:15 · 4664 阅读 · 0 评论 -
v3S 驱动 i2c OLED屏幕
文章目录一、硬件连接二、配置内核三、修改设备树文件四、运行测试1. 打印日志2.简单操作2. 编写测试demo五、关于tty测试六、修改屏幕显示终端信息参考链接一、硬件连接二、配置内核默认是选中的(可以跳过这一步)在linux源代码下执行make menuconfig选中 <*> Solomon SSD1307 framebuffer support直接搜索 FB_SSD1307按1进入三、修改设备树文件添加ssd1306fb-i2c节点,0x3c是i2c设备的地址原创 2021-09-01 16:21:01 · 1784 阅读 · 0 评论 -
v3S INPUT子系统按键实验
文章目录一、修改设备树二、编写驱动三、编写应用程序四、运行测试一、修改设备树用以前的,这里不用修改二、编写驱动keyinput.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>原创 2021-09-01 10:31:22 · 769 阅读 · 0 评论 -
v3S Platform 驱动led
文章目录一、修改设备树二、编写驱动三、编写应用程序四、运行测试一、修改设备树这里还是使用原来的设备树,但是要修改一个东西。这个要修改,不能用原来的,否则会匹配不到设备(我也是测试了好久才找到这个问题)二、编写驱动dtsleddriver.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#inclu原创 2021-09-01 08:53:21 · 358 阅读 · 0 评论 -
v3S驱动key
文章目录一、硬件原理图二、修改设备树1. 注释掉GPIO冲突部分2. 添加按键部分三、编写驱动四、编写应用程序五、运行测试旋转编码器链接一、硬件原理图这个按键连接在SDIO1上,要是使用的话就不能使用WIFI了。这个GPIO是PG2。二、修改设备树1. 注释掉GPIO冲突部分因为和WIFI的接口冲突,又因为默认配置好了WIFI的设备树文件,所以我们需要先注释掉WIFI的部分。提示:这里一定要用/**/ 注释,不能使用//在sun8i-v3s.dtsi在sun8i-v3s_lichee原创 2021-08-31 22:29:10 · 747 阅读 · 0 评论 -
v3S内核定时器驱动LED
文章目录一、不同点二、v3s定时器参考驱动三、编写实验测试1. 驱动程序2. 应用程序3. 运行测试在之前我们在学习阿尔法开发板的时候编写过这个是实验,那么为什么又要重新写一篇文章呢?这是因为在v3S的开发板上,软件定时器和一般的定时器稍微有点不同。一、不同点一般定时器结构体:struct timer_list { /* * All fields that change during normal runtime grouped to * the sa原创 2021-08-31 21:49:38 · 481 阅读 · 0 评论 -
v3S驱动led
文章目录关于GPIO的知识一、硬件原理图二、修改设备树三、编写驱动四、编写应用程序五、运行测试关于GPIO的知识GPIO一、硬件原理图这里LED1和LED2是接到了SDIO1接口上,SDIO1接的是WIFI,这里就不使用了。LED3接的是PB5,我们可以操作这个LED。二、修改设备树在sun8i-v3s-licheepi-zero.dts上在原有leds的基础上进行修改 leds { compatible = "gpio-leds"; /* PG0 和 PG1 被WIFI使用,原创 2021-08-31 17:16:55 · 1310 阅读 · 0 评论 -
v3S编译QT5
文章目录一、配置编译二、查看QT版本三、运行一个demo在后面的使用中,我们不可以避免的要编写应用程序,这一章就介绍怎么通过buildroot下载QT5。一、配置编译在buildroot下面,打开配置界面make menuconfig选择target packages项选中下面的保存,编译编译时间还是挺久的,大概1个小时左右。二、查看QT版本/home/luatao/linux/zero/buildroot-2019.08/output/build/qt5base-5.12.4原创 2021-08-31 10:44:58 · 941 阅读 · 0 评论 -
v3S配置tftp下载kernel和nfs挂载文件系统
文章目录一、U-Boot适配Ethernet1.配置menuconfig2.修改dts3. 编译4. 烧写5.测试Kernel适配Ethernet1. 配置menuconfig2. 修改dts3.编译4. 测试eth0三、通过tftp下载zImage和dts,通过nfs挂载文件系统1. 设置bootcmd2. 设置bootargs四、挂载效果参考文档一、U-Boot适配Ethernet我使用的uboot是2017的U-Boot 2017已经支持了sun8i-emac的驱动,只需要在编译时选上并且修改d原创 2021-08-30 17:43:38 · 2226 阅读 · 1 评论 -
v3S开发板烧录系统(uboot+kernel+rootfs)
文章目录一、TF卡分区二、烧写三、最后效果在我们开发的过程中不可避免的需要去烧写系统,这一章就介绍怎么给TF分区然后烧写。实现一个可以运行的系统。一、TF卡分区先查看一下挂载的位置和设备号df -lhsudo fdisk -l # 首先查看电脑上已插入的TF卡的设备号(下面以/dev/sdc1为例)操作之前先卸载挂载的设备sudo umount /dev/sdc1 # 若自动挂载了TF设备,请先卸载(有多个分区则全部卸载)sudo umount /dev/sdc2原创 2021-08-30 16:58:57 · 1749 阅读 · 0 评论 -
Buildroot根文件系统构建
文章目录Buildroot根文件系统构建一、何为buildroot?1. buildroot简介2. buildroot下载二、buildroot构建根文件系统1. 配置buildroot1. 配置 Target options2. 配置 Toolchain3. 配置 System configuration4. 配置 Filesystem images5. 禁止译 编译 Linux 内核和 uboot6. 配置 Target packages2. 编译buildroot3. buildroot根文件原创 2021-08-22 11:26:12 · 5211 阅读 · 3 评论 -
llrzsz
文章目录官网解压配置编译安装复制到开发板并执行使用lrz从PC传开发板使用lsz从开发板传PC参考链接今天给大家推荐一个很好用的工具。你是不是感觉在没有网络时往linux中下载程序很麻烦(SD卡插拔),今天就教大家怎么通过串口和linux文件系统进行通信。官网我们可以通过下面的官网去下载lrzsz解压将解压的源码包放到ubuntu中新建一个文件夹 lrzsz拷贝到这个目录下解压tar -vxf lrzsz-0.12.20.tar.gz 配置cd lrzsz-0.12.20/原创 2021-08-22 08:17:15 · 465 阅读 · 0 评论 -
linux 音频驱动实验
文章目录一、音频接口简介1. 为何需要音频编解码芯片2. WM8960简介3. I2S总线接口4. 6u SAI简介二、硬件原理图三、音频驱动使能1. 修改设备树1. Wm8906 i2c接口设备树2. 6u SAI接口设备树3. I.MX6ULL sound 节点2. 使能内核的WM89601. 取消 ALSA 模拟 OSS API2. 使能 I.MX6ULL 的 的 WM8960 驱动四、alsa-lib 和 alsa-utils移植1. alsa-lib移植2. alsa-utils移植五、声卡设置原创 2021-08-17 21:32:17 · 2556 阅读 · 0 评论 -
gt911多点触摸实验
文章目录一、设备树二、驱动程序三、测试四、编译进内核1. 拷贝文件2. 修改对应的 Makefile3. 编译运行4.测试一、设备树记得注释掉共用的引脚(有好几处)在pinctrl_tsc节点下添加: pinctrl_tsc: tscgrp { fsl,pins = < MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x10B0 /* TSC_INT*/ MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x10B0 /* TSC原创 2021-08-17 11:47:22 · 4679 阅读 · 2 评论 -
linux下多点电容触摸屏实验
文章目录一、linux下电容触摸屏驱动框架简介1. 多点触摸(MT)协议详解2. Type A触摸点信息上报时序3. Type B触摸点信息上报时序4. MT其他事件的使用5. 多点触摸所使用的API函数1. input_mt_init_slots 函数2. input_mt_slot 函数3. input_mt_report_slot_state 函数4. input_report_abs 函数5. input_mt_report_pointer_emulation 函数6. 多点电容触摸驱动框架1.原创 2021-08-16 21:39:37 · 2992 阅读 · 4 评论 -
linux UART(RS232/485)驱动实验
文章目录一、linux下的UART驱动框架1. uart_driver 注册与注销2. uart_port 的添加与移除3. uart_ops 实现二、6u UART驱动分析1. UART 的 的 platform 驱动框架2. uart_driver 初始化3. uart_port 初始化与添加4. imx_pops 结构体变量三、原理图分析四、RS232驱动编写1. UART3 IO 节点创建2. 添加 uart3 节点五、移植minicom1. 移植ncurses2. 移植 minicom六、RS原创 2021-08-15 22:24:32 · 5342 阅读 · 2 评论 -
SPI驱动icm20608的实验
文章目录一、设备树二、驱动程序三、应用程序四、测试一、设备树在pinctrl节点中添加: /* spi驱动 icm20608 */ pinctrl_ecspi3: icm20608 { fsl,pins = < MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20 0x10b0 /* CS */ /* 只是一个普通的GPIO */ MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK 0x10b1 /* SCLK */原创 2021-08-15 21:56:02 · 1615 阅读 · 0 评论 -
linux SPI驱动实验
文章目录一、linux下SPI驱动框架简介1. SPI主机驱动1. spi_master 申请与释放2.spi_master 的注册与注销2. SPI设备驱动3. SPI设备和驱动匹配过程二、6u SPI主机驱动框架分析三、SPI设备驱动编写流程1. SPI设备信息描述1. IO的pinctrl子节点创建与修改2. SPI 设备节点的创建与修改2. SPI设备数据收发处理流程四、硬件原理图分析五、实验程序编写1. 修改设备树1. 添加 ICM20608所使用的 IO2. 在 ecspi3节点追加 icm2原创 2021-08-15 11:53:42 · 1364 阅读 · 1 评论 -
I2C驱动ap3216c的实验
文章目录一、驱动程序二、应用程序三、测试ap3216c手册资料一、驱动程序ap3216c.h#ifndef AP3216C_H#define AP3216C_H#define AP3216C_ADDR 0x1E /* AP3216C 器件地址 *//* AP3216C 寄存器 */#define AP3216C_SYSTEMCONG 0x00 /* 配置寄存器 */#define AP3216C_INTSTATUS 0X01 /*原创 2021-08-15 11:24:00 · 1629 阅读 · 1 评论 -
linux I2C驱动实验
文章目录一、linux I2C驱动框架简介1. I2C总线驱动2. I2C设备驱动1. I2C_client结构体2. i2c_driver 结构体3. I2C设备和驱动匹配过程1. i2c_adapter 注册/ 注销函数2. i2c_driver 注册/ 注销函数二、6u的I2C适配器驱动分析三、I2C设备驱动编写流程1. I2C设备信息描述1. 未使用设备树的时候2. 使用设备树的时候2. I2C设备数据收发处理流程四、硬件原理图分析五、实验程序编写1. 修改设备树1. IO 修改或添加2. 在原创 2021-08-14 23:08:34 · 885 阅读 · 0 评论 -
linux RTC驱动实验
文章目录一、linux内核RTC驱动简介二、6u内部RTC驱动分析三、RTC时间查看与设置1.1.时间RTC查看2.设置 RTC 时间RTC 也就是实时时钟,用于记录当前系统时间,对于 Linux 系统而言时间是非常重要的,就和我们使用 Windows 电脑或手机查看时间一样,我们在使用 Linux 设备的时候也需要查看时间。一、linux内核RTC驱动简介RTC 设备驱动是一个标准的字符设备驱动,应用程序通过 open、release、read、write 和 ioctl等函数完成对 RTC 设备的原创 2021-08-14 22:40:25 · 662 阅读 · 0 评论 -
input 按键驱动实验
文章目录一、驱动程序二、应用程序三、测试一、驱动程序keyinput.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>原创 2021-08-14 22:12:05 · 386 阅读 · 0 评论 -
misc驱动蜂鸣器
文章目录一、驱动程序二、应用程序三、测试一、驱动程序miscbeep.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>原创 2021-08-14 20:38:00 · 121 阅读 · 0 评论 -
platform设备树驱动led
一、驱动程序dtsleddriver.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>#include <linu原创 2021-08-14 16:38:16 · 143 阅读 · 0 评论 -
platform无设备树驱动led
一、驱动程序leddriver.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/g原创 2021-08-14 16:11:08 · 133 阅读 · 0 评论 -
异步通知实验
文章目录一、驱动程序二、应用程序三、测试一、驱动程序asyncnoti.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>原创 2021-08-14 11:32:31 · 92 阅读 · 0 评论 -
阻塞和非阻塞实验
文章目录一、阻塞实验1.驱动程序2.应用程序3.测试二、非阻塞实验1.驱动程序2.应用程序3.测试一、阻塞实验1.驱动程序blockio.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h&g原创 2021-08-14 10:51:59 · 231 阅读 · 0 评论 -
按键中断实验
文章目录一、设备树二、驱动程序三、应用程序四、测试一、设备树在/节点的key节点下添加:/* 添加中断信息 */ interrupt-parent = <&gpio1>; // 父中断控制器 interrupts = <18 IRQ_TYPE_EDGE_BOTH>; //中断源 上升沿和下降沿二、驱动程序irq.c#include <linux/types.h>#include <linux/kernel.h>#incl原创 2021-08-13 23:11:29 · 639 阅读 · 1 评论 -
内核定时器驱动LED
一、驱动程序timer.c#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/gpio.原创 2021-08-13 21:27:07 · 230 阅读 · 0 评论 -
不加处理按键输入
一、设备树在pinctrl中添加: /* 添加KEY的PIN信息 */ pinctrl_key:keygrp { fsl,pins = < /* 设备所使用的PIN配置信息 */ MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0xF080 /* key0 */ >; };在/节点中添加: /* key 设备节点 */ key{ #address-cells = <1>; #size-cells =原创 2021-08-13 20:05:59 · 163 阅读 · 0 评论