Update 'Building rootfs tarballs'
parent
5077e03ed5
commit
a89f6fe8d2
@ -12,16 +12,16 @@ To do everything manually, do the following:
|
|||||||
|
|
||||||
3 - Create an environment variable for ease of use
|
3 - Create an environment variable for ease of use
|
||||||
|
|
||||||
`$ export EVEREST=/mnt/everest # replace /mnt/everest with the path to your workspace`
|
$ export EVEREST=/mnt/everest # replace /mnt/everest with the path to your workspace
|
||||||
|
|
||||||
4 - Change permissions of the workspace
|
4 - Change permissions of the workspace
|
||||||
|
|
||||||
`# chmod 777 ${EVEREST}`
|
# chmod 777 ${EVEREST}
|
||||||
|
|
||||||
5 - Create a sources directory to store packages
|
5 - Create a sources directory to store packages
|
||||||
`$ mkdir -v ${EVEREST}/sources`
|
$ mkdir -v ${EVEREST}/sources
|
||||||
|
|
||||||
6 - Download the latest versions of the following programs:
|
6 - Reference for programs in use
|
||||||
- binutils
|
- binutils
|
||||||
- busybox
|
- busybox
|
||||||
- everest-bootscripts
|
- everest-bootscripts
|
||||||
@ -33,20 +33,85 @@ To do everything manually, do the following:
|
|||||||
- mpfr
|
- mpfr
|
||||||
- musl
|
- musl
|
||||||
|
|
||||||
|
Syntax may differ between versions. The following versions were used for this guide:
|
||||||
|
- binutils 2.33.1
|
||||||
|
- busybox 1.24.2
|
||||||
|
- everest-bootscripts git
|
||||||
|
- gcc 9.4.0
|
||||||
|
- gmp 6.1.2
|
||||||
|
- iana-etc 2.30
|
||||||
|
- linux 4.19.88
|
||||||
|
- mpc 1.1.0
|
||||||
|
- mpfr 4.0.2
|
||||||
|
- musl 1.2.3
|
||||||
|
|
||||||
7 - Download the following patch for iana-etc: http://patches.clfs.org/embedded-dev/iana-etc-2.30-update-2.patch
|
7 - Download the following patch for iana-etc: http://patches.clfs.org/embedded-dev/iana-etc-2.30-update-2.patch
|
||||||
|
|
||||||
8 - Ensure the EVEREST environment variable is set up properly
|
8 - Ensure the EVEREST environment variable is set up properly
|
||||||
|
|
||||||
`$ echo ${EVEREST}`
|
$ echo ${EVEREST}
|
||||||
|
|
||||||
9 - Create the build user
|
9 - Create the build user
|
||||||
|
|
||||||
`# groupadd everest`
|
# groupadd everest
|
||||||
`# useradd -s /bin/bash -g everest -m -k /dev/null everest`
|
# useradd -s /bin/bash -g everest -m -k /dev/null everest
|
||||||
`# passwd everest`
|
# passwd everest
|
||||||
`# chown -Rv everest ${EVEREST}`
|
# chown -Rv everest ${EVEREST}
|
||||||
|
|
||||||
10 - Login as the new user
|
10 - Login as the new user
|
||||||
|
|
||||||
`su - everest`
|
$ su - everest
|
||||||
|
|
||||||
|
11 - Create a new bash profile
|
||||||
|
|
||||||
|
$ cat > ~/.bash_profile << "EOF"
|
||||||
|
exec env -i HOME=${HOME} TERM=${TERM} PS1='\u:\w\$ ' /bin/bash
|
||||||
|
EOF
|
||||||
|
|
||||||
|
12 - Create a new bashrc
|
||||||
|
|
||||||
|
$ cat > ~/.bashrc << "EOF"
|
||||||
|
set +h
|
||||||
|
umask 022
|
||||||
|
EVEREST=/mnt/everest
|
||||||
|
LC_ALL=POSIX
|
||||||
|
PATH=${EVEREST}/cross-tools/bin:/bin:/usr/bin
|
||||||
|
export EVEREST LC_ALL PATH
|
||||||
|
EOF
|
||||||
|
|
||||||
|
13 - Source the new bash profile
|
||||||
|
|
||||||
|
$ source ~/.bash_profile
|
||||||
|
|
||||||
|
14 - Disable CFLAGS, which will cause problems with cross-compilation tools.
|
||||||
|
|
||||||
|
$ unset CFLAGS
|
||||||
|
$ echo unset CFLAGS >> ~/.bashrc
|
||||||
|
|
||||||
|
15 - Set host, target, CPU type, and architecture. This guide assumes you are building for a k8 cpu and x86 target.
|
||||||
|
|
||||||
|
$ export EVEREST=$(echo ${MACHTYPE} | sed "s/-[^-]*/-cross/")
|
||||||
|
$ export EVEREST_TARGET="x86_64-linux-musl"
|
||||||
|
$ export EVEREST_CPU="k8"
|
||||||
|
$ export EVEREST_ARCH="x86"
|
||||||
|
|
||||||
|
16 - Add the following variables to the build user's ~/.bashrc
|
||||||
|
|
||||||
|
$ echo export EVEREST_HOST=\""${EVEREST_HOST}\"" >> ~/.bashrc
|
||||||
|
$ echo export EVEREST_TARGET=\""${EVEREST_TARGET}\"" >> ~/.bashrc
|
||||||
|
$ echo export EVEREST_ARCH=\""${EVEREST_ARCH}\"" >> ~/.bashrc
|
||||||
|
$ echo export EVEREST_CPU=\""${EVEREST_CPU}\"" >> ~/.bashrc
|
||||||
|
|
||||||
|
17 - Create the cross tools directory
|
||||||
|
|
||||||
|
$ mkdir -p ${EVEREST}/cross-tools/${EVEREST_TARGET}
|
||||||
|
|
||||||
|
18 - Build the cross-toolchain
|
||||||
|
$ cd ${EVEREST}/sources
|
||||||
|
$ git clone https://git.everestlinux.org/EverestLinux/musl-cross-make
|
||||||
|
$ cd musl-cross-make
|
||||||
|
$ make
|
||||||
|
$ make install
|
||||||
|
*Note: to speed up this process, prefix both make commands with -jX, replacing X with your CPU's cores + threads*
|
||||||
|
|
||||||
|
19 - Install
|
Loading…
Reference in New Issue
Block a user