15AH, San Francisco

California, United States.

Send Your Mail At:

tianyingkejishe@sina.cn

Working Hours

Mon-Sat: 9.30am To 7.00pm

作者标题

Autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et dolore feugait.

Author Archive by stormwind

【OPENWRT】 RT5350 SPI I2C驱动简单说明

openwrt中已经支持 RT5350 的SPI I2C等驱动。

一、选择SPI、I2C 功能

-> Kernel modules
  -> SPI Support
  -> I2C support

二、修改设备树

vi target/linux/ramips/dts/rt5350.dtsi

 i2c@900 {
                        compatible = "link,rt5350-i2c", "ralink,rt2880-i2c";
                        reg = <0x900 0x100>;

                        resets = <&rstctrl 16>;
                        reset-names = "i2c";

                        #address-cells = <1>;
                        #size-cells = <0>;

                        pinctrl-names = "default";
                        pinctrl-0 = <&i2c_pins>;

                        status = "disabled";
                };

                spi@b00 {
                        compatible = "ralink,rt5350-spi";
                        reg = <0xb00 0x100>;

                        resets = <&rstctrl 18>;
                        reset-names = "spi";

                        #address-cells = <1>;
                        #size-cells = <1>;

                        pinctrl-names = "default";
                        pinctrl-0 = <&spi_pins &spi_cs1>;

                        status = "disabled";
                };

配置文件默认是不启用 SPI I2C 的。我们需要把 status = “disabled”; 改为 status = “okay”;对于 I2C,我们还要修改模板设备树文件:

pinctrl {
                state_default: pinctrl0 {
                        gpio {
                                ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
                                ralink,function = "gpio";
                        };
                };
        };

复用功能”i2c”,”jtag”, “rgmii”, “mdio”, “uartf” 等默认都复用为 gpio 口,要启用 I2C,需要去掉 i2c。同样,我们还需要启用 uartf。所有,修改为:

pinctrl {
                state_default: pinctrl0 {
                        gpio {
                                ralink,group =  "jtag", "rgmii", "mdio";
                                ralink,function = "gpio";
                        };
                };
        };

【GOLang】golang cgo交叉编译 linux arm64

一、交叉编译工具链安装

二、设置环境变量

CGO_ENABLED=1: 因为我们的程序使用到了Cgo,因此编译打开Cgo标志,默认情况是关闭的。
CC=aarch64-linux-gnu-gcc:指定CC也就是gcc编译命令使用交叉编译工具 aarch64-linux-gnu-gcc,也就是我们之前安装的交叉编译工具。
GOOS=linux:编译目标系统为Linux
GOARCH=arm64:编译目标的指令集架构为 64位 arm 架构
-ldflags ‘-s -w’:这个选项是为了移除编译后的程序的编译调试信息,减少可执行文件的体积。
–extldflags “-static -fpic”:静态编译,也就是会把使用到的动态库,静态链接到程序中,该指令存在时候可能会有warning提示,这是因为有些库文件是不能被静态链接的,gcc 编译器不支持 参考 [6]。

【NXP】Lx2160的uart1口不好使

查看板卡设备存在

root@localhost:~# ls /dev/ttyAMA*
ttyAMA0  ttyAMA1 。

官方哪里又要了一个内和设备树补丁。这个补丁很重要,应该是更改了pl011的驱动匹配。

diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
index 2fe86aca32da..e316bb09f7a1 100644
--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
@@ -894,26 +894,29 @@
 		};
 
 		uart1: serial@21d0000 {
-			compatible = "arm,sbsa-uart","arm,pl011";
+			compatible = "arm,pl011", "arm,primecell";
 			reg = <0x0 0x21d0000 0x0 0x1000>;
 			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
-			current-speed = <115200>;
+			clocks = <&clockgen 4 7>, <&clockgen 4 7>;
+			clock-names = "uart", "apb_pclk";
 			status = "disabled";
 		};
 
 		uart2: serial@21e0000 {
-			compatible = "arm,sbsa-uart","arm,pl011";
+			compatible = "arm,pl011", "arm,primecell";
 			reg = <0x0 0x21e0000 0x0 0x1000>;
 			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
-			current-speed = <115200>;
+			clocks = <&clockgen 4 7>, <&clockgen 4 7>;
+			clock-names = "uart", "apb_pclk";
 			status = "disabled";
 		};
 
 		uart3: serial@21f0000 {
-			compatible = "arm,sbsa-uart","arm,pl011";
+			compatible = "arm,pl011", "arm,primecell";
 			reg = <0x0 0x21f0000 0x0 0x1000>;
 			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
-			current-speed = <115200>;
+			clocks = <&clockgen 4 7>, <&clockgen 4 7>;
+			clock-names = "uart", "apb_pclk";
 			status = "disabled";
 		};
 
-- 

【Centos】WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

一、问题描述

在部署OpenStack环境的时候,配置的静态IP是192.168.5.1,删除了这台虚拟机.

重新创建一个虚拟机,IP配置也配置为192.168.5.1.

使用本机连接 ssh  192.168.5.1出现如下报错

报错的大概意思是192.168.5.1的ECDSA主机密钥已更改,并且您已请求严格检查,远程主机发送的ECDSA密钥指纹信息是和本机的密钥指纹信息不一致

ssh链接的时候首先会验证公钥,如果公钥不对,那么就会报错,

二、解决办法

我们需要删除本机 ~/.ssh/known_hosts文件的192.168.5.1[需要远程的主机IP] 公钥信息

【openwrt】Openwrt配置串口登录密码

Openwrt15.05配置串口登录密码

一、修改busybox

make menuconfig选择

Base system —>
	<*> busybox ……
		[*] Customize busybox option
			Login/Password Management Utilities —>
				[*] getty
				[*] login (NEW)

二、修改启动脚本package/base-files/files/etc/inittab

vim inittab

::askconsole:/bin/ash --login

改为

::askconsole:/bin/login

三、修改 vi target/linux/ramips/base-files/etc/inittab

::askconsole:/bin/ash --login

改为

::askconsole:/bin/login

重新编译。

Openwrt18.06配置串口登录密码

一、修改busybox

make menuconfig选择

Base system —>
	<*> busybox ……
		[*] Customize busybox option
			Login/Password Management Utilities —>
				[*] getty
				[*] login (NEW)

二、修改启动脚本package/base-files/files/usr/libexec

vim login.sh

[ "$(uci -q get system.@system[0].ttylogin)" = 1 ] || exec /bin/ash --login

改为

[ "$(uci -q get system.@system[0].ttylogin)" = 1 ] || exec /bin/login

重新编译。

【Openwrt】实现本地域名访问路由器

一、路由器上修改方式

  vi /etc/hosts

  127.0.0.1 localhost
  192.168.1.1 recologypower.com

二、openwrt编译环境修改方式

 vi package/base-files/files/etc/hosts


  127.0.0.1 localhost
  192.168.1.1 recologypower.com

【Centos】Centos8默认不支持SCTP

一、问题

#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/sctp.h>
#include <stdio.h>

int main()
{
        int i = socket(AF_INET,SOCK_STREAM,IPPROTO_SCTP);
        printf("huilh:%d\r\n",i);
        return 0;
}

执行后i=-1,通过系统指令checksctp检测,发现system not surpote。

二、解决方式

打开网址:https://centos.pkgs.org/,下载sctp rpm安装包,安装完。

yum -y install kernel-modules-extra

打开/etc/modprobe.d/sctp-blacklist.conf文件,注释掉blacklist sctp。把sctp从黑名单删除。

重启电脑。