• learning armbian steps(5) ----- armbian 构建arm rootfs


    基于learning armbian step(4) 的总结,我们来实践一下,接下来的会把整个构建的log都贴出来:

    vmuser@vmuser-virtual-machine:~/qemu-arm$ sudo apt-get install qemu-user-static

    [sudo] password for vmuser:

    Reading package lists... Done

    Building dependency tree      

    Reading state information... Done

    The following additional packages will be installed:

      binfmt-support

    The following NEW packages will be installed:

      binfmt-support qemu-user-static

    0 upgraded, 2 newly installed, 0 to remove and 325 not upgraded.

    Need to get 7,753 kB of archives.

    After this operation, 86.1 MB of additional disk space will be used.

    Do you want to continue? [Y/n] y

    Get:1 http://mirrors.aliyun.com/ubuntu xenial/main amd64 binfmt-support amd64 2.1.6-1 [50.7 kB]

    Get:2 http://mirrors.aliyun.com/ubuntu xenial-updates/universe amd64 qemu-user-static amd64 1:2.5+dfsg-5ubuntu10.34 [7,702 kB]

    Fetched 7,753 kB in 8s (910 kB/s)                                                                                                                                                                         

    Selecting previously unselected package binfmt-support.

    (Reading database ... 276761 files and directories currently installed.)

    Preparing to unpack .../binfmt-support_2.1.6-1_amd64.deb ...

    Unpacking binfmt-support (2.1.6-1) ...

    Selecting previously unselected package qemu-user-static.

    Preparing to unpack .../qemu-user-static_1%3a2.5+dfsg-5ubuntu10.34_amd64.deb ...

    Unpacking qemu-user-static (1:2.5+dfsg-5ubuntu10.34) ...

    Processing triggers for systemd (229-4ubuntu21.15) ...

    Processing triggers for ureadahead (0.100.0-19) ...

    Processing triggers for man-db (2.7.5-1) ...

    Setting up binfmt-support (2.1.6-1) ...

    Setting up qemu-user-static (1:2.5+dfsg-5ubuntu10.34) ...

    Processing triggers for systemd (229-4ubuntu21.15) ...

    Processing triggers for ureadahead (0.100.0-19) ...

    vmuser@vmuser-virtual-machine:~/qemu-arm$ sudo apt install debootstrap

    Reading package lists... Done

    Building dependency tree      

    Reading state information... Done

    The following NEW packages will be installed:

      debootstrap

    0 upgraded, 1 newly installed, 0 to remove and 325 not upgraded.

    Need to get 37.2 kB of archives.

    After this operation, 262 kB of additional disk space will be used.

    Get:1 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 debootstrap all 1.0.78+nmu1ubuntu1.6 [37.2 kB]

    Fetched 37.2 kB in 0s (357 kB/s)

    Selecting previously unselected package debootstrap.

    (Reading database ... 276841 files and directories currently installed.)

    Preparing to unpack .../debootstrap_1.0.78+nmu1ubuntu1.6_all.deb ...

    Unpacking debootstrap (1.0.78+nmu1ubuntu1.6) ...

    Processing triggers for man-db (2.7.5-1) ...

    Setting up debootstrap (1.0.78+nmu1ubuntu1.6) ...

    We can use qemu-debootstrap to building ubuntu rootfs .

    vmuser@vmuser-virtual-machine:~/qemu-arm$ sudo qemu-debootstrap --verbose --arch=arm64 --variant=buildd xenial  ubuntu_arm64_xenial  http://mirrors.ustc.edu.cn/ubuntu-ports

    [sudo] password for vmuser:

    Ok , we get it.

    I: Configuring gcc-5...

    I: Configuring libstdc++-5-dev:arm64...

    I: Configuring gcc...

    I: Configuring g++-5...

    I: Configuring g++...

    I: Configuring build-essential...

    I: Configuring libc-bin...

    I: Base system installed successfully.

    Now we can get the ubuntu rootfs capacity

    vmuser@vmuser-virtual-machine:~/qemu-arm$ du -h ubuntu_arm64_xenial/

    1.2M         ubuntu_arm64_xenial/var/cache/debconf

    12K  ubuntu_arm64_xenial/var/cache/ldconfig

    4.0K ubuntu_arm64_xenial/var/cache/apt/archives/partial

    54M ubuntu_arm64_xenial/var/cache/apt/archives

    54M ubuntu_arm64_xenial/var/cache/apt

    55M ubuntu_arm64_xenial/var/cache

    4.0K ubuntu_arm64_xenial/var/tmp

    68M ubuntu_arm64_xenial/var

    318M        ubuntu_arm64_xenial/

    If you want to custom your rootfs , your can add build args , qemu-debootstrap will transmit args to debootstrap ,

    so learn debootstrap usage, read fonts can help you customization you ubuntu rootfs.

    vmuser@vmuser-virtual-machine:~/qemu-arm$ debootstrap --help

    Usage: debootstrap [OPTION]... <suite> <target> [<mirror> [<script>]]

    Bootstrap a Debian base system into a target directory.

          --help                 display this help and exit

          --version              display version information and exit

          --verbose              don't turn off the output of wget

          --download-only        download packages, but don't perform installation

          --print-debs           print the packages to be installed, and exit

          --arch=A               set the architecture to install (use if no dpkg)

                                   [ --arch=powerpc ]

          --include=A,B,C        adds specified names to the list of base packages

          --exclude=A,B,C        removes specified packages from the list

          --components=A,B,C     use packages from the listed components of the

                                 archive

          --variant=X            use variant X of the bootstrap scripts

                                 (currently supported variants: buildd, fakechroot,

                                  scratchbox, minbase)

    minbase: 只包含必要的包和apt; 
    buildd: 包含编译工具包 
    fakechroot: 包含不用root权限的包 
    scratchbox: 包含scratchbox(交叉编译工具链)相关包

          --keyring=K            check Release files against keyring K

          --no-check-gpg         avoid checking Release file signatures

          --force-check-gpg      force checking Release file signatures

                                 (also disables automatic fallback to HTTPS in case

                                 of a missing keyring), aborting otherwise

          --no-resolve-deps      don't try to resolve dependencies automatically

          --unpack-tarball=T     acquire .debs from a tarball instead of http

          --make-tarball=T       download .debs and create a tarball (tgz format)

          --second-stage-target=DIR

                                 Run second stage in a subdirectory instead of root

                                   (can be used to create a foreign chroot)

                                   (requires --second-stage)

          --extractor=TYPE       override automatic .deb extractor selection

                                   (supported: dpkg-deb ar)

          --debian-installer     used for internal purposes by debian-installer

          --private-key=file     read the private key from file

          --certificate=file     use the client certificate stored in file (PEM)

          --no-check-certificate do not check certificate against certificate authorities

    Verify arm64 ubuntu rootfs:

    # cp /usr/bin/qemu-aarch64-static ubuntu_arm64_xenial/usr/bin/

    # mount  proc ubuntu_arm64_xenial/proc -t proc

    # mount  sysfs ubuntu_arm64_xenial/sys -t sysfs

    # cp /etc/hosts ubuntu_arm64_xenial/etc/hosts

    # cp /etc/resolv.conf ubuntu_arm64_xenial/etc/resolv.conf

    # chroot ubuntu_arm64_xenial/

    root@vmuser-virtual-machine:/# ls   ---- 》we got it, running arm rootfs in X86 host

    bin  boot  dev  etc  home  lib  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

    root@vmuser-virtual-machine:/# ifconfig

    bash: ifconfig: command not found

    root@vmuser-virtual-machine:/# apt install net-tools   

    Reading package lists... Done

    Building dependency tree... Done

    The following NEW packages will be installed:

      net-tools

    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.

    Need to get 165 kB of archives.

    After this operation, 688 kB of additional disk space will be used.

    Get:1 http://ports.ubuntu.com/ubuntu-ports xenial/main arm64 net-tools arm64 1.60-26ubuntu1 [165 kB]

    Fetched 165 kB in 2s (79.9 kB/s)   

    perl: warning: Setting locale failed.

    perl: warning: Please check that your locale settings:

             LANGUAGE = "en_US",

             LC_ALL = (unset),

             LC_PAPER = "zh_CN.UTF-8",

             LC_NUMERIC = "zh_CN.UTF-8",

             LC_IDENTIFICATION = "zh_CN.UTF-8",

             LC_MEASUREMENT = "zh_CN.UTF-8",

             LC_NAME = "zh_CN.UTF-8",

             LC_TELEPHONE = "zh_CN.UTF-8",

             LC_ADDRESS = "zh_CN.UTF-8",

             LC_MONETARY = "zh_CN.UTF-8",

             LC_TIME = "zh_CN.UTF-8",

             LANG = "en_US.UTF-8"

        are supported and installed on your system.

    perl: warning: Falling back to the standard locale ("C").

    debconf: delaying package configuration, since apt-utils is not installed

    E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)

    Selecting previously unselected package net-tools.

    (Reading database ... 11949 files and directories currently installed.)

    Preparing to unpack .../net-tools_1.60-26ubuntu1_arm64.deb ...

    Unpacking net-tools (1.60-26ubuntu1) ...

    Setting up net-tools (1.60-26ubuntu1) ...

    附加如下为构建桌面系统对应的源:

    deb http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted
    deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted
    deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted
    deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted
    deb http://ports.ubuntu.com/ubuntu-ports/ xenial universe
    deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial universe
    deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe
    deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates universe
    deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
    deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
    deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted
    deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted
    deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security universe
    deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security universe
    deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security multiverse
    deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security multiverse

     如下链接为ubuntu各版本的下载地址

    http://cdimage.ubuntu.com/ubuntu-base/releases/

  • 相关阅读:
    BZOJ 4318: OSU!
    BZOJ 3450: Tyvj1952 Easy
    BZOJ 1426: 收集邮票
    BZOJ 1415: [Noi2005]聪聪和可可
    BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
    BZOJ 3270: 博物馆
    BZOJ 3143: [Hnoi2013]游走
    BZOJ 3166: [Heoi2013]Alo
    BZOJ 3261: 最大异或和
    BZOJ 1022: [SHOI2008]小约翰的游戏John
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/10336839.html
Copyright © 2020-2023  润新知