I've tested on a GT 610
When running as Live, ANDROID screen is not reached, looking messages in Live Debug there is a process starting and exiting every few seconds, it seams the same problem you mention.
When selecting Live VESA, ANDROID is correctly lauched and I can install apps see youtube videos,
but I don't get Mesa info in Settings => About Tablet,
"OpenGL Check" and "OpenGL Demo" seem to work, and there is HW acceleration because I can see 480 fps in the OpenGL Demo.
How can I help in collecting some log about the Live standard session with Debug, I only get Pid of process crashing, what file do you need info in that case?
[I can do a cat and write down the log on paper and then report back to you]
M.
To save the text logs I mounted a second USB flashdrive that appeared sometimes mounting /dev/sdc1 and sometimes as already mounted /mnt/media_rw/usb1 .
Here follows output of busybox lsmod, at the initial shell:
Module Size Used by Not tainted
nouveau 747268 0
mxm_wmi 1485 1 nouveau
wmi 7246 2 nouveau,mxm_wmi
ttm 48936 1 nouveau
drm_kms_helper 27029 1 nouveau
drm 200044 3 nouveau,ttm,drm_kms_helper
hwmon 1591 1 nouveau
atkbd 14336 0
Here follows output of busybox lsmod, after 1st exit:
[As a comment/question is vgastate = nvidiafb wanted/necessary here or not?]
Module Size Used by Not tainted
pppoe 6602 0
rt2800usb 15112 0
rt2x00usb 8881 1 rt2800usb
rt2800lib 55584 1 rt2800usb
rt2x00lib 34711 3 rt2800usb,rt2x00usb,rt2800lib
mac80211 334238 3 rt2x00usb,rt2800lib,rt2x00lib
cfg80211 342003 2 rt2x00lib,mac80211
pcspkr 1362 0
r8169 43603 0
nvidiafb 30254 0
vgastate 6654 1 nvidiafb
i2c_i801 9349 0
snd_hda_codec_analog 61692 1
snd_hda_intel 27267 0
snd_hda_codec 123204 2 snd_hda_codec_analog,snd_hda_intel
snd_hwdep 4181 1 snd_hda_codec
snd_pcm 61373 2 snd_hda_intel,snd_hda_codec
snd_page_alloc 6282 2 snd_hda_intel,snd_pcm
snd_timer 14185 1 snd_pcm
shpchp 19400 0
parport_pc 13982 0
parport 17613 1 parport_pc
nouveau 747268 1
mxm_wmi 1485 1 nouveau
wmi 7246 2 nouveau,mxm_wmi
ttm 48936 1 nouveau
drm_kms_helper 27029 1 nouveau
drm 200044 3 nouveau,ttm,drm_kms_helper
hwmon 1591 1 nouveau
atkbd 14336 0
Here happens that after ANDROID logo the screen goes to "black and white big horizontal stripes"
Switched to shell with [CTRL+ALT+F1], here follows busybox lsmod at this point:
Module Size Used by Not tainted
configfs 19548 0
vivi 11166 0
videobuf2_vmalloc 2572 1 vivi
videobuf2_memops 2134 1 videobuf2_vmalloc
videobuf2_core 23042 1 vivi
acpi_cpufreq 9696 0
mperf 1035 1 acpi_cpufreq
kvm_intel 114789 0
kvm 286957 1 kvm_intel
mac_hid 2685 0
pppoe 6602 0
rt2800usb 15112 0
rt2x00usb 8881 1 rt2800usb
rt2800lib 55584 1 rt2800usb
rt2x00lib 34711 3 rt2800usb,rt2x00usb,rt2800lib
mac80211 334238 3 rt2x00usb,rt2800lib,rt2x00lib
cfg80211 342003 2 rt2x00lib,mac80211
pcspkr 1362 0
r8169 43603 0
nvidiafb 30254 0
vgastate 6654 1 nvidiafb
i2c_i801 9349 0
snd_hda_codec_analog 61692 1
snd_hda_intel 27267 0
snd_hda_codec 123204 2 snd_hda_codec_analog,snd_hda_intel
snd_hwdep 4181 1 snd_hda_codec
snd_pcm 61373 2 snd_hda_intel,snd_hda_codec
snd_page_alloc 6282 2 snd_hda_intel,snd_pcm
snd_timer 14185 1 snd_pcm
shpchp 19400 0
parport_pc 13982 0
parport 17613 1 parport_pc
nouveau 747268 6
mxm_wmi 1485 1 nouveau
wmi 7246 2 nouveau,mxm_wmi
ttm 48936 1 nouveau
drm_kms_helper 27029 1 nouveau
drm 200044 8 nouveau,ttm,drm_kms_helper
hwmon 1591 1 nouveau
atkbd 14336 0
...and I'll end the post with the only GRALLOC line found in logcat at this point, I had to write down on paper because the command logcat | grep |"GRALLOC" is endless, here it is:
E/GRALLOC-NOUVEAU( 2388):DEBUG PST - nouveau device created
No sign of GRALLOC-KMS in the logcat output.
Cheers
M.
I'll post logs from GT 610 and GTX 560 in the next days
M.
switch (info->dev->chipset & 0xf0) {
case 0x00:
info->arch = 0x04;
break;
case 0x10:
info->arch = 0x10;
break;
case 0x20:
info->arch = 0x20;
break;
case 0x30:
info->arch = 0x30;
break;
case 0x40:
case 0x60:
info->arch = 0x40;
break;
case 0x50:
case 0x80:
case 0x90:
case 0xa0:
info->arch = 0x50;
break;
case 0xc0:
case 0xd0:
info->arch = 0xc0;
break;
case 0xe0: case 0xf0:
default: LOGE("unknown nouveau chipset 0x%x", info->dev->chipset); err = -EINVAL; break;
info->arch = 0xe0; break;
Sorry, in the code I just posted, default: invokes LOGE,
in your code default: invokes ALOGE
It's probably better to invoke ALOGE, to avoid a bug, as it was in your example.
M.
case 0xd0:
This is due to the fact that switch argument is 'chipset & 0xf0' and for chipset being 0xd9, the evaluated argument will be 0xd0.
Anyway there's no rush, because I'll be able to test again on GT610 only in the weekend, at my parents house, in the meantime I can use your last ISO, on several other Nvidia cards I have at my house. Thanks a lot!
I would be also interested in testing on older cards, which is the minimum hw that could work?
I'd also like that nouveau was able to support GeForce2mx, GeForce FX5200, not only for Android-x86 but especially for Ubuntu on PPC, but that is another story...
Mauro
>> This is due to the fact that switch argument is 'chipset & 0xf0' and for chipset being 0xd9, the evaluated argument will be 0xd0.
>> I'd also like that nouveau was able to support GeForce2mx, GeForce FX5200, not only for Android-x86 but especially for Ubuntu on PPC, but that is another story...
vmap allocation for size 1044480 failed: use vmalloc=<size> to increase size
Thanks
Any blessing soul to give us a hand nearby? :)
E/GRALLOC-KMS( 1379): failed to set crtc (Permission denied) (crtc_id 13, fb_id 43, conn 15, mode 1280x1024)
Have to research what is needed to allow this operation (I believe a incorrect parameter can also cause this).
Another option is including channel alloc and it will use DRM_SWAP_FLIP (have to figure out how to deal with push and pull buffers and integrate them to gralloc)
Status for 0x50:
Failure on while trying to allocate a buffer object:
E GRALLOC-NOUVEAU: failed to allocate bo (flags 0x80000001, size 0, tile_mode 0x40, tile_flags 0x70)
I saw some differences on calculating align. I've changed part of the code I think where the problem is (returning correct tile height - copied a macro named NV50_TILE_HEIGHT from xf86-video-nouveau).
Have not generated another ISO yet because I'm giving focus on 0xC0 by now. Also, I think even if this problem is solved, we'll have the permission denied on CRTC in this case also. But I can be wrong
Let's keep trying. Help of any kind is very welcome
Ps: As I posted before, can post a iso with some changes for 0x50. However, It's very probably it also requires crtc.
Do you want me to upload it?
nvidia.ko
(the proprietary driver), rivafb, nvidiafb - more information can be found in KernelModeSetting. Look in your kernel log and lsmod
output for any sign of these and disable them. If you cannot find a kernel module anywhere, but it still magically loads, maybe it is in your initramfs.Somehow I see the same problem of GUI restarting described here: https://groups.google.com/forum/#!msg/android-x86/zILa6fmQ1Ec/qmQSWrphDRIJ
but in our case with GT610 (NVD9) the resolution seem to be correct 1680x1050
What is also strange, I never saw GRALLOC-KMS advertise the supported modes and GRALLOC-MOD line for selection of the mode,
but I'm not certain if didn't saw them because of logcat ring buffer rewrite.
Mauro
About the mouse issue: Are you using a USB mouse or using o touchpad? Log shows as you had connected a usb mouse, right?
Thanks, already downloading even if here in Italy is past midnight.
Hi,I was reading again your first post and I have (luckily) found a webpage where is possible to check at lot of your assumptions, if not all of them, about the new vs old functions and arguments.It may also help with dma channels :-)I basically googled the new and old function names toghether, supposing that someone else had the same problem before...'drm nouveau nouveau_device_close nouveau_device_del' (without quotes)and I found this (very rich and with + / - diff very easy to read):
--
You received this message because you are subscribed to the Google Groups "Android-x86" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-x86...@googlegroups.com.
To post to this group, send email to andro...@googlegroups.com.
Visit this group at http://groups.google.com/group/android-x86.
For more options, visit https://groups.google.com/d/optout.
Thanks for this new info.Dma channels are a complicated part.If I understand gralloc/drm correctly, radeon/intel you just have to define the number of channels and other attributes. The driver handles all the other partsIn nouveau, you have to define the channel, create a push buffer/context and implement functions to exchange data between system and gpu memory (xf86 video nouveau does this)There are some points/unclear questions for me:- Inside gralloc_drm_nouveau.c, there's a structure called nouveau_info. It has some attributes to manage function parameters and a reference called "gralloc_drm_drv_t base"). Just this last attribute is returned to gralloc. So, if you define and initialize a channel and push buffer, how can gralloc knows how to handle it since it's reference is just "gralloc_drm_drv_t"?
struct nouveau_info *info = (struct nouveau_info *) drv;
- In xf86-video-nouveau, 2 channels are open: One is called "GPU channel"; The other is "GPU CE channel". They are created with the same function (nouveau_object_new, 3rd param is NOUVEAU_FIFO_CHANNEL_CLASS), but I don't know their purpose.In old libdrm API, there was a single function called nouveau_channel_alloc.
Well I'm not completely sure what I did is correct, beacause to put 0*nouveaudrmfb instead of 0*nouveaufb would make sense ( but is it possible to load that fb module instead of nouveaufb and how? )
Anyway having finally a working built environment, I applied your last mesa 10.1.5 patch and overwritten gralloc_drm_nouveau.c and gralloc_drm.c with last versions,then I built and now, provided that I load nouveau in first shell and uvcvideo is loaded before vivi (I think you should switch the order of the two in order that uvcvideo has precedence.),
I can reach GUI and now I also see the mouse cursor (even if it has artifacts, like thin horizontal stripes, like even and odd lines are unsynchronized). But I have a mouse cursor, most probably HW accelerated.the runnign apps menu (the one to the right of HOME) show some artifacts.
I also found a way to increase logcat buffer by modifying logger.c in the kernel to set it to 4 Mbytes (the only way possible probably),but I need your help: is there a way to avoid recompiling the whole kernel image, for a few lines of code changes?if not how can I effectively force rebuilding of kernel? By deleting whole obj/kernel directory or deleting the image will be sufficient?
What can I do to help you?
Thats correct. Nouveau uses this name "nouveaufb" for it's fb (no "drm" string like radeon and intel). As I restored my environment from bkp, forgot to reinclude it. Thanks to point it out.
In your tests, loading uvcvideo before vivi makes difference? As they have no dependencies, in theory loading order shouldn't make difference.
Enabling debug.egl.trace to "1" (trace egl calls to logcat) and launching and problematic app can give us more info about what's wrong. Can you get this please?1) Switch to console2) type this cmd:setprop debug.egl.trace 13) Return to gui and launch an app that crashes4) Return to console and save logcat output
and I also noticed that boot animation behaves differently (or crashes?) , but the only time I've not loaded uvcvideo in advance, I've not seen the striped mouse cursor.
I think in this case 0 represents failure. As it is inverting with "!", then it is setting a NULL to map.
Have to take a look on nouveau.c in detail to be sure.
Pstglia
M.
I'm uploading another ISO. Will post it later (maybe tomorrow)Also attached gralloc_drm_nouveau.cThanks again!
Boot and select "Live Debug", at first shell launch this command:modprobe nouveauthenexit
exit
You can check logs of a GeForce 6200 I posted yesterday and see that HW acceleration is enabled, even if complex apps are not stable.
Could you confirm you can see nouveau as fb and provide feedback on mouse cursor and working apps? I had the impression that mouse cursor was not working on GeForce 6200, while Gallery, Downloads, Calculator apps are rock stable.
Thanks
M.
Hi vas,
Have you tried with recent ISO, because the one available at the time of your first post had an uncomplete init.sh, i.e. not updated to force drm mode.
Kernel command line: root=/dev/ram0 DEBUG=2 nomodeset SRC=/android-2014-06-23/
Does it make sense to compile libdrm with enabling debug option?
Are there ways to launch drm-tests coming with libdrm?
Can we look in some other Windows system code to check on how to initialize buffers or as an help to add dma channels support?
Are there ways to launch drm-tests coming with libdrm?I don't understand. can you explain?