往期1: 感谢@晕哥邀请和测试,发布一个widora tiny200 480x272 5寸电阻屏TF卡固件, 开机跑 emwin,账号root,无密码
往期2: 分享一个 5寸的 800x480 的 f1c100s 固件, 感谢 @xm1994
调试串口UART0 (PB8/PB9)
第一次玩V3s, 拼拼凑凑搞了几天,终于弄出一个能烧录的完整版本了, 感谢论坛里面各种高手大神。
我的flash是 MX25L256, 理论上 台湾华邦W25Q256, 北京兆易GD25Q256 都可以烧录运行。
打包需要的文件: v3s_pack_files_2019121809.tgz
烧录文件: v3s_flash_32m_20101218.tgz
flash分区规划:
u-boot 0 - 0x4FFFF (320KiB)
boot logo background 0x50000 - 0x9FFFF (320KiB)
boot logo xxxxxxxxx 0xA0000 - 0xEFFFF (320KiB)
dtb 0xF0000 - 0xFFFFF ( 64KiB)
zImage 0x100000 - 0x5FFFFF ( 5MiB)
rootfs 0x600000 - 0x1FFFFF ( 26MiB = 32MiB - 6MiB)
烧录整个flash:
sunxi-fel.exe -p spiflash-write 0 v3s_flash_32m.bin
独立烧录:
sunxi-fel.exe -p spiflash-write 0 u-boot-sunxi-with-spl.bin
sunxi-fel.exe -p spiflash-write 0x50000 whycan.bmp.gz
sunxi-fel.exe -p spiflash-write 0xF0000 sun8i-v3s-licheepi-zero-dock.dtb
sunxi-fel.exe -p spiflash-write 0x100000 zImage
sunxi-fel.exe -p spiflash-write 0x600000 jffs2.bin
离线
运行效果。
离线
留位置
离线
带adb服务器的固件: v3s_flash_32m_2019121822_adbd.tgz
插入usb, 直接用adb可以shell/pull/push
ps: 昨天晚上传了很久都没传上来, 今天早上秒传了。
离线
开机运行emwin demo 的固件: v3s_flash_32m_20191219_adbd_emwin.tgz
可以直接用 adb shell 进入命令行.
记得荔枝派的 NS2009的中断脚(IRQ)与 PB2 短路才行哦.
然后运行触摸校正,测试,emwin演示程序:
TSLIB_TSEVENTTYPE=INPUT TSLIB_TSDEVICE=/dev/input/event1 TSLIB_CALIBFILE=/etc/pointercal TSLIB_CONFFILE=/etc/ts.conf TSLIB_PLUGINDIR=/usr/lib/ts TSLIB_FBDEVICE=/dev/fb0 TSLIB_CONSOLEDEVICE=none ts_calibrate
TSLIB_TSEVENTTYPE=INPUT TSLIB_TSDEVICE=/dev/input/event1 TSLIB_CALIBFILE=/etc/pointercal TSLIB_CONFFILE=/etc/ts.conf TSLIB_PLUGINDIR=/usr/lib/ts TSLIB_FBDEVICE=/dev/fb0 TSLIB_CONSOLEDEVICE=none ts_test
TSLIB_CALIBFILE=/etc/pointercal TSLIB_CONFFILE=/etc/ts.conf TSLIB_TSDEVICE=/dev/input/event1 /usr/bin/GUIDemo
离线
本站下载TF卡固件: V3s_tfcard_20200618160530.tgz
此固件支持:
0. 开机画面
1. RTL8723BS WIFI热点, SSID名: whycan, 密码whycan.cn
2. 可以接AIR724 4G上网, 手机连接whycan热点,那么手机可以连接互联网。
3. 支持Qtdemo, 演示程序地址: output/build/qt5base-5.12.4/examples/widgets/dialogs/classwizard/classwizard.pro
固件文件分析(抽取文件)可以用 @哇酷小二 这个方法: https://whycan.cn/t_4401.html#p42622
连接wifi热点可以转发到4G网口上网的指令:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
离线
楼上的固件忘记使能adbd server: https://whycan.cn/t_2794.html#p22759
运行以下代码即可:
#! /bin/sh
modprobe g_ffs idVendor=0x18d1 idProduct=0x4e42 iSerialNumber="buildroot"
mkdir -p /dev/usb-ffs/adb
mount -t functionfs adb /dev/usb-ffs/adb -o uid=2000,gid=2000
adbd &
离线
#!/usr/bin/python
# https://pythonprogramminglanguage.com/pyqt5-hello-world/
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QLabel, QGridLayout, QWidget, QPushButton
from PyQt5.QtCore import QSize
class HelloWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setMinimumSize(QSize(640, 480))
self.setWindowTitle("Hello world - pythonprogramminglanguage.com")
centralWidget = QWidget(self)
self.setCentralWidget(centralWidget)
gridLayout = QGridLayout(self)
centralWidget.setLayout(gridLayout)
label1 = QLabel("WhyCan.cn Python3 + PyQt5 演示程序");
gridLayout.addWidget(label1, 2, 0)
button1 = QPushButton("按我1")
button1.setStyleSheet("border: 1px solid black; background: white;width: 50px; height: 80px;");
gridLayout.addWidget(button1, 0, 0)
button2 = QPushButton("按我2")
button2.setStyleSheet("border: 1px solid black; background: white;width: 50px; height: 80px;");
gridLayout.addWidget(button2, 0, 1)
button3 = QPushButton("按我3")
button3.setStyleSheet("border: 1px solid black; background: white;width: 50px; height: 80px;");
gridLayout.addWidget(button3, 1, 0)
button4 = QPushButton("按我4")
button4.setStyleSheet("border: 1px solid black; background: white;width: 50px; height: 80px;");
gridLayout.addWidget(button4, 1, 1)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
mainWin = HelloWindow()
mainWin.show()
sys.exit( app.exec_() )
本站下载: V3s_tfcard_20200627115401.tgz
1. ADB ok
2. Python3 + PyQt5 OK, 开机运行PyQt5 QWidgets Demo app
3. RTL8723BS WIFI 热点 OK, ssid: whycan, password: whycan.cn
4. AIR720/AIR724 4G模块驱动 OK
5. SSH服务器OK, 连WIFI热点上去之后,V3s IP地址是 192.168.10.1
6. 插上网线可以作WIFI路由器:
#从上级路由器获取IP/网关等配置信息
udhcpc -i eth0#开启IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward#eth0是以太网口, eth1是4G
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
目前还有一个问题未解决, 如何检测网线插入, 然后自动执行 udhcpc -i eth0
离线
@哇酷小二 感谢小二, 参考上面的脚本已经搞定.
现在插上网线, 自动获取IP地址, 手机/电脑 连V3s的手机热点上网, 可以当路由器用.
离线
@哇酷小二 感谢小二, 参考上面的脚本已经搞定.
现在插上网线, 自动获取IP地址, 手机/电脑 连V3s的手机热点上网, 可以当路由器用.
/etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
# key_mgmt=NONE
ssid="whycan"
psk="whycan.cn"
}
用这个固件, WIFI连接路由器热点,然后就可以通过ETH0上网了:
#连接WIFI路由器:
wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B
#设置eth0地址:
ifconfig eth0 192.168.10.1
#eth0装上dhcp服务器:
dnsmasq -i eth0 --dhcp-range=192.168.10.100,192.168.10.109,2h
#设置路由:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
离线
添加 ESP8089 支持:
本站下载: V3s_tfcard_20200630103649.tgz
配置文件: /etc/init.d/S39wifi
#!/bin/sh
modprobe r8723bs
sleep 0
modprobe esp8089.ko config=crystal_26M_en=1
sleep 2
ifconfig wlan0 192.168.10.1 netmask 255.255.255.0 up
dnsmasq -i wlan0 --dhcp-range=192.168.10.100,192.168.10.109,2h
hostapd /etc/hostapd.conf &
#wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B
现在:
既支持RTL8723BS, 也支持ESP8089
既支持AP模式,也支持STA模式
离线
V3s ENC28j60 网卡驱动成功, SPI接口连ENC28J60, PB5接ENC28J60 INT口:
&spi0 {
status ="okay";
eth1: enc28j60@0{
compatible = "microchip,enc28j60";
reg = <0x0>; /* CE0 */
interrupt-parent = <&pio>;
interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>; /* (PB5) */
gpios = <&pio 1 5 GPIO_ACTIVE_HIGH>;
spi-max-frequency = <12000000>;
status = "okay";
};
#if 0
mx25l25635e:mx25l25635e@0 {
compatible = "jedec,spi-nor";
reg = <0x0>;
spi-max-frequency = <50000000>;
#address-cells = <1>;
#size-cells = <1>;
};
#endif
};
固件本站下载: V3s_tfcard_20200702151252.tgz
离线
把荔枝派V3s开发板做 WIFI 路由器, 稳定工作一个星期了. 固件就是我楼上发的, WIFI模块可以用RTL8723, 也可以用ESP8089
离线