fhd kernel ( ZE551 ) & POSSIBLY hd (ZE550) with KVM & Bridge compiled. *need help* - ZenFone 2 Original Android Development

fhd kernel ( ZE551 ) & POSSIBLY hd (ZE550) with KVM & Bridge compiled. *need help*
MODERATOR NOTICE:
All thread posted in the Development section must have a link to kernel sources to meet GPLv2 requirements. Because this thread does not have proper sources linked and because development has stopped, the thread has been closed.
This is my first time working with Android kernels, but I compiled the 2.12.40 kernel source adding in support for KVM ( Kernel supported Virtual Machines, ie running Windows almost full speed ) and Bridge ( to allow qemu-kvm to set up network adapters bridged with the current wifi adapter ).
I tar'd the bzImage & modules, but don't know what to do to make something installable/flashable so will need help on that end of things.
Edit:
I uploaded a new flashable kernel img based off 2.19. This one should support: kvm, bridge and NTFS read/ *LIMITED* write, swap and ignore kernel module signatures. XDA only allows 8mb for .img files, so I tar'd it.
Edit2:
I compiled a ZE550 kernel ( called hd ) and if some brave souls want to try it, I also put together a boot.img.
Edit3:
New fhd kernel has been compiled with additional usb modules. Kernel should now load kvm related modules automatically, so you shouldn't need to use the script anymore.
Anyone brave/crazy enough to try it out? I'm guessing you need an unlocked bootloader & root.
Edit 4:
New fhd & hd kernels for 2.20
Edit 5:
New exfat.ko module

ycavan said:
This is my first time working with Android kernels, but I compiled the 2.12.40 kernel source adding in support for KVM ( Kernel supported Virtual Machines, ie running Windows almost full speed ) and Bridge ( to allow qemu-kvm to set up network adapters bridged with the current wifi adapter ).
I tar'd the bzImage & modules, but don't know what to do to make something installable/flashable so will need help on that end of things.
Anyone brave/crazy enough to try it out? I'm guessing you need an unlocked bootloader & root.
Click to expand...
Click to collapse
Why 2.12? 2.18 kernel source is available...

That just happened to be the kernel source linked in Android development. If this test works out, I can probably do the same thing with whichever kernel source is available.
Our phones are pretty amazing to be able to compile their own kernels natively on the device.
Sent from my ASUS_Z00AD using XDA Free mobile app

Finally able to compile the 2.18 kernel.. it's a bit weird since it acted like it was missing some files. Untar'd the 2.18 kernel source over 2.12's kernel source and that allowed it compile.
Anyway, it's in the OP called fhd_kernel_20150629.tar and should have KVM ( kernel supported virtualization ), Bridge ( for Qemu-KVM to create bridging ethernet adapters ) & NTFS Read/ *LIMITED* Write.
Once again, it's in the form of bzImage and the modules since I don't know how to replace the kernel on Android devices. ( normally, I'd just make a test linux line in the boot menu for Linux )

One suggestion would be to flash the zImage using
Code:
fastboot flash zImage nameofzImage
or test it using
Code:
fastboot boot nameofzImage
but I dont know if the phone supports the "boot" command.
I´m not sure about the modules either and I can´t test it, as my phone didn´t arrive yet.
Other solution, try this:
http://forum.xda-developers.com/showthread.php?t=2670512

ycavan said:
Finally able to compile the 2.18 kernel.. it's a bit weird since it acted like it was missing some files. Untar'd the 2.18 kernel source over 2.12's kernel source and that allowed it compile.
Anyway, it's in the OP called fhd_kernel_20150629.tar and should have KVM ( kernel supported virtualization ), Bridge ( for Qemu-KVM to create bridging ethernet adapters ) & NTFS Read/Write.
Once again, it's in the form of bzImage and the modules since I don't know how to replace the kernel on Android devices. ( normally, I'd just make a test linux line in the boot menu for Linux )
Click to expand...
Click to collapse
Can I ask how you included NTFS r/w support into your kernel? Did you just set the CONFIG_NTFS_FS flag?

TheSSJ said:
Can I ask how you included NTFS r/w support into your kernel? Did you just set the CONFIG_NTFS_FS flag?
Click to expand...
Click to collapse
I added CONFIG_NTFS_FS=m ( you could set to that y ) and CONFIG_NTFS_RW=y in /{working directory}/device/asus/moorefield/fhd/mofd_fhd_diffconfig
when you make the kernel, it's going to ***** about the config files not matching; follow the directions and manually update all of the other config files and it will finally compile.
Building for Android is a pita. )

Well, then here come the disappointing news (I discovered that when I wanted to include NTFS USB-OTG support directly by the kernel for my TWRP and it didn't mount it as R/W):
CONFIG_NTFS_RW is just a partial write support. It won't create files or folders, it can only overwrite existing files and only by the size they currently have
config NTFS_RW
bool "NTFS write support"
This enables the partial, but safe, write support in the NTFS driver. The only supported operation is overwriting existing files, without changing the file length. No file or directory creation, deletion or renaming is possible. Note only non-resident files can be written to so you may find that some very small files (<500 bytes or so) cannot be written to.
Click to expand...
Click to collapse
Only possibility available is to include ntfs-3g driver using fuse

Yeah, that is a bit of a downer. Now to figure out why nobody finished the NTFS kernel module.

ycavan said:
Yeah, that is a bit of a downer. Now to figure out why nobody finished the NTFS kernel module.
Click to expand...
Click to collapse
Please keep me posted, I'd like to remove the dependency of ntfs-3g in recovery. I fear there actually is no native support of NTFS (googling was not helpful unfortunately)

1) modify module loading function to ignore module version/magic strings.
2) compile the kernel with toolchain used by ASUS (or close to it)
3) use pre-compiled tntfs.ko from original boot.img
I don't have right now the patch for module loading procedure. Need to check old Galaxy S3/S4 custom kernels source (but it's should be easy to patch by finding error string). In time when exFat module source wasn't available, this trick was very common in samsung custom kernels for exFat support.

Thanks

Wait wait wait. Did I read that correctly? Full speed windows? On the zenfone? I think I just died. Does this mean windows 8/10 or windows xp and below?

I know a bit about android kernel, and i'm thinking about buying this device. Well, i'm going to try to build a kernel for this device as soon as i got this device. One thing you should know is, android is an open-source, so before you uploading your compiled kernel, make sure you have already uploaded the sources

LUCKYSHOT52 said:
Wait wait wait. Did I read that correctly? Full speed windows? On the zenfone? I think I just died. Does this mean windows 8/10 or windows xp and below?
Click to expand...
Click to collapse
It's only in theory.
In reality, there is no Z35xx support in windows, and i doubt anyone will write drivers by himself (windows isn't opensource). Officially Z35xx is Android-only SoC.

FajarMF28 said:
I know a bit about android kernel, and i'm thinking about buying this device. Well, i'm going to try to build a kernel for this device as soon as i got this device. One thing you should know is, android is an open-source, so before you uploading your compiled kernel, make sure you have already uploaded the sources
Click to expand...
Click to collapse
The source is already available, so no worries there, since this is source that Asus released.

For all of the brave folks out there, I was finally able to create a bootable image of the latest 2.19.20 kernel. Anyone brave enough can find it in the OP.
I flashed it and my phone booted up, so that's a bonus.

ycavan said:
For all of the brave folks out there, I was finally able to create a bootable image of the latest 2.19.20 kernel. Anyone brave enough can find it in the OP.
I flashed it and my phone booted up, so that's a bonus.
Click to expand...
Click to collapse
is there extra features such as other governor or i/o scheduler?

cangcan said:
is there extra features such as other governor or i/o scheduler?
Click to expand...
Click to collapse
To be honest? I can't remember since my main focus was getting kvm compiled in.
I've attached my .config for the 20150707 build ( in the boot image ).
I've also attached a screenshot of Windoze 7 being installed.
Commandline for Arch Linux x86_64 to start qemu-kvm to install windoze:
qemu-system-x86_64 -display none -vnc :1,password -monitor stdio -m 1G -smp 4 -enable-kvm -drive file=/mnt/0/machine1.img,format=raw -cpu host -cdrom /mnt/MicroSD/Vcd/en_windows_7.iso -boot menu=on --usbdevice tablet
breakdown of the command line:
-display none = no display, I did this to test the virtual machine. normally, you would probably use -display sdl w/ XServer-XSDL running
-vnc :1,password, This says to set up a vnc server with normal port + 1 ( 5901 ) and you expect a password to be set later
-m 1G, 1 gig of ram
-smp 4, our VM will use 4 cores
-enable-kvm, enable Kernel support Virtual Machines
-drive file=/mnt/0/machine1.img,format=raw, my "disk" file
-cpu host, use the same cpu information
-cdrom /mnt/MicroSD/Vcd/en_windows_7.iso, my Windows 7 install cd turned into an iso
-boot menu=on, enable the boot menu ( hit F12, etc.. )
--usbdevice tablet, Qemu's Vnc server sucks at tracking mouse positions so using tablet mode keeps the mouse pointer .. well on-point

Tks for share
Kernel great work
But how to install window 7 ? ?
Gửi từ ASUS_Z00AD của tôi bằng cách sử dụng Tapatalk

Related

[GUIDE][KERNEL] porting a kernel from another device

Made By :Spacecaker
What u need
windows or linux
ROM (that u wanna port to ace )
Dev Tools (like pack/unpack boot.img) Like this for windows and or linux
What u need to do??
unpack your boot.img
Change file on ramdisk
init.rc need to change >> (unpack the boot img from rom u wanna port
open init.rc and copy the stuff after BOOTPATH
change ramdisk/lib/modules >>> your modules ( not really importatnt )
repack ramdisk boot.img
Download the Guide below to get some pictures +
more tips download http://www.mediafire.com/download.php?u2ff9tthrrc29h1
Click to expand...
Click to collapse
orginel thread : http://forum.xda-developers.com/showthread.php?t=1574332
have you tried to port a kernel before? this guide doesn't mention about some spesific important stuff. it will definetely brick our device.
cool
a cool guide. find as pdf attached
this is only an example. our kernel partition is only 5mb. any size bigger wont work. then how about initbcrm2153 file?the zImage file? i've made two kernel. its difficult. port a kernel is more difficult and definetely not as easy as described in this post.
kurotsugi said:
this is only an example. our kernel partition is only 5mb. any size bigger wont work. then how about initbcrm2153 file?the zImage file? i've made two kernel. its difficult. port a kernel is more difficult and definetely not as easy as described in this post.
Click to expand...
Click to collapse
this guide is made by Spacecaker
he is developer ... so defenetly it will not brick our device .........
kurotsugi said:
this is only an example. our kernel partition is only 5mb. any size bigger wont work. then how about initbcrm2153 file?the zImage file? i've made two kernel. its difficult. port a kernel is more difficult and definetely not as easy as described in this post.
Click to expand...
Click to collapse
porting is too easy
if you have any doubts just check the attached file ! !
he also provided with SS ........
we can easily port it into our deveice
then...prove it. try to port a kernel from mini.
you also forgot this part. whithout this part our device won't work
===============================
then add/replace these in the rom it self ( copy from stock or cm7 )
These are Always needed !!
/lib/libril.so
/lib/libsecril-client.so
/lib/libsec-ril.so
/lib/libdiag.so
/system/hw
/system/modules
/system/etc/firmware , ppp, security, wifi, permission vold.stab
/system/user/keychars, keylayout
========================
one problem also comes from our recovery mode. unfortunately in our device it was stored inside kernel while in other device it was stored in different place.
It can Brick our Device
First Check it is Working and Then Post
thx for it i will try it
i dont think its that easy.. if it would hav been then we would hav had a kernel long back!!
hell_lock said:
i dont think its that easy.. if it would hav been then we would hav had a kernel long back!!
Click to expand...
Click to collapse
if porting means use kernel binary from one device to other device, not only not easy, but near to impossible. unlike pc which architecture is standardized, every cellphone have their own architecture make it impossible create generic kernel like you find in linux distro. you change hardware, it does't work. you mix with module from different version, it does't work. you mix with module from different compiler version, it does't work.
if porting means source code modification, that could be work, but need a lot of work. if someone ask how hard, last time i write my patch, i need about 6 hour just to add 2 lines modification in kernel source. i use linux in last 9 years and in real life i am a programmer, so reading c source code is something that i do almost everyday. still, i need that 6 hour because linux kernel source code is very complex.
and why op give this thread's title kernel. the tutorial is about using rom from other device using your original kernel.
irfanbagus said:
if porting means use kernel binary from one device to other device, not only not easy, but near to impossible. unlike pc which architecture is standardized, every cellphone have their own architecture make it impossible create generic kernel like you find in linux distro. you change hardware, it does't work. you mix with module from different version, it does't work. you mix with module from different compiler version, it does't work.
if porting means source code modification, that could be work, but need a lot of work. if someone ask how hard, last time i write my patch, i need about 6 hour just to add 2 lines modification in kernel source. i use linux in last 9 years and in real life i am a programmer, so reading c source code is something that i do almost everyday. still, i need that 6 hour because linux kernel source code is very complex.
and why op give this thread's title kernel. the tutorial is about using rom from other device using your original kernel.
Click to expand...
Click to collapse
thank you. i just wanna post the same thing before saw your post, and you're right indeed. theres no such thing as "porting kernel". binary kernel is specific, it'll only work with the device it were originally compiled for.
ROFL.....
BTW dont post tutorials , ports, etc that are somewhat copy paste and not tested it yourself..
Hey what about drivers... I wanted to get usb otg drivers on galaxy ace plus... Some dev ported it from galaxy s2 to galaxy s... But i dont have much knoladge of kernel development as i have windows... And i also found few lines about otg in my volt.fstab
# otg sdcard
{
ums_path = /dev/zero
asec = disable
}
usb_mount sdcard2 /mnt/sdcard/usbStorage auto /devices/platform/msm_hsusb_host.0
#end line ## keep this line
So i think it can support usb otg but doesnot have drivers...
Can any one help....or suggest something...
Sent from my GT-S7500 using xda premium
NICE!
Nice thanks!
kurotsugi said:
then...prove it. try to port a kernel from mini.
you also forgot this part. whithout this part our device won't work
===============================
then add/replace these in the rom it self ( copy from stock or cm7 )
These are Always needed !!
/lib/libril.so
/lib/libsecril-client.so
/lib/libsec-ril.so
/lib/libdiag.so
/system/hw
/system/modules
/system/etc/firmware , ppp, security, wifi, permission vold.stab
/system/user/keychars, keylayout
========================
one problem also comes from our recovery mode. unfortunately in our device it was stored inside kernel while in other device it was stored in different place.
Click to expand...
Click to collapse
Right. A Boot image is not completely independent of other partitions

[Q] add module to kernel

Hello freinds,
I have a microsoft lifecam cinema hd webcam which I want to connect through my note2.is there any tutorial to add module to the kernel and make it working.
I am a windows user btw.
So anybody know if I can do it on window pc.
I know this thread should be in q/a section but due to any reason my question is not visible to that section.
Thanks in advance...
liondroid said:
Hello freinds,
I have a microsoft lifecam cinema hd webcam which I want to connect through my note2.is there any tutorial to add module to the kernel and make it working.
I am a windows user btw.
So anybody know if I can do it on window pc.
I know this thread should be in q/a section but due to any reason my question is not visible to that section.
Thanks in advance...
Click to expand...
Click to collapse
Even if it were possible, why do you want to add another camera to the device?
Edit: You however did pique my curiosity whether this can be done and perhaps it can!. The camera model you have mentioned is supported by the Linux UVC driver (check here: http://www.ideasonboard.org/uvc/). This is a part of the standard kernel source (it's located at /drivers/media/video/uvc)
So basically, you need to compile the 'uvcvideo.ko' module. I don't know if this can co-exist with the existing camera driver, so you may have to disable the driver for the front / back cameras and compile the uvcvideo driver in or as a module.
Good luck!
seltaeb said:
Even if it were possible, why do you want to add another camera to the device?
Edit: You however did pique my curiosity whether this can be done and perhaps it can!. The camera model you have mentioned is supported by the Linux UVC driver (check here: http://www.ideasonboard.org/uvc/). This is a part of the standard kernel source (it's located at /drivers/media/video/uvc)
So basically, you need to compile the 'uvcvideo.ko' module. I don't know if this can co-exist with the existing camera driver, so you may have to disable the driver for the front / back cameras and compile the uvcvideo driver in or as a module.
Good luck!
Click to expand...
Click to collapse
The stock front camera has a bad low light visibility where as the microsoft lifecam has a very good visiblity even in the room with all lights off, at night ofcourse (the light source is only the screen itself falling on my face)
As i already know this is possible. Take a look..
http://www.youtube.com/watch?v=taZ3zd37nMI
I think there is no option other than to install linux on my pc and give a try.
Any suggestions would be appreciated.
liondroid said:
The stock front camera has a bad low light visibility where as the microsoft lifecam has a very good visiblity even in the room with all lights off, at night ofcourse (the light source is only the screen itself falling on my face)
As i already know this is possible. Take a look..
http://www.youtube.com/watch?v=taZ3zd37nMI
I think there is no option other than to install linux on my pc and give a try.
Any suggestions would be appreciated.
Click to expand...
Click to collapse
Although unsupported, I believe it is possible to build the kernel on Windows under Cygwin. Have a look here for setting up the build environment etc on Windows: http://forum.xda-developers.com/showthread.php?t=1686310. Note that Samsung's recommended toolchain is actually 4.4.3 (but you might be able to find that with a bit of Googling).
Alternately, I can build the uvcvideo.ko module for you. However, I am going away from tomorrow morning for a long weekend, so you might have to wait till Sunday evening unless I manage to find some time to do it tonight itself. Otherwise you can try requesting someone else here to build it for you - it only takes a few minutes.
seltaeb said:
Although unsupported, I believe it is possible to build the kernel on Windows under Cygwin. Have a look here for setting up the build environment etc on Windows: http://forum.xda-developers.com/showthread.php?t=1686310. Note that Samsung's recommended toolchain is actually 4.4.3 (but you might be able to find that with a bit of Googling).
Alternately, I can build the uvcvideo.ko module for you. However, I am going away from tomorrow morning for a long weekend, so you might have to wait till Sunday evening unless I manage to find some time to do it tonight itself. Otherwise you can try requesting someone else here to build it for you - it only takes a few minutes.
Click to expand...
Click to collapse
it will be a great help if u can create the module for me. Thanks in advance
liondroid said:
it will be a great help if u can create the module for me. Thanks in advance
Click to expand...
Click to collapse
This is more a driver issue than kernel. And even though there may be linux drivers for your webcam. Google has not yet fully merged the android kernel into the linux family, so it may not be possible to port. I wish you all the luck though :fingers-crossed:
AndroHero said:
This is more a driver issue than kernel. And even though there may be linux drivers for your webcam. Google has not yet fully merged the android kernel into the linux family, so it may not be possible to port. I wish you all the luck though :fingers-crossed:
Click to expand...
Click to collapse
uvcvideo.ko is a module which contains almost all webcam drivers including mine.It can be implemented to android kernel also.See the video link in previous posts.I already managed to get uvcvideo.ko, now trying to add to the kernel source. Hope I am going in right direction.
liondroid said:
uvcvideo.ko is a module which contains almost all webcam drivers including mine.It can be implemented to android kernel also.See the video link in previous posts.I already managed to get uvcvideo.ko, now trying to add to the kernel source. Hope I am going in right direction.
Click to expand...
Click to collapse
Seems like the reverse direction actually. You already got your module compiled and now you are changing the source?
PS: So you no longer want me to compile the uvc module for you?
Sent from my GT-N7100 using Tapatalk 2
seltaeb said:
Seems like the reverse direction actually. You already got your module compiled and now you are changing the source?
PS: So you no longer want me to compile the uvc module for you?
Sent from my GT-N7100 using Tapatalk 2
Click to expand...
Click to collapse
one of my frend is a linux user so i asked him to do for me but he messed up the kernel so pls sir I am waiting for ur work.
liondroid said:
one of my frend is a linux user so i asked him to do for me but he messed up the kernel so pls sir I am waiting for ur work.
Click to expand...
Click to collapse
Here you go. This is an ODIN flashable kernel (unzip it and flash the .tar file using the PDA section in ODIN). The module is located in /lib/modules.
PS: The kernel is compiled from stock sources, except for addition of the lulzactiveQ governor (pegasusQ is still default) and a couple of other patches (missing touchkey drivers and AndreiLux's firmware naming / boot-up time reduction fix).
Edit: Added only the module in uvcvideo.zip. Unzip & copy it to your phone somewhere and insmod it to load. If it doesn't work with your stock kernel, please use the full kernel against which it is built (provided above).
And here's the Samsung stock kernel from DDLJ3, in case you want to revert back. Again, ODIN-flashable after unzipping.
I might be a bit off topic:
Is there anyway to load an under volt module?
I've always been using Tegrak over clock ultimate but it's not updated since 2 months..
And it's obviously not working on our beloved gsn2
I'd love to stay as stock as possible but with under volt
TMaLuST said:
I might be a bit off topic:
Is there anyway to load an under volt module?
I've always been using Tegrak over clock ultimate but it's not updated since 2 months..
And it's obviously not working on our beloved gsn2
I'd love to stay as stock as possible but with under volt
Click to expand...
Click to collapse
Please just use AndreiLux's excellent kernel to accomplish this.
Sent from my GT-N7100 using Tapatalk 2
Well I'll give it a try, but in term of battery life I've never had better results than stock kernels, that's why I was asking
seltaeb said:
And here's the Samsung stock kernel from DDLJ3, in case you want to revert back. Again, ODIN-flashable after unzipping.
Click to expand...
Click to collapse
Thankyou so much sir, will let u know after trying it.
seltaeb said:
Even if it were possible, why do you want to add another camera to the device?
Edit: You however did pique my curiosity whether this can be done and perhaps it can!. The camera model you have mentioned is supported by the Linux UVC driver (check here: XXXurl omittedXXX is a part of the standard kernel source (it's located at /drivers/media/video/uvc)
So basically, you need to compile the 'uvcvideo.ko' module. I don't know if this can co-exist with the existing camera driver, so you may have to disable the driver for the front / back cameras and compile the uvcvideo driver in or as a module.
Good luck!
Click to expand...
Click to collapse
Hello, excuse my off topic but i have a similar need:
i have an Android mk3188 tv box that has uvcvideo support in the kernel i'm using. the Camera is in the list of supported cam (093a:2700 - iSonic W002)
When i connect the camera i receive the following message:
[10501.638841] usb 1-1.3: Product: USB2.0_Camera
[10501.643370] usb 1-1.3: Manufacturer: PixArt Imaging Inc.
[10501.657777] uvcvideo: Found UVC 1.00 device USB2.0_Camera (093a:2700)
[10501.673615] input: USB2.0_Camera as /devices/platform/usb20_otg/usb1/1-1/1-1.3/1-1.3:1.0/input/input5
[10559.678208] qtaguid: ctrl_counterset(s 1 10112): insufficient priv from pid=422 tgid=364 uid=1000
[10560.472909] DWC_OTG: dwc_otg_hcd_urb_enqueue urb->transfer_buffer address not align to 4-byte 0xed6abaca
[10560.482867] uvcvideo: Failed to query (GET_DEF) UVC control 2 on unit 3: -1 (exp. 2).
[10560.492619] DWC_OTG: dwc_otg_hcd_urb_enqueue urb->transfer_buffer address not align to 4-byte 0xed6abaaa
[10560.502458] uvcvideo: Failed to query (GET_DEF) UVC control 3 on unit 3: -1 (exp. 2).
[10561.087346] qtaguid: ctrl_counterset(s 0 10047): insufficient priv from pid=422 tgid=364 uid=1000
I have tried to set /dev/video0 chmod to 666 but the error message is the same.
How can i update uvcvideo from 1.00 to 1.10? i need to recompile kernel or there are others solutions?
can i use uvcvideo.ko provided in this thread? how can i do?
Thank you
seltaeb said:
Here you go. This is an ODIN flashable kernel (unzip it and flash the .tar file using the PDA section in ODIN). The module is located in /lib/modules.
PS: The kernel is compiled from stock sources, except for addition of the lulzactiveQ governor (pegasusQ is still default) and a couple of other patches (missing touchkey drivers and AndreiLux's firmware naming / boot-up time reduction fix).
Edit: Added only the module in uvcvideo.zip. Unzip & copy it to your phone somewhere and insmod it to load. If it doesn't work with your stock kernel, please use the full kernel against which it is built (provided above).
Click to expand...
Click to collapse
Is file uvcvideo.ko specifically for galaxy note or can i use it on a different device?
Is this still required for UVC video to work or does it work on the latest ROMs/kernel?
I've read it works out of the box on the Nexus 7 but I don't have webcam to test on my Note2.
Nevermind. I tried the app Dashcam which checks for UVC driver. GFs S3 does not pop up an error while my Note2 (and my HTC Desire 601) do.

[ROM][WIP][kexec] Ubuntu with Freedreno!

I've been working on getting Ubuntu running on my Sprint Galaxy S3 using the same method I used on my Epic 4G - kexec from recovery loading the root filesystem off a partition on an SD card.
What I've done so far:
* Found a kexec loader to boot into a custom kernel, which is required for booting off an SD card, among other things;
* Compiled a custom kernel with KGSL DRM support enabled for Freedreno;
* Built a minimal Ubuntu 13.10 armhf rootfs and compiled the Freedreno DRM/DDX/Mesa Gallium driver with changes to support the Adreno 225 and stub occlusion query (possibility of full dekstop OpenGL 2.1 support!);
* Got X11 working with USB keyboard, touchscreen, and fbdev. Still working on getting the Freedreno DDX to load.
I still get a kernel oops with the camera driver (http://pastebin.com/egZbxsED), but it apparently doesn't affect stability or cause reboots anymore.
Working so far:
* USB Host - only tested with a keyboard, but other input/storage/audio/video devices should also work.
* Framebuffer console - thanks castrwilliam!
* Touchscreen works with X.org fbdev driver and the following added to /usr/share/X11/xorg.conf.d/11-evdev-quirks.conf:
Code:
Section InputClass
Identifier "Touchscreen"
Driver "evdev"
MatchProduct "sec_touchscreen"
EndSection
* Power and volume buttons
Untested:
* Bluetooth - might need firmware
* Sensors - should work just fine
* Home, menu and back buttons should work but probably need mapping
Unlikely to work due to proprietary Android-only blobs:
* Camera
Kernel config changes:
# IMPORTANT: remove the line that says "depends on !MSM_KGSL_DRM" from drivers/gpu/msm/Kconfig:70
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_VT_CONSOLE=y
CONFIG_DRM=y
CONFIG_MSM_KGSL_DRM=y
I may eventually post a pre-built kernel, but if you don't know how to compile a kernel from source, this guide is not for you.
Likewise, if you don't know how to prepare an armhf Ubuntu root filesystem, this guide won't help much.
After building the kernel, copy arch/arm/boot/zImage to your SD card along with the attached zImage.zip (CWM-flashable kexec loader).
It might need modifications (META-INF/com/google/android/updater-script) depending on how you have your card set up.
UPDATE: Unfortunately, this phone hasn't been a good fit for me. I never got very far booting Ubuntu or Freedreno, so I decided to sell it.
For anyone still interested in this project, I believe castrwilliam has the required patches.
When I get my next Snapdragon device (either the new Nexus 7, a Nexus 4, a Galaxy S4, or another phone with Adreno 320 graphics), I will post the Mesa patches for occlusion query support. Sorry I wasn't more helpful with this device.
Added to favourites, I'll see what I can do with it over the weekend
Sent from my SPH-L710 using Tapatalk 4 Beta
Great work. Good luck debugging.
Sent from my SPH-L710 using xda app-developers app
Maybe taking a look at how Motorola worked Ubuntu, in a way, with Webtop that came on the Photon. The Photon has the integrated Ubuntu-based 'Webtop' application from Motorola. The Webtop application is launched when the phone is connnected to the external display through Laptop dock or HD multimedia dock. In Webtop mode, offering similar user interface of typical Ubuntu desktop, the phone can run several applications on external display such as Firefox web browser, SNS clients and 'mobile view' application enabling total access of the Photon and its screen. In September 2011, Motorola released the source code of Webtop application at SourceForge.
I know it's not an app you're trying to use but it may help in finding how to work some of the kinks you have. I hope that helps
Hi, I'm the person maintaining Ubuntu currently for HP Touchpad (http://forum.xda-developers.com/showthread.php?t=2225462) (which also uses an MSM SOC.) It's starting to show its age... I'm trying to get this to where you have it currently on a Verizon S3 / d2vzw (obviously, kexec'ing into a Verizon kernel instead.) Maybe we could collaborate?
Currently I have the KT747 kernel (kexec host support as well as guest) (compiled as a zImage. If you can provide me with access to the patches you have for freedreno and hopefully also an initramfs image (I'm going to mod the HPTP rootfs, so no need there)... I'd love it.
My only modifications to the kernel so far are the ones I mentioned in the OP and three of Rob Clark's Freedreno commits from the mako-kernel branch of kernel-msm on his GitHub - namely, "kgsl: drm: remove checking on 'active'", "video/msm: add true ARGB", and "kgsl: fix null ptr on cache flush".
At one point I had X11 working with freedreno displaying the GNOME background, but the screen blanked after 10 seconds and I couldn't recover from that. Unfortunately, after experimenting with different kernel config options, I lost that semi-working configuration and the GPU started to page fault, sometimes displaying a corrupted screen and sometimes rebooting before displaying anything.
Believe me, I've been working on this for weeks, and it's very frustrating that it doesn't even sort of work. My minimal modifications to Mesa to get it to recognize the Adreno 225 are highly unlikely to be the cause of the problems, and I highly doubt the differences between the 220 and 225 are to blame since it was working at one point. It's a one liner, figured out from from freedreno/mesa issue #2.
Castrwilliam, the initramfs is the least of your worries. I don't use one, since its only function is to display the Plymouth splash, which doesn't work anyway.
gTan64 said:
...
Castrwilliam, the initramfs is the least of your worries. I don't use one, since its only function is to display the Plymouth splash, which doesn't work anyway.
Click to expand...
Click to collapse
Yeah, I realized how you were doing this after looking at the kexec script. I was trying to boot from Android, not recovery, and was under the impression you had put a disk image on external SD, and then made the initramfs loop-mount that and boot from it... but now I see you partitioned it.
It's a shame you don't have your original config, I'll try to get it booting again on my end. I remember doing something like this a while back, where I made like 10 differently configured kernels at once, and tested them each in turn. I imagine the ramconsole would help a good bit so that I could look a how far we're getting. (The touchpad has its own version of that, which you can read directly from the bootloader (bootie.) Then again, it also has LVM volumes for storage instead of actual partitions (except for boot) - which makes it uber easy to boot lots of OSes.)
Currently I'm not doing too well. I remember that kexec did work at one point on d2vzw hardware but I'm assuming that it still does now (new bootloaders, 3.4 kernels, ...) I do kexec -e, the reboot happens, I see the Samsung bootloader screen, then the screen blanks for like 5 seconds and it reboots again - back into android.
castrwilliam said:
I imagine the ramconsole would help a good bit so that I could look a how far we're getting...
the screen blanks for like 5 seconds and it reboots again - back into android.
Click to expand...
Click to collapse
The RAM console should be enabled by default, so check /proc/last_kmsg once Android boots back up.
It could be something simple like the root filesystem not mounting, either due to how you partitioned the card or not having time to settle, hence rootwait. Or it could be something else. I haven't gotten any useful output in /proc/last_kmsg with the framebuffer console enabled, so make sure that's disabled unless you want a headache and a psychiatrist visit.
Unfortunately, I've spent way too much energy trying to debug the GPU page fault, and I probably won't have much time to work on it after next month. I want this bug dead and forgotten, so more eyes would be great!
X11 works (shows something on screen) with the X.org "fbdev" driver. I can't reproduce anything with "freedreno" (or "modesetting", which I accidentally loaded at one point...)
The touch screen doesn't respond, but the power key works and brings up a shutdown dialog.
Screenshot attached. I used the 13.04 Touchpad rootfs with some modifications...
Okay, you can get the fbcon working by either loading it as a module during boot OR changing its "module_init" macro in drivers/video/console/fbcon.c to "late_initcall".
Picture attached. Sorry for blurriness, I don't have an actual digital camera, only what's on my sig. This should make debugging a bit easier.
Nice to see some more freedreno development on android phones
I'm using freedreno with a slightly different approach, starting it directly from android on a chrooted shell, which is a lot more easier to debug.
The kernel needs some fixes from the mako branch and the following configs:
Code:
CONFIG_DEVTMPFS=y
CONFIG_VT=y
CONFIG_DRM=y
CONFIG_MSM_KGSL_2D=y
CONFIG_MSM_KGSL_DRM=y
Rob Clark (the maintainer of freedreno) has been working on his own kernel driver for adreno gpu:
https://github.com/freedreno/kernel-msm/commits/ifc6410-drm
This would be a nice addition/replacement for the current qualcomm gpu driver.
Wootever said:
Nice to see some more freedreno development on android phones
I'm using freedreno with a slightly different approach, starting it directly from android on a chrooted shell, which is a lot more easier to debug.
The kernel needs some fixes from the mako branch and the following configs:
Code:
CONFIG_DEVTMPFS=y
CONFIG_VT=y
CONFIG_DRM=y
CONFIG_MSM_KGSL_2D=y
CONFIG_MSM_KGSL_DRM=y
Rob Clark (the maintainer of freedreno) has been working on his own kernel driver for adreno gpu:
https://github.com/freedreno/kernel-msm/commits/ifc6410-drm
This would be a nice addition/replacement for the current qualcomm gpu driver.
Click to expand...
Click to collapse
How do you stop the SurfaceFlinger (I think that's proper terminology) from hogging the framebuffer?
Semi Working Freedreno/X11
castrwilliam said:
How do you stop the SurfaceFlinger (I think that's proper terminology) from hogging the framebuffer?
Click to expand...
Click to collapse
HEY, look what I did?!
(There are a lot of patches req'd to get this far. Even at this point, there's a weird bug where the cursor loops across the edge of the screen and windows overlap themselves. If you want to know, I'll elaborate in a further post, otherwise, let's get that touchscreen working for release!)
Thanks to Rob Clark (again, the author of freedreno) who helped me get this far on his IRC channel at Freenode.
castrwilliam said:
HEY, look what I did?!
(There are a lot of patches req'd to get this far. Even at this point, there's a weird bug where the cursor loops across the edge of the screen and windows overlap themselves. If you want to know, I'll elaborate in a further post, otherwise, let's get that touchscreen working for release!)
Thanks to Rob Clark (again, the author of freedreno) who helped me get this far on his IRC channel at Freenode.
Click to expand...
Click to collapse
Are we keeping track of all the necessary patches? I'm on https://github.com/CyanogenMod/android_kernel_samsung_d2, branch cm-10.2_kgsl, with the per-process pagetable hack, the "active" kgsl_drm fix, Adreno 225 case in Mesa (freedreno_screen.c), and my stub occlusion query hack. I wasn't on #freedreno when Rob Clark pointed out the libdrm bug I heard about from the Wiki - did you fix that? I'm still getting the assert crashes.
I'll be on #freedreno at some point tomorrow.
gTan64 said:
Are we keeping track of all the necessary patches? I'm on https://github.com/CyanogenMod/android_kernel_samsung_d2, branch cm-10.2_kgsl, with the per-process pagetable hack, the "active" kgsl_drm fix, Adreno 225 case in Mesa (freedreno_screen.c), and my stub occlusion query hack. I wasn't on #freedreno when Rob Clark pointed out the libdrm bug I heard about from the Wiki - did you fix that? I'm still getting the assert crashes.
I'll be on #freedreno at some point tomorrow.
Click to expand...
Click to collapse
I got this to work by using a fairly old libdrm, but a new DDX (xf86-video-freedreno). I haven't fixed the assert bug on the newer ones.
You need to patch the DDX's msm-device.c to set the width to 736 (has to be a multiple of 32), and then disable/comment out/delete where it calls the mode-set function (there's a comment about making xrandr happy in the right place.) I can make a patch soon, but I have a feeling that this is what made the other bug happen with the looping cursor.
edit -- I fixed the looping cursor. A patch is attached...
Youtube video of it working: http://www.youtube.com/watch?v=rh9wmmYuKxY
Tips:
Set the firnware path for the dhd (wi-fi) driver to /system/etc/wifi/bcmdhd_sta.bin (WITHOUT the _b2 buffix, it will be added by the module). Set the nvram file to /system/etc/wifi/nvram_net.txt. Then, add the Android partitions to the /etc/fstab (mmcblk0p14 is system.)
apt-get install xserver-xorg-input-multitouch and then add a config file under /usr/share/X11/xorg.conf.d/ to get the touchscreen working. It will act like a laptop trackpad. You MUST use the multitouch driver. "evdev" will segfault the server on any touch. Note that you can match the TS in an InputClass with its udev name, "sec_touchscreen".
The date that I compiled the working Freedreno libdrm was the date that Ubuntu 13.04 was released. I'm working on narrowing it down to a Git SHA1 revision. I used Rob Clark's repository, not the freedesktop one.
Use the master branch of the DDX, sorry for the earlier confusion.
For battery savings, you might want to cherry pick the DPMS commit from the a3xx branch of the DDX.
castrwilliam said:
How do you stop the SurfaceFlinger (I think that's proper terminology) from hogging the framebuffer?
Click to expand...
Click to collapse
There are two binaries you can execute with adb shell stop/start that kills and restart the android proccesses, allowing access to the framebuffer.
Okay, so 2-D does work with my mods, but I just tried 3-D last night (ran es2gears with the Adreno 225 mod in place on mesa) and the pagefaults returned.
I did notice something about your pagefault reboots, though: they shouldn't necessarily be happening, it's a NULL pointer dereference that can be fixed in the handler by doing this in drivers/gpu/msm/kgsl_iommu.c (function is kgsl_iommu_fault_handler):
Change
Code:
curr_context->pagefault = 1;
curr_context->pagefault_ts = curr_global_ts;
To:
Code:
if (curr_context) {
curr_context->pagefault = 1;
curr_context->pagefault_ts = curr_global_ts;
}
So anyone got any updates for this if not i will start building upon what is there if it is ok
Sent from my SCH-S960L using xda premium
allenjthomsen said:
So anyone got any updates for this if not i will start building upon what is there if it is ok
Sent from my SCH-S960L using xda premium
Click to expand...
Click to collapse
I guess it is OK. Hopefully you can make a dent in this development. Keeping my eye on this thread.
No longer developing for this phone
Unfortunately, this phone hasn't been a good fit for me. I never got very far booting Ubuntu or Freedreno, so I decided to sell it.
For anyone still interested in this project, I believe castrwilliam has the required patches.
When I get my next Snapdragon device (either the new Nexus 7, a Nexus 4, a Galaxy S4, or another phone with Adreno 320 graphics), I will post the Mesa patches for occlusion query support.

[Q] boot.img requirements

I know with the bootloader unlocked theoretically any kernel built for the device should boot, but are there any specific requirements? Size, certain files, etc? I tried packing the stock Linux kernel and initramfs into a boot.img and it wouldn't boot, so I was looking for suggestions on what may be going wrong. Thanks!
http://forum.xda-developers.com/zenfone2/development/tool-zenfone-2-boot-repack-t3146088
sorg said:
http://forum.xda-developers.com/zenfone2/development/tool-zenfone-2-boot-repack-t3146088
Click to expand...
Click to collapse
I've noticed that, but thanks for the reference
I don't want to repack a stock ZF2 kernel, I want to pack an Arch Linux kernel and an initramfs
Jhdoubleoseven said:
I've noticed that, but thanks for the reference
I don't want to repack a stock ZF2 kernel, I want to pack an Arch Linux kernel and an initramfs
Click to expand...
Click to collapse
You need to compile Arch Linux kernel for Moorefield platform. If Arch Linux provides such hardware config, then it can boot.
Generally speaking, ASUS provides source code for Linux kernel already. So, you can tweak config to Ach Linux requirements, or port hardware specific patches to Arch Linux kernel.
I don't know about your experience, but porting Linux kernel for non-supported platform (i believe Arch Linux doesn't know about Moorefield Z35xx) is not trivial.
Jhdoubleoseven said:
I know with the bootloader unlocked theoretically any kernel built for the device should boot, but are there any specific requirements? Size, certain files, etc? I tried packing the stock Linux kernel and initramfs into a boot.img and it wouldn't boot, so I was looking for suggestions on what may be going wrong. Thanks!
Click to expand...
Click to collapse
One addition to sorg's post:
The size of the whole boot.img must not exceed 16MB, also make sure to include as much from stock initrd as possible: init, init.rcs, binaries in sbin, etc.
If you compile the drivers directly into the kernel, then you don't need the .ko files in the lib/modules folder, making your ramdisk size smaller (by a great degree).
Cheers
[deleted]
sorg said:
You need to compile Arch Linux kernel for Moorefield platform. If Arch Linux provides such hardware config, then it can boot.
Generally speaking, ASUS provides source code for Linux kernel already. So, you can tweak config to Ach Linux requirements, or port hardware specific patches to Arch Linux kernel.
I don't know about your experience, but porting Linux kernel for non-supported platform (i believe Arch Linux doesn't know about Moorefield Z35xx) is not trivial.
Click to expand...
Click to collapse
Ah, thank you very much! Now I'm curious though, the stock Arch kernel is compiled for generic x86-64 processors so why does it need to be platform-specific? I run the linux-ck-core2 kernel which is specifically compiled for the core2 processor series, but the generic one works fine as well on my laptop.
TheSSJ said:
One addition to sorg's post:
The size of the whole boot.img must not exceed 16MB, also make sure to include as much from stock initrd as possible: init, init.rcs, binaries in sbin, etc.
If you compile the drivers directly into the kernel, then you don't need the .ko files in the lib/modules folder, making your ramdisk size smaller (by a great degree).
Cheers
Click to expand...
Click to collapse
Thank you very much! Very helpful info
So you suggest modifying the stock initramfs to then start Arch? Arch uses systemd so I will probably need to figure out what exactly the stock one does so I know where to give it Arch-specific instructions.
Also, do you think the drivers would work with a newer kernel? Would I need to compile them into 3.10 or if I used the latest 4.1 or so do you think it could work?
Never played too much with kernel hacking so I definitely can get some great experience here! Thanks!
Jhdoubleoseven said:
Ah, thank you very much! Now I'm curious though, the stock Arch kernel is compiled for generic x86-64 processors so why does it need to be platform-specific? I run the linux-ck-core2 kernel which is specifically compiled for the core2 processor series, but the generic one works fine as well on my laptop.
Click to expand...
Click to collapse
x86 is only op.code standard - that's all.
Moorefield Z35xx SoC is like all-in-one PC with many devices inside, not just CPU. And every device requires specific driver. There are some devices in Z35xx are very specific and not supported by generic PC drivers.
Also, Z35xx has neither BIOS, nor UEFI. It has SFI which is not used in PC. Kernel has to have support booting process and parsing SFI tables (like PC parses ACPI tables) to get info about connected devices and their resources.
This is just brief platform differences (comparing to standard PC) overview. And you may find more differences if you will study the Moorefield platform.

Need help compiling sedikernel (or any kernel)

Hello,
In order to debug the bluetooth problem, I'm trying to compile a kernel for the Captivate Glide. I can't get it to boot properly.
@steadfasterX 's SediROM is the highest-version ROM I know of on which bluetooth works so I've got it installed (version 2.1.2) on the phone.
The steps I've taken so far:
1. I have sedikernel from https://github.com/steadfasterX/kernel_samsung_i927 at commit 088aa4109ad144c583f32da5ffba7bac200f0575
2. I copied /proc/config.gz from a running phone, which contains CONFIG_LOCALVERSION="-sediKERNEL-v1.0", ungzipped it and saved it as .config . Haven't changed anything in it yet.
3. I ran `make CROSS_COMPILE=arm-linux-gnueabihf- zImage` (also tried arm-none-eabi- (both from Debian Jessie) as well as ~/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- from the NDK)
4. I also made a TWRP backup of the boot partition, and used split_bootimg.pl from William Enck to split it into a kernel and initrd
5. I then ran mkbootimg with the initrd extracted in step 4 and the kernel obtained in step 3 in arch/arm/boot/zImage
6. Finally I flashed this new boot.img onto the phone with odin (Heimdall, specifically)
I see the white "SAMSUNG" logo (which is normal when booting) with a yellow-triangle with an exclamation mark in it. No further boot stage happens (no bootanim from sediROM). If I re-pack the original kernel with bootimg and flash that via odin, then after the next boot the yellow triangle changes into a blue one and sediROM boots correctly.
I'm a bit stuck at the moment, not sure what's going wrong there. Probably the kernel panics for some reason. Is there a way to read the kernel boot messages before android starts? Any help would be greatly appreciated.
Thanks!
Successful!
Thanks to a lot of help from @steadfasterX on IRC I finally managed to compile a working kernel
Here's a list of steps I had to follow in addition to https://github.com/steadfasterX/android_device_samsung_i927/blob/sediROM_CM-ICS/README.md :
1. as discussed on IRC, `repo sync` was not finding a branch. Needed to add
Code:
revision="refs/heads/ics-release"
in .repo/manifests/default.xml in the line with
Code:
CyanogenMod/android_vendor_qcom_opensource_v8
2. I removed the spurious comma in device/samsung/i927/cm.dependencies
3. In device/samsung/i927/, I changed vendorsetup.sh to point to vendorsetup.sh.nopatching rather than .patching (none of the patches could be applied)
4. lunch target was therefore the one with -eng, not -userdebug
5. I installed java 6 manually (didn't have sudo)
6. I installed schedtool
7. I adjusted the path to Java and my toolchain in build_sediROM.sh (taken from https://github.com/steadfasterX/android_buildtools )
8. I downgraded GNU make from 4.0 to 3.81
9. I installed linux-headers and created a symlink from /usr/include/asm-generic to /usr/include/asm
10. I changed the toolchain prefixes in device/samsung/i927/BoardConfig.mk to have 4.4.3 rather than 4.7
11. I built with
Code:
BUILDID=samsung/i927 LOKIFY=0 ../android_buildtools/build_sediROM.sh bootimage
12. I used the original ramdisk I had extracted from sediROM's boot image, rather than the one that was built (we discussed this on IRC too)
This got me a working kernel, yay
uukgoblin said:
Thanks to a lot of help from @steadfasterX on IRC I finally managed to compile a working kernel
Here's a list of steps I had to follow in addition to https://github.com/steadfasterX/android_device_samsung_i927/blob/sediROM_CM-ICS/README.md :
1. as discussed on IRC, `repo sync` was not finding a branch. Needed to add
Code:
revision="refs/heads/ics-release"
in .repo/manifests/default.xml in the line with
Code:
CyanogenMod/android_vendor_qcom_opensource_v8
2. I removed the spurious comma in device/samsung/i927/cm.dependencies
3. In device/samsung/i927/, I changed vendorsetup.sh to point to vendorsetup.sh.nopatching rather than .patching (none of the patches could be applied)
4. lunch target was therefore the one with -eng, not -userdebug
5. I installed java 6 manually (didn't have sudo)
6. I installed schedtool
7. I adjusted the path to Java and my toolchain in build_sediROM.sh (taken from https://github.com/steadfasterX/android_buildtools )
8. I downgraded GNU make from 4.0 to 3.81
9. I installed linux-headers and created a symlink from /usr/include/asm-generic to /usr/include/asm
10. I changed the toolchain prefixes in device/samsung/i927/BoardConfig.mk to have 4.4.3 rather than 4.7
11. I built with
Code:
BUILDID=samsung/i927 LOKIFY=0 ../android_buildtools/build_sediROM.sh bootimage
12. I used the original ramdisk I had extracted from sediROM's boot image, rather than the one that was built (we discussed this on IRC too)
This got me a working kernel, yay
Click to expand...
Click to collapse
its really long guide. You have to replace kernel modules, wifi wouldnt work without modules.
Imho best is compile kernel, modules, replace zImage + modules in this
file and flash from recovery. You dont need to compile whole android just the kernel, you dont need java and other special things, this method is much more faster.
bubor said:
its really long guide. You have to replace kernel modules, wifi wouldnt work without modules.
Imho best is compile kernel, modules, replace zImage + modules in this
file and flash from recovery. You dont need to compile whole android just the kernel, you dont need java and other special things, this method is much more faster.
Click to expand...
Click to collapse
You are right for the kernel but we discussed on IRC to build ram disk too then you need all that stuff but most important he wants to build CM too.
However I'm always a fan of making it right so building a ram disk is the correct way of creating a bootimage. But to start its ok replacing kernel and modules first.
.
Sent from my LG-H815 using XDA Labs
steadfasterX said:
Sent from my LG-H815 using XDA Labs
Click to expand...
Click to collapse
correct way is rebuild whole android, and reflash everything, wipe data/cache
You dont want to make new ramdisk without replace system. System and ramdisk bound together.
I hope you find something, and fix bluetooth or voip audio.
good luck
bubor said:
correct way is rebuild whole android, and reflash everything, wipe data/cache
You dont want to make new ramdisk without replace system. System and ramdisk bound together.
I hope you find something, and fix bluetooth or voip audio.
good luck
Click to expand...
Click to collapse
Well no and yes. I build kernels including ram disk without building system. This is not necessary as long both are compatible.
But you are right that booting fails when system and ram disk are not compatible so the correct way depends
However @uukgoblin I hope you get the fix you want :fingers-crossed:
Sent from my LG-H815 using XDA Labs
steadfasterX said:
Well no and yes. I build kernels including ram disk without building system. This is not necessary as long both are compatible.
But you are right that booting fails when system and ram disk are not compatible so the correct way depends
However @uukgoblin I hope you get the fix you want :fingers-crossed:
Sent from my LG-H815 using XDA Labs
Click to expand...
Click to collapse
would you tell me an example when kernel doesnt compatible with ramdisk but kernel does compatible with system?
bubor said:
would you tell me an example when kernel doesnt compatible with ramdisk but kernel does compatible with system?
Click to expand...
Click to collapse
No no my friend that's not what I said. :cyclops:
I meant if you have CM 9 as system you can build a boot image which includes kernel and a CM9 based ram disk without building cm9 system again. :laugh:
.
Sent from my LG-H815 using XDA Labs

Categories

Resources