Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


products:sbc:common:development:build-ubuntu

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
products:sbc:common:development:build-ubuntu [2022/07/04 23:41]
nick
products:sbc:common:development:build-ubuntu [2022/08/07 22:11]
ruby [Introduction]
Line 1: Line 1:
-====== Build Ubuntu OS Images======+====== Build Ubuntu ======
  
 ===== Introduction ===== ===== Introduction =====
  
-We provided [[kg>fenix|Fenix]] for you to build the Ubuntu OS images easily. \\ +We provide [[kg>fenix|Fenix]] to build the Ubuntu OS images easily. \\ 
-You can follow the steps below to build the Ubuntu OS image.+You can follow the steps below:
  
  
-===== Host Setup =====+===== Preparation =====
  
-```bash +Install essential dependencies. 
-sudo apt-get update + 
-sudo apt-get upgrade +```shell 
-sudo apt-get install git make lsb-release qemu-user-static+sudo apt update 
 +sudo apt install git make lsb-release qemu-user-static
 ``` ```
  
-===== Clone the Fenix Repository =====+===== Get Fenix Source Code =====
  
 +Clone the Fenix repository to somewhere, e.g. ''~/project''
  
-Clone the Fenix repository to: `~/project` +```shell
- +
-```sh+
 $ mkdir ~/project $ mkdir ~/project
 $ cd ~/project/ $ cd ~/project/
Line 26: Line 26:
 ``` ```
  
-### Setup the Build Environment+===== Setup the Build Environment =====
  
-You should setup the build environment first. +You should setup the build environment first. \\
  
-For example: Board type, Linux version, distribution, etc.+For example: ''Board type''''Linux version''''distribution''.
  
-```sh+```shell
 $ cd ~/project/fenix $ cd ~/project/fenix
 $ source env/setenv.sh $ source env/setenv.sh
 ``` ```
  
-### Build the Image+===== Build the OS Image =====
  
-As root, build the image with Fenix.+Just type ''make'' to start build.
  
-```sh 
-$ make 
-``` 
  
-**Tip:** If this is your first time building 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.+<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. 
 +</WRAP>
  
-### Build U-Boot +===== Other Build Commands ===== 
-```+ 
 + 
 +==== Build U-Boot ==== 
 + 
 +```shell
 $ make uboot $ make uboot
 ``` ```
  
-### Build the U-Boot Debian Package +==== Build U-Boot Debian Package ==== 
-```+ 
 +```shell
 $ make uboot-deb $ make uboot-deb
 ``` ```
  
-### Build Linux +==== Build Linux ==== 
-```+ 
 +```shell
 $ make kernel $ make kernel
 ``` ```
  
-### Build the Linux Debian Package +==== Build Linux Debian Package ==== 
-```+ 
 +```shell
 $ make kernel-deb $ make kernel-deb
 ``` ```
  
-### Build the GPU Debian Package +==== Build GPU Debian Package ==== 
-```+ 
 +```shell
 $ make gpu-deb $ make gpu-deb
 ``` ```
  
-### Build the Board Debian Package +==== Build the Board Debian Package ==== 
-```+ 
 +```shell
 $ make board-deb $ make board-deb
 ``` ```
  
-### Build all Debian Packages +==== Build all Debian Packages ==== 
-```+ 
 +```shell
 $ make debs $ make debs
 ``` ```
-### Build U-Boot Image + 
-```+==== Build U-Boot Image ==== 
 + 
 +```shell
 $ make uboot-image $ make uboot-image
 ``` ```
  
-### Clean the Linux Source Tree +==== Clean Linux Source Tree ==== 
-```+ 
 +```shell
 $ make kernel-clean $ make kernel-clean
 ``` ```
  
-### Show Linux Menuconfig +==== Show Linux Menuconfig ==== 
-```+ 
 +```shell
 $ make kernel-config $ make kernel-config
 ``` ```
  
-### Save the Linux Defconfig +==== Save Linux Defconfig ==== 
-```+ 
 +```shell
 $ make kernel-saveconfig $ make kernel-saveconfig
 ``` ```
-### Clean U-Boot Source Tree + 
-```+==== Clean U-Boot Source Tree ==== 
 + 
 +```shell
 $ make uboot-clean $ make uboot-clean
 ``` ```
  
-### Help Messages +==== Help Messages ==== 
-You can get help messages by executing `make help`+ 
-```sh+You can get help messages by executing ''make help'': 
 + 
 +```shell
 $ make help $ make help
 Fenix scripts help messages: Fenix scripts help messages:
Line 131: Line 149:
 ``` ```
  
-### Build Options+==== Build Options ====
  
 Options for building: Options for building:
  
-`NO_CCACHE- ccache option+  ''NO_CCACHE'' - ccache option 
 +    * ''NO_CCACHE=no make'' - Enable ccache **default**  
 +    * ''NO_CCACHE=yes make'' - Disable ccache 
  
-  * Enable ccache (default) +  * ''COMPRESS_IMAGE'' - compress build image option 
-    * NO_CCACHE=no make +    * ''COMPRESS_IMAGE=no make'' - Don't compress **default*
-  Disable ccache +    * ''COMPRESS_IMAGE=yes make'' - Compress image with xz
-    * NO_CCACHE=yes make+
  
-`COMPRESS_IMAGE` compress build image option +  ''BUILD_TYPE'' - image build type option 
-  * Don't compress (default) +    * ''BUILD_TYPE=develop make'' - Develop build 
-    * COMPRESS_IMAGE=no make +    * ''BUILD_TYPE=release make'' - Release build
-  * Compress image with xz +
-    * COMPRESS_IMAGE=yes make+
  
-* `BUILD_TYPE` - image build type option +===== Build in Docker =====
-  * Develop build +
-    * BUILD_TYPE=develop make +
-  * Release build +
-    * BUILD_TYPE=release make+
  
-### Build Fenix in Docker+You can also choose to build the OS image in Docker container.
  
-Fenix is supported by Docker. We provide a `Ubuntu 20.04` build host, so you can build all images in Docker.+==== Install Docker ====
  
-#### Install Docker+Please refer to [[https://docs.docker.com/engine/install/|Docker Documentation]].
  
-Please refer to [Docker Documentation](https://docs.docker.com/engine/install/).+==== Add User to Docker Group ====
  
-#### Add User to a Docker Group +```shell
- +
-```+
 $ sudo usermod -aG docker $USER $ sudo usermod -aG docker $USER
 ``` ```
  
-*Note: You need to logout or reboot the system for changes to take effect.*+<WRAP important > 
 +You need to logout or reboot the system for changes to take effect. 
 +</WRAP>
  
-#### Run Docker + 
-```+==== Check Docker ==== 
 + 
 +```shell
 $ docker run hello-world $ docker run hello-world
 ``` ```
  
 If you see the following print-out, Docker has installed successfully: If you see the following print-out, Docker has installed successfully:
-```+ 
 +```txt
 Unable to find image 'hello-world:latest' locally Unable to find image 'hello-world:latest' locally
 latest: Pulling from library/hello-world latest: Pulling from library/hello-world
Line 204: Line 220:
  https://docs.docker.com/engine/userguide/  https://docs.docker.com/engine/userguide/
 ``` ```
-#### Run Fenix in Docker+ 
 +==== Build Fenix in Docker ==== 
 Get Docker image: Get Docker image:
-```+ 
 +```shell
 $ cd ~/project/fenix $ cd ~/project/fenix
 $ docker pull numbqq/fenix:latest $ docker pull numbqq/fenix:latest
Line 212: Line 231:
  
 Build image in Docker: Build image in Docker:
-```+ 
 +```shell
 $ docker run -it --name fenix -v $(pwd):/home/khadas/fenix \ $ docker run -it --name fenix -v $(pwd):/home/khadas/fenix \
              -v /etc/localtime:/etc/localtime:ro \              -v /etc/localtime:/etc/localtime:ro \
Line 222: Line 242:
 ``` ```
 Start your build from inside the Docker container. Start your build from inside the Docker container.
-```+ 
 +```shell
 khadas@919cab43f66d:~/fenix$ source env/setenv.sh khadas@919cab43f66d:~/fenix$ source env/setenv.sh
 khadas@919cab43f66d:~/fenix$ make khadas@919cab43f66d:~/fenix$ make
Line 229: Line 250:
 Restart the Docker container. Restart the Docker container.
  
-```bash+```shell
 $ docker start fenix $ docker start fenix
 $ docker exec -ti fenix bash $ docker exec -ti fenix bash
 ``` ```
- 
-### Get the Latest Nightly build 
-- See [Fenix](https://github.com/khadas/fenix)(one-stop script) 
-- Release Build, Test Build Ubuntu, Test Build Debian 
-![image](/linux/images/vim1/fenix_script.png) 
-- You can see the firmware page when you click on the latest workflow 
- 
-### See Also 
-[Docker](https://www.docker.com/) 
Last modified: 2022/08/07 22:18 by ruby