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
products:sbc:common:development:build-ubuntu [2022/07/05 02:25]
nick
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 OS Image======+====== 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:
  
  
 ===== Preparation ===== ===== Preparation =====
  
-Install ecessial dependencies.+Install essential dependencies.
  
-```sh +```shell 
-sudo apt update +sudo apt update 
-sudo apt install git make lsb-release qemu-user-static+sudo apt install git make lsb-release qemu-user-static
 ``` ```
  
 ===== Get Fenix Source Code ===== ===== Get Fenix Source Code =====
  
-Clone the Fenix repository to somewhere, e.g. `~/project`+Clone the Fenix repository to somewhere, e.g. ''~/project''
  
-```sh +```shell 
-mkdir ~/project +mkdir ~/project 
-cd ~/project/ +cd ~/project/ 
-git clone --depth 1 https://github.com/khadas/fenix+git clone --depth 1 https://github.com/khadas/fenix
 ``` ```
  
Line 30: Line 30:
 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
 ``` ```
  
Line 43: Line 43:
  
 <WRAP tip > <WRAP 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.+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> </WRAP>
  
Line 51: Line 51:
 ==== Build U-Boot ==== ==== Build U-Boot ====
  
-```sh +```shell 
-make uboot+make uboot
 ``` ```
  
 ==== Build U-Boot Debian Package ==== ==== Build U-Boot Debian Package ====
  
-```sh +```shell 
-make uboot-deb+make uboot-deb
 ``` ```
  
 ==== Build Linux ==== ==== Build Linux ====
  
-```sh +```shell 
-make kernel+make kernel
 ``` ```
  
 ==== Build Linux Debian Package ==== ==== Build Linux Debian Package ====
  
-```sh +```shell 
-make kernel-deb+make kernel-deb
 ``` ```
  
 ==== Build GPU Debian Package ==== ==== Build GPU Debian Package ====
  
-```sh +```shell 
-make gpu-deb+make gpu-deb
 ``` ```
  
 ==== Build the Board Debian Package ==== ==== Build the Board Debian Package ====
  
-```sh +```shell 
-make board-deb+make board-deb
 ``` ```
  
 ==== Build all Debian Packages ==== ==== Build all Debian Packages ====
  
-```sh +```shell 
-make debs+make debs
 ``` ```
  
 ==== Build U-Boot Image ==== ==== Build U-Boot Image ====
  
-```sh +```shell 
-make uboot-image+make uboot-image
 ``` ```
  
 ==== Clean Linux Source Tree ==== ==== Clean Linux Source Tree ====
  
-```sh +```shell 
-make kernel-clean+make kernel-clean
 ``` ```
  
 ==== Show Linux Menuconfig ==== ==== Show Linux Menuconfig ====
  
-```sh +```shell 
-make kernel-config+make kernel-config
 ``` ```
  
 ==== Save Linux Defconfig ==== ==== Save Linux Defconfig ====
  
-```sh +```shell 
-make kernel-saveconfig+make kernel-saveconfig
 ``` ```
  
 ==== Clean U-Boot Source Tree ==== ==== Clean U-Boot Source Tree ====
  
-```sh +```shell 
-make uboot-clean+make uboot-clean
 ``` ```
  
Line 125: Line 125:
 You can get help messages by executing ''make help'': You can get help messages by executing ''make help'':
  
-```sh +```shell 
-make help+make help
 Fenix scripts help messages: Fenix scripts help messages:
   all                   - Create image according to environment.   all                   - Create image according to environment.
Line 154: Line 154:
  
   * ''NO_CCACHE'' - ccache option   * ''NO_CCACHE'' - ccache option
-    * ''NO_CCACHE=no make'' - Enable ccache (default+    * ''NO_CCACHE=no make'' - Enable ccache **default** 
     * ''NO_CCACHE=yes make'' - Disable ccache      * ''NO_CCACHE=yes make'' - Disable ccache 
  
   * ''COMPRESS_IMAGE'' - compress build image option   * ''COMPRESS_IMAGE'' - compress build image option
-    * Don't compress (default) +    * ''COMPRESS_IMAGE=no make''Don't compress **default** 
-      * COMPRESS_IMAGE=no make +    ''COMPRESS_IMAGE=yes make''Compress image with xz
-    * Compress image with xz +
-      * COMPRESS_IMAGE=yes make+
  
   * ''BUILD_TYPE'' - image build type option   * ''BUILD_TYPE'' - image build type option
-    * Develop build +    * ''BUILD_TYPE=develop make'' - Develop build 
-      * BUILD_TYPE=develop make +    * ''BUILD_TYPE=release make'' - Release build
-    * Release build +
-      * BUILD_TYPE=release make+
  
-===== Build Fenix in Docker =====+===== Build in Docker =====
  
 You can also choose to build the OS image in a Docker container. You can also choose to build the OS image in a Docker container.
Line 179: Line 175:
 ==== Add User to a Docker Group ==== ==== Add User to a Docker Group ====
  
-```sh +```shell 
-sudo usermod -aG docker $USER+sudo usermod -aG docker $USER
 ``` ```
  
 <WRAP important > <WRAP important >
-You need to logout or reboot the system for changes to take effect.+You need to logout or reboot the system to take effect.
 </WRAP> </WRAP>
  
Line 190: Line 186:
 ==== Check Docker ==== ==== Check Docker ====
  
-```sh +```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 224: 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
 ``` ```
  
 Build image in Docker: Build image in Docker:
  
-```sh +```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 \
              -v /etc/timezone:/etc/timezone:ro \              -v /etc/timezone:/etc/timezone:ro \
Line 246: Line 243:
 Start your build from inside the Docker container. Start your build from inside the Docker container.
  
-```sh+```shell
 khadas@919cab43f66d:~/fenix$ source env/setenv.sh khadas@919cab43f66d:~/fenix$ source env/setenv.sh
 khadas@919cab43f66d:~/fenix$ make khadas@919cab43f66d:~/fenix$ make
Line 253: Line 250:
 Restart the Docker container. Restart the Docker container.
  
-```sh +```shell 
-docker start fenix +docker start fenix 
-docker exec -ti fenix bash+docker exec -ti fenix bash
 ``` ```
Last modified: 2022/07/05 02:25 by nick