mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-11 11:35:54 +02:00
make.sh: Create a new, minimal /dev in the build environment
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
52
make.sh
52
make.sh
@@ -402,6 +402,8 @@ prepareenv() {
|
||||
# Set LFS Directory
|
||||
LFS=$BASEDIR/build
|
||||
|
||||
BUILD_DIR="${BASEDIR}/build"
|
||||
|
||||
# Setup environment
|
||||
set +h
|
||||
LC_ALL=POSIX
|
||||
@@ -424,13 +426,53 @@ prepareenv() {
|
||||
|
||||
mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache}
|
||||
|
||||
mknod -m 600 $BASEDIR/build/dev/console c 5 1 2>/dev/null
|
||||
mknod -m 666 $BASEDIR/build/dev/null c 1 3 2>/dev/null
|
||||
# Create a new, minimal /dev
|
||||
mount build_dev "${BUILD_DIR}/dev" \
|
||||
-t tmpfs -o "nosuid,noexec,mode=0755,size=4m,nr_inodes=64k"
|
||||
|
||||
# Create device nodes
|
||||
mknod -m 600 "${BUILD_DIR}/dev/console" c 5 1
|
||||
mknod -m 666 "${BUILD_DIR}/dev/null" c 1 3
|
||||
mknod -m 666 "${BUILD_DIR}/dev/zero" c 1 5
|
||||
mknod -m 666 "${BUILD_DIR}/dev/full" c 1 7
|
||||
mknod -m 444 "${BUILD_DIR}/dev/random" c 1 8
|
||||
mknod -m 444 "${BUILD_DIR}/dev/urandom" c 1 9
|
||||
mknod -m 444 "${BUILD_DIR}/dev/kmsg" c 1 11
|
||||
mknod -m 666 "${BUILD_DIR}/dev/tty" c 5 0
|
||||
mknod -m 666 "${BUILD_DIR}/dev/rtc0" c 252 0
|
||||
|
||||
# Create loop devices
|
||||
mknod -m 666 "${BUILD_DIR}/dev/loop-control" c 10 237
|
||||
mknod -m 666 "${BUILD_DIR}/dev/loop0" c 7 0
|
||||
mknod -m 666 "${BUILD_DIR}/dev/loop1" c 7 1
|
||||
mknod -m 666 "${BUILD_DIR}/dev/loop2" c 7 2
|
||||
mknod -m 666 "${BUILD_DIR}/dev/loop3" c 7 3
|
||||
mknod -m 666 "${BUILD_DIR}/dev/loop4" c 7 4
|
||||
mknod -m 666 "${BUILD_DIR}/dev/loop5" c 7 5
|
||||
mknod -m 666 "${BUILD_DIR}/dev/loop6" c 7 6
|
||||
mknod -m 666 "${BUILD_DIR}/dev/loop7" c 7 7
|
||||
|
||||
# Create directories
|
||||
mkdir -p "${BUILD_DIR}/dev/pts"
|
||||
mkdir -p "${BUILD_DIR}/dev/shm"
|
||||
|
||||
# Create symlinks
|
||||
ln -s "pts/ptmx" "${BUILD_DIR}/dev/ptmx"
|
||||
ln -s "../proc/self/fd" "${BUILD_DIR}/dev/fd"
|
||||
ln -s "../proc/self/fd/0" "${BUILD_DIR}/dev/stdin"
|
||||
ln -s "../proc/self/fd/1" "${BUILD_DIR}/dev/stdout"
|
||||
ln -s "../proc/self/fd/2" "${BUILD_DIR}/dev/stderr"
|
||||
ln -s "../proc/kcore" "${BUILD_DIR}/dev/core"
|
||||
|
||||
# Mount a new /dev/pts
|
||||
mount build_dev_pts "${BUILD_DIR}/dev/pts" \
|
||||
-t devpts -o "nosuid,noexec,newinstance,ptmxmode=0666,mode=620"
|
||||
|
||||
# Mount a new /dev/shm
|
||||
mount build_dev_shm "${BUILD_DIR}/dev/shm" \
|
||||
-t tmpfs -o "nosuid,nodev,strictatime,mode=1777,size=1024m"
|
||||
|
||||
# Make all sources and proc available under lfs build
|
||||
mount --bind /dev $BASEDIR/build/dev
|
||||
mount --bind /dev/pts $BASEDIR/build/dev/pts
|
||||
mount --bind /dev/shm $BASEDIR/build/dev/shm
|
||||
mount --bind /sys $BASEDIR/build/sys
|
||||
mount --bind $BASEDIR/cache $BASEDIR/build/usr/src/cache
|
||||
mount --bind $BASEDIR/ccache/${BUILD_ARCH}/${TOOLCHAINVER} $BASEDIR/build/usr/src/ccache
|
||||
|
||||
Reference in New Issue
Block a user