[Letux-kernel] QtMoko on Pyra...

H. Nikolaus Schaller hns at goldelico.com
Tue Mar 6 13:48:37 CET 2018


> Am 06.03.2018 um 12:07 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> Hi,
> I tried to run the latest QtMoko on the Pyra, but all I get are strange kernel exceptions
> during boot and before I can login:
> 
> The interesting thing is that it is the "qpe" process (i.e. QtMoko) which should not
> really be possible that a user-space process can make such trouble.
> 
> I have even tried with creating a new SD card with a minimal wheezy first
> (http://download.goldelico.com/letux-debian-rootfs/20180221-wheezy-7.11-armhf-minimal.tbz)
> and then apt-get installing letux-qtmoko, but it fails at the moment where the installation
> process is configuring (and starting) the qpe process...
> 
> So this means that there is something in the qpe binary which fails on an otherwise
> well working OMAP5/Pyra kernel and user-space.
> 
> The same rootfs image works on OMAP3 (GTA04 and OpenPandora).
> 
> An excerpt of the log is attached.
> 
> Any ideas/hints what drivers/bus/omap_l3_noc.c is doing and what an l3_interrupt_handler
> is doing and why it can fail?
> 
> Another observation is that the cursor on the MIPI panel is blinking, but irregularily
> and somehow synced to the console log activities.
> 
> Next I will try to stop qpe from being launched at boot time and run it through strace
> or gdb.

Ok, gdb reveals this:

(gdb) r
Starting program: /opt/qtmoko/bin/qpe 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[ 1399.638828] Unhandled fault: external abort on non-linefetch (0x1008) at 0xb48081e8
[ 1399.638842] ------------[ cut here ]------------
[ 1399.646903] pgd = 0631f8bb
[ 1399.651778] WARNING: CPU: 0 PID: 0 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x220/0x324
[ 1399.654615] [b48081e8] *pgd=fd47e835
[ 1399.664212] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET DMM1 (Read): Data Access in User mode during Functional access
[ 1399.667969] Modules linked in: bnep rfcomm bluetooth ecdh_generic usb_f_ecm g_ether usb_f_rndis u_ether libcomposite configfs ipv6 arc4 wl18xx omapdrm wlcore drm_kms_helper mac80211 cfbfillrect syscopyarea cfbimgblt sysfillrect sysimgblt fb_sys_fops cfbcopyarea drm cfg80211 drm_panel_orientation_quirks dwc3 snd_soc_omap_hdmi_audio panel_boe_w677l snd_soc_dmic snd_soc_omap_abe_twl6040 snd_soc_twl6040 leds_gpio wwan_on_off encoder_tpd12s015 connector_hdmi pwm_omap_dmtimer omapdss omapdss_base cec generic_adc_battery pwm_bl ehci_omap wlcore_sdio leds_is31fl319x snd_soc_ts3a227e bq27xxx_battery_i2c dwc3_omap bq2429x_charger bq27xxx_battery as5013 ina2xx tca8418_keypad tsc2007 bmc150_magn_i2c bmc150_magn bmg160_i2c bmc150_accel_i2c bmg160_core w2cbw003_bluetooth bmc150_accel_core bmp280_i2c twl6040_vibra
[ 1399.754687]  palmas_gpadc at24 bno055 industrialio_triggered_buffer usb3503 palmas_pwrbutton bmp280 kfifo_buf gpio_twl6040 industrialio snd_soc_omap_mcpdm snd_soc_omap_mcbsp snd_soc_omap snd_pcm_dmaengine
[ 1399.773939] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.16.0-rc4-letux+ #2093
[ 1399.781464] Hardware name: Generic OMAP5 (Flattened Device Tree)
[ 1399.787820] [<c010f5a4>] (unwind_backtrace) from [<c010b968>] (show_stack+0x10/0x14)
[ 1399.795986] [<c010b968>] (show_stack) from [<c06ed3d0>] (dump_stack+0x7c/0x9c)
[ 1399.803613] [<c06ed3d0>] (dump_stack) from [<c012d9e0>] (__warn+0xd8/0x108)
[ 1399.810986] [<c012d9e0>] (__warn) from [<c012da44>] (warn_slowpath_fmt+0x34/0x44)
[ 1399.818908] [<c012da44>] (warn_slowpath_fmt) from [<c041fc64>] (l3_interrupt_handler+0x220/0x324)
[ 1399.828278] [<c041fc64>] (l3_interrupt_handler) from [<c01739b4>] (__handle_irq_event_percpu+0xa8/0x264)
[ 1399.838299] [<c01739b4>] (__handle_irq_event_percpu) from [<c0173b88>] (handle_irq_event_percpu+0x18/0x54)
[ 1399.848490] [<c0173b88>] (handle_irq_event_percpu) from [<c0173bfc>] (handle_irq_event+0x38/0x5c)
[ 1399.857864] [<c0173bfc>] (handle_irq_event) from [<c0177434>] (handle_fasteoi_irq+0xa8/0x124)
[ 1399.866859] [<c0177434>] (handle_fasteoi_irq) from [<c0172e08>] (generic_handle_irq+0x18/0x28)
[ 1399.875953] [<c0172e08>] (generic_handle_irq) from [<c0173340>] (__handle_domain_irq+0x8c/0xb4)
[ 1399.885133] [<c0173340>] (__handle_domain_irq) from [<c041d2f0>] (gic_handle_irq+0x50/0x98)
[ 1399.893937] [<c041d2f0>] (gic_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0xa8)
[ 1399.901825] Exception stack(0xc0a01f08 to 0xc0a01f50)
[ 1399.907159] 1f00:                   00000000 c0a09d4c 00000001 00000050 eefce448 00000001
[ 1399.915790] 1f20: 00000001 c0a09cfc 00000001 c0a93848 00000000 00000000 00000000 c0a01f58
[ 1399.924426] 1f40: c05b02ec c05b02f8 60000113 ffffffff
[ 1399.929769] [<c0101a0c>] (__irq_svc) from [<c05b02f8>] (cpuidle_enter_state+0x250/0x3b0)
[ 1399.938312] [<c05b02f8>] (cpuidle_enter_state) from [<c0167388>] (do_idle+0x15c/0x1d4)
[ 1399.946668] [<c0167388>] (do_idle) from [<c016766c>] (cpu_startup_entry+0x18/0x1c)
[ 1399.954668] [<c016766c>] (cpu_startup_entry) from [<c0900bfc>] (start_kernel+0x340/0x3ac)
[ 1399.963294] ---[ end trace c6da8fff02b4c5e3 ]---

Program received signal SIGBUS, Bus error.
0xb5fb2174 in QLinuxFbScreen::initDevice() ()
   from /opt/qtmoko/lib/libQtGui.so.4
(gdb) bt
#0  0xb5fb2174 in QLinuxFbScreen::initDevice() ()
   from /opt/qtmoko/lib/libQtGui.so.4
#1  0xb5f8ceac in QProxyScreen::initDevice() ()
   from /opt/qtmoko/lib/libQtGui.so.4
#2  0xb60200dc in QWSDisplay::Data::init() ()
   from /opt/qtmoko/lib/libQtGui.so.4
#3  0xb60202a0 in QWSDisplay::Data::Data(QObject*, bool) ()
   from /opt/qtmoko/lib/libQtGui.so.4
#4  0xb6020330 in QWSDisplay::QWSDisplay() ()
   from /opt/qtmoko/lib/libQtGui.so.4
#5  0xb6020360 in ?? () from /opt/qtmoko/lib/libQtGui.so.4
Cannot access memory at address 0xfa
(gdb) 

and

stat64("/opt/qtmoko/qt_plugins/gfxdrivers/.", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/opt/qtmoko/qt_plugins/gfxdrivers", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 7
statfs("/opt/qtmoko/qt_plugins/gfxdrivers/", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=1786505, f_bfree=1347819, f_bavail=1255404, f_files=462384, f_ffree=400125, f_fsid={1753505687, -135891197}, f_namelen=255, f_frsize=4096}) = 0
getdents(7, /* 2 entries */, 32768)     = 32
getdents(7, /* 0 entries */, 32768)     = 0
close(7)                                = 0
stat64("/opt/qtmoko/bin/gfxdrivers/.", 0xbe895fe8) = -1 ENOENT (No such file or directory)
access("/dev/fb0", R_OK|W_OK)           = 0
open("/dev/fb0", O_RDWR|O_LARGEFILE|O_CLOEXEC) = 7
fcntl64(7, F_SETFD, FD_CLOEXEC)         = 0
ioctl(7, FBIOGET_FSCREENINFO, 0xbe896248) = 0
ioctl(7, FBIOGET_VSCREENINFO, 0xbe896108) = 0
mmap2(NULL, 41943040, PROT_READ|PROT_WRITE, MAP_SHARED, 7, 0) = 0xb2926000
shmget(IPC_PRIVATE, 1024, IPC_CREAT|0600) = 98305
shmat(98305, 0xffffffff, 0)             = ?
shmctl(98305, IPC_64|IPC_RMID, 0xffffffff) = 0
open("/dev/tty0", O_RDWR|O_LARGEFILE|O_CLOEXEC) = 8
fcntl64(8, F_SETFD, FD_CLOEXEC)         = 0
write(8, "\33[9;0]\33[?33l\33[?25l\33[?1c\0", 24) = 24
ioctl(7, FBIOGET_VSCREENINFO, 0xbe8962d0) = 0
ioctl(7, FBIOGET_FSCREENINFO, 0xbe896388) = 0
--- SIGBUS (Bus error) @ 0 (0) ---
rt_sigaction(SIGBUS, {SIG_DFL, [BUS], SA_RESTART|0x4000000}, {0xb5ec0f28, [BUS], SA_RESTART|0x4000000}, 8) = 0
semctl(65536, 0, IPC_64|IPC_RMID, 0)    = 0
write(8, "\33[9;15]\33[?33h\33[?25h\33[?0c\0", 25) = 25
close(8)                                = 0
tgkill(6355, 6355, SIGBUS)              = 0
sigreturn()                             = ? (mask now [PIPE ALRM CHLD CONT STOP TSTP TTIN TTOU URG XFSZ PROF IO PWR RTMIN])
--- SIGBUS (Bus error) @ 0 (0) ---
+++ killed by SIGBUS +++
root at letux:/root# 

So the SIGBUS happens right after the second ioctl(7, FBIOGET_FSCREENINFO, 0xbe896388).
This might be a side-effect of the Tiler patches.

BTW: the text cursor is blinking and if I type on the keyboard, this
is shown. It turns out that this is /dev/tty0 and there is no getty for login.

cat /dev/urandom >/dev/fb0 also fills the screen without such bus errors.

So I suspect that the Qt GUI backend is getting something wrong with
the frame buffer access and maybe the mmap2 plays a role.

BR,
Nikolaus


> 
> BR and thanks,
> Nikolaus
> 
> 
> [   47.252602] ------------[ cut here ]------------
> [   47.257511] WARNING: CPU: 0 PID: 3555 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x220/0x324
> [   47.267446] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET DMM1 (Read): Data Access in User mode during Functional access
> [   47.279096] Modules linked in: bnep rfcomm bluetooth ecdh_generic usb_f_ecm g_ether usb_f_rndis u_ether libcomposite configfs ipv6 arc4 wl18xx wlcore mac80211 omapdrm drm_kms_helper cfbfillrect syscopyarea cfbimgblt sysfillrect sysimgblt cfg80211 fb_sys_fops cfbcopyarea drm drm_panel_orientation_quirks dwc3 panel_boe_w677l snd_soc_omap_hdmi_audio snd_soc_dmic omapdss snd_soc_omap_abe_twl6040 cec encoder_tpd12s015 connector_hdmi leds_gpio snd_soc_twl6040 omapdss_base wwan_on_off pwm_bl pwm_omap_dmtimer generic_adc_battery ehci_omap wlcore_sdio dwc3_omap ina2xx snd_soc_ts3a227e bq27xxx_battery_i2c bq27xxx_battery bq2429x_charger leds_is31fl319x tsc2007 at24 twl6040_vibra tca8418_keypad as5013 bmg160_i2c bmc150_magn_i2c palmas_gpadc bmc150_accel_i2c bmg160_core palmas_pwrbutton bmc150_magn bmc150_accel_core
> [   47.354545]  gpio_twl6040 bno055 industrialio_triggered_buffer usb3503 bmp280_i2c kfifo_buf w2cbw003_bluetooth bmp280 industrialio snd_soc_omap_mcpdm snd_soc_omap_mcbsp snd_soc_omap snd_pcm_dmaengine
> [   47.373319] CPU: 0 PID: 3555 Comm: qpe Not tainted 4.16.0-rc4-letux+ #2093
> [   47.380588] Hardware name: Generic OMAP5 (Flattened Device Tree)
> [   47.386964] [<c010f5a4>] (unwind_backtrace) from [<c010b968>] (show_stack+0x10/0x14)
> [   47.395128] [<c010b968>] (show_stack) from [<c06ed3d0>] (dump_stack+0x7c/0x9c)
> [   47.402745] [<c06ed3d0>] (dump_stack) from [<c012d9e0>] (__warn+0xd8/0x108)
> [   47.410093] [<c012d9e0>] (__warn) from [<c012da44>] (warn_slowpath_fmt+0x34/0x44)
> [   47.417988] [<c012da44>] (warn_slowpath_fmt) from [<c041fc64>] (l3_interrupt_handler+0x220/0x324)
> [   47.427348] [<c041fc64>] (l3_interrupt_handler) from [<c01739b4>] (__handle_irq_event_percpu+0xa8/0x264)
> [   47.437352] [<c01739b4>] (__handle_irq_event_percpu) from [<c0173b88>] (handle_irq_event_percpu+0x18/0x54)
> [   47.447531] [<c0173b88>] (handle_irq_event_percpu) from [<c0173bfc>] (handle_irq_event+0x38/0x5c)
> [   47.456885] [<c0173bfc>] (handle_irq_event) from [<c0177434>] (handle_fasteoi_irq+0xa8/0x124)
> [   47.465879] [<c0177434>] (handle_fasteoi_irq) from [<c0172e08>] (generic_handle_irq+0x18/0x28)
> [   47.474963] [<c0172e08>] (generic_handle_irq) from [<c0173340>] (__handle_domain_irq+0x8c/0xb4)
> [   47.484134] [<c0173340>] (__handle_domain_irq) from [<c041d2f0>] (gic_handle_irq+0x50/0x98)
> [   47.492949] [<c041d2f0>] (gic_handle_irq) from [<c0101df0>] (__irq_usr+0x50/0x80)
> [   47.500836] Exception stack(0xed885fb0 to 0xed885ff8)
> [   47.506182] 5fa0:                                     002e7900 b470a1e8 02800000 02800000
> [   47.514831] 5fc0: 002e7900 002b10f0 000003d0 00000006 befaf460 002b1108 002b2502 002b113c
> [   47.523477] 5fe0: b470a1ec befaf320 b5eb25fc b5eb4174 20000010 ffffffff
> [   47.530474] ---[ end trace f9ac44d41cce051c ]---
> [   47.535568] ------------[ cut here ]------------
> 
> 
> _______________________________________________
> http://projects.goldelico.com/p/gta04-kernel/
> Letux-kernel mailing list
> Letux-kernel at openphoenux.org
> http://lists.goldelico.com/mailman/listinfo.cgi/letux-kernel



More information about the Letux-kernel mailing list