khadas / fenix

One-stop script set to build Ubuntu/Debian images
GNU General Public License v2.0
211 stars 135 forks source link

missing fbset in initramfs #18

Closed zhangn1985 closed 6 years ago

zhangn1985 commented 6 years ago

local-top script: khadas_init.sh requires fbset, but it not copied to initramfs

create file /etc/initramfs-tools/hook/fbset, and chmod +x with below content:

#!/bin/sh

set -e

PREREQ=""

prereqs()
{
    echo "${PREREQ}"
}

case "${1}" in
    prereqs)
        prereqs
        exit 0
        ;;
esac

. /usr/share/initramfs-tools/hook-functions

if [ -x /bin/fbset ]
then
    copy_exec /bin/fbset /bin

    LIBC_DIR=$(ldd /bin/fbset | sed -nr 's#.* => (/lib.*)/libc\.so\.[0-9.-]+ \(0x[[:xdigit:]]+\)$#\1#p')
    find -L "$LIBC_DIR" -maxdepth 1 -name 'libgcc_s.*' -type f | while read so; do
        copy_exec "$so"
    done
fi
numbqq commented 6 years ago

local-top script: khadas_init.sh requires fbset, but it not copied to initramfs

fbset is in initramfs.

(initramfs) fbset -v
BusyBox v1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) multi-call binary.

Usage: fbset [OPTIONS] [MODE]

Show and modify frame buffer settings

When VIMs bootup you will see the resolution set to 720p first which is set in khadas_init.sh.

Thanks.

zhangn1985 commented 6 years ago

OK, not in debian's initramfs....

zhangn1985 commented 6 years ago

is mali.ko required by initramfs?

numbqq commented 6 years ago

not in debian's initramfs....

I will check this..

is mali.ko required by initramfs?

Not required.

zhangn1985 commented 6 years ago

@numbqq 我已经安装了debian+3/14到SD卡,已经能够启动到GUI,但是GUI似乎是放大了,MATE桌面的 panel 在屏幕外面,似乎是传给电视的画面稍微大了些。 我试过720P和1080P两种分辨率,都这样。

numbqq commented 6 years ago

Hi @zhangn1985

你用的是电视?我这边也碰到过有的电视显示不正常,和你说的一样的现象,你可以用下面的命令进行缩放:

echo 30 20 1889 1059 > /sys/class/graphics/fb0/window_axis
echo 0x10001 > /sys/class/graphics/fb0/free_scale
zhangn1985 commented 6 years ago

我后来用1080p30hz,似乎好了,但不稳定,偶尔又会出问题。 可是我的电视的4K的,所以,能用4K是最好。是三星的UA50K.

但是我照着Android的设置抄到Linux这边还是不行。只显示右上角。缩放没有有作用。

fbset -fb /dev/fb0 -g 1920 1080 1920 3240 32
echo 2160p60hz420 > /sys/class/display/mode
echo 0x10001 > /sys/class/graphics/fb0/free_scale
echo 1 > /sys/class/graphics/fb0/freescale_mode
echo 0 0 1919 1079 > /sys/class/graphics/fb0/free_scale_axis
echo 0 0 3839 2159 > /sys/class/graphics/fb0/window_axis
echo 0 > /sys/class/graphics/fb1/free_scale
zhangn1985 commented 6 years ago

试过 fbset -fb /dev/fb0 -g 3840 2160 3840 4320 32 效果更差

numbqq commented 6 years ago

4K显示效果很差的,图标文字都缩放的很小。我这边有的电视有问题就按上面缩放一下就可以了,你那个还不太确定什么原因。

numbqq commented 6 years ago

not in debian's initramfs....

Debian确实有问题,使用你提供的那个脚本可以工作,谢谢~

numbqq commented 6 years ago

但是我照着Android的设置抄到Linux这边还是不行。只显示右上角。缩放没有有作用。

你是不是用的4.9的内核? 4.9内核不支持4K显示,设置为4K就只是在左上角显示1/4。 你可以试试3.14的内核,支持4K。

zhangn1985 commented 6 years ago

我用的就是3.14, 不知怎么就是不行,我还是老老实实用1080p调整缩放吧。

zhangn1985 commented 6 years ago

我感觉吧,我抄的那组Android 4K设置,framebuffer是1080p,是通过display缩放过去的。

但是缩放的echo 0x10001 > /sys/class/graphics/fb0/free_scale 不生效,具体填什么,试了很多,都不起作用,照着hdmi.sh做也不正确。

可以告诉我free_scale该怎么填吗?有文档么?

zhangn1985 commented 6 years ago

@numbqq 搞清楚了,应该是驱动的bug 这些指令要按循序执行,下面是正确的4K指令循序

fbset -fb /dev/fb0 -g 1920 1080 1920 2160 32
echo 1 > /sys/class/graphics/fb0/freescale_mode
echo 0 0 1919 1079 > /sys/class/graphics/fb0/free_scale_axis
echo 0 0 3839 2159 > /sys/class/graphics/fb0/window_axis
echo 0x10001 > /sys/class/graphics/fb0/free_scale
echo 2160p60hz420 > /sys/class/display/mode
zhangn1985 commented 6 years ago

@numbqq 还有个问题,我在debian stratch 3.14上安装了MATE桌面,但是背景全黑呀。。。

这个是为什么呢?

zhangn1985 commented 6 years ago

@numbqq 还有个问题,我在debian stratch 3.14上安装了MATE桌面,但是背景全黑呀。。。

这个是为什么呢? img_20180714_225056

zhangn1985 commented 6 years ago

运行cube测试程序的时候,出现 libEGL warning: DRI2 failed to authenticate 这个问题怎么解决?

zhangn1985 commented 6 years ago

libEGL warning: DRI2 failed to authenticate 这个问题的出现是因为对应的GL/EGL库不是libmali,修复链接即可, 但是还是报eglGetError 0x3003 EGL_BAD_ALLOC

zhangn1985 commented 6 years ago

被这个黑屏还有硬件编解码搞到崩溃了,过一个礼拜再来。

zhangn1985 commented 6 years ago
img/tv samsung 1080p samsung 4k
内置Android M 画面超出显示器 正常
Khadas Ubuntu Mate 画面超出显示器,通过缩放调整,界面背景黑屏,kodi仍需调整 1080P:画面超出显示器,通过缩放调整,界面背景黑屏,4K:界面背景黑屏, Kodi两种分辨率都无法正常工作
自制Debian Mate N/A 4K:界面背景黑屏

Khadas Ubuntu Mate: 下载地址 重启或关机内核空指针,初步怀疑和pulseaudio有关。

界面黑屏怀疑和echo 0x10001 > free_scale有关,但Android又没有问题,不知哪里还有额外设置。

numbqq commented 6 years ago

还有个问题,我在debian stratch 3.14上安装了MATE桌面,但是背景全黑呀。。。

还没有试过Debian Mate桌面。Debian LXDE或XFCE会这样吗?

zhangn1985 commented 6 years ago

@numbqq 试过xfce4,现象一样。

numbqq commented 6 years ago

Hello zhangn1985,

Debian LXDE显示是正常的。我会编译Debian XFCE验证一下这个问题~

zhangn1985 commented 6 years ago

@numbqq 小声的问一下,我看到Odroid-c2的kernel 的mali驱动和这里的不一样,多了UMP

另外我看到fbturbo驱动也是需要UMP的。

把UMP弄到kvim上是否可行?又没有性能提升?(估计?)

numbqq commented 6 years ago

小声的问一下,我看到Odroid-c2的kernel 的mali驱动和这里的不一样,多了UMP。 另外我看到fbturbo驱动也是需要UMP的。 把UMP弄到kvim上是否可行?又没有性能提升?(估计?)

驱动版本不同吧,我们这个驱动是直接从Amlogic Buildroot那边拿过来的,没有做什么修改,至于UMP不是太了解。

zhangn1985 commented 6 years ago

Odroid-c2 用的是S905, Kvim用的是S905X,我猜可行,不过Odroid-c2的kernel已经升级到了3.14.79,不好比较。

numbqq commented 6 years ago

试过xfce4,现象一样。

我用如下配置编译出来的Debian XFCE桌面显示正常,你有改过别的东西吗?

Version: 0.3
Current environment:
===========================================

#KHADAS_BOARD=VIM1
#VENDER=Amlogic
#CHIP=S905X
#LINUX=3.14
#UBOOT=2015.01
#DISTRIBUTION=Debian
#DISTRIB_RELEASE=stretch
#DISTRIB_TYPE=xfce
#DISTRIB_ARCH=arm64
#INSTALL_TYPE=EMMC

===========================================
zhangn1985 commented 6 years ago

我仅用了fenix编译出来的deb包,fenix配置除了#INSTALL_TYPE=SD-USB之外,没改了。

我不认为是DE的问题,觉得还是 缩放(0x10001)+xorg造成的。

如果不启用缩放,应该所有的DE都不会有问题。

numbqq commented 6 years ago

我不认为是DE的问题,觉得还是 缩放(0x10001)+xorg造成的。

我这边一台测试的电视缩放是没有问题的。你那边不缩放显示正常?

zhangn1985 commented 6 years ago

除了画面超出电视之外,都正常。我家都是3星电视,难道是3星的锅?

numbqq commented 6 years ago

这个不太清楚。这边一台老的飞利浦电视会出现画面超出电视的现象,但是缩放之后正常。其他小米还有乐视的4K电视显示正常,一台LG的4K显示器也正常。

numbqq commented 6 years ago

Khadas Ubuntu Mate: 下载地址 重启或关机内核空指针,初步怀疑和pulseaudio有关。

这个问题和声卡驱动有关系,我更新了下驱动,现在reboot好像不会报错了。

zhangn1985 commented 6 years ago

@numbqq 那奇怪了,难道是我的启动脚本有问题?

我是这么启动的,拿你们发布的ubunut mate 为例子。 1, dd 到USB 1.1, 把boot分区的dtb/kvm_android.dtb复制为dtb.img,这步是因为第五步无法启动(卡很久没反应) 2, 插入到VIM的USB口 3,使用串口进入u-boot 4,输入usb start 5, 输入启动命令: https://github.com/khadas/fenix/blob/973c37b696236253b54564a3a16672c1e5dfa3fc/config/bootscripts/s905_autoscript.cmd#L1-L10

numbqq commented 6 years ago

把boot分区的dtb/kvm_android.dtb复制为dtb.img,这步是因为第五步无法启动(卡很久没反应)

kvim_linux.dtb。如何启动T卡固件,参考这里: https://docs.khadas.com/zh-cn/vim1/BootFromExtMedia.html

zhangn1985 commented 6 years ago

看代码kvim_linux.dtb 和 kvim_android.dtb只有 partition的区别。。。我可以试一下。

zhangn1985 commented 6 years ago

哎~~~

zhangn1985 commented 5 years ago

尝试了debian 10 + Linux-5.2.5+mesa 19.1.2 + lima enabled。 Sumsang 1080p TV:1080p不正常,画面超出显示器,1680p正常 Sumsang 4K TV: 4K 显示器提示不支持的模式,1080p正常。

目前Lima还不能满足日常使用。

numbqq commented 5 years ago

Sumsang 1080p TV:1080p不正常,画面超出显示器,1680p正常

有试过显示器吗?好像有的电视会出现超出边界的情况,我们这边的一台飞利浦的电视就是这样。

Sumsang 4K TV: 4K 显示器提示不支持的模式,1080p正常。

现在主线好像支持4K分辨率了吧? 提示不支持是lima的原因吗?

zhangn1985 commented 5 years ago

@numbqq 电脑显示器正常。4K倒是不知道,目前没有4K的显示器用于测试。

numbqq commented 5 years ago

我很早之前测试过4K显示,是正常的。

lima现在在X11下可以工作了吗?之前测试X11有很多问题。

zhangn1985 commented 5 years ago

不可以,lima-18.3.6 + desktop patch,勉强可以,但UI渲染很慢, mesa-19.1.2 不需要patch,但是桌面只有背景,没有其他的东西。

如果你想试一下,我有编译好的debs.

https://github.com/zhangn1985/lima_gpu_drv

Section "ServerFlags"
        Option  "AutoAddGPU" "off"
        Option "Debug" "dmabuf_capable"
EndSection

Section "OutputClass"
        Identifier "Meson"
        MatchDriver "meson"
        Driver "modesetting"
        Option "PrimaryGPU" "true"
EndSection

https://gitlab.freedesktop.org/lima/mesa/issues/96 https://gitlab.freedesktop.org/lima/mesa/issues/82 https://gitlab.freedesktop.org/lima/mesa/issues/92

zhangn1985 commented 5 years ago

我略微搜索了一下,lima的进展要比panfrost 快。

等这个https://gitlab.freedesktop.org/lima/mesa/issues/85 关闭了就差不多可用了吧。

numbqq commented 5 years ago

如果你想试一下,我有编译好的debs.

谢谢!

我略微搜索了一下,lima的进展要比panfrost 快。 等这个https://gitlab.freedesktop.org/lima/mesa/issues/85 关闭了就差不多可用了吧。

估计还得在等段时间

numbqq commented 5 years ago

Hello @zhangn1985 ,

能否方便提供一下你的邮箱?

numbqq commented 5 years ago

@zhangn1985

确认下 是zhangn1985@outlook.com吗? 好像邮件发不出去?

zhangn1985 commented 5 years ago

https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1699 WIP: lima: ppir: add control flow support