This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
products:sbc:common:development:build-ubuntu [2022/07/04 22:16] nick created |
products:sbc:common:development:build-ubuntu [2022/08/07 22:18] (current) ruby [Add User to a Docker Group] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Build Ubuntu ====== | ====== Build Ubuntu ====== | ||
+ | ===== Introduction ===== | ||
+ | |||
+ | We provide [[kg> | ||
+ | You can follow the steps below: | ||
+ | |||
+ | |||
+ | ===== Preparation ===== | ||
+ | |||
+ | Install essential dependencies. | ||
+ | |||
+ | ```shell | ||
+ | $ sudo apt update | ||
+ | $ sudo apt install git make lsb-release qemu-user-static | ||
+ | ``` | ||
+ | |||
+ | ===== Get Fenix Source Code ===== | ||
+ | |||
+ | Clone the Fenix repository to somewhere, e.g. '' | ||
+ | |||
+ | ```shell | ||
+ | $ mkdir ~/project | ||
+ | $ cd ~/project/ | ||
+ | $ git clone --depth 1 https:// | ||
+ | ``` | ||
+ | |||
+ | ===== Setup the Build Environment ===== | ||
+ | |||
+ | You should setup the build environment first. \\ | ||
+ | |||
+ | For example: '' | ||
+ | |||
+ | ```shell | ||
+ | $ cd ~/ | ||
+ | $ source env/ | ||
+ | ``` | ||
+ | |||
+ | ===== Build the OS Image ===== | ||
+ | |||
+ | Just type '' | ||
+ | |||
+ | |||
+ | <WRAP tip > | ||
+ | If it's the first time to build an image, the script will check your host's environment and install some essential packages. In addition, repositories (U-Boot, Linux) will be cloned automatically from the Khadas GitHub. | ||
+ | </ | ||
+ | |||
+ | ===== Other Build Commands ===== | ||
+ | |||
+ | |||
+ | ==== Build U-Boot ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make uboot | ||
+ | ``` | ||
+ | |||
+ | ==== Build U-Boot Debian Package ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make uboot-deb | ||
+ | ``` | ||
+ | |||
+ | ==== Build Linux ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make kernel | ||
+ | ``` | ||
+ | |||
+ | ==== Build Linux Debian Package ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make kernel-deb | ||
+ | ``` | ||
+ | |||
+ | ==== Build GPU Debian Package ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make gpu-deb | ||
+ | ``` | ||
+ | |||
+ | ==== Build the Board Debian Package ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make board-deb | ||
+ | ``` | ||
+ | |||
+ | ==== Build all Debian Packages ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make debs | ||
+ | ``` | ||
+ | |||
+ | ==== Build U-Boot Image ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make uboot-image | ||
+ | ``` | ||
+ | |||
+ | ==== Clean Linux Source Tree ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make kernel-clean | ||
+ | ``` | ||
+ | |||
+ | ==== Show Linux Menuconfig ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make kernel-config | ||
+ | ``` | ||
+ | |||
+ | ==== Save Linux Defconfig ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make kernel-saveconfig | ||
+ | ``` | ||
+ | |||
+ | ==== Clean U-Boot Source Tree ==== | ||
+ | |||
+ | ```shell | ||
+ | $ make uboot-clean | ||
+ | ``` | ||
+ | |||
+ | ==== Help Messages ==== | ||
+ | |||
+ | You can get help messages by executing '' | ||
+ | |||
+ | ```shell | ||
+ | $ make help | ||
+ | Fenix scripts help messages: | ||
+ | all - Create image according to environment. | ||
+ | kernel | ||
+ | kernel-clean | ||
+ | kernel-config | ||
+ | kernel-saveconfig | ||
+ | uboot - Build u-boot. | ||
+ | uboot-clean | ||
+ | uboot-deb | ||
+ | uboot-image | ||
+ | kernel-deb | ||
+ | board-deb | ||
+ | common-deb | ||
+ | desktop-deb | ||
+ | gpu-deb | ||
+ | debs - Build all debian packages. | ||
+ | image - Pack update image. | ||
+ | clean - Cleanup. | ||
+ | info - Display current environment. | ||
+ | get-make-params | ||
+ | ``` | ||
+ | |||
+ | ==== Build Options ==== | ||
+ | |||
+ | Options for building: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===== Build in Docker ===== | ||
+ | |||
+ | You can also choose to build the OS image in a Docker container. | ||
+ | |||
+ | ==== Install Docker ==== | ||
+ | |||
+ | Please refer to [[https:// | ||
+ | |||
+ | ==== Add User to a Docker Group ==== | ||
+ | |||
+ | ```shell | ||
+ | $ sudo usermod -aG docker $USER | ||
+ | ``` | ||
+ | |||
+ | <WRAP important > | ||
+ | You need to logout or reboot the system to take effect. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Check Docker ==== | ||
+ | |||
+ | ```shell | ||
+ | $ docker run hello-world | ||
+ | ``` | ||
+ | |||
+ | If you see the following print-out, Docker has installed successfully: | ||
+ | |||
+ | ```txt | ||
+ | Unable to find image ' | ||
+ | latest: Pulling from library/ | ||
+ | ca4f61b1923c: | ||
+ | Digest: sha256: | ||
+ | Status: Downloaded newer image for hello-world: | ||
+ | |||
+ | Hello from Docker! | ||
+ | This message shows that your installation appears to be working correctly. | ||
+ | |||
+ | To generate this message, Docker took the following steps: | ||
+ | 1. The Docker client contacted the Docker daemon. | ||
+ | 2. The Docker daemon pulled the " | ||
+ | (amd64) | ||
+ | 3. The Docker daemon created a new container from that image which runs the | ||
+ | executable that produces the output you are currently reading. | ||
+ | 4. The Docker daemon streamed that output to the Docker client, which sent it | ||
+ | to your terminal. | ||
+ | |||
+ | To try something more ambitious, you can run an Ubuntu container with: | ||
+ | $ docker run -it ubuntu bash | ||
+ | |||
+ | Share images, automate workflows, and more with a free Docker ID: | ||
+ | | ||
+ | |||
+ | For more examples and ideas, visit: | ||
+ | | ||
+ | ``` | ||
+ | |||
+ | ==== Build Fenix in Docker ==== | ||
+ | |||
+ | Get Docker image: | ||
+ | |||
+ | ```shell | ||
+ | $ cd ~/ | ||
+ | $ docker pull numbqq/ | ||
+ | ``` | ||
+ | |||
+ | Build image in Docker: | ||
+ | |||
+ | ```shell | ||
+ | $ docker run -it --name fenix -v $(pwd):/ | ||
+ | -v / | ||
+ | -v / | ||
+ | -v $HOME/ | ||
+ | | ||
+ | | ||
+ | | ||
+ | ``` | ||
+ | Start your build from inside the Docker container. | ||
+ | |||
+ | ```shell | ||
+ | khadas@919cab43f66d: | ||
+ | khadas@919cab43f66d: | ||
+ | ``` | ||
+ | |||
+ | Restart the Docker container. | ||
+ | |||
+ | ```shell | ||
+ | $ docker start fenix | ||
+ | $ docker exec -ti fenix bash | ||
+ | ``` |