TN3399板子填坑

分区扩容

看好自己的root分区在哪个设备,sd卡一般是/dev/mmcblk1,emmc是/dev/mmcblk2,用别人的dtb不一定,可能会变

然后装个gdisk (1.3版本中会默认安装, 1.2手动装一下)

使用gdisk打开磁盘,输入p可以看到当前分区信息

rootfs在第五个分区

我们首先删掉第五个分区然后新建一个大分区,起始位置要和原来的分区一致

后三个参数直接Enter过去,默认即可

然后改一下新分区的UUID,因为是GPT分区表,bootargs中rootfs所在分区也是由UUID标示的,新建分区的UUID是个随机的内容,直接开机会无法启动,找不到rootfs

如图

把uuid改成B921B044-1DF0-41C3-AF44-4C6F280D3FAE

写入分区表

之后resize2fs即可

如图,分区已经扩大

注意如果要写入emmc,应该先dd进emmc再扩大分区

GPIO

花了一晚上xjb把GPIO试出来了

在/sys/class/leds映射了4个led,分别是风扇fan,前面的绿灯green_led_front,剩下两个我自己搞得用可以不管

开机电源按钮是GPIO 99

做了个镜像,附带一个说明

要固件加群1101467449

  1. 怎么控制前面板led 开启前面板led echo 1 > /sys/class/leds/green_led_front/brightness 关闭前面板led echo 0 > /sys/class/leds/green_led_front/brightness

  2. 怎么控制风扇 风扇插电源接口旁边那个2pin插座 开启风扇 echo 1 > /sys/class/leds/fan/brightness 关闭风扇 echo 0 > /sys/class/leds/fan/brightness

附带一个温控脚本 双温度控制,高于temp_limit_high后风扇开启 风扇启动后,低于temp_limit_low后风扇关闭 使用前面板绿灯指示风扇状态

import os
import subprocess
import time

fan_dev = "/sys/class/leds/fan/brightness"
front_led_dev = "/sys/class/leds/green_led_front/brightness"
fan_status = 0

temp_limit_high = 55
temp_limit_low = 45

def fan_on():
    os.system("echo 1 > "+fan_dev)
    os.system("echo 1 > "+front_led_dev)

def fan_off():
    os.system("echo 0 > "+fan_dev)
    os.system("echo 0 > "+front_led_dev)

def get_temp():
    temp = int(subprocess.check_output(["sh", "-c", "cat /sys/class/thermal/thermal_zone0/temp"]))
    return temp/1000

while 1:
    time.sleep(3)
    print("current temp:", get_temp())
    if get_temp() > temp_limit_high and fan_status == 0:
        fan_status = 1
        fan_on()
    if get_temp() < temp_limit_low and fan_status == 1:
        fan_status = 0
        fan_off()
  1. 怎么写入emmc

卡刷: 扩容分区之前,dd卡前2GB到emmc即可 线刷: 找台linux电脑,确保可以运行rkdeveloptool 短接emmc背面靠近gnd测试点的脚,复位或者上电,让板子进入maskrom模式 使用rkdeveloptool的db功能载入loader,loader可以从rkbin仓库找,在github 使用rkdeveloptool的wl功能,从0x0开始将镜像写入即可 不推荐使用windows线刷。。。玄学比较多