Changes

Jump to navigation Jump to search
Add first steps section and info about schematics
{{note|Work in progress and untested. Please improve this page (or merge it together with the non-Qualcomm-specific [[The Mainline Kernel|mainlining wiki page]]) when you try any of this.}}
== Prerequisites ==
* A working device-tree based downstream Downstream kernel source code: This is the main source of reference when porting the mainline kernel.* You know Board schematics: An additional source of reference that can be really helpful considering the location usually poor quality of downstream code including the UART port on your devicetrees. Will allow you to confirm the wiring of all components, see ([https://www.youtube.com/watch?v=_aedd8SUBgY video tutorial] | [http://wwwand will also show any hardware that is misrepresented in the downstream device tree, such as fixed regulators which are often modeled as enable pins.devttys0.com/2012/11/reverse-engineering-serial-ports/ Identifying serial ports]) and [[Serial debugging|serial debugging]]
* Having the mainline source code of a similar device can be very helpful: https://wiki.postmarketos.org/wiki/Mainlining#Supported_SoCs
== First steps ==
You must find a method for getting feedback from the device when booting the mainline kernel. This will be necessary for debugging.
=== UART ===
Perhaps the most useful method, since it allows for getting early kernel messages, and even bootloader logs which can help when the device is not finding or refusing your DTB.
You will have to find the location of the UART port on your device, see ([https://www.youtube.com/watch?v=_aedd8SUBgY video tutorial] | [http://www.devttys0.com/2012/11/reverse-engineering-serial-ports/ Identifying serial ports]) and [[Serial debugging]]
=== Simple Framebuffer ===
This should be the easiest method to get working, provided you have a video-mode panel and your bootloader leaves a framebuffer configured for continuous splash. It will allow Linux to print its logs to the screen, and it will also allow you to actually make use of the screen before writing a panel driver, although to a limited extent.
=== RAM Console / ramoops ===
This method is more of a last resort, considering it is usually unreliable and in many instances quite difficult to get working.
== Relevant chat log ==
Thanks to opendata and bshah for the following log. Let's make this more wiki friendly once we try it out.
248

edits

Navigation menu