Enable UEFI on any Linux distributions
A simple user guide helps you to enable UEFI boot on your tablet.
Last updated
A simple user guide helps you to enable UEFI boot on your tablet.
Last updated
In , a devicetree (also written device tree) is a describing the hardware components of a particular computer so that the 's can use and manage those components, including the or CPUs, the , the and the .
On Renegade Project's UEFI firmware, the device tree is used when your device is booting Linux kernel via EFI stub. To get the device tree file, we need to look up it in kernel repository. So open your terminal, and type this command, it will simply download the whole repository and store it on your disk:
NOTE: if you want to use the latest mainline kernel as daily driver:
Driver for the PM8150B charger is broken in mainline, the only way to charge your tablet is by simply fixing the In8000* fast charger driver for mainline. About the patch files, they're , for fixing the charger, ;
Based on my personal tests, microphones are available, but unusable. Because the record volume is extremely LOUD, no matter which volume you've selected. If you keep using it (as for now), you will damage your ears and speakers !
Real time clock (RTC) is working, but a manual patch is required.
Once it finished, go to the repository's directory. We need to find the proper device tree file that ended with file extension name (*.dts). It is stored under arch/arm64/boot/dts
. cd
into this directory, find the DTS file named "sm8150-xiaomi-nabu.dts
".
Now, let's install some basic tool for compiling the Linux kernel.
On Ubuntu and other Debian-based distributions:
Unfortunately, the above does not install all of the necessary dependencies. The current Disco Dingo release requires the following additional packages.
If you are going to be using git, install it via:
On Arch Linux(and distributions based on it):
Now compile the DTS file into DTB files:
You should have the Device tree files now.
Why you need to fix In8000 charger for nabu
?
Well, basically, it's a pun. You have a tablet powered by a Li-Lon Battery, and we often call them "E-tablet". As for nabu
, it's an E-tablet, it's a char-Ger ! Get it?
Before you start your compilation, you need to patch the kernel for charger and RTC feature.
Navigate to your kernel repository to continue:
Simply enter these commands on terminal:
Notice the Image.gz is the Android kernel image we won't use. After compiling kernel, you will find the two files we need: a sysmap file and the final kernel image(name begin with "vmlinuz"). Copy them to your tablet's EFI directory.
You should have these files:
To modify the partitions on the UFS, we'll need to download a 3rd-party recovery environment called "Orangefox Recovery" Link is here below:
This will start booting recovery image. Once the screen is on, use the terminal to continue processing. We well use adb shell
command to finish the rest of this guide.
Enter print
command to list all partitions for /dev/block/sda
:
Then you will see your current partition table with userdata
being the last partition
Below is an example of output:
Now let’s continue partitioning:
Here the size of userdata
can be decided by yourself.
Delete partition 31 and again make sure it is not deleted incorrectly.
Do sgdisk --resize-table 64 /dev/block/sda
if you need to extend the number of partitions from 32 to 64.
First, check the UUID of your partition:
Modify fstab to use these UUIDs above:
We will use Renegade Project EFI firmware for example. Clone the repository to your disk:
Replace the dtb file "sm8150-xiaomi-nabu.dtb
" in "edk2-msm/Platform/Xiaomi/sm8150/FdtBlob/nabu/
" with the kernel DTB file "sm8150-xiaomi-nabu.dtb
" which you used in arm ubuntu. rename to "sm8150-xiaomi-nabu.dtb
" and build image:
You will receive a boot image. Flash it to boot
partition:
Then, install GRUB onto your disk in your Linux distributions:
For Ubuntu and other Debian-based distributions:
For Arch Linux and Arch-based:
For Alpine and Alpine-based:
Install GRUB tools and generate RAM disk:
Generate GRUB configuration file:
After compiling the kernel and ensuring that the necessary files are moved to your tablet's EFI directory, reboot your device. During the booting process, access the boot menu. This may vary depending on your device, but typically involves pressing one of the function keys (e.g., F12, F9, or F2) right after powering on the device. From the boot menu, select "Ubuntu" .You'll see the GRUB boot menu, use Vol+
or Vol-
keys to navigate, power
button to confirm.
If you need to tweak kernel parameters for optimization or compatibility reasons, you can edit the grub configuration file. This file is usually found at /etc/default/grub
. You would add your parameters to the GRUB_CMDLINE_LINUX_DEFAULT
line. After editing, apply the changes with sudo update-grub
and reboot for them to take effect.
Remember, keeping a backup of the original configuration files before making any changes is always a good practice. This precaution ensures you can revert to a working state in case anything goes wrong.
Install the , which pulls in necessary packages such as and . It is also recommended to install the following packages, as listed in the default Arch kernel : , , , , , , , , , .
we'll need to use the command tools to do this. Now let's open adb shell
again and start typing parted
in the terminal.
If you are using newer recovery like or PBRP Recovery, you need to download parted
and use adb
command to copy it to internal storage. Run these commands to finish this: