For quite a while I've been trying to install a Debian distribution on my useless cheap tablet PC. After reading the details of building Linux kernel on ARM architecture Manual Build Howto I've found out that the mainline Linux has support for Allwinner A23 SoC Mainline Kernel Howto. Besides that, building the kernel is possible with mainline U-Boot Mainline U-Boot Howto by using the bootloader binaries for respective architecture and a specific boot.scr script.
After performing the necessary configurations I've obtained a bootable SD card with the following contents:
boot.scr - script used to load the kernel image and device tree blob into memory
zImage - mainline Linux kernel image
[device_tree].dtb - device tree blob specific for my tablet
rootfs - root file system for Debian Stretch
Having a working USB keyboard is essential for my tablet, because it has only one micro USB OTG port, which I intend to use for keyboard/mouse/charging, thus when compiling the kernel, configurations specific for USB and full HID support were used:
CONFIG_INPUT_MOUSE=y CONFIG_INPUT_TOUCHSCREEN=y CONFIG_INPUT_KEYBOARD=y CONFIG_HID_SUPPORT=y CONFIG_HID=y CONFIG_USB_OTG=y CONFIG_USB_HID=y CONFIG_USB=y CONFIG_USB_MOUSE=y CONFIG_USB_OTG_UTILS=y
and many more configs which I'm not sure about, but included just in case.
After multiple tries with various kernel configurations I keep obtaining the same result, where the USB keyboard works perfectly in U-Boot when connected via either OTG cable or USB hub, but fails to work when kernel boots -- I can't get past the tty1 prompt asking to enter my credentials, because at that moment the keyboard is simply not powered up by the tablet.
In the end my questions are - Are there maybe any crucial kernel configs that I've omitted when compiling the kernel? Can be the not working keyboard really a kernel issue? Are there any debug techniques in case I have only one micro USB port?