diff --git a/precompiled-trees/README.md b/precompiled-trees/README.md index 22dfac3..3b530b5 100644 --- a/precompiled-trees/README.md +++ b/precompiled-trees/README.md @@ -28,23 +28,46 @@ Each folder contains a `.dtb` file, which is the compiled device tree itself, pl * Has the console uart, 1x I2C. 1xSPI * 15 unassigned GPIO pins, 3 pre-assigned to pinctl +# Getting the DTB files +Clone this repo: +```console +$ git clone https://github.com/easytarget/MQ-Pro-IO.git +$ cd MQ-Pro-IO +``` + # Examining the current DTB pin mappings: In the [tools](../tools) folder there is a python script called `list-pins.py`. -To run it you need to be in that directory, then run `python3 list-pins.py MangoPi-MQ-Pro` to see a map of the current pin assignments (the same map I use in `.gpio` files in the folders above.) +To run it you need to be in that directory, then run: +`python3 list-pins.py MangoPi-MQ-Pro` +* This produces the same map I use in the documentation and `.gpio` files in the folders above. -# Install and use -Installing is simple, clone this repo on to the MQ pro and, as root, copy the desired `.dtb` file to the `/boot/dbts` folder. +# Install the Device Tree +Installing is, in principle, simple. +* Clone this repo on to the MQ pro and, as root, copy the desired `.dtb` file to the `/boot/dbts` folder. +* Then make a soft link in the root of the /boot folder named `dtb-mqpro` that points to the file you just copied. +```console +$ sudo cp precompiled-trees/generic/6.8.0-31-generic.dtb /boot/dtbs/ +$ cd /boot +$ sudo ln -s dtbs/6.8.0-31-generic.dtb dtb-mqpro +``` -Then make a soft link in the root of the /boot folder named `dtb-mqpro` that points to the file you just copied. - -Finally, edit the `/boot/grub/grub.cfg` file to use the new DTB for the default 'Ubuntu' target. +Finally, edit the `/boot/grub/grub.cfg` file to use the new DTB for the default 'Ubuntu' target: +* `sudo vi /boot/grub/grub.cfg` +* Look for the first block that begins with: `menuentry 'Ubuntu'` +* Comment out the existing entry and add a new one: +```console + # devicetree /boot/dtb-6.8.0-31-generic + devicetree /boot/dtb-mqpro +``` Reboot! After rebooting you can re-run **list-pins.py** from above to verify the new mappings. -If you have errors rebooting (maybe a corrupt file if you rebuilt it etc..) you need to either boot using a USB serial adapter on the console pins and select the recover image (or edit the command and revert to the generic `.dtb`). Or remove the SD card, mount the /boot partition and edit the `grub/grub.cfg` file there. +If you have errors rebooting (maybe a corrupt file if you rebuilt it etc..) you need to either boot using a USB serial adapter on the console pins and select the recovery image, or, in grub, edit the command and revert to the generic `/boot/dtb`. +As a last resort you may have to remove the SD card, mount the `/boot` partition and edit `grub/grub.cfg` there. +* !! The 'default' dtb supplied by ubuntu should always be softlinked as `/boot/dtb`, so putting `devicetree /boot/dtb` in grub in place of the custom `.dtb` should work and is predictable (no version numbers etc). ## Making Permanent: (As Root) Edit: `/etc/grub.d/10_linux` line 458 to say: @@ -62,3 +85,4 @@ Note that we are adding `dtb-mqpro` to the start of this list, this is the 'sear fi done ``` +When Grub next rebuilds it *should* make the new DTB the default for all entries now. (this is untested, as of this writing there have not been any kernel upgrades to test them on)