
linux
紫枫洛天
这个作者很懒,什么都没留下…
展开
-
FRP映射本地服务器到远程服务器,NAS
有时候我们需要远程访问本地的资源, 比如NAS, 或者本地服务器需要一台公网服务器, 比如阿里云和腾讯云1 下载frphttps://github.com/fatedier/frp/releases根据自己的需求下载, 我用的是x86 ubuntu, 就下载AMD642 客户端配置解压之后会有这几个文件, frpsc是客户端, frps是服务器vim frpc.ini[common]server_addr = 123.123.123.123server...原创 2021-08-24 19:18:33 · 328 阅读 · 0 评论 -
ssh方向代理 Warning: remote port forwarding failed for listen port问题
本地服务器上报错原因是这个端口被占用了, 或者是之前的连接还没断开, 这个时候就去远程服务器上kill掉这个程序就可以了, 注意一定要是root账号原创 2021-08-24 16:39:44 · 8779 阅读 · 0 评论 -
linux SSH反向代理, 远程服务器登录本地服务器
1 前言本地电脑远程不能访问, 比如公司内网的服务器, 或者网关 ,这些都没有公网IP, 可以使用SSH隧道代理来访问2 具体操作准备2台电脑,A电脑内网: ssh账号密码: root : 123456B电脑公网: ssh账号密码: root: 123456 IP:123.123.123.1231 本地电脑A上操作:ssh -fCNR 7281:localhost:22 root@123.123.123.123然后会让输入远程服务器密码, 输...原创 2021-08-24 15:58:32 · 1717 阅读 · 0 评论 -
正点原子IMX6UL ADC采集
1 前言项目需要用到IMX6UL ADC功能, 12位ADC2 修改设备树因为用到通道2和通道5, 所以一共有0-5个, 一共是6个通道imx6ull.dtsi adc1: adc@02198000 { compatible = "fsl,imx6ul-adc", "fsl,vf610-adc"; reg = <0x02198000 0x4000>; interrupts = <GIC_SPI 100 IRQ_TYPE_LEV...原创 2021-08-18 14:51:52 · 2001 阅读 · 1 评论 -
正点原子IMX6UL IIC采集温度湿度传暗器CHTA30
1 原理图2 设备树&i2c1 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; /* EEPROM */ at24c512c@50 { compatible = "at24c512c"; reg = <0x50>; status = "ok"; }; /.原创 2021-08-18 13:45:25 · 493 阅读 · 0 评论 -
正点原子IMX6UL 调用外部RTC DS3231 设置时间hwclock /dev/rtc1
1 指令集hwclock -s 或者 --hctosys 将硬件时间同步到系统时间hwclock -w 或者 -systohc 将系统时间同步到硬件时间hwclock -v 查看版本hwclock -f 修改rtcfile , 比如 hwclock -f /dev/rtc1datedate 查看系统时间date -s 设置系统时间date -s 12/01/2018date -s 21:15:38date 120121152018.38date -s "2007-..原创 2021-08-18 12:01:38 · 906 阅读 · 0 评论 -
正点原子IMX6UL IIC RTC驱动DS3231
1 前言觉得Imx6内部的RTC时钟不是很准,于是外置RTC芯片ds3231在源码里一查, 发现在driver/rtc/rtc-ds1307.c中2 修改设备树ds3231地址可以查询数据表: 0xd0 , 但是linux 设备树要右移一位, 于是就成了0x68也可以通过i2ctest来检测地址&i2c1 { clock-frequency = <100000>; pinctrl-names = "default"; pinct..原创 2021-08-18 11:11:10 · 1301 阅读 · 1 评论 -
正点原子IMX6UL 检测I2C上设备地址
需要检测I2C上设备的地址, 原理图如下&i2c1 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; /* EEPROM */ at24c512c@50 { compatible = "at24c512c"; reg = <0x50>; status = "ok.原创 2021-08-18 09:36:21 · 451 阅读 · 0 评论 -
正点原子IMX6UL I2C驱动AT24C512
参考:https://blog.csdn.net/zlsh007/article/details/21600759原创 2021-08-17 17:09:26 · 1003 阅读 · 1 评论 -
正点原子IMX6使用8个串口,UART5只发送不接收问题
1 前言项目中需要用到8个串口, 但是发现UART5只能发送不能接收, 设备树如下配置,最终发现是官方配置问题 pinctrl_uart1: uart1grp { fsl,pins = < MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1 MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1 >; }; pinctrl_uart2: uart2grp { f原创 2021-08-13 15:52:12 · 1310 阅读 · 0 评论 -
正点原子IMX6UL 多个按键中断 输入子系统实战
1 前言前面把按键中断做了之后, 目前要添加到输入子系统中, 这样就可以制作矩阵键盘之类的https://blog.csdn.net/a2267542848/article/details/1196699032 驱动代码需要注意的是一定要设置input_set_capability(imx6uirq.inputdev, EV_KEY, key_value[4]);这个代表输入子系统会上报的按键事件, 如果没有设置这个. 那么上报的按键是无效的#include <linux/t..原创 2021-08-13 12:11:03 · 612 阅读 · 0 评论 -
正点原子IMX6UL 多路按键中断实际案例
1 前言项目上需要多个按键输入, 因此记录一下多个按键的中断如何做2 修改设备树 pinctrl_gpio_keys: gpio-keys { fsl,pins = < MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x80000000 /* KEY1 */ MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000 /* KEY2 */ MX6ULL_PAD_SNVS_TAMPER0_..原创 2021-08-13 10:29:12 · 784 阅读 · 0 评论 -
正点原子IMX6UL 驱动多路LED或者继电器
前言:项目需要改jtag为普通IO口, 所以要修改设备树1 设备树修改添加IO口功能设置 pinctrl_j_pwr_ctrls: j_pwr_ctrlgrp { fsl,pins = < MX6UL_PAD_JTAG_TDI__GPIO1_IO13 0x17059 /* j1 */ MX6UL_PAD_JTAG_TDO__GPIO1_IO12 0x17059 /* j2 */ MX6UL_PAD_JTAG_TCK__GPIO1_IO14.转载 2021-08-12 14:11:30 · 520 阅读 · 0 评论 -
正点原子IMX6UL修改uboot为ETH1
前言:用了正点原子的核心板, 做了底板, 网口只留下ETH1, 但是正点原子uboot默认是ETH2, 今天就改下uboot1 查找配置头文件根据uboot查找board文件VSCODE查找得到在这个文件中打开这个文件夹下的MAINTAINERS, 得到配置头文件路径2 修改uboot ETH2为ETH1找到下列文件, 可以看到默认FEC_ENET_DEV是1 代表使用ETH2, 我们要使用ETH1就修改为0修改后然后编译烧录3 设置E...原创 2021-08-11 14:20:38 · 1058 阅读 · 0 评论 -
正点原子imx6ul linux 设备树使用8位串口数码管74HC590
这次采用设备树, 就不用自己去操作寄存器了数码管采用驱动层调用内核定时器来刷新, 应用层只传输一个要显示的数值DIO- GPIO1_2sclk GPIO1_3rclk GPIO1_41 设备树 kleds{ compatible = "gpio-kleds"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_kleds>; led_dio =<&gpio1 2 GPIO...原创 2021-08-02 09:56:42 · 340 阅读 · 0 评论 -
正点原子imx6ul 驱动8位串口数码管74HC590
没使用设备树,直接使用寄存器,然后映射过去操作DIO- GPIO1_2sclk GPIO1_3rclk GPIO1_4驱动层不动态刷新,等待应用层主动刷新, 这个缺点就是有残影,因为从应用层到内核层需要时间,下一个章节,介绍驱动层用内核定时器来动态刷新驱动代码如下:#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include .原创 2021-08-02 09:51:45 · 392 阅读 · 1 评论 -
linux 双向fifo
注意open打开fifo的方式, 有阻塞和非阻塞模式如果读阻塞模式打开, 那么要等到一个进程写入fifo之后, 这个读open才会打开1 客户端#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<.原创 2021-05-12 20:23:03 · 298 阅读 · 0 评论 -
linux unix进程通信pipe管道
话不多说,直接放源码 从unix网络编程中找出来修改的,注意不能使用printf函数使用write(STDOUT_FILENO,buff,n); 代替printf#include "stdio.h"#include <unistd.h>#include <fcntl.h>#include <string.h>#include <stdlib.h>#include <sys/wait.h> /** * 信号处理...原创 2021-05-12 16:43:35 · 235 阅读 · 1 评论 -
Uboot启动流程
自己根据正点原子IMX6UL整理的想要分析如何启动,就要分析链接文件, 如果没编译过的链接脚本在 arch/arm/cpu/u-boot.lds编译过的在根目录1 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") 2 OUTPUT_ARCH(arm)3 ENTRY(_start)4 SECTIONS5{6 . = 0x00000000;7 . = ALIGN..原创 2021-04-11 15:20:47 · 186 阅读 · 0 评论 -
Makefile学习笔记
makefile的目的是为了减少编译, 管理工程, 如果一个100个源文件, 只修改了一个源文件而要全部重新编译的话, 有点耗时所以需要一个工具来管理, 这个工具就是makefile1 makefile基本原理target ... : prerequisites ... command ... ...targe是目标文件, 可以是可执行文件,也可以是标签(clean)依赖就是生成目标需要的文件command是生成目标原创 2021-03-05 17:09:13 · 128 阅读 · 1 评论