Updated the root FS generation process to support x86_64 machines. GNU libc dependencies have been reduced significantly and only the DNS related libraries are used. This works for x86_64 machines but hasn't been tested on pure 32-bit machines.

This commit is contained in:
Ivan Davidov 2016-04-02 14:30:53 +03:00
parent 4c807ae189
commit fb5ab6f49a
3 changed files with 15 additions and 27 deletions

View File

@ -21,9 +21,10 @@ cd ../../rootfs
# Remove "linuxrc" which is used when we boot in "RAM disk" mode. # Remove "linuxrc" which is used when we boot in "RAM disk" mode.
rm -f linuxrc rm -f linuxrc
# Create root FS folders # Create root FS folders.
mkdir dev mkdir dev
mkdir etc mkdir etc
mkdir lib
mkdir proc mkdir proc
mkdir root mkdir root
mkdir src mkdir src
@ -107,32 +108,13 @@ tty4::respawn:/bin/sh
EOF EOF
cat > nsswitch.conf << EOF
passwd: db files nis
shadow: files
group: db files nis
hosts: files nisplus nis dns
networks: nisplus [NOTFOUND=return] files
ethers: nisplus [NOTFOUND=return] db files
protocols: nisplus [NOTFOUND=return] db files
rpc: nisplus [NOTFOUND=return] db files
services: nisplus [NOTFOUND=return] db files
EOF
cd .. cd ..
# The "/init" script passes the execution to "/sbin/init" which in turn looks # The "/init" script passes the execution to "/sbin/init" which in turn looks
# for the configuration file "/etc/inittab". # for the configuration file "/etc/inittab".
cat > init << EOF cat > init << EOF
#!/bin/sh #!/bin/sh
echo "1111111111111111"
echo "1111111111111111"
echo "1111111111111111"
PATH=/lib:$PATH
export PATH
exec /sbin/init exec /sbin/init
EOF EOF
@ -147,10 +129,16 @@ chmod +rx src/*.sh
chmod +r src/.config chmod +r src/.config
chmod +r src/*.txt chmod +r src/*.txt
#cd bin # Copy the necessary 'glibc' libraries for proper DNS resolving.
#cp -r $GLIBC_INSTALLED/lib/* . cp $GLIBC_INSTALLED/lib/libm.so.6 ./lib
#cd .. cp $GLIBC_INSTALLED/lib/libc.so.6 ./lib
cp -r $GLIBC_INSTALLED/* . cp $GLIBC_INSTALLED/lib/ld-linux* ./lib
cp $GLIBC_INSTALLED/lib/libresolv.so.2 ./lib
cp $GLIBC_INSTALLED/lib/libnss_dns.so.2 ./lib
# Make sure x86_64 binaries can be loaded (for 64bit machines).
ln -s lib lib64
cd ../.. cd ../..

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/sh
qemu-system-i386 -m 256M -cdrom minimal_linux_live.iso qemu-system-i386 -m 64M -cdrom minimal_linux_live.iso

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/sh
qemu-system-x86_64 -cdrom minimal_linux_live.iso qemu-system-x86_64 -m 64M -cdrom minimal_linux_live.iso