View previous topic :: View next topic |
Author |
Message |
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Fri Mar 15, 2024 9:17 pm Post subject: orangepi 3 lts no video after boot *** RESOLVED *** |
|
|
Got an orangepi 3 LTS running gentoo. Having video problems. Guessing a framebuffer issue but can't isolate exactly what it is.
When I boot the board, I have video for the first part of it coming up, then the screen goes back. On shutdown, I get video back until the reboot finishes. I dont see any error messages on the serial (UART TTL) interface. Everything else seems to be fine. Networking comes up no problem, etc...
Code: | root@orangepi3-lts ~ # dmesg|grep -i fb
[ 0.000000] NUMA: NODE_DATA [mem 0xbfbc6040-0xbfbc7fff]
[ 2.214978] sun4i-drm display-engine: [drm] fb0: sun4i-drmdrmfb frame buffer device
|
Code: |
root@orangepi3-lts ~ # grep FB /boot/config-6.6.21-gentoo
CONFIG_NET_SCH_SFB=m
CONFIG_IFB=m
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_FB=y
# CONFIG_FB_ARMCLCD is not set
# CONFIG_FB_UVESA is not set
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_IBM_GXT4500 is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_SSD1307 is not set
CONFIG_FB_CORE=y
CONFIG_FB_NOTIFY=y
CONFIG_FB_DEVICE=y
CONFIG_FB_SYS_FILLRECT=y
CONFIG_FB_SYS_COPYAREA=y
CONFIG_FB_SYS_IMAGEBLIT=y
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=y
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_DMAMEM_HELPERS=y
CONFIG_FB_SYSMEM_HELPERS=y
CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
CONFIG_FB_BACKLIGHT=m
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
CONFIG_HID_PICOLCD_FB=y
CONFIG_FB_TFT=m
CONFIG_FB_TFT_AGM1264K_FL=m
CONFIG_FB_TFT_BD663474=m
CONFIG_FB_TFT_HX8340BN=m
CONFIG_FB_TFT_HX8347D=m
CONFIG_FB_TFT_HX8353D=m
CONFIG_FB_TFT_HX8357D=m
CONFIG_FB_TFT_ILI9163=m
CONFIG_FB_TFT_ILI9320=m
CONFIG_FB_TFT_ILI9325=m
CONFIG_FB_TFT_ILI9340=m
CONFIG_FB_TFT_ILI9341=m
CONFIG_FB_TFT_ILI9481=m
CONFIG_FB_TFT_ILI9486=m
CONFIG_FB_TFT_PCD8544=m
CONFIG_FB_TFT_RA8875=m
CONFIG_FB_TFT_S6D02A1=m
CONFIG_FB_TFT_S6D1121=m
CONFIG_FB_TFT_SEPS525=m
CONFIG_FB_TFT_SH1106=m
CONFIG_FB_TFT_SSD1289=m
CONFIG_FB_TFT_SSD1305=m
CONFIG_FB_TFT_SSD1306=m
CONFIG_FB_TFT_SSD1331=m
CONFIG_FB_TFT_SSD1351=m
CONFIG_FB_TFT_ST7735R=m
CONFIG_FB_TFT_ST7789V=m
CONFIG_FB_TFT_TINYLCD=m
CONFIG_FB_TFT_TLS8204=m
CONFIG_FB_TFT_UC1611=m
CONFIG_FB_TFT_UC1701=m
CONFIG_FB_TFT_UPD161704=m
CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_OFB=m
|
Nothing jumping out at me before the bootloader hands over to the linux image either.
Code: |
U-Boot 2020.04-gc97dbbca (Mar 14 2024 - 14:36:57 -0500) Allwinner Technology
CPU: Allwinner H6 (SUN50I)
Model: OrangePi 3 LTS
DRAM: 2 GiB
MMC: mmc@4020000: 0, mmc@4022000: 1
Loading Environment from FAT... Unable to use mmc 1:1... In: serial@5000000
Out: serial@5000000
Err: serial@5000000
Net: No ethernet found.
starting USB...
No working controllers found
Autoboot in 2 seconds, press <Space> to stop
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
3259 bytes read in 2 ms (1.6 MiB/s)
## Executing script at 4fc00000
U-boot loaded from SD
Boot script loaded from mmc
252 bytes read in 1 ms (246.1 KiB/s)
38905 bytes read in 8 ms (4.6 MiB/s)
19712819 bytes read in 1973 ms (9.5 MiB/s)
23496712 bytes read in 2353 ms (9.5 MiB/s)
## Loading init Ramdisk from Legacy Image at 4fe00000 ...
Image Name: Gentoo
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 19712755 Bytes = 18.8 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 4fa00000
Booting using the fdt blob at 0x4fa00000
Loading Ramdisk to 48d33000, end 49fffaf3 ... OK
Loading Device Tree to 0000000048cc1000, end 0000000048d32fff ... OK
Starting kernel ...
|
Anyone got an idea?
Last edited by JumboAg on Sat Mar 16, 2024 8:53 pm; edited 1 time in total |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1264 Location: Richmond Hill, Canada
|
Posted: Sat Mar 16, 2024 3:53 pm Post subject: |
|
|
JumboAg,
Can you clarify for me that you are not getting any boot messages after "Starting kernel ..." on serial console? or just no messages for your display device? |
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Sat Mar 16, 2024 4:40 pm Post subject: |
|
|
Serial console continues. In fact, once it's done coming up. I can log in from its login prompt if I wish. |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1264 Location: Richmond Hill, Canada
|
Posted: Sat Mar 16, 2024 5:34 pm Post subject: |
|
|
JumboAg wrote: | Serial console continues. In fact, once it's done coming up. I can log in from its login prompt if I wish. |
So this could be several different reasons for not getting any thing on display device. One is not giving direction for kernel to send output to the display device or no driver for the display device.
Lets start out assume there is display driver in kernel for the display device. So please share you kernel command line parameters so we can be sure that kernel know it need to send messages to the display device.
Do you get login prompt on the display device?
I use "display device" because I don't know how your setup connect your "monitor" to your orangepi 3. I mean for example using HDMI port (and which port? if there are more than one HDMI port on orangepi 3) |
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Sat Mar 16, 2024 7:17 pm Post subject: |
|
|
I do not get a login prompt on my display device (monitor plugged into the orangepi via HDMI.) Video drops and the screen goes black partway through the boot sequence.
Kernel command line parameters might be an interesting one. Since it's a u-boot bootloader, I'm not explicitly doing anything beyond defining the dtb, initrd, kernel image and root device. I have not modified the boot.scr I borrowed from orangepi's native OS image.
Code: |
[ 0.000000] Unknown kernel command line parameters "splash=verbose ubootpart=aaa0796c-01 cgroup_enable=memory", will be passed to user space.
|
Code: | orangepi3-lts /boot # cat armbianEnv.txt
verbosity=1
bootlogo=false
console=both
disp_mode=1920x1080p60
overlay_prefix=sun50i-h6
#rootdev=UUID=a8f2e575-8dd2-4ae7-87ac-1ca319e6ac06
rootdev=UUID=0e5ffee5-f7a0-4312-88c0-5562c7f8885c
rootfstype=xfs
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
|
Code: | orangepi3-lts /boot # cat boot.cmd
# DO NOT EDIT THIS FILE
#
# Please edit /boot/armbianEnv.txt to set supported parameters
#
# default values
setenv load_addr "0x45000000"
setenv overlay_error "false"
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv rootfstype "ext4"
setenv console "both"
setenv docker_optimizations "on"
setenv bootlogo "false"
# Print boot source
itest.b *0x10028 == 0x00 && echo "U-boot loaded from SD"
itest.b *0x10028 == 0x02 && echo "U-boot loaded from eMMC or secondary SD"
itest.b *0x10028 == 0x03 && echo "U-boot loaded from SPI"
echo "Boot script loaded from ${devtype}"
if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then
load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt
env import -t ${load_addr} ${filesize}
fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi
if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi
if test "${bootlogo}" = "true"; then
setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}"
else
setenv consoleargs "splash=verbose ${consoleargs}"
fi
# get PARTUUID of first partition on SD/eMMC it was loaded from
# mmc 0 is always mapped to device u-boot (2016.09+) was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc 0:1 partuuid; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/allwinner/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
else
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/allwinner/overlay/${overlay_prefix}-fixup.scr; then
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
source ${load_addr}
fi
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
echo "Applying user provided fixup script (fixup.scr)"
source ${load_addr}
fi
fi
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
|
|
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1264 Location: Richmond Hill, Canada
|
Posted: Sat Mar 16, 2024 7:35 pm Post subject: |
|
|
I have feeling that your kernel command line parameters may have missing something.
can you share the output of Code: | dmesg|grep -i "kernel command line" |
|
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Sat Mar 16, 2024 8:11 pm Post subject: |
|
|
Code: | orangepi3-lts /boot # dmesg |grep -i "kernel command line"
[ 0.000000] Kernel command line: root=UUID=0e5ffee5-f7a0-4312-88c0-5562c7f8885c rootwait rootfstype=xfs splash=verbose console=ttyS0,115200 console=tty1 consoleblank=0 loglevel=1 ubootpart=aaa0796c-01 usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u cgroup_enable=memory swapaccount=1
|
|
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Sat Mar 16, 2024 8:53 pm Post subject: |
|
|
I think I beat you to your next line of thinking Ping.... I went ahead and fed the kernel a video argument.... that resolved it. Comes up 1920x1080@60 now. |
|
Back to top |
|
|
pingtoo Veteran
Joined: 10 Sep 2021 Posts: 1264 Location: Richmond Hill, Canada
|
Posted: Sat Mar 16, 2024 9:14 pm Post subject: |
|
|
JumboAg wrote: | I think I beat you to your next line of thinking Ping.... I went ahead and fed the kernel a video argument.... that resolved it. Comes up 1920x1080@60 now. |
Congratulation
Maybe you can post your changes, so next person can benefit from your discovery. |
|
Back to top |
|
|
JumboAg Apprentice
Joined: 03 Mar 2007 Posts: 205 Location: Dallas, TX
|
Posted: Sat Mar 16, 2024 9:43 pm Post subject: |
|
|
the boot script supports a ${extraargs} flag. I just added "extraargs=video=1920x1080@60" to the armbianEnv.txt file. |
|
Back to top |
|
|
|