/builders/linux-amd/init.in (79af1544e8e8e9d72c6d3803d345c5d81f65c16d) (2213 bytes) (mode 100755) (type blob)
#!/bin/sh
export PATH=/bin
# follow the default linux cpio:
#dir /dev 0755 0 0
#nod /dev/console 0600 0 0 c 5 1
#dir /root 0700 0 0
mkdir /proc
mount -t proc proc /proc
mkdir /sys
mount -t sysfs sysfs /sys
mkdir /dev
mount -t devtmpfs devtmpfs /dev
printf 'INITRAMFS:ENVIRONMENT -- START\n'
env
printf 'INITRAMFS:ENVIRONMENT -- END\n'
printf 'INITRAMFS:PARAMETERS -- START\n'
if test -n "$*"; then
printf "$*\n"
fi
printf 'INITRAMFS:PARAMETERS -- END\n'
initramfs_root_uuid=
if test -z "$initramfs_root_uuid"; then
printf 'INITRAMFS:ERROR:no root uuid\n'
exit 1
else
printf "INITRAMFS_ROOT_UUID=$initramfs_root_uuid\n"
fi
# we serialize the handling of modprobes and uevents
# we start to listen to uevents now, they will be buffered
uevent /uevt.sh &
uevt_sh_pid=$!
printf "INITRAMFS:uevt.sh PID=$uevt_sh_pid\n"
printf '/bin/modprobe' >/proc/sys/kernel/modprobe
# we want /dev/sdX interfaces
modprobe sd_mod
# we choose a crc32c implementation, sse4.2 one
modprobe crc32c_intel
printf 'INITRAMFS:COLDPLUG -- START\n'
# cold plug modules loading
# the disk drivers packaged in the initramfs will be loaded and then, their
# partitions will become known to the kernel
find /sys/devices -name modalias -exec sort -u '{}' + >/modaliases
xargs -n 1 modprobe -q </modaliases
touch /COLDPLUG_DONE
printf 'INITRAMFS:COLDPLUG -- END\n'
printf "INITRAMFS:WAITING FOR $initramfs_root_uuid -- START\n"
while true
do
if blk=$(findfs UUID=$initramfs_root_uuid); then
fs_desc=$(blkid $blk)
for f in $fs_desc
do
if test ${f%%=*} = TYPE; then
fs=${f#*=}
fs=$(printf "$fs" | tr -d '"')
break
fi
done
break
fi
sleep 0.001
done
printf "INITRAMFS:WAITING FOR $initramfs_root_uuid -- END\n"
modprobe $fs
printf "INITRAMFS:KILLING uevt.sh PID=$uevt_sh_pid\n"
# the "real init" will start mudev which will load drivers with a full module
# tree
kill $uevt_sh_pid
printf "INITRAMFS:MOUNTING $initramfs_root_uuid as TYPE=$fs\n"
mkdir /newroot
mount -o relatime -t $fs $blk /newroot
printf "INITRAMFS:UMOUNTING /DEV /SYS /PROC, SWITCHING ROOT AND EXEC /bin/init\n"
umount /dev
umount /sys
umount /proc
# _MUST_ use switch_root, must use exec to be PID 1
exec switch_root /newroot /bin/init
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
5 |
8eba6c8dd4dcaf6166bd22285ed34625f38a84ff |
.gitignore |
100755 |
blob |
1587 |
57fa4264b9ee0ae0a6f678f2527a05d3b22dda78 |
00-bootstrap-build.sh |
100755 |
blob |
848 |
a30f443bf405d56682efe3b4c5d3a19d5f7eb45d |
01-re-bootstrap-build.sh |
100644 |
blob |
2142 |
f19c2d6b293244bb11a3f74ee77c10675cadc7d6 |
INSTALL |
100644 |
blob |
30 |
c9b735fa1332286f4b3f5f81fa10527fd7506b6e |
LICENSE |
040000 |
tree |
- |
427eec4d856a73b66dc557a301ee130cf835eae5 |
builders |
100644 |
blob |
1773 |
ef1551089a803bde37e36edc8d61bb819d06f793 |
conf.bootstrap.sh |
100644 |
blob |
479 |
8cc15efe46965ac7750fe304460f5a2b0aa4201c |
conf.sh |
040000 |
tree |
- |
abe51c4b35f2de094a78c14c4b57de03a4561d22 |
files |
100755 |
blob |
356 |
8fb8be28ac72f7214b59934b9f74a682665f2d32 |
pkg-build |
100644 |
blob |
22800641 |
e9e6291054c857401f6835c728f31541dae4311e |
steam.tar.bz2 |
100644 |
blob |
173 |
2047af328b22f9d146585cd9e759edbc18122250 |
utils.sh |
040000 |
tree |
- |
8e23f551092a35f82b37129dd08c35c4d313c17b |
x64 |
040000 |
tree |
- |
b7a22de7f5cbd97650dd45412ef7d4246e395eb8 |
x86 |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanlinux
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanlinux
Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanlinux
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main