sylware / nyanlinux (public) (License: AFFERO GPLv3) (since 2019-09-09) (hash sha1)
scripts for a lean, from scratch, amd hardware, linux distro

/files/sysstart.bootstrap (cf24a1d535986809abec2545d787ae224358c4b7) (4631 bytes) (mode 100755) (type blob)

#!/nyan/dash/current/bin/dash

export "LD_LIBRARY_PATH=\
/nyan/mudev/current/lib"

export "LD_LIBRARY_PATH_X11=\
/nyan/drm/current/lib:\
/nyan/freetype/current/lib:\
/nyan/libepoxy/current/lib:\
/nyan/libfontenc/current/lib:\
/nyan/libICE/current/lib:\
/nyan/libpng/current/lib:\
/nyan/libSM/current/lib:\
/nyan/libtxc_dxtn/current/lib:\
/nyan/libX11/current/lib:\
/nyan/libXau/current/lib:\
/nyan/libxcb/current/lib:\
/nyan/libXcomposite/current/lib:\
/nyan/libXcursor/current/lib:\
/nyan/libXdamage/current/lib:\
/nyan/libXdmcp/current/lib:\
/nyan/libXext/current/lib:\
/nyan/libXfixes/current/lib:\
/nyan/libXfont2/current/lib:\
/nyan/libXft/current/lib:\
/nyan/libXi/current/lib:\
/nyan/libXinerama/current/lib:\
/nyan/libxkbfile/current/lib:\
/nyan/libXrandr/current/lib:\
/nyan/libXrender/current/lib:\
/nyan/libXScrnSaver/current/lib:\
/nyan/libxshmfence/current/lib:\
/nyan/libXt/current/lib:\
/nyan/libXv/current/lib:\
/nyan/libXxf86vm/current/lib:\
/nyan/mesa-gl/current/lib:\
/nyan/pixman/current/lib:\
/nyan/fontconfig/current/lib"


export "PATH=\
/nyan/util-linux/current/bin:/nyan/util-linux/current/sbin:\
/nyan/coreutils/current/bin:\
/nyan/nyankmod/current/bin:\
/nyan/mudev/current/bin:\
/nyan/iproute2/current/sbin:\
/nyan/dhcp/current/sbin:\
/nyan/ndisc6/current/sbin:\
/nyan/strace/current/bin:\
/nyan/xserver/current/bin:\
/nyan/st/current/bin"

mount -o nosuid,nodev,noexec,relatime -t proc proc /proc

# configure a bit the kernel
printf '/nyan/nyankmod/current/bin/modprobe' >/proc/sys/kernel/modprobe
printf 'freedom' >/proc/sys/kernel/hostname

# mtab support could be disable in util-linux.
ln -sf /proc/self/mounts /etc/mtab
mount -o nosuid,nodev,noexec,relatime -t sysfs sysfs /sys

#-------------------------------------------------------------------------------
mount -o exec,nosuid,relatime,size=10M,mode=0755 -t devtmpfs udev /dev
# ahem...
ln -sf null /dev/log

mkdir -m 0755 -p /dev/pts
mount -o relatime,gid=5,mode=0620 -t devpts devpts /dev/pts

mkdir -m 1777 -p /dev/shm
mount -o nosuid,nodev,noexec,relatime -t tmpfs shm /dev/shm
#-------------------------------------------------------------------------------

rm -Rf /run
mkdir /run
mount -o nosuid,nodev,relatime,mode=0755 -t tmpfs tmpfs /run
chmod +t /run
chmod a+w /run
rm -Rf /tmp/*
rm -Rf /tmp/.?*

#-------------------------------------------------------------------------------
#mudev, unix module is not autoloaded upon first unix socket creation
modprobe unix
rm -Rf /run/udev
dudevd --daemon
dudevadm trigger --type=subsystems --action=add
dudevadm settle
dudevadm trigger --type=devices --action=add
dudevadm settle
#-------------------------------------------------------------------------------

#===============================================================================
# 2 examples to right away configure the network stack (need to add dhclient
# to the cross-build though)
#-------------------------------------------------------------------------------
#ip addr add 127.0.0.1/8 dev lo
#ip addr add 192.168.0.8/24 dev eth0
#ip link set dev lo up
#ip link set dev eth0 up
#ip route add default via 192.168.0.1 dev eth0
#-------------------------------------------------------------------------------
#modprobe af_packet
#dhclient -sf /bin/nyandhcp eth0 &
#-------------------------------------------------------------------------------
#===============================================================================

# if you want to manually sync the system time with the hardware RTC
#hwclock --hctosys --utc

#-------------------------------------------------------------------------------
#block scheduler, for a SSD drive, cfq I/O scheduler is kind of useless
#modprobe cfq-iosched
#echo "cfq" > /sys/block/sda/queue/scheduler
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# if your network is configured here, you can start a NTP sync daemon and a
# ssh server (you must provide the full path for sshd)
#chronyd &
#/nyan/openssh/current/bin/sshd &
#-------------------------------------------------------------------------------

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH_X11:$LD_LIBRARY_PATH

Xorg >/tmp/x.out 2>/tmp/x.err &
export DISPLAY=:0
export XCURSOR_SIZE=64

# poll to avoid race or we would need something like upstart/openrc/systemd
# polling is kindof less expensive here...
while test ! -e /tmp/.X11-unix/X0
do 
	sleep 0.01	# gnu sleep
done

# and a terminal emulator to start doing something 
st -g 256x64 -e env -i HOME=/root TERM=st-256color /nyan/dash/current/bin/dash -i -l &


Mode Type Size Ref File
100644 blob 5 8eba6c8dd4dcaf6166bd22285ed34625f38a84ff .gitignore
100755 blob 2487 533016d4902080b22ae5dc5352802ebdd0d78b16 01-x86_64-nyan-linux-gnu.sh
100755 blob 4254 31fdc18cc3e6c6cfd8444fa404f7e82f849bad56 02-nyan-cross-core.sh
100755 blob 3549 7f1362bad6786a6818ce7a7d613d0dc11f611fb9 03-nyan-cross-x11.sh
100755 blob 12534 f9036d33f9f159ea2421ce1a1ebf7067f0f695c1 04-bootstrap-conf.sh
100755 blob 671 5f6bc5de83a883da3a7f0d4a37e1d0ef51c08561 10-sdk-conf.sh
100755 blob 2201 83fa9bf5bddbecb88db53779e324b9f270b1080e 11-sdk.sh
100755 blob 2826 090b622caebd38755ef1e57a9cf0f4f673b22a8e 12-desktop.sh
100755 blob 129 08460f0dece90701f01cbf7d710609ecbb3d56e0 13-beyond.sh
100644 blob 1075 1b5314b511d4c6dc7eb4db36a21dd47ba5a00a9d INSTALL
100644 blob 30 c9b735fa1332286f4b3f5f81fa10527fd7506b6e LICENSE
100644 blob 2657 64868dc96404c69ad85b979986821d6eb0420f9a README
040000 tree - f77ddb4c216d5c842f54fa8a5b6a7374d8678400 builders
100644 blob 2986 43344438bb4d817ff81f1890de1097f627c6d6c4 conf.sh
040000 tree - 84401dd4d78de6fafa1b3f59ccf2a0c62ecc705e files
100755 blob 351 6af534903b47d67a8dcb71653e7a0e1c1a4dfda4 pkg-build
100755 blob 289 7f5fbdbb712f274d04a036b9c486cbc9cf581be6 pkg-build-target
100644 blob 915 a7f21134dbc05d0e8227eaee366856b8171832a4 sdk.sh
100644 blob 22800641 e9e6291054c857401f6835c728f31541dae4311e steam.tar.bz2
040000 tree - 3ea8b6a0976e4a31f94cf63a35646cd184a55d4a 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