页次: 1
刚刚我也测试了, 出厂固件RNDIS不能上网,需要升级固件, 可以加这个群 1092305811
在群附件有最新的 v426 固件下载, 本站下载: sw_file_20200421203633_AirM2M_720U_V426_LTE_AT.7z
选好固件, 点击【下载】,
按住 U_BOOT(USB BOOT)按键, 然后按重启按键,
就会自动刷新固件.
由于这个 8910 方案是双卡单待的,
只能一张卡上网.
默认是SIM0可以上网,
如果想要 SIM1上网, 需要用AT指令切换:
根据我的测试,执行完切卡命令 AT+SIMCROSS=1 之后还得执行 AT+RESET 才行。
否则RNDIS还是不能上网。
我也传一个珍藏多年的: PCIe_CEM_SPEC_R4_V9_12072018_NCB.pdf
PCI Express Card Electromechanical Specification Revision 4.0, Version 0.9
大概知道了,
这里并没有注册PE引脚
https://github.com/Lichee-Pi/linux/blob/zero-4.13.y/drivers/pinctrl/sunxi/pinctrl-sun8i-v3s.c
/*
* Allwinner V3s SoCs pinctrl driver.
*
* Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
*
* Based on pinctrl-sun8i-h3.c, which is:
* Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
*
* Based on pinctrl-sun8i-a23.c, which is:
* Copyright (C) 2014 Chen-Yu Tsai <wens@csie.org>
* Copyright (C) 2014 Maxime Ripard <maxime.ripard@free-electrons.com>
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/pinctrl/pinctrl.h>
#include "pinctrl-sunxi.h"
static const struct sunxi_desc_pin sun8i_v3s_pins[] = {
/* Hole */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 0),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "uart2"), /* TX */
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 0)), /* PB_EINT0 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 1),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "uart2"), /* RX */
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 1)), /* PB_EINT1 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 2),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "uart2"), /* RTS */
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 2)), /* PB_EINT2 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 3),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "uart2"), /* D1 */
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 3)), /* PB_EINT3 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 4),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "pwm0"),
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 4)), /* PB_EINT4 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 5),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "pwm1"),
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 5)), /* PB_EINT5 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 6),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "i2c0"), /* SCK */
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 6)), /* PB_EINT6 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 7),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "i2c0"), /* SDA */
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 7)), /* PB_EINT7 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 8),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "i2c1"), /* SDA */
SUNXI_FUNCTION(0x3, "uart0"), /* TX */
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 8)), /* PB_EINT8 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 9),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "i2c1"), /* SCK */
SUNXI_FUNCTION(0x3, "uart0"), /* RX */
SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 9)), /* PB_EINT9 */
/* Hole */
SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 0),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc2"), /* CLK */
SUNXI_FUNCTION(0x3, "spi0")), /* MISO */
SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 1),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc2"), /* CMD */
SUNXI_FUNCTION(0x3, "spi0")), /* CLK */
SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 2),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc2"), /* RST */
SUNXI_FUNCTION(0x3, "spi0")), /* CS */
SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 3),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc2"), /* D0 */
SUNXI_FUNCTION(0x3, "spi0")), /* MOSI */
/* Hole */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 0),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* PCLK */
SUNXI_FUNCTION(0x3, "lcd")), /* CLK */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 1),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* MCLK */
SUNXI_FUNCTION(0x3, "lcd")), /* DE */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 2),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* HSYNC */
SUNXI_FUNCTION(0x3, "lcd")), /* HSYNC */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 3),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* VSYNC */
SUNXI_FUNCTION(0x3, "lcd")), /* VSYNC */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 4),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D0 */
SUNXI_FUNCTION(0x3, "lcd")), /* D2 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 5),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D1 */
SUNXI_FUNCTION(0x3, "lcd")), /* D3 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 6),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D2 */
SUNXI_FUNCTION(0x3, "lcd")), /* D4 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 7),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D3 */
SUNXI_FUNCTION(0x3, "lcd")), /* D5 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 8),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D4 */
SUNXI_FUNCTION(0x3, "lcd")), /* D6 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 9),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D5 */
SUNXI_FUNCTION(0x3, "lcd")), /* D7 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 10),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D6 */
SUNXI_FUNCTION(0x3, "lcd")), /* D10 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 11),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D7 */
SUNXI_FUNCTION(0x3, "lcd")), /* D11 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 12),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D8 */
SUNXI_FUNCTION(0x3, "lcd")), /* D12 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 13),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D9 */
SUNXI_FUNCTION(0x3, "lcd")), /* D13 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 14),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D10 */
SUNXI_FUNCTION(0x3, "lcd")), /* D14 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 15),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D11 */
SUNXI_FUNCTION(0x3, "lcd")), /* D15 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 16),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D12 */
SUNXI_FUNCTION(0x3, "lcd")), /* D18 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 17),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D13 */
SUNXI_FUNCTION(0x3, "lcd")), /* D19 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 18),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D14 */
SUNXI_FUNCTION(0x3, "lcd")), /* D20 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 19),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* D15 */
SUNXI_FUNCTION(0x3, "lcd")), /* D21 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 20),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* FIELD */
SUNXI_FUNCTION(0x3, "csi_mipi")), /* MCLK */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 21),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* SCK */
SUNXI_FUNCTION(0x3, "i2c1"), /* SCK */
SUNXI_FUNCTION(0x4, "uart1")), /* TX */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 22),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "csi"), /* SDA */
SUNXI_FUNCTION(0x3, "i2c1"), /* SDA */
SUNXI_FUNCTION(0x4, "uart1")), /* RX */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 23),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x3, "lcd"), /* D22 */
SUNXI_FUNCTION(0x4, "uart1")), /* RTS */
SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 24),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x3, "lcd"), /* D23 */
SUNXI_FUNCTION(0x4, "uart1")), /* CTS */
/* Hole */
SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 0),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc0"), /* D1 */
SUNXI_FUNCTION(0x3, "jtag")), /* MS */
SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 1),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc0"), /* D0 */
SUNXI_FUNCTION(0x3, "jtag")), /* DI */
SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 2),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc0"), /* CLK */
SUNXI_FUNCTION(0x3, "uart0")), /* TX */
SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 3),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc0"), /* CMD */
SUNXI_FUNCTION(0x3, "jtag")), /* DO */
SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 4),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc0"), /* D3 */
SUNXI_FUNCTION(0x3, "uart0")), /* RX */
SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 5),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc0"), /* D2 */
SUNXI_FUNCTION(0x3, "jtag")), /* CK */
SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 6),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out")),
/* Hole */
SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 0),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc1"), /* CLK */
SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 0)), /* PG_EINT0 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 1),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc1"), /* CMD */
SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 1)), /* PG_EINT1 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 2),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc1"), /* D0 */
SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 2)), /* PG_EINT2 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 3),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc1"), /* D1 */
SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 3)), /* PG_EINT3 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 4),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc1"), /* D2 */
SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 4)), /* PG_EINT4 */
SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 5),
SUNXI_FUNCTION(0x0, "gpio_in"),
SUNXI_FUNCTION(0x1, "gpio_out"),
SUNXI_FUNCTION(0x2, "mmc1"), /* D3 */
SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 5)), /* PG_EINT5 */
};
static const struct sunxi_pinctrl_desc sun8i_v3s_pinctrl_data = {
.pins = sun8i_v3s_pins,
.npins = ARRAY_SIZE(sun8i_v3s_pins),
.irq_banks = 2,
.irq_bank_base = 1,
.irq_read_needs_mux = true
};
static int sun8i_v3s_pinctrl_probe(struct platform_device *pdev)
{
return sunxi_pinctrl_init(pdev,
&sun8i_v3s_pinctrl_data);
}
static const struct of_device_id sun8i_v3s_pinctrl_match[] = {
{ .compatible = "allwinner,sun8i-v3s-pinctrl", },
{}
};
static struct platform_driver sun8i_v3s_pinctrl_driver = {
.probe = sun8i_v3s_pinctrl_probe,
.driver = {
.name = "sun8i-v3s-pinctrl",
.of_match_table = sun8i_v3s_pinctrl_match,
},
};
builtin_platform_driver(sun8i_v3s_pinctrl_driver);
就可以了,
估计是这个:
&panel {
compatible = "urt,umsh-8596md-t", "simple-panel";
};
会去初始化panel那组引脚,而没有找到定义.
[ 0.737656] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE0
[ 0.745355] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE1
[ 0.753111] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE2
[ 0.760807] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE3
[ 0.768498] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE4
[ 0.776183] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE5
[ 0.783852] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE6
[ 0.791534] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE7
[ 0.799216] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE8
[ 0.806898] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE9
[ 0.814567] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE10
[ 0.822335] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE11
[ 0.830104] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE12
[ 0.837873] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE13
[ 0.845630] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE14
[ 0.853397] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE15
[ 0.861166] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE16
[ 0.868935] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE17
[ 0.876703] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE18
[ 0.884460] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE19
[ 0.892229] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE23
[ 0.899999] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE24
[ 0.909232] panel-simple panel: panel supply power not found, using dummy regulator
[ 0.918433] libphy: Fixed MDIO Bus: probed
[ 0.922919] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.929548] ehci-platform: EHCI generic platform driver
[ 0.935056] ehci-platform 1c1a000.usb: EHCI Host Controller
[ 0.940750] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[ 0.948708] ehci-platform 1c1a000.usb: irq 26, io mem 0x01c1a000
[ 0.976198] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[ 0.983421] hub 1-0:1.0: USB hub found
[ 0.987387] hub 1-0:1.0: 1 port detected
[ 0.991932] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.998268] ohci-platform: OHCI generic platform driver
[ 1.003831] ohci-platform 1c1a400.usb: Generic Platform OHCI controller
[ 1.010578] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus number 2
[ 1.018569] ohci-platform 1c1a400.usb: irq 27, io mem 0x01c1a400
[ 1.091257] hub 2-0:1.0: USB hub found
[ 1.095106] hub 2-0:1.0: 1 port detected
[ 1.102667] udc-core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[ 1.112464] sun6i-rtc 1c20400.rtc: rtc core: registered rtc-sun6i as rtc0
[ 1.119389] sun6i-rtc 1c20400.rtc: RTC enabled
[ 1.123952] i2c /dev entries driver
[ 1.129356] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 1.196198] sunxi-mmc 1c0f000.mmc: base:0xc4069000 irq:24
[ 1.203269] usbcore: registered new interface driver usbhid
[ 1.208972] usbhid: USB HID core driver
[ 1.215210] NET: Registered protocol family 17
[ 1.219929] Key type dns_resolver registered
[ 1.224233] Registering SWP/SWPB emulation handler
[ 1.234652] simple-framebuffer 43e89000.framebuffer: framebuffer at 0x43e89000, 0x177000 bytes, mapped to 0xc4380000
[ 1.245394] simple-framebuffer 43e89000.framebuffer: format=x8r8g8b8, mode=800x480x32, linelength=3200
[ 1.263856] Console: switching to colour frame buffer device 100x30
[ 1.279863] simple-framebuffer 43e89000.framebuffer: fb0: simplefb registered!
[ 1.291578] pwm-backlight backlight: backlight supply power not found, using dummy regulator
[ 1.304838] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE0
[ 1.316442] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE1
[ 1.327813] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE2
[ 1.339070] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE3
[ 1.350214] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE4
[ 1.361301] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE5
[ 1.372247] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE6
[ 1.383077] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE7
[ 1.393803] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE8
[ 1.404508] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE9
[ 1.415093] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE10
[ 1.425638] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE11
[ 1.436055] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE12
[ 1.446410] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE13
[ 1.456706] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE14
[ 1.466890] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE15
[ 1.476926] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE16
[ 1.486853] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE17
[ 1.496688] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE18
[ 1.506444] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE19
[ 1.516136] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE23
[ 1.525751] sun8i-v3s-pinctrl 1c20800.pinctrl: unsupported function lcd0 on pin PE24
[ 1.535739] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.544309] [drm] No driver support for vblank timestamp query.
[ 1.561466] sun4i-drm display-engine: bound 1100000.mixer (ops 0xc073ed78)
[ 1.570649] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc073dbf8)
[ 1.580115] fb: switching to sun4i-drm-fb from simple
[ 1.586955] Console: switching to colour dummy device 80x30
奇怪, 我的也出现这个问题了.
https://github.com/torvalds/linux/blob/master/include/linux/etherdevice.h
/**
* eth_random_addr - Generate software assigned random Ethernet address
* @addr: Pointer to a six-byte array containing the Ethernet address
*
* Generate a random Ethernet address (MAC) that is not multicast
* and has the local assigned bit set.
*/
static inline void eth_random_addr(u8 *addr)
{
get_random_bytes(addr, ETH_ALEN);
addr[0] &= 0xfe; /* clear multicast bit */
addr[0] |= 0x02; /* set local assignment bit (IEEE802) */
}
用 linux 的接口调用的, 感觉冲突应该比较少才对哦。
终于找到一个固件: goodix_9147_cfg.zip
拷贝到 /lib/firmware/goodix_9147_cfg.bin
可以注册成功:
# modprobe goodix
[ 39.985469] Goodix-TS 0-005d: ID 9147, version: 1040
[ 40.058363] input: Goodix Capacitive TouchScreen as /devices/platform/soc/1c27000.i2c/i2c-0/0-005d/input/input1
但是evtest 纹丝不动.
dts这样设置:
gt9115d: touchscreen@5d {
compatible = "goodix,gt911";
reg = <0x5d>;
interrupt-parent = <&pio>;
interrupts = <4 3 IRQ_TYPE_EDGE_FALLING>; /* (PE3) */
pinctrl-names = "default";
/*pinctrl-0 = <&ts_reset_pin>;*/
irq-gpios = <&pio 4 3 GPIO_ACTIVE_HIGH>; /* (PE3) */
reset-gpios = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* RST (PE4) */
touchscreen-swapped-x-y;
};
https://github.com/torvalds/linux/blob/master/drivers/input/touchscreen/goodix.c
GOODIX_CONFIG_911_LENGTH 取值是 186, 我那个 goodix_9147_cfg.bin 也刚好186字节。
按理来说应该可以用才对。
找到@xm1994的帖子: https://whycan.cn/t_2688.html
https://github.com/summershrimp/opendeck-linux/commit/eb7a274d02b52a02198e3b2726df822eed0f36c8
drivers/input/touchscreen/goodix.c
这个驱动文件还要打点补丁才行:
@@ -777,6 +777,23 @@ static void goodix_config_cb(const struct firmware *cfg, void *ctx)
error = goodix_send_cfg(ts, cfg);
if (error)
goto err_release_cfg;
} else {
u8 check_sum = 0; //校验和
int i=0;
/* 800*480屏使用 */
u8 write2gt911[GOODIX_CONFIG_911_LENGTH] = {0x42, 0xe0, 0x01, 0x20, 0x03, 0x0a, 0x35, 0x00, 0x01, 0x08, 0x28, 0x08, 0x5a, 0x46, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1a, 0x1e, 0x14, 0x89, 0x2a, 0x09, 0x57, 0x5c, 0xb5, 0x06, 0x00, 0x00, 0x00, 0x02, 0x01, 0x1d, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x82, 0x94, 0xc5, 0x02, 0x07, 0x00, 0x00, 0x04, 0x96, 0x4a, 0x00, 0x85, 0x54, 0x00, 0x77, 0x5f, 0x00, 0x6a, 0x6c, 0x00, 0x5f, 0x7a, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x10, 0x12, 0x14, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0f, 0x10, 0x12, 0x16, 0x18, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x24, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00};
write2gt911[GOODIX_CONFIG_911_LENGTH - 1] = 0x01; //update flag
for (i = 0; i < (GOODIX_CONFIG_911_LENGTH - 2); i++) //校验和计算
check_sum += write2gt911[i];
write2gt911[184] = (~check_sum) + 1; //checksum
error = goodix_i2c_write(ts->client, ts->chip->config_addr, write2gt911, GOODIX_CONFIG_911_LENGTH);
dev_warn(&ts->client->dev,
"updated the user defined config \n",
error);
/* Let the firmware reconfigure itself, so sleep for 10ms */
usleep_range(10000, 11000);
}
goodix_configure_dev(ts);
可是我的芯片是 GT9147, 这可怎么办呢?
不管了, 先照葫芦画瓢吧.
https://whycan.cn/t_2358.html#p17790
好像找不到一个差不多的, 不知道这位朋友有没有解决?
# modprobe goodix
[ 21.535554] Goodix-TS 0-005d: ID 9147, version: 1040
[ 21.541131] Goodix-TS: probe of 0-0014 failed with error -16
[ 21.547465] Goodix-TS 0-005d: Direct firmware load for goodix_9147_cfg.bin failed with error -2
[ 21.575277] i2c i2c-0: mv64xxx_i2c_fsm: Ctlr Error -- state: 0x7, status: 0x0, addr: 0x5d, flags: 0x1
[ 21.585478] Goodix-TS 0-005d: Error reading config (-5), using defaults
[ 21.592777] input: Goodix Capacitive TouchScreen as /devices/platform/soc/1c27000.i2c/i2c-0/0-005d/input/input1
# [ 21.675839] Goodix-TS 0-005d: I2C transfer error: -6
sudo apt-get install -y vnc4server
sudo apt-get install -y xfce4 xfce4-goodies
mkdir -p ~/.vnc/
chmod +x ~/.vnc/xstartup#!/bin/bash xrdb $HOME/.Xresources startxfce4 &
参考: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-18-04
https://whycan.cn/t_3137.html#p26683
我把 frp 客户端在 ubuntu18.04 跑起来了, ssh 进ubuntu18.04虚拟机相当方便。
总结, 只要在这个文件 /lib/systemd/system/rc-local.service 末尾添加:
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
然后就可以在 /etc/rc.local 里面添加你要执行的命令即可。
比如我的 /etc/rc.local:
#!/bin/bash
echo "frp starting" >> /tmp/run.log
/usr/local/frp/frp_0.27.1_linux_amd64/frpc -c /usr/local/frp/frp_0.27.1_linux_amd64/frpc.ini &
http://ask.zol.com.cn/x/8090925.html
硅胶u盘胶化了,弄得usb插口油腻黏糊糊的,怎么办可以擦去
用碱性的水洗去。。注意不要太浓的 怕腐蚀了您的U盘接口。。
找点天拿水就能擦掉
你确定是硅胶的话,直接用碱水洗就可以了,
https://zhidao.baidu.com/question/1895602685134673940.html
硅胶表带、手机壳放久了变得粘粘糊糊怎么清理?
如橡胶一样,时间久了会自然老化,只有换掉了。
apt-get install gdm3 gnome
想把 X 桌面弄上去, 为什么要接近3G的空间啊, 哭.
请教给位大神, 有没有精简的桌面呢?
前天刚好碰到
https://stackoverflow.com/questions/31802341/ts-calibrate-error-ts-open-no-such-file-or-directory
手动加入环境变量, 药到病除:
TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate
TSLIB_TSDEVICE=/dev/input/event0 ts_test
/dev/input/event0 根据实际情况填写
不会荔枝派zero, 但是我手上有几个资料, 随手上传:
GC0310_DataSheet_Released_V1_0_20140219.pdf
GC0310_Design_V1_0_20140214.pdf
GC0312_DataSheet_Released_V1_0_20140314.pdf
GC0312_Design_V1_0_20140314.pdf
gc0308 / gc0310 / gc0312
先用晕哥的USB 启动固件: https://whycan.cn/t_2449.html
看能否把系统 boot 起来。
折腾了两天, 这个 N9H30K41I 怎么样也没跑起 Linux.
打开手册一看:
http://www.nuvoton.com/resource-files/HMI-N9H30_User_Manual_EN_Rev1.0.pdf
INTRODUCTION TO NUDESIGN-HMI-N9H30 BOARD
The NuDesign-HMI-N9H30 solution uses an outstanding CPU core ARM926EJ-S, N9H30K41I
which runs up to 300 MHz and features the embedded 16MB DDR memory, with 16 KB I-cache,
16 KB D-cache and MMU, 56 KB embedded SRAM and 16 KB IBR (Internal Boot ROM) for
booting from SPI Flash or booting from NAND Flash.
The NuDesign-HMI-N9H30 solution integrates touchscreen display, voice input/output, rich serial
port service and I/O interface, providing multiple external storage methods. It contains two kinds
of board, including the NuDesign-HMI-N9H30 board and NuDesign-TFT-LCD5 board.
这坑货才 16M DDR, 赶紧联系供应商换板子。
参考 @晕哥这个帖子: https://whycan.cn/t_2469.html
终于把烧录的驱动给装上了
根据百度经验这个帖子: https://jingyan.baidu.com/article/624e74594dbc8d34e8ba5aa6.html
禁用 win10 驱动签名, 终于搞定, 请问驱动签名到底是什么鬼?
页次: 1