修复全志开发板AV输出Overscan问题

之前买了一个Orange Pi Zero,现在是我的智能音响

因为只有av输出没有hdmi,在av日常显示超出范围的情况下,全志居然没有Overscan这种设置

然后研究了一下有了这个教程(调了一晚上)


全志有个叫script.bin和树莓派的config.txt类似,不过这个文件明显不能用编辑器打开的

bin2fex /boot/script.bin ~/script.fex
nano ~/script.fex

按 Ctrl + w 查找:

fb0_

fb0_width = 0

修改成

fb0_width = 658

fb0_height = 0

修改成

fb0_height = 548

Ctrl + x 保存

sudo fex2bin ~/script.fex /boot/script.bin
wget https://raw.githubusercontent.com/harshgandhi/linuxScripts/master/devmem2.c
gcc devmem2.c
sudo mv a.out /usr/local/bin/devmem2
nano /etc/rc.local

在文件最后的

exit 0

之前加入

devmem2 0x01E00130 w 0x00c003a

如果不能使用以上方法来修改,也可以用:

fbset -g 658 548 658 548 32

然后重启 Enjoy~


发现NTSC在宽屏设备下显示挺不错的…比PAL下的设置要好

screen0_output_mode = 11

这里11是PAL,改成14就是NTSC了

对应的

fb0_width = 660
fb0_height = 470

如果没办法改,也能用

fbset -g 660 470 660 470 32

移动屏幕位置

devmem2 0x01E00130 w 0x0090396

这和上面的配置差不多…只是修改了一些数值


最近换了新的armbain系统,内核是4.14.x的,没有视频输出,Google翻了一下找到一个h3-tve的模块,然后把内核提取出来换掉boot里面的(记得替换那三个软连接),我并不知道怎么在字符界面把输出改成NTSC,PAL虽然分辨率大但是彩边比较严重,NTSC就很清晰。

内核下载: armbain-4.14.21-kernel.zip

/etc/rc.local

中添加:

devmem2 0x01E00130 w 0x0170048
fbset -g 658 548 658 548 32

修正在PAL下的显示大小和位置

在桌面环境下可以在

/etc/rc.local

中添加:

devmem2 0x01E00130 w 0x0120048

在图形界面的开机启动(Startup)中添加

DISPLAY=:0 xrandr --output Composite-1 --mode NTSC --scale 1.454x1.15 --panning 960x540

来修正位置和修改为NTSC(可以差值更高的分辨率,但是真的挺卡的)

我是这样配置的

/etc/rc.local

如果你不需要图形界面:

# PAL
devmem2 0x01E00130 w 0x0170048
fbset -g 658 548 658 548 32

图形界面:

# NTSC
su sparkle -c startx&
su -c "sleep 30 && fixav"&

其中的

/usr/local/bin/fixav
devmem2 0x01E00130 w 0x0120048
su - sparkle -c "DISPLAY=:0 xrandr --output Composite-1 --mode NTSC --scale 1.454x1.15 --panning 960x540"

国产的东西文档总是写的不清不楚的…

如果文章对你有帮助, 你可以: 请我喝可乐

Leave a Comment.

This site uses Akismet to reduce spam. Learn how your comment data is processed.