mirror of
https://github.com/Wind4/vlmcsd.git
synced 2024-12-22 20:15:21 +01:00
vlmcsd-svn934-2016-06-17-Hotbird64
This commit is contained in:
parent
c479a67c2c
commit
f72621f166
31
GNUmakefile
31
GNUmakefile
@ -278,9 +278,9 @@ $(MULTI_NAME): BASECFLAGS += -DMULTI_CALL_BINARY=1
|
|||||||
|
|
||||||
all: $(CLIENT_NAME) $(PROGRAM_NAME)
|
all: $(CLIENT_NAME) $(PROGRAM_NAME)
|
||||||
|
|
||||||
ifdef CAT
|
#ifdef CAT
|
||||||
allmulti: $(CLIENT_NAME) $(PROGRAM_NAME) $(MULTI_NAME)
|
allmulti: $(CLIENT_NAME) $(PROGRAM_NAME) $(MULTI_NAME)
|
||||||
endif
|
#endif
|
||||||
|
|
||||||
ifneq ($(strip $(VLMCSD_VERSION)),)
|
ifneq ($(strip $(VLMCSD_VERSION)),)
|
||||||
BASECFLAGS += -DVERSION=\"$(VLMCSD_VERSION),\ built\ $(shell date -u '+%Y-%m-%d %H:%M:%S' | sed -e 's/ /\\ /g')\ UTC\"
|
BASECFLAGS += -DVERSION=\"$(VLMCSD_VERSION),\ built\ $(shell date -u '+%Y-%m-%d %H:%M:%S' | sed -e 's/ /\\ /g')\ UTC\"
|
||||||
@ -301,12 +301,12 @@ VLMCS_SRCS = vlmcs.c $(SRCS)
|
|||||||
VLMCS_OBJS = $(VLMCS_SRCS:.c=.o)
|
VLMCS_OBJS = $(VLMCS_SRCS:.c=.o)
|
||||||
|
|
||||||
MULTI_SRCS = vlmcsd.c vlmcs.c vlmcsdmulti.c $(SRCS)
|
MULTI_SRCS = vlmcsd.c vlmcs.c vlmcsdmulti.c $(SRCS)
|
||||||
MULTI_OBJS = $(MULTI_SRCS:.c=.o)
|
MULTI_OBJS = $(SRCS:.c=.o) vlmcsd-m.o vlmcs-m.o vlmcsdmulti-m.o
|
||||||
|
|
||||||
DLL_SRCS = libkms.c $(SRCS)
|
DLL_SRCS = libkms.c $(SRCS)
|
||||||
DLL_OBJS = $(DLL_SRCS:.c=.o)
|
DLL_OBJS = $(DLL_SRCS:.c=.o)
|
||||||
|
|
||||||
PDFDOCS = vlmcs.1.pdf vlmcsd.7.pdf vlmcsd.8.pdf vlmcsdmulti.1.pdf vlmcsd.ini.5.pdf
|
PDFDOCS = vlmcs.1.pdf vlmcsd.7.pdf vlmcsd.8.pdf vlmcsdmulti.1.pdf vlmcsd.ini.5.pdf vlmcsd-floppy.7.pdf
|
||||||
HTMLDOCS = $(PDFDOCS:.pdf=.html)
|
HTMLDOCS = $(PDFDOCS:.pdf=.html)
|
||||||
UNIXDOCS = $(PDFDOCS:.pdf=.unix.txt)
|
UNIXDOCS = $(PDFDOCS:.pdf=.unix.txt)
|
||||||
DOSDOCS = $(PDFDOCS:.pdf=.dos.txt)
|
DOSDOCS = $(PDFDOCS:.pdf=.dos.txt)
|
||||||
@ -315,11 +315,13 @@ ifneq ($(NO_DNS),1)
|
|||||||
|
|
||||||
VLMCS_SRCS += dns_srv.c
|
VLMCS_SRCS += dns_srv.c
|
||||||
MULTI_SRCS += dns_srv.c
|
MULTI_SRCS += dns_srv.c
|
||||||
|
MULTI_OBJS += dns_srv.o
|
||||||
|
|
||||||
ifeq ($(DNS_PARSER),internal)
|
ifeq ($(DNS_PARSER),internal)
|
||||||
ifneq ($(MINGW),1)
|
ifneq ($(MINGW),1)
|
||||||
VLMCS_SRCS += ns_parse.c ns_name.c
|
VLMCS_SRCS += ns_parse.c ns_name.c
|
||||||
MULTI_SRCS += ns_parse.c ns_name.c
|
MULTI_SRCS += ns_parse.c ns_name.c
|
||||||
|
MULTI_OBJS += ns_parse.o ns_name.o
|
||||||
BASECFLAGS += "-DDNS_PARSER_INTERNAL"
|
BASECFLAGS += "-DDNS_PARSER_INTERNAL"
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@ -330,6 +332,7 @@ ifeq ($(MSRPC),1)
|
|||||||
VLMCSD_SRCS += msrpc-server.c
|
VLMCSD_SRCS += msrpc-server.c
|
||||||
VLMCS_SRCS += msrpc-client.c
|
VLMCS_SRCS += msrpc-client.c
|
||||||
MULTI_SRCS += msrpc-server.c msrpc-client.c
|
MULTI_SRCS += msrpc-server.c msrpc-client.c
|
||||||
|
MULTI_OBJS += msrpc-server-m.o msrpc-client-m.o
|
||||||
DLL_SRCS += msrpc-server.c
|
DLL_SRCS += msrpc-server.c
|
||||||
BASECFLAGS += -DUSE_MSRPC -Wno-unknown-pragmas
|
BASECFLAGS += -DUSE_MSRPC -Wno-unknown-pragmas
|
||||||
BASELDFLAGS += -lrpcrt4
|
BASELDFLAGS += -lrpcrt4
|
||||||
@ -340,6 +343,7 @@ endif
|
|||||||
ifeq "$(WIN)" "1"
|
ifeq "$(WIN)" "1"
|
||||||
VLMCSD_SRCS += ntservice.c
|
VLMCSD_SRCS += ntservice.c
|
||||||
MULTI_SRCS += ntservice.c
|
MULTI_SRCS += ntservice.c
|
||||||
|
MULTI_OBJS += ntservice.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CRYPTO), openssl_with_aes)
|
ifeq ($(CRYPTO), openssl_with_aes)
|
||||||
@ -407,6 +411,22 @@ endif
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
%-m.o: %.c
|
||||||
|
ifeq ($(VERBOSE),1)
|
||||||
|
$(CC) -x$(COMPILER_LANGUAGE) $(PLATFORMFLAGS) $(BASECFLAGS) $(CFLAGS) $(PLATFORMFLAGS) -o $@ -c $<
|
||||||
|
ifeq ($(DEPENDENCIES),1)
|
||||||
|
$(CC) -x$(COMPILER_LANGUAGE) $(PLATFORMFLAGS) $(BASECFLAGS) $(CFLAGS) $(PLATFORMFLAGS) -MM -MF $*.d $<
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
@echo "$(COMPILER) CC $@ <- $<"
|
||||||
|
@$(CC) -x$(COMPILER_LANGUAGE) $(PLATFORMFLAGS) $(BASECFLAGS) $(CFLAGS) $(PLATFORMFLAGS) -o $@ -c $<
|
||||||
|
ifeq ($(DEPENDENCIES),1)
|
||||||
|
@echo "$(COMPILER) DEP $*.d <- $<"
|
||||||
|
@$(CC) -x$(COMPILER_LANGUAGE) $(PLATFORMFLAGS) $(BASECFLAGS) $(CFLAGS) $(PLATFORMFLAGS) -MM -MF $*.d $<
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
ifdef CAT
|
ifdef CAT
|
||||||
BUILDCOMMAND = cat $^ | $(CC) -x$(COMPILER_LANGUAGE) -o $@ -
|
BUILDCOMMAND = cat $^ | $(CC) -x$(COMPILER_LANGUAGE) -o $@ -
|
||||||
VLMCSD_PREREQUISITES = $(VLMCSD_SRCS)
|
VLMCSD_PREREQUISITES = $(VLMCSD_SRCS)
|
||||||
@ -516,6 +536,9 @@ alldocs : $(UNIXDOCS) $(HTMLDOCS) $(PDFDOCS) $(DOSDOCS)
|
|||||||
clean:
|
clean:
|
||||||
rm -f *.o *.d *_all.c libkms_all_*.c $(PROGRAM_NAME) $(MULTI_NAME) $(DLL_NAME) $(CLIENT_NAME) $(PDFDOCS) $(DOSDOCS) $(UNIXDOCS) $(HTMLDOCS) $(OBJ_NAME) $(A_NAME) *.a
|
rm -f *.o *.d *_all.c libkms_all_*.c $(PROGRAM_NAME) $(MULTI_NAME) $(DLL_NAME) $(CLIENT_NAME) $(PDFDOCS) $(DOSDOCS) $(UNIXDOCS) $(HTMLDOCS) $(OBJ_NAME) $(A_NAME) *.a
|
||||||
|
|
||||||
|
dnsclean:
|
||||||
|
rm -f dns_srv.o
|
||||||
|
|
||||||
help:
|
help:
|
||||||
@echo "Type"
|
@echo "Type"
|
||||||
@echo " ${MAKE} - to build $(PROGRAM_NAME) and $(CLIENT_NAME)"
|
@echo " ${MAKE} - to build $(PROGRAM_NAME) and $(CLIENT_NAME)"
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1070
floppy/.config-busybox
Normal file
1070
floppy/.config-busybox
Normal file
File diff suppressed because it is too large
Load Diff
1528
floppy/.config-linux-kernel
Normal file
1528
floppy/.config-linux-kernel
Normal file
File diff suppressed because it is too large
Load Diff
1528
floppy/.config-linux-kernel-efi
Normal file
1528
floppy/.config-linux-kernel-efi
Normal file
File diff suppressed because it is too large
Load Diff
254
floppy/.config-uClibc-ng
Normal file
254
floppy/.config-uClibc-ng
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
#
|
||||||
|
# Automatically generated file; DO NOT EDIT.
|
||||||
|
# uClibc-ng 1.0.15 C Library Configuration
|
||||||
|
#
|
||||||
|
# TARGET_alpha is not set
|
||||||
|
# TARGET_arc is not set
|
||||||
|
# TARGET_arm is not set
|
||||||
|
# TARGET_avr32 is not set
|
||||||
|
# TARGET_bfin is not set
|
||||||
|
# TARGET_c6x is not set
|
||||||
|
# TARGET_cris is not set
|
||||||
|
# TARGET_frv is not set
|
||||||
|
# TARGET_h8300 is not set
|
||||||
|
# TARGET_hppa is not set
|
||||||
|
TARGET_i386=y
|
||||||
|
# TARGET_ia64 is not set
|
||||||
|
# TARGET_lm32 is not set
|
||||||
|
# TARGET_m68k is not set
|
||||||
|
# TARGET_metag is not set
|
||||||
|
# TARGET_microblaze is not set
|
||||||
|
# TARGET_mips is not set
|
||||||
|
# TARGET_nios2 is not set
|
||||||
|
# TARGET_or1k is not set
|
||||||
|
# TARGET_powerpc is not set
|
||||||
|
# TARGET_sh is not set
|
||||||
|
# TARGET_sparc is not set
|
||||||
|
# TARGET_x86_64 is not set
|
||||||
|
# TARGET_xtensa is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target Architecture Features and Options
|
||||||
|
#
|
||||||
|
TARGET_ARCH="i386"
|
||||||
|
FORCE_OPTIONS_FOR_ARCH=y
|
||||||
|
# CONFIG_386 is not set
|
||||||
|
CONFIG_486=y
|
||||||
|
# CONFIG_586 is not set
|
||||||
|
# CONFIG_686 is not set
|
||||||
|
TARGET_SUBARCH="i486"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Using ELF file format
|
||||||
|
#
|
||||||
|
ARCH_HAS_DEPRECATED_SYSCALLS=y
|
||||||
|
ARCH_LITTLE_ENDIAN=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Using Little Endian
|
||||||
|
#
|
||||||
|
ARCH_HAS_MMU=y
|
||||||
|
ARCH_USE_MMU=y
|
||||||
|
UCLIBC_HAS_FLOATS=y
|
||||||
|
UCLIBC_HAS_FPU=y
|
||||||
|
DO_C99_MATH=y
|
||||||
|
DO_XSI_MATH=y
|
||||||
|
# UCLIBC_HAS_FENV is not set
|
||||||
|
# UCLIBC_HAS_LONG_DOUBLE_MATH is not set
|
||||||
|
KERNEL_HEADERS="/root/openadk/target_generic-x86_uclibc-ng/usr/include"
|
||||||
|
HAVE_DOT_CONFIG=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# General Library Settings
|
||||||
|
#
|
||||||
|
DOPIC=y
|
||||||
|
ARCH_HAS_UCONTEXT=y
|
||||||
|
HAVE_SHARED=y
|
||||||
|
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
|
||||||
|
LDSO_LDD_SUPPORT=y
|
||||||
|
LDSO_CACHE_SUPPORT=y
|
||||||
|
# LDSO_PRELOAD_ENV_SUPPORT is not set
|
||||||
|
# LDSO_PRELOAD_FILE_SUPPORT is not set
|
||||||
|
LDSO_BASE_FILENAME="ld.so"
|
||||||
|
# LDSO_STANDALONE_SUPPORT is not set
|
||||||
|
# LDSO_PRELINK_SUPPORT is not set
|
||||||
|
# UCLIBC_STATIC_LDCONFIG is not set
|
||||||
|
LDSO_RUNPATH=y
|
||||||
|
LDSO_RUNPATH_OF_EXECUTABLE=y
|
||||||
|
LDSO_SAFE_RUNPATH=y
|
||||||
|
LDSO_SEARCH_INTERP_PATH=y
|
||||||
|
LDSO_LD_LIBRARY_PATH=y
|
||||||
|
LDSO_NO_CLEANUP=y
|
||||||
|
UCLIBC_CTOR_DTOR=y
|
||||||
|
# LDSO_GNU_HASH_SUPPORT is not set
|
||||||
|
# HAS_NO_THREADS is not set
|
||||||
|
UCLIBC_HAS_THREADS_NATIVE=y
|
||||||
|
UCLIBC_HAS_THREADS=y
|
||||||
|
UCLIBC_HAS_TLS=y
|
||||||
|
PTHREADS_DEBUG_SUPPORT=y
|
||||||
|
UCLIBC_HAS_SYSLOG=y
|
||||||
|
UCLIBC_HAS_LFS=y
|
||||||
|
MALLOC=y
|
||||||
|
# MALLOC_SIMPLE is not set
|
||||||
|
# MALLOC_STANDARD is not set
|
||||||
|
MALLOC_GLIBC_COMPAT=y
|
||||||
|
# UCLIBC_HAS_OBSTACK is not set
|
||||||
|
UCLIBC_DYNAMIC_ATEXIT=y
|
||||||
|
COMPAT_ATEXIT=y
|
||||||
|
UCLIBC_HAS_UTMPX=y
|
||||||
|
UCLIBC_HAS_UTMP=y
|
||||||
|
UCLIBC_SUSV2_LEGACY=y
|
||||||
|
UCLIBC_SUSV3_LEGACY=y
|
||||||
|
UCLIBC_HAS_CONTEXT_FUNCS=y
|
||||||
|
# UCLIBC_SUSV3_LEGACY_MACROS is not set
|
||||||
|
UCLIBC_SUSV4_LEGACY=y
|
||||||
|
# UCLIBC_STRICT_HEADERS is not set
|
||||||
|
# UCLIBC_HAS_STUBS is not set
|
||||||
|
UCLIBC_HAS_SHADOW=y
|
||||||
|
UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
|
||||||
|
UCLIBC_HAS___PROGNAME=y
|
||||||
|
UCLIBC_HAS_PTY=y
|
||||||
|
ASSUME_DEVPTS=y
|
||||||
|
UNIX98PTY_ONLY=y
|
||||||
|
UCLIBC_HAS_GETPT=y
|
||||||
|
UCLIBC_HAS_LIBUTIL=y
|
||||||
|
UCLIBC_HAS_TM_EXTENSIONS=y
|
||||||
|
UCLIBC_HAS_TZ_CACHING=y
|
||||||
|
UCLIBC_HAS_TZ_FILE=y
|
||||||
|
UCLIBC_HAS_TZ_FILE_READ_MANY=y
|
||||||
|
UCLIBC_TZ_FILE_PATH="/etc/TZ"
|
||||||
|
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Advanced Library Settings
|
||||||
|
#
|
||||||
|
UCLIBC_PWD_BUFFER_SIZE=256
|
||||||
|
UCLIBC_GRP_BUFFER_SIZE=256
|
||||||
|
|
||||||
|
#
|
||||||
|
# Support various families of functions
|
||||||
|
#
|
||||||
|
UCLIBC_LINUX_MODULE_26=y
|
||||||
|
# UCLIBC_LINUX_MODULE_24 is not set
|
||||||
|
UCLIBC_LINUX_SPECIFIC=y
|
||||||
|
UCLIBC_HAS_GNU_ERROR=y
|
||||||
|
UCLIBC_BSD_SPECIFIC=y
|
||||||
|
UCLIBC_HAS_BSD_ERR=y
|
||||||
|
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
|
||||||
|
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
|
||||||
|
# UCLIBC_NTP_LEGACY is not set
|
||||||
|
UCLIBC_SV4_DEPRECATED=y
|
||||||
|
UCLIBC_HAS_REALTIME=y
|
||||||
|
UCLIBC_HAS_ADVANCED_REALTIME=y
|
||||||
|
UCLIBC_HAS_EPOLL=y
|
||||||
|
UCLIBC_HAS_XATTR=y
|
||||||
|
# UCLIBC_HAS_PROFILING is not set
|
||||||
|
UCLIBC_HAS_CRYPT_IMPL=y
|
||||||
|
UCLIBC_HAS_SHA256_CRYPT_IMPL=y
|
||||||
|
# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set
|
||||||
|
UCLIBC_HAS_CRYPT=y
|
||||||
|
UCLIBC_HAS_NETWORK_SUPPORT=y
|
||||||
|
UCLIBC_HAS_SOCKET=y
|
||||||
|
UCLIBC_HAS_IPV4=y
|
||||||
|
UCLIBC_HAS_IPV6=y
|
||||||
|
# UCLIBC_HAS_RPC is not set
|
||||||
|
UCLIBC_USE_NETLINK=y
|
||||||
|
UCLIBC_SUPPORT_AI_ADDRCONFIG=y
|
||||||
|
UCLIBC_HAS_BSD_RES_CLOSE=y
|
||||||
|
UCLIBC_HAS_COMPAT_RES_STATE=y
|
||||||
|
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
|
||||||
|
UCLIBC_HAS_RESOLVER_SUPPORT=y
|
||||||
|
UCLIBC_HAS_LIBRESOLV_STUB=y
|
||||||
|
UCLIBC_HAS_LIBNSL_STUB=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# String and Stdio Support
|
||||||
|
#
|
||||||
|
UCLIBC_HAS_STRING_GENERIC_OPT=y
|
||||||
|
UCLIBC_HAS_STRING_ARCH_OPT=y
|
||||||
|
UCLIBC_HAS_STDIO_FUTEXES=y
|
||||||
|
UCLIBC_HAS_CTYPE_TABLES=y
|
||||||
|
UCLIBC_HAS_CTYPE_SIGNED=y
|
||||||
|
# UCLIBC_HAS_CTYPE_UNSAFE is not set
|
||||||
|
UCLIBC_HAS_CTYPE_CHECKED=y
|
||||||
|
# UCLIBC_HAS_CTYPE_ENFORCED is not set
|
||||||
|
UCLIBC_HAS_WCHAR=y
|
||||||
|
# UCLIBC_HAS_LOCALE is not set
|
||||||
|
UCLIBC_HAS_HEXADECIMAL_FLOATS=y
|
||||||
|
UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
|
||||||
|
UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
|
||||||
|
UCLIBC_HAS_STDIO_BUFSIZ_4096=y
|
||||||
|
# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
|
||||||
|
UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
|
||||||
|
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
|
||||||
|
# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
|
||||||
|
UCLIBC_HAS_STDIO_GETC_MACRO=y
|
||||||
|
UCLIBC_HAS_STDIO_PUTC_MACRO=y
|
||||||
|
UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
|
||||||
|
# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
|
||||||
|
UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
|
||||||
|
# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set
|
||||||
|
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
|
||||||
|
UCLIBC_HAS_PRINTF_M_SPEC=y
|
||||||
|
UCLIBC_HAS_ERRNO_MESSAGES=y
|
||||||
|
# UCLIBC_HAS_SYS_ERRLIST is not set
|
||||||
|
UCLIBC_HAS_SIGNUM_MESSAGES=y
|
||||||
|
# UCLIBC_HAS_SYS_SIGLIST is not set
|
||||||
|
UCLIBC_HAS_GNU_GETOPT=y
|
||||||
|
UCLIBC_HAS_GETOPT_LONG=y
|
||||||
|
UCLIBC_HAS_GNU_GETSUBOPT=y
|
||||||
|
UCLIBC_HAS_ARGP=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Big and Tall
|
||||||
|
#
|
||||||
|
UCLIBC_HAS_REGEX=y
|
||||||
|
# UCLIBC_HAS_REGEX_OLD is not set
|
||||||
|
UCLIBC_HAS_FNMATCH=y
|
||||||
|
# UCLIBC_HAS_FNMATCH_OLD is not set
|
||||||
|
UCLIBC_HAS_WORDEXP=y
|
||||||
|
UCLIBC_HAS_NFTW=y
|
||||||
|
UCLIBC_HAS_FTW=y
|
||||||
|
UCLIBC_HAS_FTS=y
|
||||||
|
UCLIBC_HAS_GLOB=y
|
||||||
|
UCLIBC_HAS_GNU_GLOB=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Library Installation Options
|
||||||
|
#
|
||||||
|
RUNTIME_PREFIX="/"
|
||||||
|
DEVEL_PREFIX="/usr/"
|
||||||
|
MULTILIB_DIR="lib"
|
||||||
|
HARDWIRED_ABSPATH=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Security options
|
||||||
|
#
|
||||||
|
# UCLIBC_BUILD_PIE is not set
|
||||||
|
UCLIBC_HAS_ARC4RANDOM=y
|
||||||
|
# ARC4RANDOM_USES_NODEV is not set
|
||||||
|
# UCLIBC_HAS_SSP is not set
|
||||||
|
UCLIBC_BUILD_RELRO=y
|
||||||
|
UCLIBC_BUILD_NOW=y
|
||||||
|
UCLIBC_BUILD_NOEXECSTACK=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Development/debugging options
|
||||||
|
#
|
||||||
|
CROSS_COMPILER_PREFIX=""
|
||||||
|
UCLIBC_EXTRA_CFLAGS=""
|
||||||
|
# DODEBUG is not set
|
||||||
|
# DOSTRIP is not set
|
||||||
|
# DOASSERTS is not set
|
||||||
|
# SUPPORT_LD_DEBUG is not set
|
||||||
|
# SUPPORT_LD_DEBUG_EARLY is not set
|
||||||
|
# UCLIBC_MALLOC_DEBUGGING is not set
|
||||||
|
# UCLIBC_HAS_BACKTRACE is not set
|
||||||
|
WARNINGS="-Wall"
|
||||||
|
# EXTRA_WARNINGS is not set
|
||||||
|
# DOMULTI is not set
|
BIN
floppy144.vfd
BIN
floppy144.vfd
Binary file not shown.
@ -3,7 +3,7 @@
|
|||||||
export VERBOSE=3
|
export VERBOSE=3
|
||||||
export DNS_PARSER=OS
|
export DNS_PARSER=OS
|
||||||
|
|
||||||
rm -f vlmcsd-* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
rm -f vlmcsd-Dragon* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
||||||
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
||||||
|
|
||||||
MAKEFLAGS="-B -j12"
|
MAKEFLAGS="-B -j12"
|
||||||
@ -16,9 +16,7 @@ LF="-Wl,-z,norelro -Wl,--hash-style=sysv -Wl,--build-id=none"
|
|||||||
LFCLANG="-Wl,-z,norelro -Wl,--hash-style=sysv"
|
LFCLANG="-Wl,-z,norelro -Wl,--hash-style=sysv"
|
||||||
export CC=gcc5
|
export CC=gcc5
|
||||||
|
|
||||||
gmake $MAKEFLAGS PROGRAM_NAME=vlmcsd-DragonFly-x64 CLIENT_NAME=vlmcs-DragonFly-x64 CFLAGS="$CF" LDFLAGS="$LF"
|
gmake $MAKEFLAGS MULTI_NAME=vlmcsdmulti-DragonFly-x64 PROGRAM_NAME=vlmcsd-DragonFly-x64 CLIENT_NAME=vlmcs-DragonFly-x64 CFLAGS="$CF" LDFLAGS="$LF" allmulti
|
||||||
rm vlmcsd.o vlmcs.o
|
|
||||||
gmake vlmcsdmulti-DragonFly-x64 $REUSEOBJFLAGS CFLAGS="$CF" LDFLAGS="$LF" MULTI_NAME=vlmcsdmulti-DragonFly-x64
|
|
||||||
|
|
||||||
rm *.o
|
rm *.o
|
||||||
|
|
||||||
@ -29,4 +27,4 @@ cp -af vlmcsd-DragonFly-x64 /usr/local/sbin/vlmcsd
|
|||||||
cp -af vlmcs-DragonFly-x64 /usr/local/bin/vlmcs
|
cp -af vlmcs-DragonFly-x64 /usr/local/bin/vlmcs
|
||||||
|
|
||||||
# Copy everything to distribution server
|
# Copy everything to distribution server
|
||||||
scp -p vlmcsdmulti-* vlmcsd-* vlmcs-* root@ubuntu64:x/binaries/DragonFly/intel/
|
scp -p vlmcsdmulti-* vlmcsd-Dragon* vlmcs-* root@ubuntu64:x/binaries/DragonFly/intel/
|
||||||
|
17
make_freebsd
17
make_freebsd
@ -3,7 +3,7 @@
|
|||||||
export VERBOSE=3
|
export VERBOSE=3
|
||||||
export DNS_PARSER=OS
|
export DNS_PARSER=OS
|
||||||
|
|
||||||
rm -f vlmcsd-* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
rm -f vlmcsd-Free* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
||||||
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
||||||
|
|
||||||
MAKEFLAGS="-B -j12"
|
MAKEFLAGS="-B -j12"
|
||||||
@ -15,22 +15,13 @@ LF="-Wl,-z,norelro -Wl,--hash-style=gnu -Wl,--build-id=none"
|
|||||||
LFCLANG="-Wl,-z,norelro -Wl,--hash-style=gnu"
|
LFCLANG="-Wl,-z,norelro -Wl,--hash-style=gnu"
|
||||||
|
|
||||||
gmake $MAKEFLAGS allmulti CAT=2 MULTI_NAME=vlmcsdmulti-FreeBSD-10.3-x64-gcc CLIENT_NAME=vlmcs-FreeBSD-10.3-x64-gcc PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64-gcc CC=gcc5 CFLAGS="$CF" LDFLAGS="$LF"
|
gmake $MAKEFLAGS allmulti CAT=2 MULTI_NAME=vlmcsdmulti-FreeBSD-10.3-x64-gcc CLIENT_NAME=vlmcs-FreeBSD-10.3-x64-gcc PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64-gcc CC=gcc5 CFLAGS="$CF" LDFLAGS="$LF"
|
||||||
|
gmake $MAKEFLAGS MULTI_NAME=vlmcsdmulti-FreeBSD-10.3-x64 CLIENT_NAME=vlmcs-FreeBSD-10.3-x64 PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64 CC=clang38 CFLAGS="$CFCLANG" LDFLAGS="$LF" allmulti
|
||||||
gmake $MAKEFLAGS CLIENT_NAME=vlmcs-FreeBSD-10.3-x64 PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64 CC=clang38 CFLAGS="$CFCLANG" LDFLAGS="$LF"
|
gmake $MAKEFLAGS MULTI_NAME=vlmcsdmulti-FreeBSD-10.3-x86 CLIENT_NAME=vlmcs-FreeBSD-10.3-x86 PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86 CC=clang38 CFLAGS="$CFCLANG -m32" LDFLAGS="$LF"
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.*
|
|
||||||
gmake $REUSEOBJFLAGS vlmcsdmulti-FreeBSD-10.3-x64 MULTI_NAME=vlmcsdmulti-FreeBSD-10.3-x64 CC=clang38 CFLAGS="$CFCLANG" LDFLAGS="$LF"
|
|
||||||
|
|
||||||
gmake $MAKEFLAGS CLIENT_NAME=vlmcs-FreeBSD-10.3-x86 PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86 CC=clang38 CFLAGS="$CFCLANG -m32" LDFLAGS="$LF"
|
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.*
|
|
||||||
gmake $REUSEOBJFLAGS vlmcsdmulti-FreeBSD-10.3-x86 MULTI_NAME=vlmcsdmulti-FreeBSD-10.3-x86 CC=clang38 CFLAGS="$CFCLANG -m32" LDFLAGS="$LF"
|
|
||||||
|
|
||||||
gmake $MAKEFLAGS allmulti CAT=2 MULTI_NAME=vlmcsdmulti-FreeBSD-10.3-x86-gcc CLIENT_NAME=vlmcs-FreeBSD-10.3-x86-gcc PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86-gcc CC=gcc5 CFLAGS="$CF -m32 -DCOMPAT_32BIT" LDFLAGS="-L/usr/lib32 -B/usr/lib32 $LF"
|
gmake $MAKEFLAGS allmulti CAT=2 MULTI_NAME=vlmcsdmulti-FreeBSD-10.3-x86-gcc CLIENT_NAME=vlmcs-FreeBSD-10.3-x86-gcc PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86-gcc CC=gcc5 CFLAGS="$CF -m32 -DCOMPAT_32BIT" LDFLAGS="-L/usr/lib32 -B/usr/lib32 $LF"
|
||||||
|
|
||||||
gmake $MAKEFLAGS CAT=2 vlmcsd-FreeBSD-10.3-x64-threads-gcc PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64-threads-gcc THREADS=1 CC=gcc5 CFLAGS="$CF" LDFLAGS="-lpthread $LF"
|
gmake $MAKEFLAGS CAT=2 vlmcsd-FreeBSD-10.3-x64-threads-gcc PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64-threads-gcc THREADS=1 CC=gcc5 CFLAGS="$CF" LDFLAGS="-lpthread $LF"
|
||||||
gmake $MAKEFLAGS vlmcsd-FreeBSD-10.3-x64-threads PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64-threads THREADS=1 CC=clang38 CFLAGS="$CFCLANG" LDFLAGS="-lpthread $LF"
|
gmake $MAKEFLAGS vlmcsd-FreeBSD-10.3-x64-threads PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64-threads THREADS=1 CC=clang38 CFLAGS="$CFCLANG" LDFLAGS="-lpthread $LF"
|
||||||
gmake $MAKEFLAGS vlmcsd-FreeBSD-10.3-x86-threads PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86-threads THREADS=1 CC=clang38 CFLAGS="$CFCLANG -m32" LDFLAGS="-lpthread $LF"
|
gmake $MAKEFLAGS vlmcsd-FreeBSD-10.3-x86-threads PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86-threads THREADS=1 CC=clang38 CFLAGS="$CFCLANG -m32" LDFLAGS="-lpthread $LF"
|
||||||
gmake $MAKEFLAGS CAT=2 vlmcsd-FreeBSD-10.3-x86-threads-gcc PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86-threads-gcc THREADS=1 CC=gcc5 CFLAGS="$CF -m32 -DCOMPAT_32BIT" LDFLAGS="-lpthread -L/usr/lib32 -B/usr/lib32 $LF"
|
gmake $MAKEFLAGS CAT=2 vlmcsd-FreeBSD-10.3-x86-threads-gcc PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86-threads-gcc THREADS=1 CC=gcc5 CFLAGS="$CF -m32 -DCOMPAT_32BIT" LDFLAGS="-lpthread -L/usr/lib32 -B/usr/lib32 $LF"
|
||||||
|
|
||||||
gmake $MAKEFLAGS CRYPTO=openssl_with_aes CLIENT_NAME=vlmcs-FreeBSD-10.3-x64-openssl1.0.1-EXPERIMENTAL PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64-openssl1.0.1-EXPERIMENTAL CC=clang38 CFLAGS="$CFCLANG" LDFLAGS="$LF"
|
gmake $MAKEFLAGS CRYPTO=openssl_with_aes CLIENT_NAME=vlmcs-FreeBSD-10.3-x64-openssl1.0.1-EXPERIMENTAL PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x64-openssl1.0.1-EXPERIMENTAL CC=clang38 CFLAGS="$CFCLANG" LDFLAGS="$LF"
|
||||||
gmake $MAKEFLAGS CRYPTO=openssl_with_aes CLIENT_NAME=vlmcs-FreeBSD-10.3-x86-openssl1.0.1-EXPERIMENTAL PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86-openssl1.0.1-EXPERIMENTAL CC=clang38 CFLAGS="$CFCLANG -m32" LDFLAGS="$LF"
|
gmake $MAKEFLAGS CRYPTO=openssl_with_aes CLIENT_NAME=vlmcs-FreeBSD-10.3-x86-openssl1.0.1-EXPERIMENTAL PROGRAM_NAME=vlmcsd-FreeBSD-10.3-x86-openssl1.0.1-EXPERIMENTAL CC=clang38 CFLAGS="$CFCLANG -m32" LDFLAGS="$LF"
|
||||||
|
|
||||||
@ -43,4 +34,4 @@ sudo cp -af vlmcsd-FreeBSD-10.3-x86-gcc /usr/local/sbin/vlmcsd
|
|||||||
sudo cp -af vlmcs-FreeBSD-10.3-x86-gcc /usr/local/bin/vlmcs
|
sudo cp -af vlmcs-FreeBSD-10.3-x86-gcc /usr/local/bin/vlmcs
|
||||||
|
|
||||||
# Copy everything to distribution server
|
# Copy everything to distribution server
|
||||||
scp -p vlmcsdmulti-* vlmcsd-* vlmcs-* root@ubuntu64:x/binaries/FreeBSD/intel/
|
scp -p vlmcsdmulti-* vlmcsd-Free* vlmcs-* root@ubuntu64:x/binaries/FreeBSD/intel/
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
export VERBOSE=3
|
export VERBOSE=3
|
||||||
export DNS_PARSER=OS
|
export DNS_PARSER=OS
|
||||||
|
|
||||||
rm -f vlmcsd-* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
rm -f vlmcsd-hurd* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
||||||
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
||||||
|
|
||||||
MAKEFLAGS="-B -j1"
|
MAKEFLAGS="-B -j1"
|
||||||
@ -12,8 +12,7 @@ export CC=gcc
|
|||||||
CF="-flto=jobserver -pipe -fwhole-program -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
CF="-flto=jobserver -pipe -fwhole-program -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
||||||
LF="-fuse-ld=gold -lresolv -Wl,-z,norelro,--hash-style=gnu,--build-id=none"
|
LF="-fuse-ld=gold -lresolv -Wl,-z,norelro,--hash-style=gnu,--build-id=none"
|
||||||
|
|
||||||
make $MAKEFLAGS PROGRAM_NAME=vlmcsd-hurd-x86-glibc CLIENT_NAME=vlmcs-hurd-x86-glibc CFLAGS="$CF" LDFLAGS="$LF" CAT=2
|
make $MAKEFLAGS MULTI_NAME=vlmcsdmulti-hurd-x86-glibc vlmcsdmulti-hurd-x86-glibc PROGRAM_NAME=vlmcsd-hurd-x86-glibc CLIENT_NAME=vlmcs-hurd-x86-glibc CFLAGS="$CF" LDFLAGS="$LF" allmulti
|
||||||
make $MAKEFLAGS MULTI_NAME=vlmcsdmulti-hurd-x86-glibc vlmcsdmulti-hurd-x86-glibc CFLAGS="$CF" LDFLAGS="$LF" CAT=2 AUXV=1
|
|
||||||
|
|
||||||
make clean
|
make clean
|
||||||
|
|
||||||
@ -34,5 +33,5 @@ cp -af vlmcsd.ini.5 /usr/local/man/man5/
|
|||||||
bzip2 -f -9 /usr/local/man/man5/vlmcsd.ini.5 /usr/local/man/man1/vlmcs.1 /usr/local/man/man1/vlmcsdmulti.1 /usr/local/man/man7/vlmcsd.7 /usr/local/man/man8/vlmcsd.8
|
bzip2 -f -9 /usr/local/man/man5/vlmcsd.ini.5 /usr/local/man/man1/vlmcs.1 /usr/local/man/man1/vlmcsdmulti.1 /usr/local/man/man7/vlmcsd.7 /usr/local/man/man8/vlmcsd.8
|
||||||
|
|
||||||
# Copy everything to distribution server
|
# Copy everything to distribution server
|
||||||
scp -p vlmcsdmulti-* vlmcsd-* vlmcs-* root@ubuntu64.internal:x/binaries/Hurd/intel/
|
scp -p vlmcsdmulti-* vlmcsd-hurd* vlmcs-* root@ubuntu64.internal:x/binaries/Hurd/intel/
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
export VERBOSE=3
|
export VERBOSE=3
|
||||||
export DNS_PARSER=OS
|
export DNS_PARSER=OS
|
||||||
|
|
||||||
rm -f vlmcsd-* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
rm -f vlmcsd-Free* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
||||||
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
||||||
|
|
||||||
MAKEFLAGS="-B -j`nproc`"
|
MAKEFLAGS="-B -j`nproc`"
|
||||||
@ -16,15 +16,13 @@ export PROGRAM_NAME=vlmcsd-FreeBSD-10.1-x64-glibc
|
|||||||
export CLIENT_NAME=vlmcs-FreeBSD-10.1-x64-glibc
|
export CLIENT_NAME=vlmcs-FreeBSD-10.1-x64-glibc
|
||||||
export MULTI_NAME=vlmcsdmulti-FreeBSD-10.1-x64-glibc
|
export MULTI_NAME=vlmcsdmulti-FreeBSD-10.1-x64-glibc
|
||||||
|
|
||||||
make $MAKEFLAGS CFLAGS="$CF -m64" LDFLAGS="$LF" CAT=2
|
make $MAKEFLAGS CFLAGS="$CF -m64" LDFLAGS="$LF" CAT=2 allmulti
|
||||||
make $MAKEFLAGS $MULTI_NAME CFLAGS="$CF -m64" LDFLAGS="$LF" CAT=2 AUXV=1
|
|
||||||
|
|
||||||
export PROGRAM_NAME=vlmcsd-FreeBSD-10.1-x86-glibc
|
export PROGRAM_NAME=vlmcsd-FreeBSD-10.1-x86-glibc
|
||||||
export CLIENT_NAME=vlmcs-FreeBSD-10.1-x86-glibc
|
export CLIENT_NAME=vlmcs-FreeBSD-10.1-x86-glibc
|
||||||
export MULTI_NAME=vlmcsdmulti-FreeBSD-10.1-x86-glibc
|
export MULTI_NAME=vlmcsdmulti-FreeBSD-10.1-x86-glibc
|
||||||
|
|
||||||
make $MAKEFLAGS CFLAGS="$CF -m32" LDFLAGS="$LF" CAT=2
|
make $MAKEFLAGS CFLAGS="$CF -m32" LDFLAGS="$LF" CAT=2 allmulti
|
||||||
make $MAKEFLAGS $MULTI_NAME CFLAGS="$CF -m32" LDFLAGS="$LF" CAT=2 AUXV=1
|
|
||||||
|
|
||||||
sstrip -z vlmcs-* vlmcsd-* vlmcsdmulti-*
|
sstrip -z vlmcs-* vlmcsd-* vlmcsdmulti-*
|
||||||
|
|
||||||
@ -43,5 +41,5 @@ cp -af vlmcsd.ini.5 /usr/local/man/man5/
|
|||||||
bzip2 -f -9 /usr/local/man/man5/vlmcsd.ini.5 /usr/local/man/man1/vlmcs.1 /usr/local/man/man1/vlmcsdmulti.1 /usr/local/man/man7/vlmcsd.7 /usr/local/man/man8/vlmcsd.8
|
bzip2 -f -9 /usr/local/man/man5/vlmcsd.ini.5 /usr/local/man/man1/vlmcs.1 /usr/local/man/man1/vlmcsdmulti.1 /usr/local/man/man7/vlmcsd.7 /usr/local/man/man8/vlmcsd.8
|
||||||
|
|
||||||
# Copy everything to distribution server
|
# Copy everything to distribution server
|
||||||
scp -p vlmcsdmulti-* vlmcsd-* vlmcs-* root@ubuntu64.internal:x/binaries/FreeBSD/intel/
|
scp -p vlmcsdmulti-* vlmcsd-Free* vlmcs-* root@ubuntu64.internal:x/binaries/FreeBSD/intel/
|
||||||
|
|
||||||
|
988
make_linux
988
make_linux
File diff suppressed because it is too large
Load Diff
@ -16,9 +16,7 @@ export CLIENT_NAME=vlmcs$SUFFIX
|
|||||||
export MULTI_NAME=vlmcsdmulti$SUFFIX
|
export MULTI_NAME=vlmcsdmulti$SUFFIX
|
||||||
|
|
||||||
gmake clean
|
gmake clean
|
||||||
gmake -B
|
gmake -B allmulti
|
||||||
rm -f vlmcsd.o vlmcs.o vlmcsdmulti.o
|
|
||||||
gmake $MULTI_NAME
|
|
||||||
|
|
||||||
strip -s --strip-unneeded --remove-section .eh_frame_hdr --remove-section .eh_frame --remove-section .ident --remove-section .note.minix.ident --remove-section .note.netbsd.pax --remove-section=.note.gnu.gold-version --remove-section=.comment --remove-section=.note --remove-section=.note.gnu.build-id --remove-section=.note.ABI-tag *$SUFFIX
|
strip -s --strip-unneeded --remove-section .eh_frame_hdr --remove-section .eh_frame --remove-section .ident --remove-section .note.minix.ident --remove-section .note.netbsd.pax --remove-section=.note.gnu.gold-version --remove-section=.comment --remove-section=.note --remove-section=.note.gnu.build-id --remove-section=.note.ABI-tag *$SUFFIX
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ SMALLCC="-pipe -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tabl
|
|||||||
SMALLLD="-pipe -Wl,--hash-style=sysv -Wl,-z,norelro -Wl,--build-id=none"
|
SMALLLD="-pipe -Wl,--hash-style=sysv -Wl,-z,norelro -Wl,--build-id=none"
|
||||||
SMALL="$SMALLCC $SMALLLD"
|
SMALL="$SMALLCC $SMALLLD"
|
||||||
|
|
||||||
rm -f vlmcsd vlmcs vlmcsdmulti vlmcsd-* vlmcs-* vlmcsdmulti-*
|
rm -f vlmcsd vlmcs vlmcsdmulti vlmcsd-s390* vlmcsd-sparc64* vlmcsd-mips64* vlmcs-* vlmcsdmulti-*
|
||||||
|
|
||||||
## IBM S/390
|
## IBM S/390
|
||||||
|
|
||||||
@ -20,10 +20,7 @@ export MULTI_NAME=vlmcsdmulti-s390-glibc
|
|||||||
export CLIENT_NAME=vlmcs-s390-glibc
|
export CLIENT_NAME=vlmcs-s390-glibc
|
||||||
export PROGRAM_NAME=vlmcsd-s390-glibc
|
export PROGRAM_NAME=vlmcsd-s390-glibc
|
||||||
|
|
||||||
make -B -j`nproc` $CLIENT_NAME $PROGRAM_NAME
|
make -B -j`nproc` allmulti
|
||||||
|
|
||||||
rm -f vlmcsd.o vlmcs.o vlmcsdmulti.o
|
|
||||||
make -j`nproc` $MULTI_NAME
|
|
||||||
|
|
||||||
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
||||||
|
|
||||||
@ -32,15 +29,11 @@ export MULTI_NAME=vlmcsdmulti-s390x-glibc
|
|||||||
export CLIENT_NAME=vlmcs-s390x-glibc
|
export CLIENT_NAME=vlmcs-s390x-glibc
|
||||||
export PROGRAM_NAME=vlmcsd-s390x-glibc
|
export PROGRAM_NAME=vlmcsd-s390x-glibc
|
||||||
|
|
||||||
make -B -j`nproc` $CLIENT_NAME $PROGRAM_NAME
|
make -B -j`nproc` allmulti
|
||||||
|
|
||||||
rm -f vlmcsd.o vlmcs.o vlmcsdmulti.o
|
|
||||||
export PLATFORMFLAGS="-flto=jobserver -fwhole-program -m64 -mzarch -mpacked-stack -msmall-exec"
|
|
||||||
make -j`nproc` $MULTI_NAME
|
|
||||||
|
|
||||||
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## SPARC64
|
## SPARC64
|
||||||
|
|
||||||
export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mcpu=v7"
|
export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mcpu=v7"
|
||||||
@ -51,13 +44,12 @@ export MULTI_NAME=vlmcsdmulti-sparc64v9-glibc
|
|||||||
export CLIENT_NAME=vlmcs-sparc64v9-glibc
|
export CLIENT_NAME=vlmcs-sparc64v9-glibc
|
||||||
export PROGRAM_NAME=vlmcsd-sparc64v9-glibc
|
export PROGRAM_NAME=vlmcsd-sparc64v9-glibc
|
||||||
|
|
||||||
make -B -j`nproc` $CLIENT_NAME $PROGRAM_NAME
|
make -B -j`nproc` allmulti
|
||||||
|
|
||||||
rm -f vlmcsd.o vlmcs.o vlmcsdmulti.o
|
|
||||||
make -j`nproc` $MULTI_NAME
|
|
||||||
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## MIPS64 BIG-ENDIAN
|
## MIPS64 BIG-ENDIAN
|
||||||
|
|
||||||
export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mno-mips16"
|
export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mno-mips16"
|
||||||
@ -68,10 +60,8 @@ export MULTI_NAME=vlmcsdmulti-mips64-glibc
|
|||||||
export CLIENT_NAME=vlmcs-mips64-glibc
|
export CLIENT_NAME=vlmcs-mips64-glibc
|
||||||
export PROGRAM_NAME=vlmcsd-mips64-glibc
|
export PROGRAM_NAME=vlmcsd-mips64-glibc
|
||||||
|
|
||||||
make -B -j`nproc` $CLIENT_NAME $PROGRAM_NAME
|
make -B -j`nproc` allmulti
|
||||||
|
|
||||||
rm -f vlmcsd.o vlmcs.o vlmcsdmulti.o
|
|
||||||
make -j`nproc` $MULTI_NAME
|
|
||||||
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
||||||
|
|
||||||
export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mmicromips"
|
export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mmicromips"
|
||||||
@ -79,10 +69,8 @@ export MULTI_NAME=vlmcsdmulti-mips64mm-glibc
|
|||||||
export CLIENT_NAME=vlmcs-mips64mm-glibc
|
export CLIENT_NAME=vlmcs-mips64mm-glibc
|
||||||
export PROGRAM_NAME=vlmcsd-mips64mm-glibc
|
export PROGRAM_NAME=vlmcsd-mips64mm-glibc
|
||||||
|
|
||||||
make -B -j`nproc` $CLIENT_NAME $PROGRAM_NAME
|
make -B -j`nproc` allmulti
|
||||||
|
|
||||||
rm -f vlmcsd.o vlmcs.o vlmcsdmulti.o
|
|
||||||
make -j`nproc` $MULTI_NAME
|
|
||||||
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
||||||
|
|
||||||
|
|
||||||
@ -96,10 +84,8 @@ export MULTI_NAME=vlmcsdmulti-mips64el-glibc
|
|||||||
export CLIENT_NAME=vlmcs-mips64el-glibc
|
export CLIENT_NAME=vlmcs-mips64el-glibc
|
||||||
export PROGRAM_NAME=vlmcsd-mips64el-glibc
|
export PROGRAM_NAME=vlmcsd-mips64el-glibc
|
||||||
|
|
||||||
make -B -j`nproc` $CLIENT_NAME $PROGRAM_NAME
|
make -B -j`nproc` allmulti
|
||||||
|
|
||||||
rm -f vlmcsd.o vlmcs.o vlmcsdmulti.o
|
|
||||||
make -j`nproc` $MULTI_NAME
|
|
||||||
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
||||||
|
|
||||||
export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mmicromips"
|
export PLATFORMFLAGS="-flto=jobserver -fwhole-program -mips64 -mmicromips"
|
||||||
@ -107,10 +93,8 @@ export MULTI_NAME=vlmcsdmulti-mips64elmm-glibc
|
|||||||
export CLIENT_NAME=vlmcs-mips64elmm-glibc
|
export CLIENT_NAME=vlmcs-mips64elmm-glibc
|
||||||
export PROGRAM_NAME=vlmcsd-mips64elmm-glibc
|
export PROGRAM_NAME=vlmcsd-mips64elmm-glibc
|
||||||
|
|
||||||
make -B -j`nproc` $CLIENT_NAME $PROGRAM_NAME
|
make -B -j`nproc` allmulti
|
||||||
|
|
||||||
rm -f vlmcsd.o vlmcs.o vlmcsdmulti.o
|
|
||||||
make -j`nproc` $MULTI_NAME
|
|
||||||
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
sstrip -z $CLIENT_NAME $PROGRAM_NAME $MULTI_NAME
|
||||||
|
|
||||||
|
|
||||||
|
10
make_netbsd
10
make_netbsd
@ -3,21 +3,19 @@
|
|||||||
export VERBOSE=3
|
export VERBOSE=3
|
||||||
export DNS_PARSER=OS
|
export DNS_PARSER=OS
|
||||||
|
|
||||||
rm -f vlmcsd-* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
rm -f vlmcsd-NetBSD* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
||||||
gmake clean
|
gmake clean
|
||||||
|
|
||||||
MAKEFLAGS="-B -j12"
|
MAKEFLAGS="-B -j12"
|
||||||
REUSEOBJFLAGS="-j12"
|
REUSEOBJFLAGS="-j12"
|
||||||
|
|
||||||
CF="-flto=12 -static-libgcc -pipe -fwhole-program -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
CF="-flto=12 -static-libgcc -pipe -fwhole-program -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
||||||
CF45="-static-libgcc -pipe -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
CF45="-flto=12 -static-libgcc -pipe -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
||||||
CFCLANG="-pipe -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
CFCLANG="-pipe -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
||||||
LF="-Wl,-z,norelro -Wl,--hash-style=sysv -Wl,--build-id=none"
|
LF="-Wl,-z,norelro -Wl,--hash-style=sysv -Wl,--build-id=none"
|
||||||
LFCLANG="-Wl,-z,norelro -Wl,--hash-style=sysv"
|
LFCLANG="-Wl,-z,norelro -Wl,--hash-style=sysv"
|
||||||
|
|
||||||
gmake $MAKEFLAGS CC=/usr/pkg/gcc5/bin/gcc PROGRAM_NAME=vlmcsd-NetBSD-x64 CLIENT_NAME=vlmcs-NetBSD-x64 CFLAGS="$CF" LDFLAGS="$LF"
|
gmake $MAKEFLAGS CC=/usr/pkg/gcc5/bin/gcc PROGRAM_NAME=vlmcsd-NetBSD-x64 CLIENT_NAME=vlmcs-NetBSD-x64 MULTI_NAME=vlmcsdmulti-NetBSD-x64 allmulti CFLAGS="$CF" LDFLAGS="$LF"
|
||||||
rm vlmcsd.o vlmcs.o
|
|
||||||
gmake vlmcsdmulti-NetBSD-x64 $REUSEOBJFLAGS CC=/usr/pkg/gcc5/bin/gcc CFLAGS="$CF" LDFLAGS="$LF" MULTI_NAME=vlmcsdmulti-NetBSD-x64
|
|
||||||
|
|
||||||
gmake allmulti CC=gcc $MAKEFLAGS CAT=2 MULTI_NAME=vlmcsdmulti-NetBSD-x86 PROGRAM_NAME=vlmcsd-NetBSD-x86 CLIENT_NAME=vlmcs-NetBSD-x86 CFLAGS="$CF45 -m32" LDFLAGS="$LF"
|
gmake allmulti CC=gcc $MAKEFLAGS CAT=2 MULTI_NAME=vlmcsdmulti-NetBSD-x86 PROGRAM_NAME=vlmcsd-NetBSD-x86 CLIENT_NAME=vlmcs-NetBSD-x86 CFLAGS="$CF45 -m32" LDFLAGS="$LF"
|
||||||
|
|
||||||
@ -32,4 +30,4 @@ cp -af vlmcsd-NetBSD-x86 /usr/local/sbin/vlmcsd
|
|||||||
cp -af vlmcs-NetBSD-x86 /usr/local/bin/vlmcs
|
cp -af vlmcs-NetBSD-x86 /usr/local/bin/vlmcs
|
||||||
|
|
||||||
# Copy everything to distribution server
|
# Copy everything to distribution server
|
||||||
scp -p vlmcsdmulti-* vlmcsd-* vlmcs-* root@ubuntu64:x/binaries/NetBSD/intel/
|
scp -p vlmcsdmulti-* vlmcsd-Net* vlmcs-* root@ubuntu64:x/binaries/NetBSD/intel/
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
export VERBOSE=3
|
export VERBOSE=3
|
||||||
export DNS_PARSER=OS
|
export DNS_PARSER=OS
|
||||||
|
|
||||||
rm -f vlmcsd-* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
rm -f vlmcsd-Open* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
||||||
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
||||||
|
|
||||||
MAKEFLAGS="-B -j12"
|
MAKEFLAGS="-B -j12"
|
||||||
@ -15,7 +15,7 @@ CFCLANG="-pipe -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tabl
|
|||||||
LF="-Wl,-z,norelro"
|
LF="-Wl,-z,norelro"
|
||||||
LFCLANG="-Wl,-z,norelro"
|
LFCLANG="-Wl,-z,norelro"
|
||||||
|
|
||||||
gmake allmulti CAT=2 $MAKEFLAGS CC=egcc MULTI_NAME=vlmcsdmulti-OpenBSD-x64 PROGRAM_NAME=vlmcsd-OpenBSD-x64 CLIENT_NAME=vlmcs-OpenBSD-x64 CFLAGS="$CF" LDFLAGS="$LF"
|
gmake -Bj12 allmulti $MAKEFLAGS CC=egcc MULTI_NAME=vlmcsdmulti-OpenBSD-x64 PROGRAM_NAME=vlmcsd-OpenBSD-x64 CLIENT_NAME=vlmcs-OpenBSD-x64 CFLAGS="$CF" LDFLAGS="$LF"
|
||||||
|
|
||||||
#gmake allmulti $MAKEFLAGS CAT=2 MULTI_NAME=vlmcsdmulti-OpenBSD-x86 PROGRAM_NAME=vlmcsd-OpenBSD-x86 CLIENT_NAME=vlmcs-OpenBSD-x86 CFLAGS="$CF45 -m32" LDFLAGS="$LF"
|
#gmake allmulti $MAKEFLAGS CAT=2 MULTI_NAME=vlmcsdmulti-OpenBSD-x86 PROGRAM_NAME=vlmcsd-OpenBSD-x86 CLIENT_NAME=vlmcs-OpenBSD-x86 CFLAGS="$CF45 -m32" LDFLAGS="$LF"
|
||||||
|
|
||||||
@ -30,4 +30,4 @@ cp -f vlmcsd-OpenBSD-x64 /usr/local/sbin/vlmcsd
|
|||||||
cp -f vlmcs-OpenBSD-x64 /usr/local/bin/vlmcs
|
cp -f vlmcs-OpenBSD-x64 /usr/local/bin/vlmcs
|
||||||
|
|
||||||
# Copy everything to distribution server
|
# Copy everything to distribution server
|
||||||
scp -p vlmcsdmulti-* vlmcsd-* vlmcs-* root@ubuntu64:x/binaries/OpenBSD/intel/
|
scp -p vlmcsdmulti-* vlmcsd-Open* vlmcs-* root@ubuntu64:x/binaries/OpenBSD/intel/
|
||||||
|
46
make_osx
46
make_osx
@ -3,7 +3,7 @@
|
|||||||
export VERBOSE=3
|
export VERBOSE=3
|
||||||
export DNS_PARSER=OS
|
export DNS_PARSER=OS
|
||||||
|
|
||||||
rm vlmcsd-* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
rm vlmcsd-Mac* vlmcsd-iOS* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
||||||
rm vlmcsd vlmcs vlmcsdmulti 2>/dev/null
|
rm vlmcsd vlmcs vlmcsdmulti 2>/dev/null
|
||||||
|
|
||||||
MAKEFLAGS="-Bj"
|
MAKEFLAGS="-Bj"
|
||||||
@ -12,40 +12,26 @@ CFGCC="-static-libgcc -mdynamic-no-pic -Os -flto=jobserver -fwhole-program -fno-
|
|||||||
CFCLANG="-mdynamic-no-pic -Os -flto -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
CFCLANG="-mdynamic-no-pic -Os -flto -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
||||||
CFGCC42="-static-libgcc -mdynamic-no-pic -Os -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
CFGCC42="-static-libgcc -mdynamic-no-pic -Os -fno-common -fno-exceptions -fno-stack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fmerge-all-constants"
|
||||||
|
|
||||||
make $MAKEFLAGS CLIENT_NAME=vlmcs-MacOSX-x86 PROGRAM_NAME=vlmcsd-MacOSX-x86 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.0" && \
|
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-MacOSX-x86 CLIENT_NAME=vlmcs-MacOSX-x86 PROGRAM_NAME=vlmcsd-MacOSX-x86 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.0" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
|
||||||
make $REUSEOBJFLAGS vlmcsdmulti-MacOSX-x86 MULTI_NAME=vlmcsdmulti-MacOSX-x86 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.0" && \
|
|
||||||
make $MAKEFLAGS vlmcsd-MacOSX-x86-threads THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x86-threads CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.0" && \
|
make $MAKEFLAGS vlmcsd-MacOSX-x86-threads THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x86-threads CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.0" && \
|
||||||
make $MAKEFLAGS CLIENT_NAME=vlmcs-MacOSX-x64 PROGRAM_NAME=vlmcsd-MacOSX-x64 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.0" && \
|
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-MacOSX-x64 CLIENT_NAME=vlmcs-MacOSX-x64 PROGRAM_NAME=vlmcsd-MacOSX-x64 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.0" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
|
||||||
make $REUSEOBJFLAGS vlmcsdmulti-MacOSX-x64 MULTI_NAME=vlmcsdmulti-MacOSX-x64 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.0" && \
|
|
||||||
make $MAKEFLAGS vlmcsd-MacOSX-x64-threads THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x64-threads CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.0" && \
|
make $MAKEFLAGS vlmcsd-MacOSX-x64-threads THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x64-threads CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.0" && \
|
||||||
#make $MAKEFLAGS CLIENT_NAME=vlmcs-MacOSX-x86-openssl-EXPERIMENTAL PROGRAM_NAME=vlmcsd-MacOSX-x86-openssl-EXPERIMENTAL CRYPTO=openssl_with_aes_soft CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.4" && \
|
#make $MAKEFLAGS CLIENT_NAME=vlmcs-MacOSX-x86-openssl-EXPERIMENTAL PROGRAM_NAME=vlmcsd-MacOSX-x86-openssl-EXPERIMENTAL CRYPTO=openssl_with_aes_soft CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.4" && \
|
||||||
#make $MAKEFLAGS CLIENT_NAME=vlmcs-MacOSX-x64-openssl-EXPERIMENTAL PROGRAM_NAME=vlmcsd-MacOSX-x64-openssl-EXPERIMENTAL CRYPTO=openssl_with_aes_soft CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.4" && \
|
#make $MAKEFLAGS CLIENT_NAME=vlmcs-MacOSX-x64-openssl-EXPERIMENTAL PROGRAM_NAME=vlmcsd-MacOSX-x64-openssl-EXPERIMENTAL CRYPTO=openssl_with_aes_soft CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.4" && \
|
||||||
|
|
||||||
#make $MAKEFLAGS CLIENT_NAME=vlmcs-iOS-7.1-armv7 PROGRAM_NAME=vlmcsd-iOS-7.1-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" && \
|
#make $MAKEFLAGS CLIENT_NAME=vlmcs-iOS-7.1-armv7 PROGRAM_NAME=vlmcsd-iOS-7.1-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
#rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
||||||
#make $REUSEOBJFLAGS vlmcsdmulti-iOS-7.1-armv7 MULTI_NAME=vlmcsdmulti-iOS-7.1-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" && \
|
#make $REUSEOBJFLAGS vlmcsdmulti-iOS-7.1-armv7 MULTI_NAME=vlmcsdmulti-iOS-7.1-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" && \
|
||||||
|
|
||||||
make $MAKEFLAGS CLIENT_NAME=vlmcs-iOS-armv7 PROGRAM_NAME=vlmcsd-iOS-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 -isysroot ~/toolchains/iPhoneOS.sdk" && \
|
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-iOS-armv7 CLIENT_NAME=vlmcs-iOS-armv7 PROGRAM_NAME=vlmcsd-iOS-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 -isysroot ~/toolchains/iPhoneOS.sdk" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-iOS-armv8-aarch64 CLIENT_NAME=vlmcs-iOS-armv8-aarch64 PROGRAM_NAME=vlmcsd-iOS-armv8-aarch64 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -arch arm64 -miphoneos-version-min=7.0 -isysroot ~/toolchains/iPhoneOS.sdk" && \
|
||||||
make $REUSEOBJFLAGS vlmcsdmulti-iOS-armv7 MULTI_NAME=vlmcsdmulti-iOS-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 -isysroot ~/toolchains/iPhoneOS.sdk" && \
|
|
||||||
make $MAKEFLAGS CLIENT_NAME=vlmcs-iOS-armv8-aarch64 PROGRAM_NAME=vlmcsd-iOS-armv8-aarch64 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -arch arm64 -miphoneos-version-min=7.0 -isysroot ~/toolchains/iPhoneOS.sdk" && \
|
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
|
||||||
make $REUSEOBJFLAGS vlmcsdmulti-iOS-armv8-aarch64 MULTI_NAME=vlmcsdmulti-iOS-armv8-aarch64 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-m64 -arch arm64 -miphoneos-version-min=7.0 -isysroot ~/toolchains/iPhoneOS.sdk" && \
|
|
||||||
|
|
||||||
make $MAKEFLAGS CLIENT_NAME=vlmcs-iOS-6.1-armv7 PROGRAM_NAME=vlmcsd-iOS-6.1-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS6.1.sdk -isysroot ~/toolchains/iPhoneOS6.1.sdk" && \
|
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-iOS-6.1-armv7 CLIENT_NAME=vlmcs-iOS-6.1-armv7 PROGRAM_NAME=vlmcsd-iOS-6.1-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS6.1.sdk -isysroot ~/toolchains/iPhoneOS6.1.sdk" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
|
||||||
make $REUSEOBJFLAGS vlmcsdmulti-iOS-6.1-armv7 MULTI_NAME=vlmcsdmulti-iOS-6.1-armv7 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS6.1.sdk -isysroot ~/toolchains/iPhoneOS6.1.sdk" && \
|
|
||||||
|
|
||||||
make $MAKEFLAGS CLIENT_NAME=vlmcs-iOS-5.1-armv7-clang3.4 PROGRAM_NAME=vlmcsd-iOS-5.1-armv7-clang3.4 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS5.1.sdk -isysroot ~/toolchains/iPhoneOS5.1.sdk" && \
|
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-iOS-5.1-armv7-clang3.4 CLIENT_NAME=vlmcs-iOS-5.1-armv7-clang3.4 PROGRAM_NAME=vlmcsd-iOS-5.1-armv7-clang3.4 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS5.1.sdk -isysroot ~/toolchains/iPhoneOS5.1.sdk" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
|
||||||
make $REUSEOBJFLAGS vlmcsdmulti-iOS-5.1-armv7-clang3.4 MULTI_NAME=vlmcsdmulti-iOS-5.1-armv7-clang3.4 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-mthumb -m32 -arch armv7 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS5.1.sdk -isysroot ~/toolchains/iPhoneOS5.1.sdk" && \
|
|
||||||
|
|
||||||
#PATH=~/toolchains/iOS5.1-MacOS-Lion/usr/bin:$PATH clang --version
|
#PATH=~/toolchains/iOS5.1-MacOS-Lion/usr/bin:$PATH clang --version
|
||||||
PATH=~/toolchains/iOS5.1-MacOS-Lion/usr/bin:$PATH make $MAKEFLAGS CLIENT_NAME=vlmcs-iOS-5.1-armv6-clang3.1 PROGRAM_NAME=vlmcsd-iOS-5.1-armv6-clang3.1 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-arch armv6 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS5.1.sdk -isysroot ~/toolchains/iPhoneOS5.1.sdk" && \
|
PATH=~/toolchains/iOS5.1-MacOS-Lion/usr/bin:$PATH make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-iOS-5.1-armv6-clang3.1 CLIENT_NAME=vlmcs-iOS-5.1-armv6-clang3.1 PROGRAM_NAME=vlmcsd-iOS-5.1-armv6-clang3.1 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-arch armv6 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS5.1.sdk -isysroot ~/toolchains/iPhoneOS5.1.sdk" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
|
||||||
PATH=~/toolchains/iOS5.1-MacOS-Lion/usr/bin:$PATH make $REUSEOBJFLAGS vlmcsdmulti-iOS-5.1-armv6-clang3.1 MULTI_NAME=vlmcsdmulti-iOS-5.1-armv6-clang3.1 CC=clang CFLAGS="$CFCLANG" PLATFORMFLAGS="-arch armv6 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS5.1.sdk -isysroot ~/toolchains/iPhoneOS5.1.sdk" && \
|
|
||||||
|
|
||||||
#PATH=~/toolchains/gcc4.2/usr/bin/bin:$PATH make $MAKEFLAGS CLIENT_NAME=vlmcs-iOS-4.1-armv6-llvm-gcc4.2 PROGRAM_NAME=vlmcsd-iOS-4.1-armv6-llvm-gcc4.2 CC=llvm-g++-4.2 CFLAGS="$CFGCC42" PLATFORMFLAGS="-arch armv6 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS4.1.sdk -isysroot ~/toolchains/iPhoneOS4.1.sdk" && \
|
#PATH=~/toolchains/gcc4.2/usr/bin/bin:$PATH make $MAKEFLAGS CLIENT_NAME=vlmcs-iOS-4.1-armv6-llvm-gcc4.2 PROGRAM_NAME=vlmcsd-iOS-4.1-armv6-llvm-gcc4.2 CC=llvm-g++-4.2 CFLAGS="$CFGCC42" PLATFORMFLAGS="-arch armv6 -miphoneos-version-min=1.0 --sysroot ~/toolchains/iPhoneOS4.1.sdk -isysroot ~/toolchains/iPhoneOS4.1.sdk" && \
|
||||||
#rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
#rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
||||||
@ -56,18 +42,12 @@ PATH=~/toolchains/iOS5.1-MacOS-Lion/usr/bin:$PATH make $REUSEOBJFLAGS vlmcsdmult
|
|||||||
#PATH=~/toolchains/gcc4.2/usr/bin:$PATH make $REUSEOBJFLAGS vlmcsdmulti-iOS-4.1-armv7-llvm-clang MULTI_NAME=vlmcsdmulti-iOS-4.1-armv7-llvm-clang CC=~/toolchains/gcc4.2/usr/bin/bin/clang CFLAGS="$CFGCC42" PLATFORMFLAGS="-mthumb -arch armv7 -miphoneos-version-min=4.1 --sysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk" && \
|
#PATH=~/toolchains/gcc4.2/usr/bin:$PATH make $REUSEOBJFLAGS vlmcsdmulti-iOS-4.1-armv7-llvm-clang MULTI_NAME=vlmcsdmulti-iOS-4.1-armv7-llvm-clang CC=~/toolchains/gcc4.2/usr/bin/bin/clang CFLAGS="$CFGCC42" PLATFORMFLAGS="-mthumb -arch armv7 -miphoneos-version-min=4.1 --sysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk" && \
|
||||||
|
|
||||||
|
|
||||||
PATH=~/toolchains/gcc4.2/usr/bin:$PATH make -Bj SAFE_MODE=1 PROGRAM_NAME=vlmcsd-MacOSX-ppc CLIENT_NAME=vlmcs-MacOSX-ppc CC=gcc CFLAGS="$CFGCC42 -isysroot ~/toolchains/MacOSX10.5.sdk -arch ppc -mmacosx-version-min=10.0" && \
|
PATH=~/toolchains/gcc4.2/usr/bin:$PATH make -Bj allmulti SAFE_MODE=1 MULTI_NAME=vlmcsdmulti-MacOSX-ppc PROGRAM_NAME=vlmcsd-MacOSX-ppc CLIENT_NAME=vlmcs-MacOSX-ppc CC=gcc CFLAGS="$CFGCC42 -isysroot ~/toolchains/MacOSX10.5.sdk -arch ppc -mmacosx-version-min=10.0" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
|
||||||
PATH=~/toolchains/gcc4.2/usr/bin:$PATH make -j SAFE_MODE=1 vlmcsdmulti-MacOSX-ppc MULTI_NAME=vlmcsdmulti-MacOSX-ppc CC=gcc CFLAGS="$CFGCC42 -isysroot ~/toolchains/MacOSX10.5.sdk -arch ppc -mmacosx-version-min=10.0"
|
|
||||||
|
|
||||||
|
|
||||||
make $MAKEFLAGS CLIENT_NAME=vlmcs-MacOSX-x86-gcc PROGRAM_NAME=vlmcsd-MacOSX-x86-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.11" && \
|
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-MacOSX-x86-gcc CLIENT_NAME=vlmcs-MacOSX-x86-gcc PROGRAM_NAME=vlmcsd-MacOSX-x86-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.11" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
|
||||||
make $REUSEOBJFLAGS vlmcsdmulti-MacOSX-x86-gcc MULTI_NAME=vlmcsdmulti-MacOSX-x86-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.11" && \
|
|
||||||
make $MAKEFLAGS vlmcsd-MacOSX-x86-threads-gcc THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x86-threads-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.11" && \
|
make $MAKEFLAGS vlmcsd-MacOSX-x86-threads-gcc THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x86-threads-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m32 -march=core2 -mmacosx-version-min=10.11" && \
|
||||||
make $MAKEFLAGS CLIENT_NAME=vlmcs-MacOSX-x64-gcc PROGRAM_NAME=vlmcsd-MacOSX-x64-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.11" && \
|
make $MAKEFLAGS allmulti MULTI_NAME=vlmcsdmulti-MacOSX-x64-gcc CLIENT_NAME=vlmcs-MacOSX-x64-gcc PROGRAM_NAME=vlmcsd-MacOSX-x64-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.11" && \
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.* && \
|
|
||||||
make $REUSEOBJFLAGS vlmcsdmulti-MacOSX-x64-gcc MULTI_NAME=vlmcsdmulti-MacOSX-x64-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.11" && \
|
|
||||||
make $MAKEFLAGS vlmcsd-MacOSX-x64-threads-gcc THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x64-threads-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.11" && \
|
make $MAKEFLAGS vlmcsd-MacOSX-x64-threads-gcc THREADS=1 PROGRAM_NAME=vlmcsd-MacOSX-x64-threads-gcc CC=gcc-5 CFLAGS="$CFGCC" PLATFORMFLAGS="-m64 -march=core2 -mmacosx-version-min=10.11" && \
|
||||||
|
|
||||||
# Sign the iOS binaries
|
# Sign the iOS binaries
|
||||||
@ -88,7 +68,7 @@ sudo mkdir -p /usr/local/share/man/man5
|
|||||||
|
|
||||||
sudo cp -p vlmcsd.8 /usr/local/share/man/man8
|
sudo cp -p vlmcsd.8 /usr/local/share/man/man8
|
||||||
sudo cp -p vlmcs.1 vlmcsdmulti.1 /usr/local/share/man/man1
|
sudo cp -p vlmcs.1 vlmcsdmulti.1 /usr/local/share/man/man1
|
||||||
sudo cp -p vlmcsd.7 /usr/local/share/man/man7
|
sudo cp -p vlmcsd-floppy.7 vlmcsd.7 /usr/local/share/man/man7
|
||||||
sudo cp -p vlmcsd.ini.5 //usr/local/share/man/man5
|
sudo cp -p vlmcsd.ini.5 //usr/local/share/man/man5
|
||||||
|
|
||||||
# Copy the stuff to distribution server
|
# Copy the stuff to distribution server
|
||||||
|
12
make_solaris
12
make_solaris
@ -10,7 +10,7 @@ fi
|
|||||||
|
|
||||||
SOLARIS_VERSION=`uname -v`
|
SOLARIS_VERSION=`uname -v`
|
||||||
|
|
||||||
rm -f vlmcsd-* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
rm -f vlmcsd-Solaris* vlmcs-* vlmcsdmulti-* *_all.* 2>/dev/null
|
||||||
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
rm -f vlmcsdmulti vlmcsd vlmcs 2>/dev/null
|
||||||
|
|
||||||
MAKEFLAGS="-B -j`nproc`"
|
MAKEFLAGS="-B -j`nproc`"
|
||||||
@ -24,9 +24,7 @@ LF="-fwhole-program -Wl,-z,norelro -Wl,--hash-style=sysv -Wl,--build-id=none"
|
|||||||
if [ "$CAT" != "" ]; then
|
if [ "$CAT" != "" ]; then
|
||||||
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld vlmcs-Solaris$SOLARIS_VERSION-x86 vlmcsd-Solaris$SOLARIS_VERSION-x86 vlmcsdmulti-Solaris$SOLARIS_VERSION-x86 CLIENT_NAME=vlmcs-Solaris$SOLARIS_VERSION-x86 PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x86 MULTI_NAME=vlmcsdmulti-Solaris$SOLARIS_VERSION-x86 CC=gcc CFLAGS="$CF" LDFLAGS="$LF"
|
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld vlmcs-Solaris$SOLARIS_VERSION-x86 vlmcsd-Solaris$SOLARIS_VERSION-x86 vlmcsdmulti-Solaris$SOLARIS_VERSION-x86 CLIENT_NAME=vlmcs-Solaris$SOLARIS_VERSION-x86 PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x86 MULTI_NAME=vlmcsdmulti-Solaris$SOLARIS_VERSION-x86 CC=gcc CFLAGS="$CF" LDFLAGS="$LF"
|
||||||
else
|
else
|
||||||
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld CLIENT_NAME=vlmcs-Solaris$SOLARIS_VERSION-x86 PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x86 CC=gcc CFLAGS="$CF" LDFLAGS="$LF"
|
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld MULTI_NAME=vlmcsdmulti-Solaris$SOLARIS_VERSION-x86 CLIENT_NAME=vlmcs-Solaris$SOLARIS_VERSION-x86 PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x86 CC=gcc CFLAGS="$CF" LDFLAGS="$LF" allmulti
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.*
|
|
||||||
gmake $REUSEOBJFLAGS LD_ALTEXEC=/usr/bin/gld vlmcsdmulti-Solaris$SOLARIS_VERSION-x86 MULTI_NAME=vlmcsdmulti-Solaris$SOLARIS_VERSION-x86 CC=gcc CFLAGS="$CF" LDFLAGS="$LF"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld vlmcsd-Solaris$SOLARIS_VERSION-x86-threads PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x86-threads CC=gcc THREADS=1 CFLAGS="$CF" LDFLAGS="-lpthread $LF"
|
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld vlmcsd-Solaris$SOLARIS_VERSION-x86-threads PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x86-threads CC=gcc THREADS=1 CFLAGS="$CF" LDFLAGS="-lpthread $LF"
|
||||||
@ -39,9 +37,7 @@ LF="$LF -Wl,-melf_x86_64_sol2"
|
|||||||
if [ "$CAT" != "" ]; then
|
if [ "$CAT" != "" ]; then
|
||||||
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld vlmcsdmulti-Solaris$SOLARIS_VERSION-x64 vlmcs-Solaris$SOLARIS_VERSION-x64 vlmcsd-Solaris$SOLARIS_VERSION-x64 MULTI_NAME=vlmcsdmulti-Solaris$SOLARIS_VERSION-x64 CLIENT_NAME=vlmcs-Solaris$SOLARIS_VERSION-x64 PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x64 CC=gcc CFLAGS="$CF" LDFLAGS="$LF" PLATFORMFLAGS="-m64"
|
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld vlmcsdmulti-Solaris$SOLARIS_VERSION-x64 vlmcs-Solaris$SOLARIS_VERSION-x64 vlmcsd-Solaris$SOLARIS_VERSION-x64 MULTI_NAME=vlmcsdmulti-Solaris$SOLARIS_VERSION-x64 CLIENT_NAME=vlmcs-Solaris$SOLARIS_VERSION-x64 PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x64 CC=gcc CFLAGS="$CF" LDFLAGS="$LF" PLATFORMFLAGS="-m64"
|
||||||
else
|
else
|
||||||
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld CLIENT_NAME=vlmcs-Solaris$SOLARIS_VERSION-x64 PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x64 CC=gcc CFLAGS="$CF" LDFLAGS="$LF" PLATFORMFLAGS="-m64"
|
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld MULTI_NAME=vlmcsdmulti-Solaris$SOLARIS_VERSION-x64 CLIENT_NAME=vlmcs-Solaris$SOLARIS_VERSION-x64 PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x64 CC=gcc CFLAGS="$CF" LDFLAGS="$LF" PLATFORMFLAGS="-m64" allmulti
|
||||||
rm -f vlmcs.o vlmcsd.o vlmcsdmulti.o *_all.*
|
|
||||||
gmake $REUSEOBJFLAGS LD_ALTEXEC=/usr/bin/gld vlmcsdmulti-Solaris$SOLARIS_VERSION-x64 MULTI_NAME=vlmcsdmulti-Solaris$SOLARIS_VERSION-x64 CC=gcc CFLAGS="$CF" LDFLAGS="$LF" PLATFORMFLAGS="-m64"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld vlmcsd-Solaris$SOLARIS_VERSION-x64-threads PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x64-threads CC=gcc THREADS=1 CFLAGS="$CF" LDFLAGS="$LF -lpthread" PLATFORMFLAGS="-m64"
|
gmake $MAKEFLAGS LD_ALTEXEC=/usr/bin/gld vlmcsd-Solaris$SOLARIS_VERSION-x64-threads PROGRAM_NAME=vlmcsd-Solaris$SOLARIS_VERSION-x64-threads CC=gcc THREADS=1 CFLAGS="$CF" LDFLAGS="$LF -lpthread" PLATFORMFLAGS="-m64"
|
||||||
@ -54,4 +50,4 @@ gstrip -s --strip-unneeded --remove-section=.note.gnu.gold-version --remove-sect
|
|||||||
#sstrip -z vlmcs-* vlmcsd-*
|
#sstrip -z vlmcs-* vlmcsd-*
|
||||||
|
|
||||||
# Copy stuff to distribution server
|
# Copy stuff to distribution server
|
||||||
scp -p vlmcsd-* vlmcs-* vlmcsdmulti-* root@ubuntu64:x/binaries/Solaris/intel
|
scp -p vlmcsd-Sola* vlmcs-* vlmcsdmulti-* root@ubuntu64:x/binaries/Solaris/intel
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
rm -f cygkms*.dll libkms*.dll vlmcsd-* vlmcs-* vlmcsdmulti-* *_all.* vlmcsd.exe vlmcs.exe vlmcsdmulti.exe 2> /dev/null
|
rm -f cygkms*.dll libkms*.dll vlmcs-* vlmcsd-win* vlmcsd-cyg* vlmcsdmulti-* *_all.* vlmcsd.exe vlmcs.exe vlmcsdmulti.exe 2> /dev/null
|
||||||
|
|
||||||
export CAT=2
|
export CAT=2
|
||||||
export VERBOSE=3
|
export VERBOSE=3
|
||||||
@ -73,12 +73,12 @@ mkdir -p /usr/share/man/man1
|
|||||||
mkdir -p /usr/share/man/man7
|
mkdir -p /usr/share/man/man7
|
||||||
mkdir -p /usr/share/man/man5
|
mkdir -p /usr/share/man/man5
|
||||||
|
|
||||||
cp -p vlmcsd.7 /usr/share/man/man7
|
cp -p vlmcsd.7 vlmcsd-floppy.7 /usr/share/man/man7
|
||||||
cp -p vlmcsd.8 /usr/share/man/man8
|
cp -p vlmcsd.8 /usr/share/man/man8
|
||||||
cp -p vlmcsd.ini.5 /usr/share/man/man5
|
cp -p vlmcsd.ini.5 /usr/share/man/man5
|
||||||
cp -p vlmcs.1 vlmcsdmulti.1 /usr/share/man/man1
|
cp -p vlmcs.1 vlmcsdmulti.1 /usr/share/man/man1
|
||||||
|
|
||||||
bzip2 -f /usr/share/man/man5/vlmcsd.ini.5 /usr/share/man/man7/vlmcsd.7 /usr/share/man/man8/vlmcsd.8 /usr/share/man/man1/vlmcs.1 /usr/share/man/man1/vlmcsdmulti.1 &
|
bzip2 -f /usr/share/man/man7/vlmcsd-floppy.7 /usr/share/man/man5/vlmcsd.ini.5 /usr/share/man/man7/vlmcsd.7 /usr/share/man/man8/vlmcsd.8 /usr/share/man/man1/vlmcs.1 /usr/share/man/man1/vlmcsdmulti.1 &
|
||||||
|
|
||||||
# Copy stuff to distribution server
|
# Copy stuff to distribution server
|
||||||
scp -p vlmcsd-* vlmcs-* vlmcsdmulti-* *.dll root@ubuntu64:x/binaries/Windows/intel
|
scp -p vlmcsd-cyg* vlmcsd-Win* vlmcs-* vlmcsdmulti-* *.dll root@ubuntu64:x/binaries/Windows/intel
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <semaphore.h>
|
//#include <semaphore.h>
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
#define MAX_KMSAPPS 3
|
#define MAX_KMSAPPS 3
|
||||||
|
6
types.h
6
types.h
@ -37,6 +37,12 @@
|
|||||||
#endif // _WIN32
|
#endif // _WIN32
|
||||||
|
|
||||||
|
|
||||||
|
#if __linux__ // Some versions of uclibc do not define IP_FREEBIND in the correct header file
|
||||||
|
#ifndef IP_FREEBIND
|
||||||
|
#define IP_FREEBIND 15
|
||||||
|
#endif // IP_FREEBIND
|
||||||
|
#endif // __linux__
|
||||||
|
|
||||||
#if (IP_BINDANY || IP_FREEBIND || IPV6_BINDANY || IP_NONLOCALOK) && !defined(NO_FREEBIND) && !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS)
|
#if (IP_BINDANY || IP_FREEBIND || IPV6_BINDANY || IP_NONLOCALOK) && !defined(NO_FREEBIND) && !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS)
|
||||||
#define HAVE_FREEBIND 1
|
#define HAVE_FREEBIND 1
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!-- Creator : groff version 1.22.3 -->
|
<!-- Creator : groff version 1.22.3 -->
|
||||||
<!-- CreationDate: Sun Jun 5 14:31:10 2016 -->
|
<!-- CreationDate: Fri Jun 17 14:16:33 2016 -->
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
"http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
|
BIN
vlmcs.1.pdf
BIN
vlmcs.1.pdf
Binary file not shown.
292
vlmcsd-floppy.7
Normal file
292
vlmcsd-floppy.7
Normal file
@ -0,0 +1,292 @@
|
|||||||
|
.mso www.tmac
|
||||||
|
.TH "VLMCSD-FLOPPY" 7 "June 2016" "Hotbird64" "KMS Activation Manual"
|
||||||
|
.LO 8
|
||||||
|
|
||||||
|
.SH NAME
|
||||||
|
floppy144.vfd \- a bootable floppy disk with Linux and \fBvlmcsd\fR(8)
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
\fBfloppy144.vfd\fR is an image of a bootable floppy that contains a minimal version of Linux and \fBvlmcsd\fR(8). It requires only 16 MB of RAM. Its primary purpose is to run \fBvlmcsd\fR(8) in a small virtual machine which makes it easy to use \fBvlmcsd\fR(8) to activate the virtual machine's host computer which is not possible in Windows 8.1 and up. The floppy image is a standard 3,5" floppy with 1.44 MB storage. It is formatted with a FAT12 filesystem. The floppy can be mounted to apply several customizations.
|
||||||
|
|
||||||
|
.SH SUPPORTED HYPERVISORS
|
||||||
|
The floppy image has been tested with the following hypervisors:
|
||||||
|
.IP
|
||||||
|
VMWare, VirtualBox, Hyper-V and QEMU
|
||||||
|
|
||||||
|
.RE
|
||||||
|
Others are likely to work.
|
||||||
|
|
||||||
|
.SH SETUP
|
||||||
|
Create a new virtual machine. Assign 16 MB of RAM. Add a floppy drive and attach \fBfloppy144.vfd\fR to this drive. Do not create a virtual hard disk. Setup the virtual machine to boot from a floppy drive (VirtualBox has floppy boot disabled by default). If possible, setup a virtual machine with plain old BIOS (not UEFI). If you created an UEFI virtual machine, enable the compatibility support mode (CSM) to allow a BIOS compatible boot. Set number of CPUs to 1. The Linux kernel is not capable of SMP. Remove IDE, SATA, SCSI and USB support if possible. The Linux kernel can't handle this and ignores any devices connected to these buses.
|
||||||
|
|
||||||
|
Setup an ethernet card. The following models are supported:
|
||||||
|
.IP
|
||||||
|
Intel PRO/1000
|
||||||
|
.br
|
||||||
|
AMD PCNET III
|
||||||
|
.br
|
||||||
|
AMD PCNET32
|
||||||
|
.br
|
||||||
|
VMWare vmxnet3 (paravirtualized driver used by VMWare)
|
||||||
|
.br
|
||||||
|
virtio (paravirtualized driver used by VirtualBox, QEMU, KVM and lguest)
|
||||||
|
|
||||||
|
.RE
|
||||||
|
Most hypervisors emulate an Intel PRO/1000 or AMD PCNET32 by default. Selecting a paravirtualized driver slightly improves performance. In VirtualBox you can simply select virtio in the network configuration dialog. VMWare requires that you add or change the VMX file. Use 'ethernet0.virtualDev\ =\ "vmxnet3"' in your VMWare config file.
|
||||||
|
|
||||||
|
If you are using QEMU, you must also setup a TAP adapter. Port redirection does not work to activate your own computer.
|
||||||
|
|
||||||
|
.SH CONFIGURATION
|
||||||
|
\fBfloppy144.vfd\fR can be customized to fit your needs. This is done by editing the file syslinux.cfg on the floppy image. The floppy image must be mounted. Under Linux you can simply attach \fBfloppy144.vfd\fR to a loop device which is mountable like any other block device. For Windows you must use some software that allows mounting a floppy image, e.g.
|
||||||
|
.URL http://www.osforensics.com/tools/mount-disk-images.html OSFMount ""
|
||||||
|
|
||||||
|
OSFMount works under all Windows versions beginning with Windows XP up to Windows 10 (32- and 64-bit).
|
||||||
|
|
||||||
|
The default syslinux.cfg file looks like this:
|
||||||
|
.IP
|
||||||
|
.br
|
||||||
|
.SM
|
||||||
|
prompt 0
|
||||||
|
.br
|
||||||
|
.SM
|
||||||
|
TIMEOUT 50
|
||||||
|
.br
|
||||||
|
.SM
|
||||||
|
default dhcp
|
||||||
|
.br
|
||||||
|
|
||||||
|
.SM
|
||||||
|
LABEL dhcp
|
||||||
|
.br
|
||||||
|
.SM
|
||||||
|
\0\0KERNEL bzImage
|
||||||
|
.br
|
||||||
|
.SM
|
||||||
|
\0\0APPEND vga=773 quiet initrd=initrd KBD=us LISTEN=[::]:1688,0.0.0.0:1688 TZ=UTC0 IPV4_CONFIG=DHCP NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd INETD=Y WINDOWS=06401-00206-271-395032-03-1033-9600.0000-1652016 OFFICE2010=06401-00096-199-204970-03-1033-9600.0000-1652016 OFFICE2013=06401-00206-234-921934-03-1033-9600.0000-1652016 HWID=36:4F:46:3A:88:63:D3:5F
|
||||||
|
|
||||||
|
.SM
|
||||||
|
LABEL static
|
||||||
|
.br
|
||||||
|
.SM
|
||||||
|
\0\0KERNEL bzImage
|
||||||
|
.br
|
||||||
|
.SM
|
||||||
|
\0\0APPEND vga=773 quiet initrd=initrd KBD=fr LISTEN=[::]:1688,0.0.0.0:1688 TZ=CET-1CEST,M3.5.0,M10.5.0/3 IPV4_CONFIG=STATIC IPV4_ADDRESS=192.168.20.123/24 IPV4_GATEWAY=192.168.20.2 IPV4_DNS1=192.168.20.2 IPV4_DNS2=NONE NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd INETD=Y
|
||||||
|
|
||||||
|
.PP
|
||||||
|
There are two configurations in this files: \fIdhcp\fR (for configuring the IPv4 network via DHCP) and \fIstatic\fR (for a static IPv4 configuration). The kernel always boots the \fIdhcp\fR configuration without asking (lines 'prompt 0' and 'default dhcp'). You can simply change the default configuration to \fIstatic\fR and then customize the APPEND line in the \fIstatic\fR configuration. For more details how to customize the syslinux.cfg file see \fBsyslinux\fR(1).
|
||||||
|
|
||||||
|
Each APPPEND line contains one or more items seperated by spaces. \fBAll items are case-sensitive\fR. The following parameters can be customized:
|
||||||
|
|
||||||
|
.IP \fBvga=\fIvesa-video-mode\fR
|
||||||
|
Sets the VESA display mode for the virtual machine. The parameter is not optional. If you ommit it, you will not see anything on the screen. 773 means 1024x768 with 256 colors. See
|
||||||
|
.URL https://en.wikipedia.org/wiki/VESA_BIOS_Extensions#Linux_video_mode_numbers Wikipedia ""
|
||||||
|
for more video modes. Note that all 16 color (4-bit) modes will not work. Use 8-bit (256 colors), 16-bit (65536 colors), 24-bit and 32-bit (> 16 Million colors) only. All modes above 1280x1024 are non-VESA-standard and vary for all (virtual) graphic cards.
|
||||||
|
|
||||||
|
.IP \fBquiet\fR
|
||||||
|
This causes the kernel not display the its log during boot. You may omit \fBquiet\fR but it doesn't make much sense. The boot log is actually very verbose and scrolls away from screen quickly. If any errors occur during boot, they will be displayed even if \fBquiet\fR is present in the APPEND line. You may evaluate the complete boot log later by using the dmesg command or the menu on /dev/tty8.
|
||||||
|
|
||||||
|
.IP "\fBinitrd=\fIinitial-ram-disk-file\fR"
|
||||||
|
This defines the initial ram disk that the kernel will read. There is only one initial ram disk on the floppy thus leave \fIinitrd=initrd\fR as it is.
|
||||||
|
|
||||||
|
.IP "\fBKBD=\fIkeyboard-layout-name\fR"
|
||||||
|
This allows you to select the keyboard layout. \fIkeyboard-layout-name\fR is usually the ISO 3166-1 (top level domain) code for a country. A list of valid \fIkeyboard-layout-name\fRs can be accessed via the menu system on /dev/tty8 (press ALT-F8). Note, that this is a keyboard driver only. There is no Unicode font support in \fBfloppy144.vfd\fR (due to the fact that the kernel uses a generic VESA framebuffer device only). Characters beyond ASCII work for Western European languages only but not Eastern European, Greek, Cyrillic, Arabic, Hebrew, CJK and other languages. There is no need in \fBfloppy144.vfd\fR to enter any characters outside ASCII. The purpose of the keyboard maps are that you will find characters like dash, backslash, brackets, braces, etc. at the usual place on your keyboard.
|
||||||
|
|
||||||
|
.IP "\fBLISTEN=\fRPRIVATE[:\fItcp-port\fR] | \fIip-address\fR[:\fItcp-port\fR][,\fIip-address\fR[:\fItcp-port\fR]][,...]"
|
||||||
|
One or more combinations of IP addresses and optional TCP port seperated by commas that \fBvlmcsd\fR(8) should listen on or PRIVATE to listen on all private IP addresses only. The default port is 1688. If you use an explicit port number, append it to the IP address seperated by a colon. If you use a port number and the IP address contains colons, you must enclose the IP address in brackets. For example \fI192.168.0.2,[fd00::dead:beef]:5678\fR causes \fBvlmcsd\fR(8) to listen on 192.168.0.2 port 1688 and fd00::dead:beef port 5678.
|
||||||
|
|
||||||
|
.IP "\fBWINDOWS=\fIepid\fR"
|
||||||
|
Defines the ePID that is used for Windows activations. If you ommit this parameter, vlmcsd generates a random ePID when it is started.
|
||||||
|
|
||||||
|
.IP "\fBOFFICE2010=\fIepid\fR"
|
||||||
|
Defines the ePID that is used for Office 2010 activations. If you ommit this parameter, \fBvlmcsd\fR(8) generates a random ePID when it is started.
|
||||||
|
|
||||||
|
.IP "\fBOFFICE2013=\fIepid\fR"
|
||||||
|
Defines the ePID that is used for Office (versions 2013 and greater) activations. If you ommit this parameter, \fBvlmcsd\fR(8) generates a random ePID when it is started.
|
||||||
|
|
||||||
|
.IP "\fBHWID=\fIhwid\fR"
|
||||||
|
Defines the HwId that is sent to clients. \fIhwid\fR must be specified as 16 hex digits that are interpreted as a series of 8 bytes (big endian). Any character that is not a hex digit will be ignored. This is for better readability.
|
||||||
|
|
||||||
|
.IP "\fBTZ=\fIposix-time-zone-string\fR"
|
||||||
|
Set the time zone to \fIposix-time-zone-string\fR. It must conform to the
|
||||||
|
.URL http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html POSIX
|
||||||
|
specification. Simplified time zone strings like "Europe/London" or "America/Detroit" are not allowed. This has the very simple reason that there is no space on the floppy to store the time zone database.
|
||||||
|
|
||||||
|
The string \fICET-1CEST,M3.5.0,M10.5.0/3\fR (most countries in Europe) reads as follows:
|
||||||
|
.RS 7
|
||||||
|
.IP \fICET\fR 10
|
||||||
|
The standard (winter) time zone has the name CET.
|
||||||
|
.IP \fI-1\fR 10
|
||||||
|
The standard time zone is one hour east of UTC. Negative numbers are east of UTC. Positive numbers are west of UTC.
|
||||||
|
.IP \fICEST\fR 10
|
||||||
|
The daylight saving (summer) time zone has the name CEST.
|
||||||
|
.IP \fIM3.5.0\fR 10
|
||||||
|
Daylight saving time starts in the 3rd month (March) on the 5th (=last) occurence of weekday 0 (Sunday) at 2 o'clock (2 o'clock is a default value).
|
||||||
|
.IP \fIM10.5.0/3\fR 10
|
||||||
|
Daylight saving time ends in the 10th month (October) on the 5th (=last) occurence of weekday 0 (Sunday) at 3 o'clock.
|
||||||
|
.RE
|
||||||
|
.IP
|
||||||
|
If you don't have daylight saving time, things are easier. For Chinese Standard Time for example, just use \fICST-8\fR as the time zone string.
|
||||||
|
|
||||||
|
On a Linux desktop system, you can use a command like \fBstrings\ /usr/share/zoneinfo/America/New_York\ |\ tail\ -n1\fR. This should return \fIEST5EDT,M3.2.0,M11.1.0\fR. You can use the returned string for the \fBTZ=\fIposix-time-zone-string\fR parameter.
|
||||||
|
|
||||||
|
.IP "\fBIPV4_CONFIG=\fRDHCP | STATIC\fR"
|
||||||
|
This determines how you want to configure IPv4 networking. If you use \fBIPV4_CONFIG=\fRSTATIC, you must supply additional paramaters to the APPEND command line.
|
||||||
|
|
||||||
|
.IP "\fBIPV4_ADDRESS=\fIipv4-address\fR/\fICIDR-mask\fR"
|
||||||
|
Use \fIipv4-address\fR with netmask \fICIDR-mask\fR for static IPv4 configuration. The netmask must not be ommitted. For IPv4 address 192.168.12.17 with a netmask of 255.255.255.0 use \fI192.168.12.17/24\fR. For IPv4 address 10.4.0.8 with a netmask of 255.255.0.0 use 10.4.0.8/16. This paramater is ignored, if you used \fBIPV4_CONFIG=\fRDHCP.
|
||||||
|
|
||||||
|
.IP "\fBIPV4_GATEWAY=\fIipv4-address\fR | NONE"
|
||||||
|
Use \fIipv4-address\fR as the default gateway. This is usually the IPv4 address of your router. You may specify NONE explicitly for no gateway. In this case your virtual machine is only visible on its local LAN. This paramater is ignored, if you used \fBIPV4_CONFIG=\fRDHCP.
|
||||||
|
|
||||||
|
.IP "\fBIPV4_DNS1=\fIipv4-address\fR | NONE"
|
||||||
|
Use \fIipv4-address\fR as the primary name server. In home networks this is often the IPv4 address of your router. You may specify NONE explicitly. If you specified NONE for both \fBIPV4_DNS1=\fR and \fBIPV4_DNS2=\fR, your virtual machine cannot resolve host names to IP addresses. While \fBvlmcsd\fR(8) works perfectly without DNS servers, you must use IP addresses when referring to a host, e.g. for specifying an NTP server. This paramater is ignored, if you used \fBIPV4_CONFIG=\fRDHCP.
|
||||||
|
|
||||||
|
.IP "\fBIPV4_DNS2=\fIipv4-address\fR | NONE"
|
||||||
|
Use \fIipv4-address\fR as the secondary name server. It serves as a backup if the primary name server is not available. Home networks often don't have a secondary name server. In this case set this to NONE. This paramater is ignored, if you used \fBIPV4_CONFIG=\fRDHCP.
|
||||||
|
|
||||||
|
.IP "\fBNTP_SERVER=\fIhost-name\fR | \fIipv4-address\fR | NONE"
|
||||||
|
This sets the name of a time server using the NTP protocol. If your virtualization environment reliably provides time, you can set this to NONE. Don't use a public time service like pool.ntp.org or time.nist.gov if you have a (at least somewhat reliable) NTP server in your LAN.
|
||||||
|
|
||||||
|
.IP "\fBHOST_NAME=\fIhost-name\fR"
|
||||||
|
Sets the local host name for your virtual machine. It can be a single name or a fully-qualified domain name FQDN. If you used \fBIPV4_CONFIG=\fRDHCP and your DHCP server returns a domain name, the domain part of an FQDN will be replaced by that name. This host name or host part of an FQDN will not replaced by a host name returned via DHCP. The host name is not important for the operation of \fBfloppy144.vfd\fR.
|
||||||
|
|
||||||
|
.IP "\fBROOT_PASSWORD=\fIpassword\fR"
|
||||||
|
Sets the password of the root user.
|
||||||
|
|
||||||
|
.IP "\fBUSER_NAME=\fIusername\fR"
|
||||||
|
Sets the name of for a general user with no special privileges. This user can login but can't do much.
|
||||||
|
|
||||||
|
.IP "\fBUSER_PASSWORD=\fIpassword\fR"
|
||||||
|
Sets the password for the user defined by \fBUSER_NAME=\fIusername\fR.
|
||||||
|
|
||||||
|
.IP "\fBGUEST_PASSWORD=\fIpassword\fR"
|
||||||
|
Sets the password for the pre-defined guest user. This user has the same priviliges (none) as the user defined by \fBUSER_NAME=\fIusername\fR.
|
||||||
|
|
||||||
|
.IP "\fBINETD=\fRY | N"
|
||||||
|
\fBINETD=\fRY specifies that \fBinetd\fR(8) should automatically be started. That means you can telnet and ftp to your virtual machine.
|
||||||
|
|
||||||
|
.SH OPERATION
|
||||||
|
|
||||||
|
.SS Diskless System
|
||||||
|
The \fBfloppy144.vfd\fR virtual machine is a diskless system that works entirely from RAM. The file system is actually a RAM disk that is created from the \fBinitrd\fR(4) file on the floppy image.
|
||||||
|
|
||||||
|
Anything you'll do from inside the virtual machine, for instance editing a config file, will be lost when you reboot the machine. So, if you ever asked yourself if \fBrm -fr /\fR (root privileges required) really deletes all files from all mounted partitions, the \fBfloppy144.vfd\fR VM is the right place to test it (Yes, it does).
|
||||||
|
|
||||||
|
The VM uses a RAM disk, because the Linux kernel had to be stripped down to essential features to fit on a 1.44 MB floppy. It has no floppy driver, no disk file system drivers and no block layer (cannot use disks of any type).
|
||||||
|
|
||||||
|
.SS System startup
|
||||||
|
The kernel boots up very quickly and the init script (/sbin/init) waits 5 seconds. In these 5 seconds you can:
|
||||||
|
.IP
|
||||||
|
Press 'm' to manually enter the time zone and the IPv4 parameters. These will be queried interactively.
|
||||||
|
.br
|
||||||
|
Press 't' to manually enter the time zone only.
|
||||||
|
.br
|
||||||
|
Press 's' to escape to a shell.
|
||||||
|
.RE
|
||||||
|
|
||||||
|
If you don't want to 5 seconds for continuing the init process, you can press any other key to speed things up. At the end of the init script you should see that\fBvlmcsd\fR(8) has started. You should also see the IP addresses and all user names and passwords.
|
||||||
|
|
||||||
|
.SS Logging into the system
|
||||||
|
There are 5 local logins provided on /dev/tty2 to /dev/tty6. To switch to these logins, simply press ALT\-F2 to ALT\-F6. To return to the console on /dev/tty1, press ALT\-F1. If \fBinetd\fR(8) is running you can also use \fBtelnet\fR(1). This allows you use a terminal program (e.g. putty) that can utilize your keyboard layout, can be resized and has full UTF-8 support. The local terminals support US keyboard layout only. Please be aware that \fBtelnet\fR(1) is unencrypted and everything including passwords is transmitted in clear text. There is not enough space for an ssh server like \fBsshd\fR(8) or \fBdropbear\fR(8).
|
||||||
|
|
||||||
|
The floppy image only provides basic Unix commands. Type \fIbusybox\fR or \fIll /bin\fR to get a list. The only editor available is \fBvi\fR(1). If you don't like vi, you may transfer config files via \fBftp\fR(1) edit them with the editor of your choice and transfer them back to the \fBfloppy144.vfd\fR VM.
|
||||||
|
|
||||||
|
.SS The menu system
|
||||||
|
You'll find a menu system on /dev/tty8 (press ALT\-F8 to see it). It allows you performing some administrative tasks and to view various system information. It is mainly for users that do not have much experience with Unix commands.
|
||||||
|
|
||||||
|
.IP "\fB1) (Re)start vlmcsd\fR"
|
||||||
|
Starts or restarts \fBvlmcsd\fR(8). This is useful if you changed \fB/etc/vlmcsd.ini\fR(5).
|
||||||
|
|
||||||
|
.IP "\fB2) Stop vlmcsd\fR"
|
||||||
|
Stops \fBvlmcsd\fR(8).
|
||||||
|
|
||||||
|
.IP "\fB3) (Re)start inetd\fR"
|
||||||
|
Starts or restarts \fBinetd\fR(8). If \fBinetd\fR(8) is restarted, current clients connected via \fBtelnet\fR(1) or \fBftp\fR(1) will \fBnot\fR be dropped. They can continue their sessions. This is useful if you changed \fB/etc/inetd.conf\fR(5).
|
||||||
|
|
||||||
|
.IP "\fB4) Stop inet\fR"
|
||||||
|
Stops \fBinetd\fR(8). All clients connected via \fBtelnet\fR(1) or \fBftp\fR(1) will be dropped immediately.
|
||||||
|
|
||||||
|
.IP "\fB5) Change the time zone\fR"
|
||||||
|
Just in case you missed pressing 't' during system startup. This also restarts \fBvlmcsd\fR(8) if it was running to notify it that the time zone has changed. Restarting \fBvlmcsd\fR(8) allows currently connected clients to finish their activation.
|
||||||
|
|
||||||
|
.IP "\fBk) Change keyboard layout\fR"
|
||||||
|
This allows you to select a different keyboard layout.
|
||||||
|
|
||||||
|
.IP "\fB6) Show all kernel boot parameters\fR"
|
||||||
|
Shows all parameters passed to the kernel via syslinux.cfg. If you experience any unexpected behavior, you can use this to check if your APPEND line in syslinux.cfg is correct. The output is piped through \fBless(1)\fR. So press 'q' to return to the menu.
|
||||||
|
|
||||||
|
.IP "\fB7) Show boot log (dmesg)\fR"
|
||||||
|
Shows the boot log of the kernel. The output is piped through \fBless(1)\fR. So press 'q' to return to the menu.
|
||||||
|
|
||||||
|
.IP "\fB8) Show TCP/IP configuration\fR"
|
||||||
|
Shows the TCP/IP configuration, listening sockets and current TCP and UDP connections. Useful, if you problems with net connectivity. The output is piped through \fBless(1)\fR. So press 'q' to return to the menu.
|
||||||
|
|
||||||
|
.IP "\fB9) Show running processes\fR"
|
||||||
|
Shows all processes including memory and CPU usage. Display will updated every second. Press 'q' or CTRL-C to return to the menu.
|
||||||
|
|
||||||
|
.IP "\fBs) Shutdown\fR"
|
||||||
|
Shuts down the \fBfloppy144.vfd\fR virtual machine. Proper shutdown is not required. It is ok to use a hard power off in your virtualization program.
|
||||||
|
|
||||||
|
.IP "\fBr) Reboot\fR"
|
||||||
|
Reboots the \fBfloppy144.vfd\fR virtual machine. Proper reboot is not required. It is ok to use a hard reset in your virtualization program.
|
||||||
|
|
||||||
|
.SH PERMANENT CHANGES OF INITRD
|
||||||
|
If you want to change any file or script of the file system (e.g. the init script /sbin/init or /etc/vlmcsd.ini), you'll need to mount the floppy image, unpack the \fBinitrd\fR(4) file, make any modfications you like, create a new \fBinitrd\fR(4) file and copy it to the mounted floppy.
|
||||||
|
|
||||||
|
To unpack the \fBinitrd\fR(4) file you'll need \fBxz\fR(1) (or \fBlzma\fR(1) on older unix-like OSses) and \fBcpio\fR(1). These can be installed using your package manager on all major distros. It is ok to use the BSD version of \fBcpio\fR(1). No need to get the GNU version for BSD users.
|
||||||
|
Provided the floppy is mounted in /mnt/floppy do the following:
|
||||||
|
.IP "Create an empty directory"
|
||||||
|
mkdir ~/vlmcsd-floppy-initrd
|
||||||
|
.IP "cd into that directory"
|
||||||
|
cd ~/vlmcsd-floppy-initrd
|
||||||
|
.IP "Unpack initrd"
|
||||||
|
cat /mnt/floppy/initrd | unlzma | cpio -i
|
||||||
|
|
||||||
|
.RE
|
||||||
|
After applying your changes build a new \fBinitrd\fR(4) file:
|
||||||
|
|
||||||
|
.IP "cd into your directory"
|
||||||
|
cd ~/vlmcsd-floppy-initrd
|
||||||
|
.IP "Create the packed file"
|
||||||
|
find . | cpio -o -H newc | lzma > /mnt/floppy/initrd
|
||||||
|
|
||||||
|
.RE
|
||||||
|
Do not try to use 'lzma -9' to achive better compression. The kernel can't read the resulting file. While customizing the \fBinitrd\fR(4) file works on almost any unix-like OS, it does not work on Windows even not with Cygwin. The reason is that the NTFS file system can't handle uids and gids. These cannot be preserved when unpacking the \fBcpio\fR(1) archive to NTFS. If you use the WSL subsystem of Windows 10 Redstone (Anniversary Update) and later, you must make sure to unpack the \fBinitrd\fR(4) file to a directory on VolFs (normally everything that is \fBnot\fR mounted under /mnt). The \fBinitrd\fR(4) file can be on a VolFs or DriveFs.
|
||||||
|
|
||||||
|
.SH FAQ
|
||||||
|
.SS On what distro is the floppy image based?
|
||||||
|
None. Besides the boot loader \fBldlinux.sys\fR, there are only three binaries: The Linux kernel \fBbzImage\fR, \fBbusybox\fR(1) and \fBvlmcsdmulti-x86-musl-static\fR. \fBbzImage\fR and \fBbusybox\fR(1) have been compiled with carefully selected configuration parameters not found in any distro. This was neccesary to fit everything on a 1.44 MB floppy.
|
||||||
|
|
||||||
|
.SS Why is a rather old Linux kernel (3.12) used?
|
||||||
|
Linux 3.12 is the last kernel that can be booted with 16 MB of RAM. Beginning with Linux 3.13 it requires much more memory (about 80 MB) to boot. The floppy image is regularly tested with newer kernels. Everything works except that you need to assign much more main memory to the virtual machine.
|
||||||
|
|
||||||
|
.SS Can the floppy be booted on bare metal?
|
||||||
|
Basically yes. However, only Intel Pro/1000 and AMD PCNET32 ethernet cards are supported by the kernel. In addition there is no USB support compiled into the kernel. That means you can only use an IBM AT or IBM PS/2 keyboard which are not available on newer hardware.
|
||||||
|
|
||||||
|
.SH FILES
|
||||||
|
\fBsyslinux.cfg\fR, \fBvlmcsd.ini\fR(5)
|
||||||
|
|
||||||
|
.SH BUGS
|
||||||
|
IPv6 cannot be configured with static or manual parameters.
|
||||||
|
.br
|
||||||
|
DHCPv6 is not supported.
|
||||||
|
.br
|
||||||
|
\'ip route add ...' does not work. Use 'route add ...' instead.
|
||||||
|
|
||||||
|
.SH AUTHOR
|
||||||
|
\fBfloppy144.vfd\fR has been created by Hotbird64
|
||||||
|
|
||||||
|
.SH CREDITS
|
||||||
|
Linus Torvalds et al. for the Linux kernel
|
||||||
|
.br
|
||||||
|
Erik Andersen et al. for the original uClibc
|
||||||
|
.br
|
||||||
|
Waldemar Brodkorb et al. for uClibc-ng
|
||||||
|
.br
|
||||||
|
Denys Vlasenko et al. for BusyBox
|
||||||
|
.br
|
||||||
|
H. Peter Anvin et al. for SYSLINUX
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
\fBvlmcsd\fR(8), \fBvlmcsd.ini\fR(5), \fBinitrd\fR(4), \fBbusybox\fR(1), \fBsyslinux(1)\fR
|
530
vlmcsd-floppy.7.dos.txt
Normal file
530
vlmcsd-floppy.7.dos.txt
Normal file
@ -0,0 +1,530 @@
|
|||||||
|
VLMCSD-FLOPPY(7) KMS Activation Manual VLMCSD-FLOPPY(7)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NAME
|
||||||
|
floppy144.vfd - a bootable floppy disk with Linux and vlmcsd(8)
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
floppy144.vfd is an image of a bootable floppy that contains a minimal
|
||||||
|
version of Linux and vlmcsd(8). It requires only 16 MB of RAM. Its pri‐
|
||||||
|
mary purpose is to run vlmcsd(8) in a small virtual machine which makes
|
||||||
|
it easy to use vlmcsd(8) to activate the virtual machine's host com‐
|
||||||
|
puter which is not possible in Windows 8.1 and up. The floppy image is
|
||||||
|
a standard 3,5" floppy with 1.44 MB storage. It is formatted with a
|
||||||
|
FAT12 filesystem. The floppy can be mounted to apply several customiza‐
|
||||||
|
tions.
|
||||||
|
|
||||||
|
|
||||||
|
SUPPORTED HYPERVISORS
|
||||||
|
The floppy image has been tested with the following hypervisors:
|
||||||
|
|
||||||
|
VMWare, VirtualBox, Hyper-V and QEMU
|
||||||
|
|
||||||
|
Others are likely to work.
|
||||||
|
|
||||||
|
|
||||||
|
SETUP
|
||||||
|
Create a new virtual machine. Assign 16 MB of RAM. Add a floppy drive
|
||||||
|
and attach floppy144.vfd to this drive. Do not create a virtual hard
|
||||||
|
disk. Setup the virtual machine to boot from a floppy drive (VirtualBox
|
||||||
|
has floppy boot disabled by default). If possible, setup a virtual
|
||||||
|
machine with plain old BIOS (not UEFI). If you created an UEFI virtual
|
||||||
|
machine, enable the compatibility support mode (CSM) to allow a BIOS
|
||||||
|
compatible boot. Set number of CPUs to 1. The Linux kernel is not capa‐
|
||||||
|
ble of SMP. Remove IDE, SATA, SCSI and USB support if possible. The
|
||||||
|
Linux kernel can't handle this and ignores any devices connected to
|
||||||
|
these buses.
|
||||||
|
|
||||||
|
Setup an ethernet card. The following models are supported:
|
||||||
|
|
||||||
|
Intel PRO/1000
|
||||||
|
AMD PCNET III
|
||||||
|
AMD PCNET32
|
||||||
|
VMWare vmxnet3 (paravirtualized driver used by VMWare)
|
||||||
|
virtio (paravirtualized driver used by VirtualBox, QEMU, KVM and
|
||||||
|
lguest)
|
||||||
|
|
||||||
|
Most hypervisors emulate an Intel PRO/1000 or AMD PCNET32 by default.
|
||||||
|
Selecting a paravirtualized driver slightly improves performance. In
|
||||||
|
VirtualBox you can simply select virtio in the network configuration
|
||||||
|
dialog. VMWare requires that you add or change the VMX file. Use 'eth‐
|
||||||
|
ernet0.virtualDev = "vmxnet3"' in your VMWare config file.
|
||||||
|
|
||||||
|
If you are using QEMU, you must also setup a TAP adapter. Port redi‐
|
||||||
|
rection does not work to activate your own computer.
|
||||||
|
|
||||||
|
|
||||||
|
CONFIGURATION
|
||||||
|
floppy144.vfd can be customized to fit your needs. This is done by
|
||||||
|
editing the file syslinux.cfg on the floppy image. The floppy image
|
||||||
|
must be mounted. Under Linux you can simply attach floppy144.vfd to a
|
||||||
|
loop device which is mountable like any other block device. For Windows
|
||||||
|
you must use some software that allows mounting a floppy image, e.g.
|
||||||
|
OSFMount ⟨http://www.osforensics.com/tools/mount-disk-images.html⟩
|
||||||
|
|
||||||
|
OSFMount works under all Windows versions beginning with Windows XP up
|
||||||
|
to Windows 10 (32- and 64-bit).
|
||||||
|
|
||||||
|
The default syslinux.cfg file looks like this:
|
||||||
|
|
||||||
|
prompt 0
|
||||||
|
TIMEOUT 50
|
||||||
|
default dhcp
|
||||||
|
|
||||||
|
LABEL dhcp
|
||||||
|
KERNEL bzImage
|
||||||
|
APPEND vga=773 quiet initrd=initrd KBD=us LIS‐
|
||||||
|
TEN=[::]:1688,0.0.0.0:1688 TZ=UTC0 IPV4_CONFIG=DHCP
|
||||||
|
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd
|
||||||
|
USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd
|
||||||
|
INETD=Y WINDOWS=06401-00206-271-395032-03-1033-9600.0000-1652016
|
||||||
|
OFFICE2010=06401-00096-199-204970-03-1033-9600.0000-1652016
|
||||||
|
OFFICE2013=06401-00206-234-921934-03-1033-9600.0000-1652016
|
||||||
|
HWID=36:4F:46:3A:88:63:D3:5F
|
||||||
|
|
||||||
|
LABEL static
|
||||||
|
KERNEL bzImage
|
||||||
|
APPEND vga=773 quiet initrd=initrd KBD=fr LIS‐
|
||||||
|
TEN=[::]:1688,0.0.0.0:1688 TZ=CET-1CEST,M3.5.0,M10.5.0/3
|
||||||
|
IPV4_CONFIG=STATIC IPV4_ADDRESS=192.168.20.123/24 IPV4_GATE‐
|
||||||
|
WAY=192.168.20.2 IPV4_DNS1=192.168.20.2 IPV4_DNS2=NONE
|
||||||
|
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd
|
||||||
|
USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd
|
||||||
|
INETD=Y
|
||||||
|
|
||||||
|
|
||||||
|
There are two configurations in this files: dhcp (for configuring the
|
||||||
|
IPv4 network via DHCP) and static (for a static IPv4 configuration).
|
||||||
|
The kernel always boots the dhcp configuration without asking (lines
|
||||||
|
'prompt 0' and 'default dhcp'). You can simply change the default con‐
|
||||||
|
figuration to static and then customize the APPEND line in the static
|
||||||
|
configuration. For more details how to customize the syslinux.cfg file
|
||||||
|
see syslinux(1).
|
||||||
|
|
||||||
|
Each APPPEND line contains one or more items seperated by spaces. All
|
||||||
|
items are case-sensitive. The following parameters can be customized:
|
||||||
|
|
||||||
|
|
||||||
|
vga=vesa-video-mode
|
||||||
|
Sets the VESA display mode for the virtual machine. The parame‐
|
||||||
|
ter is not optional. If you ommit it, you will not see anything
|
||||||
|
on the screen. 773 means 1024x768 with 256 colors. See Wikipedia
|
||||||
|
⟨https://en.wikipedia.org/wiki/
|
||||||
|
VESA_BIOS_Extensions#Linux_video_mode_numbers⟩ for more video
|
||||||
|
modes. Note that all 16 color (4-bit) modes will not work. Use
|
||||||
|
8-bit (256 colors), 16-bit (65536 colors), 24-bit and 32-bit (>
|
||||||
|
16 Million colors) only. All modes above 1280x1024 are non-VESA-
|
||||||
|
standard and vary for all (virtual) graphic cards.
|
||||||
|
|
||||||
|
|
||||||
|
quiet This causes the kernel not display the its log during boot. You
|
||||||
|
may omit quiet but it doesn't make much sense. The boot log is
|
||||||
|
actually very verbose and scrolls away from screen quickly. If
|
||||||
|
any errors occur during boot, they will be displayed even if
|
||||||
|
quiet is present in the APPEND line. You may evaluate the com‐
|
||||||
|
plete boot log later by using the dmesg command or the menu on
|
||||||
|
/dev/tty8.
|
||||||
|
|
||||||
|
|
||||||
|
initrd=initial-ram-disk-file
|
||||||
|
This defines the initial ram disk that the kernel will read.
|
||||||
|
There is only one initial ram disk on the floppy thus leave ini‐
|
||||||
|
trd=initrd as it is.
|
||||||
|
|
||||||
|
|
||||||
|
KBD=keyboard-layout-name
|
||||||
|
This allows you to select the keyboard layout. keyboard-layout-
|
||||||
|
name is usually the ISO 3166-1 (top level domain) code for a
|
||||||
|
country. A list of valid keyboard-layout-names can be accessed
|
||||||
|
via the menu system on /dev/tty8 (press ALT-F8). Note, that this
|
||||||
|
is a keyboard driver only. There is no Unicode font support in
|
||||||
|
floppy144.vfd (due to the fact that the kernel uses a generic
|
||||||
|
VESA framebuffer device only). Characters beyond ASCII work for
|
||||||
|
Western European languages only but not Eastern European, Greek,
|
||||||
|
Cyrillic, Arabic, Hebrew, CJK and other languages. There is no
|
||||||
|
need in floppy144.vfd to enter any characters outside ASCII. The
|
||||||
|
purpose of the keyboard maps are that you will find characters
|
||||||
|
like dash, backslash, brackets, braces, etc. at the usual place
|
||||||
|
on your keyboard.
|
||||||
|
|
||||||
|
|
||||||
|
LISTEN=PRIVATE[:tcp-port] | ip-address[:tcp-port][,ip-address[:tcp-
|
||||||
|
port]][,...]
|
||||||
|
One or more combinations of IP addresses and optional TCP port
|
||||||
|
seperated by commas that vlmcsd(8) should listen on or PRIVATE
|
||||||
|
to listen on all private IP addresses only. The default port is
|
||||||
|
1688. If you use an explicit port number, append it to the IP
|
||||||
|
address seperated by a colon. If you use a port number and the
|
||||||
|
IP address contains colons, you must enclose the IP address in
|
||||||
|
brackets. For example 192.168.0.2,[fd00::dead:beef]:5678 causes
|
||||||
|
vlmcsd(8) to listen on 192.168.0.2 port 1688 and fd00::dead:beef
|
||||||
|
port 5678.
|
||||||
|
|
||||||
|
|
||||||
|
WINDOWS=epid
|
||||||
|
Defines the ePID that is used for Windows activations. If you
|
||||||
|
ommit this parameter, vlmcsd generates a random ePID when it is
|
||||||
|
started.
|
||||||
|
|
||||||
|
|
||||||
|
OFFICE2010=epid
|
||||||
|
Defines the ePID that is used for Office 2010 activations. If
|
||||||
|
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
||||||
|
it is started.
|
||||||
|
|
||||||
|
|
||||||
|
OFFICE2013=epid
|
||||||
|
Defines the ePID that is used for Office (versions 2013 and
|
||||||
|
greater) activations. If you ommit this parameter, vlmcsd(8)
|
||||||
|
generates a random ePID when it is started.
|
||||||
|
|
||||||
|
|
||||||
|
HWID=hwid
|
||||||
|
Defines the HwId that is sent to clients. hwid must be specified
|
||||||
|
as 16 hex digits that are interpreted as a series of 8 bytes
|
||||||
|
(big endian). Any character that is not a hex digit will be
|
||||||
|
ignored. This is for better readability.
|
||||||
|
|
||||||
|
|
||||||
|
TZ=posix-time-zone-string
|
||||||
|
Set the time zone to posix-time-zone-string. It must conform to
|
||||||
|
the POSIX ⟨http://pubs.opengroup.org/onlinepubs/009695399/
|
||||||
|
basedefs/xbd_chap08.html⟩ specification. Simplified time zone
|
||||||
|
strings like "Europe/London" or "America/Detroit" are not
|
||||||
|
allowed. This has the very simple reason that there is no space
|
||||||
|
on the floppy to store the time zone database.
|
||||||
|
|
||||||
|
The string CET-1CEST,M3.5.0,M10.5.0/3 (most countries in Europe)
|
||||||
|
reads as follows:
|
||||||
|
|
||||||
|
CET The standard (winter) time zone has the name CET.
|
||||||
|
|
||||||
|
-1 The standard time zone is one hour east of UTC. Nega‐
|
||||||
|
tive numbers are east of UTC. Positive numbers are
|
||||||
|
west of UTC.
|
||||||
|
|
||||||
|
CEST The daylight saving (summer) time zone has the name
|
||||||
|
CEST.
|
||||||
|
|
||||||
|
M3.5.0 Daylight saving time starts in the 3rd month (March)
|
||||||
|
on the 5th (=last) occurence of weekday 0 (Sunday) at
|
||||||
|
2 o'clock (2 o'clock is a default value).
|
||||||
|
|
||||||
|
M10.5.0/3 Daylight saving time ends in the 10th month (October)
|
||||||
|
on the 5th (=last) occurence of weekday 0 (Sunday) at
|
||||||
|
3 o'clock.
|
||||||
|
|
||||||
|
If you don't have daylight saving time, things are easier. For
|
||||||
|
Chinese Standard Time for example, just use CST-8 as the time
|
||||||
|
zone string.
|
||||||
|
|
||||||
|
On a Linux desktop system, you can use a command like
|
||||||
|
strings /usr/share/zoneinfo/America/New_York | tail -n1. This
|
||||||
|
should return EST5EDT,M3.2.0,M11.1.0. You can use the returned
|
||||||
|
string for the TZ=posix-time-zone-string parameter.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_CONFIG=DHCP | STATIC
|
||||||
|
This determines how you want to configure IPv4 networking. If
|
||||||
|
you use IPV4_CONFIG=STATIC, you must supply additional para‐
|
||||||
|
maters to the APPEND command line.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_ADDRESS=ipv4-address/CIDR-mask
|
||||||
|
Use ipv4-address with netmask CIDR-mask for static IPv4 configu‐
|
||||||
|
ration. The netmask must not be ommitted. For IPv4 address
|
||||||
|
192.168.12.17 with a netmask of 255.255.255.0 use
|
||||||
|
192.168.12.17/24. For IPv4 address 10.4.0.8 with a netmask of
|
||||||
|
255.255.0.0 use 10.4.0.8/16. This paramater is ignored, if you
|
||||||
|
used IPV4_CONFIG=DHCP.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_GATEWAY=ipv4-address | NONE
|
||||||
|
Use ipv4-address as the default gateway. This is usually the
|
||||||
|
IPv4 address of your router. You may specify NONE explicitly for
|
||||||
|
no gateway. In this case your virtual machine is only visible on
|
||||||
|
its local LAN. This paramater is ignored, if you used IPV4_CON‐
|
||||||
|
FIG=DHCP.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_DNS1=ipv4-address | NONE
|
||||||
|
Use ipv4-address as the primary name server. In home networks
|
||||||
|
this is often the IPv4 address of your router. You may specify
|
||||||
|
NONE explicitly. If you specified NONE for both IPV4_DNS1= and
|
||||||
|
IPV4_DNS2=, your virtual machine cannot resolve host names to IP
|
||||||
|
addresses. While vlmcsd(8) works perfectly without DNS servers,
|
||||||
|
you must use IP addresses when referring to a host, e.g. for
|
||||||
|
specifying an NTP server. This paramater is ignored, if you used
|
||||||
|
IPV4_CONFIG=DHCP.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_DNS2=ipv4-address | NONE
|
||||||
|
Use ipv4-address as the secondary name server. It serves as a
|
||||||
|
backup if the primary name server is not available. Home net‐
|
||||||
|
works often don't have a secondary name server. In this case set
|
||||||
|
this to NONE. This paramater is ignored, if you used IPV4_CON‐
|
||||||
|
FIG=DHCP.
|
||||||
|
|
||||||
|
|
||||||
|
NTP_SERVER=host-name | ipv4-address | NONE
|
||||||
|
This sets the name of a time server using the NTP protocol. If
|
||||||
|
your virtualization environment reliably provides time, you can
|
||||||
|
set this to NONE. Don't use a public time service like
|
||||||
|
pool.ntp.org or time.nist.gov if you have a (at least somewhat
|
||||||
|
reliable) NTP server in your LAN.
|
||||||
|
|
||||||
|
|
||||||
|
HOST_NAME=host-name
|
||||||
|
Sets the local host name for your virtual machine. It can be a
|
||||||
|
single name or a fully-qualified domain name FQDN. If you used
|
||||||
|
IPV4_CONFIG=DHCP and your DHCP server returns a domain name, the
|
||||||
|
domain part of an FQDN will be replaced by that name. This host
|
||||||
|
name or host part of an FQDN will not replaced by a host name
|
||||||
|
returned via DHCP. The host name is not important for the opera‐
|
||||||
|
tion of floppy144.vfd.
|
||||||
|
|
||||||
|
|
||||||
|
ROOT_PASSWORD=password
|
||||||
|
Sets the password of the root user.
|
||||||
|
|
||||||
|
|
||||||
|
USER_NAME=username
|
||||||
|
Sets the name of for a general user with no special privileges.
|
||||||
|
This user can login but can't do much.
|
||||||
|
|
||||||
|
|
||||||
|
USER_PASSWORD=password
|
||||||
|
Sets the password for the user defined by USER_NAME=username.
|
||||||
|
|
||||||
|
|
||||||
|
GUEST_PASSWORD=password
|
||||||
|
Sets the password for the pre-defined guest user. This user has
|
||||||
|
the same priviliges (none) as the user defined by
|
||||||
|
USER_NAME=username.
|
||||||
|
|
||||||
|
|
||||||
|
INETD=Y | N
|
||||||
|
INETD=Y specifies that inetd(8) should automatically be started.
|
||||||
|
That means you can telnet and ftp to your virtual machine.
|
||||||
|
|
||||||
|
|
||||||
|
OPERATION
|
||||||
|
Diskless System
|
||||||
|
The floppy144.vfd virtual machine is a diskless system that works
|
||||||
|
entirely from RAM. The file system is actually a RAM disk that is cre‐
|
||||||
|
ated from the initrd(4) file on the floppy image.
|
||||||
|
|
||||||
|
Anything you'll do from inside the virtual machine, for instance edit‐
|
||||||
|
ing a config file, will be lost when you reboot the machine. So, if you
|
||||||
|
ever asked yourself if rm -fr / (root privileges required) really
|
||||||
|
deletes all files from all mounted partitions, the floppy144.vfd VM is
|
||||||
|
the right place to test it (Yes, it does).
|
||||||
|
|
||||||
|
The VM uses a RAM disk, because the Linux kernel had to be stripped
|
||||||
|
down to essential features to fit on a 1.44 MB floppy. It has no floppy
|
||||||
|
driver, no disk file system drivers and no block layer (cannot use
|
||||||
|
disks of any type).
|
||||||
|
|
||||||
|
|
||||||
|
System startup
|
||||||
|
The kernel boots up very quickly and the init script (/sbin/init) waits
|
||||||
|
5 seconds. In these 5 seconds you can:
|
||||||
|
|
||||||
|
Press 'm' to manually enter the time zone and the IPv4 parame‐
|
||||||
|
ters. These will be queried interactively.
|
||||||
|
Press 't' to manually enter the time zone only.
|
||||||
|
Press 's' to escape to a shell.
|
||||||
|
|
||||||
|
If you don't want to 5 seconds for continuing the init process, you can
|
||||||
|
press any other key to speed things up. At the end of the init script
|
||||||
|
you should see thatvlmcsd(8) has started. You should also see the IP
|
||||||
|
addresses and all user names and passwords.
|
||||||
|
|
||||||
|
|
||||||
|
Logging into the system
|
||||||
|
There are 5 local logins provided on /dev/tty2 to /dev/tty6. To switch
|
||||||
|
to these logins, simply press ALT-F2 to ALT-F6. To return to the con‐
|
||||||
|
sole on /dev/tty1, press ALT-F1. If inetd(8) is running you can also
|
||||||
|
use telnet(1). This allows you use a terminal program (e.g. putty) that
|
||||||
|
can utilize your keyboard layout, can be resized and has full UTF-8
|
||||||
|
support. The local terminals support US keyboard layout only. Please be
|
||||||
|
aware that telnet(1) is unencrypted and everything including passwords
|
||||||
|
is transmitted in clear text. There is not enough space for an ssh
|
||||||
|
server like sshd(8) or dropbear(8).
|
||||||
|
|
||||||
|
The floppy image only provides basic Unix commands. Type busybox or ll
|
||||||
|
/bin to get a list. The only editor available is vi(1). If you don't
|
||||||
|
like vi, you may transfer config files via ftp(1) edit them with the
|
||||||
|
editor of your choice and transfer them back to the floppy144.vfd VM.
|
||||||
|
|
||||||
|
|
||||||
|
The menu system
|
||||||
|
You'll find a menu system on /dev/tty8 (press ALT-F8 to see it). It
|
||||||
|
allows you performing some administrative tasks and to view various
|
||||||
|
system information. It is mainly for users that do not have much expe‐
|
||||||
|
rience with Unix commands.
|
||||||
|
|
||||||
|
|
||||||
|
1) (Re)start vlmcsd
|
||||||
|
Starts or restarts vlmcsd(8). This is useful if you changed
|
||||||
|
/etc/vlmcsd.ini(5).
|
||||||
|
|
||||||
|
|
||||||
|
2) Stop vlmcsd
|
||||||
|
Stops vlmcsd(8).
|
||||||
|
|
||||||
|
|
||||||
|
3) (Re)start inetd
|
||||||
|
Starts or restarts inetd(8). If inetd(8) is restarted, current
|
||||||
|
clients connected via telnet(1) or ftp(1) will not be dropped.
|
||||||
|
They can continue their sessions. This is useful if you changed
|
||||||
|
/etc/inetd.conf(5).
|
||||||
|
|
||||||
|
|
||||||
|
4) Stop inet
|
||||||
|
Stops inetd(8). All clients connected via telnet(1) or ftp(1)
|
||||||
|
will be dropped immediately.
|
||||||
|
|
||||||
|
|
||||||
|
5) Change the time zone
|
||||||
|
Just in case you missed pressing 't' during system startup. This
|
||||||
|
also restarts vlmcsd(8) if it was running to notify it that the
|
||||||
|
time zone has changed. Restarting vlmcsd(8) allows currently
|
||||||
|
connected clients to finish their activation.
|
||||||
|
|
||||||
|
|
||||||
|
k) Change keyboard layout
|
||||||
|
This allows you to select a different keyboard layout.
|
||||||
|
|
||||||
|
|
||||||
|
6) Show all kernel boot parameters
|
||||||
|
Shows all parameters passed to the kernel via syslinux.cfg. If
|
||||||
|
you experience any unexpected behavior, you can use this to
|
||||||
|
check if your APPEND line in syslinux.cfg is correct. The output
|
||||||
|
is piped through less(1). So press 'q' to return to the menu.
|
||||||
|
|
||||||
|
|
||||||
|
7) Show boot log (dmesg)
|
||||||
|
Shows the boot log of the kernel. The output is piped through
|
||||||
|
less(1). So press 'q' to return to the menu.
|
||||||
|
|
||||||
|
|
||||||
|
8) Show TCP/IP configuration
|
||||||
|
Shows the TCP/IP configuration, listening sockets and current
|
||||||
|
TCP and UDP connections. Useful, if you problems with net con‐
|
||||||
|
nectivity. The output is piped through less(1). So press 'q' to
|
||||||
|
return to the menu.
|
||||||
|
|
||||||
|
|
||||||
|
9) Show running processes
|
||||||
|
Shows all processes including memory and CPU usage. Display will
|
||||||
|
updated every second. Press 'q' or CTRL-C to return to the menu.
|
||||||
|
|
||||||
|
|
||||||
|
s) Shutdown
|
||||||
|
Shuts down the floppy144.vfd virtual machine. Proper shutdown is
|
||||||
|
not required. It is ok to use a hard power off in your virtual‐
|
||||||
|
ization program.
|
||||||
|
|
||||||
|
|
||||||
|
r) Reboot
|
||||||
|
Reboots the floppy144.vfd virtual machine. Proper reboot is not
|
||||||
|
required. It is ok to use a hard reset in your virtualization
|
||||||
|
program.
|
||||||
|
|
||||||
|
|
||||||
|
PERMANENT CHANGES OF INITRD
|
||||||
|
If you want to change any file or script of the file system (e.g. the
|
||||||
|
init script /sbin/init or /etc/vlmcsd.ini), you'll need to mount the
|
||||||
|
floppy image, unpack the initrd(4) file, make any modfications you
|
||||||
|
like, create a new initrd(4) file and copy it to the mounted floppy.
|
||||||
|
|
||||||
|
To unpack the initrd(4) file you'll need xz(1) (or lzma(1) on older
|
||||||
|
unix-like OSses) and cpio(1). These can be installed using your package
|
||||||
|
manager on all major distros. It is ok to use the BSD version of
|
||||||
|
cpio(1). No need to get the GNU version for BSD users. Provided the
|
||||||
|
floppy is mounted in /mnt/floppy do the following:
|
||||||
|
|
||||||
|
Create an empty directory
|
||||||
|
mkdir ~/vlmcsd-floppy-initrd
|
||||||
|
|
||||||
|
cd into that directory
|
||||||
|
cd ~/vlmcsd-floppy-initrd
|
||||||
|
|
||||||
|
Unpack initrd
|
||||||
|
cat /mnt/floppy/initrd | unlzma | cpio -i
|
||||||
|
|
||||||
|
After applying your changes build a new initrd(4) file:
|
||||||
|
|
||||||
|
|
||||||
|
cd into your directory
|
||||||
|
cd ~/vlmcsd-floppy-initrd
|
||||||
|
|
||||||
|
Create the packed file
|
||||||
|
find . | cpio -o -H newc | lzma > /mnt/floppy/initrd
|
||||||
|
|
||||||
|
Do not try to use 'lzma -9' to achive better compression. The kernel
|
||||||
|
can't read the resulting file. While customizing the initrd(4) file
|
||||||
|
works on almost any unix-like OS, it does not work on Windows even not
|
||||||
|
with Cygwin. The reason is that the NTFS file system can't handle uids
|
||||||
|
and gids. These cannot be preserved when unpacking the cpio(1) archive
|
||||||
|
to NTFS. If you use the WSL subsystem of Windows 10 Redstone (Anniver‐
|
||||||
|
sary Update) and later, you must make sure to unpack the initrd(4) file
|
||||||
|
to a directory on VolFs (normally everything that is not mounted under
|
||||||
|
/mnt). The initrd(4) file can be on a VolFs or DriveFs.
|
||||||
|
|
||||||
|
|
||||||
|
FAQ
|
||||||
|
On what distro is the floppy image based?
|
||||||
|
None. Besides the boot loader ldlinux.sys, there are only three bina‐
|
||||||
|
ries: The Linux kernel bzImage, busybox(1) and vlmcsdmulti-x86-musl-
|
||||||
|
static. bzImage and busybox(1) have been compiled with carefully
|
||||||
|
selected configuration parameters not found in any distro. This was
|
||||||
|
neccesary to fit everything on a 1.44 MB floppy.
|
||||||
|
|
||||||
|
|
||||||
|
Why is a rather old Linux kernel (3.12) used?
|
||||||
|
Linux 3.12 is the last kernel that can be booted with 16 MB of RAM.
|
||||||
|
Beginning with Linux 3.13 it requires much more memory (about 80 MB) to
|
||||||
|
boot. The floppy image is regularly tested with newer kernels. Every‐
|
||||||
|
thing works except that you need to assign much more main memory to the
|
||||||
|
virtual machine.
|
||||||
|
|
||||||
|
|
||||||
|
Can the floppy be booted on bare metal?
|
||||||
|
Basically yes. However, only Intel Pro/1000 and AMD PCNET32 ethernet
|
||||||
|
cards are supported by the kernel. In addition there is no USB support
|
||||||
|
compiled into the kernel. That means you can only use an IBM AT or IBM
|
||||||
|
PS/2 keyboard which are not available on newer hardware.
|
||||||
|
|
||||||
|
|
||||||
|
FILES
|
||||||
|
syslinux.cfg, vlmcsd.ini(5)
|
||||||
|
|
||||||
|
|
||||||
|
BUGS
|
||||||
|
IPv6 cannot be configured with static or manual parameters.
|
||||||
|
DHCPv6 is not supported.
|
||||||
|
´ip route add ...' does not work. Use 'route add ...' instead.
|
||||||
|
|
||||||
|
|
||||||
|
AUTHOR
|
||||||
|
floppy144.vfd has been created by Hotbird64
|
||||||
|
|
||||||
|
|
||||||
|
CREDITS
|
||||||
|
Linus Torvalds et al. for the Linux kernel
|
||||||
|
Erik Andersen et al. for the original uClibc
|
||||||
|
Waldemar Brodkorb et al. for uClibc-ng
|
||||||
|
Denys Vlasenko et al. for BusyBox
|
||||||
|
H. Peter Anvin et al. for SYSLINUX
|
||||||
|
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
vlmcsd(8), vlmcsd.ini(5), initrd(4), busybox(1), syslinux(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hotbird64 June 2016 VLMCSD-FLOPPY(7)
|
809
vlmcsd-floppy.7.html
Normal file
809
vlmcsd-floppy.7.html
Normal file
@ -0,0 +1,809 @@
|
|||||||
|
<!-- Creator : groff version 1.22.3 -->
|
||||||
|
<!-- CreationDate: Fri Jun 17 16:39:15 2016 -->
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||||
|
"http://www.w3.org/TR/html4/loose.dtd">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
|
<meta name="Content-Style" content="text/css">
|
||||||
|
<style type="text/css">
|
||||||
|
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||||
|
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||||
|
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||||
|
h1 { text-align: center }
|
||||||
|
</style>
|
||||||
|
<title>VLMCSD-FLOPPY</title>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1 align="center">VLMCSD-FLOPPY</h1>
|
||||||
|
|
||||||
|
<a href="#NAME">NAME</a><br>
|
||||||
|
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
||||||
|
<a href="#SUPPORTED HYPERVISORS">SUPPORTED HYPERVISORS</a><br>
|
||||||
|
<a href="#SETUP">SETUP</a><br>
|
||||||
|
<a href="#CONFIGURATION">CONFIGURATION</a><br>
|
||||||
|
<a href="#OPERATION">OPERATION</a><br>
|
||||||
|
<a href="#PERMANENT CHANGES OF INITRD">PERMANENT CHANGES OF INITRD</a><br>
|
||||||
|
<a href="#FAQ">FAQ</a><br>
|
||||||
|
<a href="#FILES">FILES</a><br>
|
||||||
|
<a href="#BUGS">BUGS</a><br>
|
||||||
|
<a href="#AUTHOR">AUTHOR</a><br>
|
||||||
|
<a href="#CREDITS">CREDITS</a><br>
|
||||||
|
<a href="#SEE ALSO">SEE ALSO</a><br>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>NAME
|
||||||
|
<a name="NAME"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">floppy144.vfd
|
||||||
|
− a bootable floppy disk with Linux and
|
||||||
|
<b>vlmcsd</b>(8)</p>
|
||||||
|
|
||||||
|
<h2>DESCRIPTION
|
||||||
|
<a name="DESCRIPTION"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
|
||||||
|
is an image of a bootable floppy that contains a minimal
|
||||||
|
version of Linux and <b>vlmcsd</b>(8). It requires only 16
|
||||||
|
MB of RAM. Its primary purpose is to run <b>vlmcsd</b>(8) in
|
||||||
|
a small virtual machine which makes it easy to use
|
||||||
|
<b>vlmcsd</b>(8) to activate the virtual machine’s
|
||||||
|
host computer which is not possible in Windows 8.1 and up.
|
||||||
|
The floppy image is a standard 3,5" floppy with 1.44 MB
|
||||||
|
storage. It is formatted with a FAT12 filesystem. The floppy
|
||||||
|
can be mounted to apply several customizations.</p>
|
||||||
|
|
||||||
|
<h2>SUPPORTED HYPERVISORS
|
||||||
|
<a name="SUPPORTED HYPERVISORS"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">The floppy
|
||||||
|
image has been tested with the following hypervisors:</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%; margin-top: 1em">VMWare,
|
||||||
|
VirtualBox, Hyper-V and QEMU</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">Others are
|
||||||
|
likely to work.</p>
|
||||||
|
|
||||||
|
<h2>SETUP
|
||||||
|
<a name="SETUP"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">Create a new
|
||||||
|
virtual machine. Assign 16 MB of RAM. Add a floppy drive and
|
||||||
|
attach <b>floppy144.vfd</b> to this drive. Do not create a
|
||||||
|
virtual hard disk. Setup the virtual machine to boot from a
|
||||||
|
floppy drive (VirtualBox has floppy boot disabled by
|
||||||
|
default). If possible, setup a virtual machine with plain
|
||||||
|
old BIOS (not UEFI). If you created an UEFI virtual machine,
|
||||||
|
enable the compatibility support mode (CSM) to allow a BIOS
|
||||||
|
compatible boot. Set number of CPUs to 1. The Linux kernel
|
||||||
|
is not capable of SMP. Remove IDE, SATA, SCSI and USB
|
||||||
|
support if possible. The Linux kernel can’t handle
|
||||||
|
this and ignores any devices connected to these buses.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">Setup an
|
||||||
|
ethernet card. The following models are supported:</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%; margin-top: 1em">Intel PRO/1000
|
||||||
|
<br>
|
||||||
|
AMD PCNET III <br>
|
||||||
|
AMD PCNET32 <br>
|
||||||
|
VMWare vmxnet3 (paravirtualized driver used by VMWare) <br>
|
||||||
|
virtio (paravirtualized driver used by VirtualBox, QEMU, KVM
|
||||||
|
and lguest)</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">Most
|
||||||
|
hypervisors emulate an Intel PRO/1000 or AMD PCNET32 by
|
||||||
|
default. Selecting a paravirtualized driver slightly
|
||||||
|
improves performance. In VirtualBox you can simply select
|
||||||
|
virtio in the network configuration dialog. VMWare requires
|
||||||
|
that you add or change the VMX file. Use
|
||||||
|
’ethernet0.virtualDev = "vmxnet3"’
|
||||||
|
in your VMWare config file.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">If you are
|
||||||
|
using QEMU, you must also setup a TAP adapter. Port
|
||||||
|
redirection does not work to activate your own computer.</p>
|
||||||
|
|
||||||
|
<h2>CONFIGURATION
|
||||||
|
<a name="CONFIGURATION"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
|
||||||
|
can be customized to fit your needs. This is done by editing
|
||||||
|
the file syslinux.cfg on the floppy image. The floppy image
|
||||||
|
must be mounted. Under Linux you can simply attach
|
||||||
|
<b>floppy144.vfd</b> to a loop device which is mountable
|
||||||
|
like any other block device. For Windows you must use some
|
||||||
|
software that allows mounting a floppy image, e.g.
|
||||||
|
<a href="http://www.osforensics.com/tools/mount-disk-images.html">OSFMount</a></p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">OSFMount works
|
||||||
|
under all Windows versions beginning with Windows XP up to
|
||||||
|
Windows 10 (32- and 64-bit).</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">The default
|
||||||
|
syslinux.cfg file looks like this:</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%; margin-top: 1em"><small>prompt 0
|
||||||
|
<br>
|
||||||
|
TIMEOUT 50 <br>
|
||||||
|
default dhcp</small></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%; margin-top: 1em"><small>LABEL
|
||||||
|
dhcp <br>
|
||||||
|
KERNEL bzImage <br>
|
||||||
|
APPEND vga=773 quiet initrd=initrd KBD=us
|
||||||
|
LISTEN=[::]:1688,0.0.0.0:1688 TZ=UTC0 IPV4_CONFIG=DHCP
|
||||||
|
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd
|
||||||
|
ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd
|
||||||
|
GUEST_PASSWORD=vlmcsd INETD=Y
|
||||||
|
WINDOWS=06401-00206-271-395032-03-1033-9600.0000-1652016
|
||||||
|
OFFICE2010=06401-00096-199-204970-03-1033-9600.0000-1652016
|
||||||
|
OFFICE2013=06401-00206-234-921934-03-1033-9600.0000-1652016
|
||||||
|
HWID=36:4F:46:3A:88:63:D3:5F</small></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%; margin-top: 1em"><small>LABEL
|
||||||
|
static <br>
|
||||||
|
KERNEL bzImage <br>
|
||||||
|
APPEND vga=773 quiet initrd=initrd KBD=fr
|
||||||
|
LISTEN=[::]:1688,0.0.0.0:1688 TZ=CET-1CEST,M3.5.0,M10.5.0/3
|
||||||
|
IPV4_CONFIG=STATIC IPV4_ADDRESS=192.168.20.123/24
|
||||||
|
IPV4_GATEWAY=192.168.20.2 IPV4_DNS1=192.168.20.2
|
||||||
|
IPV4_DNS2=NONE NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd
|
||||||
|
ROOT_PASSWORD=vlmcsd USER_NAME=user USER_PASSWORD=vlmcsd
|
||||||
|
GUEST_PASSWORD=vlmcsd INETD=Y</small></p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">There are two
|
||||||
|
configurations in this files: <i>dhcp</i> (for configuring
|
||||||
|
the IPv4 network via DHCP) and <i>static</i> (for a static
|
||||||
|
IPv4 configuration). The kernel always boots the <i>dhcp</i>
|
||||||
|
configuration without asking (lines ’prompt 0’
|
||||||
|
and ’default dhcp’). You can simply change the
|
||||||
|
default configuration to <i>static</i> and then customize
|
||||||
|
the APPEND line in the <i>static</i> configuration. For more
|
||||||
|
details how to customize the syslinux.cfg file see
|
||||||
|
<b>syslinux</b>(1).</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">Each APPPEND
|
||||||
|
line contains one or more items seperated by spaces. <b>All
|
||||||
|
items are case-sensitive</b>. The following parameters can
|
||||||
|
be customized: <b><br>
|
||||||
|
vga=</b><i>vesa-video-mode</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Sets the VESA display mode for
|
||||||
|
the virtual machine. The parameter is not optional. If you
|
||||||
|
ommit it, you will not see anything on the screen. 773 means
|
||||||
|
1024x768 with 256 colors. See
|
||||||
|
<a href="https://en.wikipedia.org/wiki/VESA_BIOS_Extensions#Linux_video_mode_numbers">Wikipedia</a>
|
||||||
|
for more video modes. Note that all 16 color (4-bit) modes
|
||||||
|
will not work. Use 8-bit (256 colors), 16-bit (65536
|
||||||
|
colors), 24-bit and 32-bit (> 16 Million colors) only.
|
||||||
|
All modes above 1280x1024 are non-VESA-standard and vary for
|
||||||
|
all (virtual) graphic cards.</p>
|
||||||
|
|
||||||
|
<table width="100%" border="0" rules="none" frame="void"
|
||||||
|
cellspacing="0" cellpadding="0">
|
||||||
|
<tr valign="top" align="left">
|
||||||
|
<td width="11%"></td>
|
||||||
|
<td width="7%">
|
||||||
|
|
||||||
|
|
||||||
|
<p><b>quiet</b></p></td>
|
||||||
|
<td width="4%"></td>
|
||||||
|
<td width="78%">
|
||||||
|
|
||||||
|
|
||||||
|
<p>This causes the kernel not display the its log during
|
||||||
|
boot. You may omit <b>quiet</b> but it doesn’t make
|
||||||
|
much sense. The boot log is actually very verbose and
|
||||||
|
scrolls away from screen quickly. If any errors occur during
|
||||||
|
boot, they will be displayed even if <b>quiet</b> is present
|
||||||
|
in the APPEND line. You may evaluate the complete boot log
|
||||||
|
later by using the dmesg command or the menu on
|
||||||
|
/dev/tty8.</p> </td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>initrd=</b><i>initial-ram-disk-file</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">This defines the initial ram
|
||||||
|
disk that the kernel will read. There is only one initial
|
||||||
|
ram disk on the floppy thus leave <i>initrd=initrd</i> as it
|
||||||
|
is.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>KBD=</b><i>keyboard-layout-name</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">This allows you to select the
|
||||||
|
keyboard layout. <i>keyboard-layout-name</i> is usually the
|
||||||
|
ISO 3166-1 (top level domain) code for a country. A list of
|
||||||
|
valid <i>keyboard-layout-name</i>s can be accessed via the
|
||||||
|
menu system on /dev/tty8 (press ALT-F8). Note, that this is
|
||||||
|
a keyboard driver only. There is no Unicode font support in
|
||||||
|
<b>floppy144.vfd</b> (due to the fact that the kernel uses a
|
||||||
|
generic VESA framebuffer device only). Characters beyond
|
||||||
|
ASCII work for Western European languages only but not
|
||||||
|
Eastern European, Greek, Cyrillic, Arabic, Hebrew, CJK and
|
||||||
|
other languages. There is no need in <b>floppy144.vfd</b> to
|
||||||
|
enter any characters outside ASCII. The purpose of the
|
||||||
|
keyboard maps are that you will find characters like dash,
|
||||||
|
backslash, brackets, braces, etc. at the usual place on your
|
||||||
|
keyboard.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>LISTEN=</b>PRIVATE[:<i>tcp-port</i>]
|
||||||
|
| <i><br>
|
||||||
|
|
||||||
|
ip-address</i>[:<i>tcp-port</i>][,<i>ip-address</i>[:<i>tcp-port</i>]][,...]</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">One or more combinations of IP
|
||||||
|
addresses and optional TCP port seperated by commas that
|
||||||
|
<b>vlmcsd</b>(8) should listen on or PRIVATE to listen on
|
||||||
|
all private IP addresses only. The default port is 1688. If
|
||||||
|
you use an explicit port number, append it to the IP address
|
||||||
|
seperated by a colon. If you use a port number and the IP
|
||||||
|
address contains colons, you must enclose the IP address in
|
||||||
|
brackets. For example
|
||||||
|
<i>192.168.0.2,[fd00::dead:beef]:5678</i> causes
|
||||||
|
<b>vlmcsd</b>(8) to listen on 192.168.0.2 port 1688 and
|
||||||
|
fd00::dead:beef port 5678.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>WINDOWS=</b><i>epid</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Defines the ePID that is used
|
||||||
|
for Windows activations. If you ommit this parameter, vlmcsd
|
||||||
|
generates a random ePID when it is started.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>OFFICE2010=</b><i>epid</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Defines the ePID that is used
|
||||||
|
for Office 2010 activations. If you ommit this parameter,
|
||||||
|
<b>vlmcsd</b>(8) generates a random ePID when it is
|
||||||
|
started.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>OFFICE2013=</b><i>epid</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Defines the ePID that is used
|
||||||
|
for Office (versions 2013 and greater) activations. If you
|
||||||
|
ommit this parameter, <b>vlmcsd</b>(8) generates a random
|
||||||
|
ePID when it is started.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>HWID=</b><i>hwid</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Defines the HwId that is sent
|
||||||
|
to clients. <i>hwid</i> must be specified as 16 hex digits
|
||||||
|
that are interpreted as a series of 8 bytes (big endian).
|
||||||
|
Any character that is not a hex digit will be ignored. This
|
||||||
|
is for better readability.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>TZ=</b><i>posix-time-zone-string</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Set the time zone to
|
||||||
|
<i>posix-time-zone-string</i>. It must conform to the
|
||||||
|
<a href="http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html">POSIX</a>
|
||||||
|
specification. Simplified time zone strings like
|
||||||
|
"Europe/London" or "America/Detroit" are
|
||||||
|
not allowed. This has the very simple reason that there is
|
||||||
|
no space on the floppy to store the time zone database.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%; margin-top: 1em">The string
|
||||||
|
<i>CET-1CEST,M3.5.0,M10.5.0/3</i> (most countries in Europe)
|
||||||
|
reads as follows:</p>
|
||||||
|
|
||||||
|
<table width="100%" border="0" rules="none" frame="void"
|
||||||
|
cellspacing="0" cellpadding="0">
|
||||||
|
<tr valign="top" align="left">
|
||||||
|
<td width="22%"></td>
|
||||||
|
<td width="13%">
|
||||||
|
|
||||||
|
|
||||||
|
<p><i>CET</i></p></td>
|
||||||
|
<td width="2%"></td>
|
||||||
|
<td width="63%">
|
||||||
|
|
||||||
|
|
||||||
|
<p>The standard (winter) time zone has the name CET.</p></td></tr>
|
||||||
|
<tr valign="top" align="left">
|
||||||
|
<td width="22%"></td>
|
||||||
|
<td width="13%">
|
||||||
|
|
||||||
|
|
||||||
|
<p><i>-1</i></p></td>
|
||||||
|
<td width="2%"></td>
|
||||||
|
<td width="63%">
|
||||||
|
|
||||||
|
|
||||||
|
<p>The standard time zone is one hour east of UTC. Negative
|
||||||
|
numbers are east of UTC. Positive numbers are west of
|
||||||
|
UTC.</p> </td></tr>
|
||||||
|
<tr valign="top" align="left">
|
||||||
|
<td width="22%"></td>
|
||||||
|
<td width="13%">
|
||||||
|
|
||||||
|
|
||||||
|
<p><i>CEST</i></p></td>
|
||||||
|
<td width="2%"></td>
|
||||||
|
<td width="63%">
|
||||||
|
|
||||||
|
|
||||||
|
<p>The daylight saving (summer) time zone has the name
|
||||||
|
CEST.</p> </td></tr>
|
||||||
|
<tr valign="top" align="left">
|
||||||
|
<td width="22%"></td>
|
||||||
|
<td width="13%">
|
||||||
|
|
||||||
|
|
||||||
|
<p><i>M3.5.0</i></p></td>
|
||||||
|
<td width="2%"></td>
|
||||||
|
<td width="63%">
|
||||||
|
|
||||||
|
|
||||||
|
<p>Daylight saving time starts in the 3rd month (March) on
|
||||||
|
the 5th (=last) occurence of weekday 0 (Sunday) at 2
|
||||||
|
o’clock (2 o’clock is a default value).</p></td></tr>
|
||||||
|
<tr valign="top" align="left">
|
||||||
|
<td width="22%"></td>
|
||||||
|
<td width="13%">
|
||||||
|
|
||||||
|
|
||||||
|
<p><i>M10.5.0/3</i></p></td>
|
||||||
|
<td width="2%"></td>
|
||||||
|
<td width="63%">
|
||||||
|
|
||||||
|
|
||||||
|
<p>Daylight saving time ends in the 10th month (October) on
|
||||||
|
the 5th (=last) occurence of weekday 0 (Sunday) at 3
|
||||||
|
o’clock.</p> </td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p style="margin-left:22%; margin-top: 1em">If you
|
||||||
|
don’t have daylight saving time, things are easier.
|
||||||
|
For Chinese Standard Time for example, just use <i>CST-8</i>
|
||||||
|
as the time zone string.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%; margin-top: 1em">On a Linux
|
||||||
|
desktop system, you can use a command like
|
||||||
|
<b>strings /usr/share/zoneinfo/America/New_York | tail -n1</b>.
|
||||||
|
This should return <i>EST5EDT,M3.2.0,M11.1.0</i>. You can
|
||||||
|
use the returned string for the
|
||||||
|
<b>TZ=</b><i>posix-time-zone-string</i> parameter.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>IPV4_CONFIG=</b>DHCP |
|
||||||
|
STATIC</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">This determines how you want to
|
||||||
|
configure IPv4 networking. If you use
|
||||||
|
<b>IPV4_CONFIG=</b>STATIC, you must supply additional
|
||||||
|
paramaters to the APPEND command line.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>IPV4_ADDRESS=</b><i>ipv4-address</i>/<i>CIDR-mask</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Use <i>ipv4-address</i> with
|
||||||
|
netmask <i>CIDR-mask</i> for static IPv4 configuration. The
|
||||||
|
netmask must not be ommitted. For IPv4 address 192.168.12.17
|
||||||
|
with a netmask of 255.255.255.0 use <i>192.168.12.17/24</i>.
|
||||||
|
For IPv4 address 10.4.0.8 with a netmask of 255.255.0.0 use
|
||||||
|
10.4.0.8/16. This paramater is ignored, if you used
|
||||||
|
<b>IPV4_CONFIG=</b>DHCP.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>IPV4_GATEWAY=</b><i>ipv4-address</i>
|
||||||
|
| NONE</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Use <i>ipv4-address</i> as the
|
||||||
|
default gateway. This is usually the IPv4 address of your
|
||||||
|
router. You may specify NONE explicitly for no gateway. In
|
||||||
|
this case your virtual machine is only visible on its local
|
||||||
|
LAN. This paramater is ignored, if you used
|
||||||
|
<b>IPV4_CONFIG=</b>DHCP.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>IPV4_DNS1=</b><i>ipv4-address</i>
|
||||||
|
| NONE</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Use <i>ipv4-address</i> as the
|
||||||
|
primary name server. In home networks this is often the IPv4
|
||||||
|
address of your router. You may specify NONE explicitly. If
|
||||||
|
you specified NONE for both <b>IPV4_DNS1=</b> and
|
||||||
|
<b>IPV4_DNS2=</b>, your virtual machine cannot resolve host
|
||||||
|
names to IP addresses. While <b>vlmcsd</b>(8) works
|
||||||
|
perfectly without DNS servers, you must use IP addresses
|
||||||
|
when referring to a host, e.g. for specifying an NTP server.
|
||||||
|
This paramater is ignored, if you used
|
||||||
|
<b>IPV4_CONFIG=</b>DHCP.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>IPV4_DNS2=</b><i>ipv4-address</i>
|
||||||
|
| NONE</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Use <i>ipv4-address</i> as the
|
||||||
|
secondary name server. It serves as a backup if the primary
|
||||||
|
name server is not available. Home networks often
|
||||||
|
don’t have a secondary name server. In this case set
|
||||||
|
this to NONE. This paramater is ignored, if you used
|
||||||
|
<b>IPV4_CONFIG=</b>DHCP.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>NTP_SERVER=</b><i>host-name</i>
|
||||||
|
| <i>ipv4-address</i> | NONE</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">This sets the name of a time
|
||||||
|
server using the NTP protocol. If your virtualization
|
||||||
|
environment reliably provides time, you can set this to
|
||||||
|
NONE. Don’t use a public time service like
|
||||||
|
pool.ntp.org or time.nist.gov if you have a (at least
|
||||||
|
somewhat reliable) NTP server in your LAN.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>HOST_NAME=</b><i>host-name</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Sets the local host name for
|
||||||
|
your virtual machine. It can be a single name or a
|
||||||
|
fully-qualified domain name FQDN. If you used
|
||||||
|
<b>IPV4_CONFIG=</b>DHCP and your DHCP server returns a
|
||||||
|
domain name, the domain part of an FQDN will be replaced by
|
||||||
|
that name. This host name or host part of an FQDN will not
|
||||||
|
replaced by a host name returned via DHCP. The host name is
|
||||||
|
not important for the operation of <b>floppy144.vfd</b>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>ROOT_PASSWORD=</b><i>password</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Sets the password of the root
|
||||||
|
user.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>USER_NAME=</b><i>username</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Sets the name of for a general
|
||||||
|
user with no special privileges. This user can login but
|
||||||
|
can’t do much.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>USER_PASSWORD=</b><i>password</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Sets the password for the user
|
||||||
|
defined by <b>USER_NAME=</b><i>username</i>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>GUEST_PASSWORD=</b><i>password</i></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Sets the password for the
|
||||||
|
pre-defined guest user. This user has the same priviliges
|
||||||
|
(none) as the user defined by
|
||||||
|
<b>USER_NAME=</b><i>username</i>.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>INETD=</b>Y | N</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;"><b>INETD=</b>Y specifies that
|
||||||
|
<b>inetd</b>(8) should automatically be started. That means
|
||||||
|
you can telnet and ftp to your virtual machine.</p>
|
||||||
|
|
||||||
|
<h2>OPERATION
|
||||||
|
<a name="OPERATION"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>Diskless
|
||||||
|
System</b> <br>
|
||||||
|
The <b>floppy144.vfd</b> virtual machine is a diskless
|
||||||
|
system that works entirely from RAM. The file system is
|
||||||
|
actually a RAM disk that is created from the
|
||||||
|
<b>initrd</b>(4) file on the floppy image.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">Anything
|
||||||
|
you’ll do from inside the virtual machine, for
|
||||||
|
instance editing a config file, will be lost when you reboot
|
||||||
|
the machine. So, if you ever asked yourself if <b>rm -fr
|
||||||
|
/</b> (root privileges required) really deletes all files
|
||||||
|
from all mounted partitions, the <b>floppy144.vfd</b> VM is
|
||||||
|
the right place to test it (Yes, it does).</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">The VM uses a
|
||||||
|
RAM disk, because the Linux kernel had to be stripped down
|
||||||
|
to essential features to fit on a 1.44 MB floppy. It has no
|
||||||
|
floppy driver, no disk file system drivers and no block
|
||||||
|
layer (cannot use disks of any type).</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>System
|
||||||
|
startup</b> <br>
|
||||||
|
The kernel boots up very quickly and the init script
|
||||||
|
(/sbin/init) waits 5 seconds. In these 5 seconds you
|
||||||
|
can:</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%; margin-top: 1em">Press
|
||||||
|
’m’ to manually enter the time zone and the IPv4
|
||||||
|
parameters. These will be queried interactively. <br>
|
||||||
|
Press ’t’ to manually enter the time zone only.
|
||||||
|
<br>
|
||||||
|
Press ’s’ to escape to a shell.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">If you
|
||||||
|
don’t want to 5 seconds for continuing the init
|
||||||
|
process, you can press any other key to speed things up. At
|
||||||
|
the end of the init script you should see
|
||||||
|
that<b>vlmcsd</b>(8) has started. You should also see the IP
|
||||||
|
addresses and all user names and passwords.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>Logging into
|
||||||
|
the system</b> <br>
|
||||||
|
There are 5 local logins provided on /dev/tty2 to /dev/tty6.
|
||||||
|
To switch to these logins, simply press ALT−F2 to
|
||||||
|
ALT−F6. To return to the console on /dev/tty1, press
|
||||||
|
ALT−F1. If <b>inetd</b>(8) is running you can also use
|
||||||
|
<b>telnet</b>(1). This allows you use a terminal program
|
||||||
|
(e.g. putty) that can utilize your keyboard layout, can be
|
||||||
|
resized and has full UTF-8 support. The local terminals
|
||||||
|
support US keyboard layout only. Please be aware that
|
||||||
|
<b>telnet</b>(1) is unencrypted and everything including
|
||||||
|
passwords is transmitted in clear text. There is not enough
|
||||||
|
space for an ssh server like <b>sshd</b>(8) or
|
||||||
|
<b>dropbear</b>(8).</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">The floppy
|
||||||
|
image only provides basic Unix commands. Type <i>busybox</i>
|
||||||
|
or <i>ll /bin</i> to get a list. The only editor available
|
||||||
|
is <b>vi</b>(1). If you don’t like vi, you may
|
||||||
|
transfer config files via <b>ftp</b>(1) edit them with the
|
||||||
|
editor of your choice and transfer them back to the
|
||||||
|
<b>floppy144.vfd</b> VM.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>The menu
|
||||||
|
system</b> <br>
|
||||||
|
You’ll find a menu system on /dev/tty8 (press
|
||||||
|
ALT−F8 to see it). It allows you performing some
|
||||||
|
administrative tasks and to view various system information.
|
||||||
|
It is mainly for users that do not have much experience with
|
||||||
|
Unix commands. <b><br>
|
||||||
|
1) (Re)start vlmcsd</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Starts or restarts
|
||||||
|
<b>vlmcsd</b>(8). This is useful if you changed
|
||||||
|
<b>/etc/vlmcsd.ini</b>(5).</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>2) Stop vlmcsd</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Stops <b>vlmcsd</b>(8).</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>3) (Re)start inetd</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Starts or restarts
|
||||||
|
<b>inetd</b>(8). If <b>inetd</b>(8) is restarted, current
|
||||||
|
clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
|
||||||
|
<b>not</b> be dropped. They can continue their sessions.
|
||||||
|
This is useful if you changed <b>/etc/inetd.conf</b>(5).</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>4) Stop inet</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Stops <b>inetd</b>(8). All
|
||||||
|
clients connected via <b>telnet</b>(1) or <b>ftp</b>(1) will
|
||||||
|
be dropped immediately.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>5) Change the time
|
||||||
|
zone</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Just in case you missed
|
||||||
|
pressing ’t’ during system startup. This also
|
||||||
|
restarts <b>vlmcsd</b>(8) if it was running to notify it
|
||||||
|
that the time zone has changed. Restarting <b>vlmcsd</b>(8)
|
||||||
|
allows currently connected clients to finish their
|
||||||
|
activation.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>k) Change keyboard
|
||||||
|
layout</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">This allows you to select a
|
||||||
|
different keyboard layout.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>6) Show all kernel boot
|
||||||
|
parameters</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Shows all parameters passed to
|
||||||
|
the kernel via syslinux.cfg. If you experience any
|
||||||
|
unexpected behavior, you can use this to check if your
|
||||||
|
APPEND line in syslinux.cfg is correct. The output is piped
|
||||||
|
through <b>less(1)</b>. So press ’q’ to return
|
||||||
|
to the menu.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>7) Show boot log
|
||||||
|
(dmesg)</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Shows the boot log of the
|
||||||
|
kernel. The output is piped through <b>less(1)</b>. So press
|
||||||
|
’q’ to return to the menu.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>8) Show TCP/IP
|
||||||
|
configuration</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Shows the TCP/IP configuration,
|
||||||
|
listening sockets and current TCP and UDP connections.
|
||||||
|
Useful, if you problems with net connectivity. The output is
|
||||||
|
piped through <b>less(1)</b>. So press ’q’ to
|
||||||
|
return to the menu.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>9) Show running
|
||||||
|
processes</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Shows all processes including
|
||||||
|
memory and CPU usage. Display will updated every second.
|
||||||
|
Press ’q’ or CTRL-C to return to the menu.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>s) Shutdown</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Shuts down the
|
||||||
|
<b>floppy144.vfd</b> virtual machine. Proper shutdown is not
|
||||||
|
required. It is ok to use a hard power off in your
|
||||||
|
virtualization program.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;"><b>r) Reboot</b></p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">Reboots the
|
||||||
|
<b>floppy144.vfd</b> virtual machine. Proper reboot is not
|
||||||
|
required. It is ok to use a hard reset in your
|
||||||
|
virtualization program.</p>
|
||||||
|
|
||||||
|
<h2>PERMANENT CHANGES OF INITRD
|
||||||
|
<a name="PERMANENT CHANGES OF INITRD"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">If you want to
|
||||||
|
change any file or script of the file system (e.g. the init
|
||||||
|
script /sbin/init or /etc/vlmcsd.ini), you’ll need to
|
||||||
|
mount the floppy image, unpack the <b>initrd</b>(4) file,
|
||||||
|
make any modfications you like, create a new
|
||||||
|
<b>initrd</b>(4) file and copy it to the mounted floppy.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">To unpack the
|
||||||
|
<b>initrd</b>(4) file you’ll need <b>xz</b>(1) (or
|
||||||
|
<b>lzma</b>(1) on older unix-like OSses) and <b>cpio</b>(1).
|
||||||
|
These can be installed using your package manager on all
|
||||||
|
major distros. It is ok to use the BSD version of
|
||||||
|
<b>cpio</b>(1). No need to get the GNU version for BSD
|
||||||
|
users. Provided the floppy is mounted in /mnt/floppy do the
|
||||||
|
following: <br>
|
||||||
|
Create an empty directory</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">mkdir
|
||||||
|
~/vlmcsd-floppy-initrd</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;">cd into that directory</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;">Unpack initrd</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">cat /mnt/floppy/initrd | unlzma
|
||||||
|
| cpio -i</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">After applying
|
||||||
|
your changes build a new <b>initrd</b>(4) file: <br>
|
||||||
|
cd into your directory</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">cd ~/vlmcsd-floppy-initrd</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%;">Create the packed file</p>
|
||||||
|
|
||||||
|
<p style="margin-left:22%;">find . | cpio -o -H newc | lzma
|
||||||
|
> /mnt/floppy/initrd</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">Do not try to
|
||||||
|
use ’lzma -9’ to achive better compression. The
|
||||||
|
kernel can’t read the resulting file. While
|
||||||
|
customizing the <b>initrd</b>(4) file works on almost any
|
||||||
|
unix-like OS, it does not work on Windows even not with
|
||||||
|
Cygwin. The reason is that the NTFS file system can’t
|
||||||
|
handle uids and gids. These cannot be preserved when
|
||||||
|
unpacking the <b>cpio</b>(1) archive to NTFS. If you use the
|
||||||
|
WSL subsystem of Windows 10 Redstone (Anniversary Update)
|
||||||
|
and later, you must make sure to unpack the <b>initrd</b>(4)
|
||||||
|
file to a directory on VolFs (normally everything that is
|
||||||
|
<b>not</b> mounted under /mnt). The <b>initrd</b>(4) file
|
||||||
|
can be on a VolFs or DriveFs.</p>
|
||||||
|
|
||||||
|
<h2>FAQ
|
||||||
|
<a name="FAQ"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>On what
|
||||||
|
distro is the floppy image based?</b> <br>
|
||||||
|
None. Besides the boot loader <b>ldlinux.sys</b>, there are
|
||||||
|
only three binaries: The Linux kernel <b>bzImage</b>,
|
||||||
|
<b>busybox</b>(1) and <b>vlmcsdmulti-x86-musl-static</b>.
|
||||||
|
<b>bzImage</b> and <b>busybox</b>(1) have been compiled with
|
||||||
|
carefully selected configuration parameters not found in any
|
||||||
|
distro. This was neccesary to fit everything on a 1.44 MB
|
||||||
|
floppy.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>Why is a
|
||||||
|
rather old Linux kernel (3.12) used?</b> <br>
|
||||||
|
Linux 3.12 is the last kernel that can be booted with 16 MB
|
||||||
|
of RAM. Beginning with Linux 3.13 it requires much more
|
||||||
|
memory (about 80 MB) to boot. The floppy image is regularly
|
||||||
|
tested with newer kernels. Everything works except that you
|
||||||
|
need to assign much more main memory to the virtual
|
||||||
|
machine.</p>
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>Can the
|
||||||
|
floppy be booted on bare metal?</b> <br>
|
||||||
|
Basically yes. However, only Intel Pro/1000 and AMD PCNET32
|
||||||
|
ethernet cards are supported by the kernel. In addition
|
||||||
|
there is no USB support compiled into the kernel. That means
|
||||||
|
you can only use an IBM AT or IBM PS/2 keyboard which are
|
||||||
|
not available on newer hardware.</p>
|
||||||
|
|
||||||
|
<h2>FILES
|
||||||
|
<a name="FILES"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>syslinux.cfg</b>,
|
||||||
|
<b>vlmcsd.ini</b>(5)</p>
|
||||||
|
|
||||||
|
<h2>BUGS
|
||||||
|
<a name="BUGS"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">IPv6 cannot be
|
||||||
|
configured with static or manual parameters. <br>
|
||||||
|
DHCPv6 is not supported. <br>
|
||||||
|
´ip route add ...’ does not work. Use
|
||||||
|
’route add ...’ instead.</p>
|
||||||
|
|
||||||
|
<h2>AUTHOR
|
||||||
|
<a name="AUTHOR"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>floppy144.vfd</b>
|
||||||
|
has been created by Hotbird64</p>
|
||||||
|
|
||||||
|
<h2>CREDITS
|
||||||
|
<a name="CREDITS"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em">Linus Torvalds
|
||||||
|
et al. for the Linux kernel <br>
|
||||||
|
Erik Andersen et al. for the original uClibc <br>
|
||||||
|
Waldemar Brodkorb et al. for uClibc-ng <br>
|
||||||
|
Denys Vlasenko et al. for BusyBox <br>
|
||||||
|
H. Peter Anvin et al. for SYSLINUX</p>
|
||||||
|
|
||||||
|
<h2>SEE ALSO
|
||||||
|
<a name="SEE ALSO"></a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(8),
|
||||||
|
<b>vlmcsd.ini</b>(5), <b>initrd</b>(4), <b>busybox</b>(1),
|
||||||
|
<b>syslinux(1)</b></p>
|
||||||
|
<hr>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
vlmcsd-floppy.7.pdf
Normal file
BIN
vlmcsd-floppy.7.pdf
Normal file
Binary file not shown.
530
vlmcsd-floppy.7.unix.txt
Normal file
530
vlmcsd-floppy.7.unix.txt
Normal file
@ -0,0 +1,530 @@
|
|||||||
|
VLMCSD-FLOPPY(7) KMS Activation Manual VLMCSD-FLOPPY(7)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NAME
|
||||||
|
floppy144.vfd - a bootable floppy disk with Linux and vlmcsd(8)
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
floppy144.vfd is an image of a bootable floppy that contains a minimal
|
||||||
|
version of Linux and vlmcsd(8). It requires only 16 MB of RAM. Its pri‐
|
||||||
|
mary purpose is to run vlmcsd(8) in a small virtual machine which makes
|
||||||
|
it easy to use vlmcsd(8) to activate the virtual machine's host com‐
|
||||||
|
puter which is not possible in Windows 8.1 and up. The floppy image is
|
||||||
|
a standard 3,5" floppy with 1.44 MB storage. It is formatted with a
|
||||||
|
FAT12 filesystem. The floppy can be mounted to apply several customiza‐
|
||||||
|
tions.
|
||||||
|
|
||||||
|
|
||||||
|
SUPPORTED HYPERVISORS
|
||||||
|
The floppy image has been tested with the following hypervisors:
|
||||||
|
|
||||||
|
VMWare, VirtualBox, Hyper-V and QEMU
|
||||||
|
|
||||||
|
Others are likely to work.
|
||||||
|
|
||||||
|
|
||||||
|
SETUP
|
||||||
|
Create a new virtual machine. Assign 16 MB of RAM. Add a floppy drive
|
||||||
|
and attach floppy144.vfd to this drive. Do not create a virtual hard
|
||||||
|
disk. Setup the virtual machine to boot from a floppy drive (VirtualBox
|
||||||
|
has floppy boot disabled by default). If possible, setup a virtual
|
||||||
|
machine with plain old BIOS (not UEFI). If you created an UEFI virtual
|
||||||
|
machine, enable the compatibility support mode (CSM) to allow a BIOS
|
||||||
|
compatible boot. Set number of CPUs to 1. The Linux kernel is not capa‐
|
||||||
|
ble of SMP. Remove IDE, SATA, SCSI and USB support if possible. The
|
||||||
|
Linux kernel can't handle this and ignores any devices connected to
|
||||||
|
these buses.
|
||||||
|
|
||||||
|
Setup an ethernet card. The following models are supported:
|
||||||
|
|
||||||
|
Intel PRO/1000
|
||||||
|
AMD PCNET III
|
||||||
|
AMD PCNET32
|
||||||
|
VMWare vmxnet3 (paravirtualized driver used by VMWare)
|
||||||
|
virtio (paravirtualized driver used by VirtualBox, QEMU, KVM and
|
||||||
|
lguest)
|
||||||
|
|
||||||
|
Most hypervisors emulate an Intel PRO/1000 or AMD PCNET32 by default.
|
||||||
|
Selecting a paravirtualized driver slightly improves performance. In
|
||||||
|
VirtualBox you can simply select virtio in the network configuration
|
||||||
|
dialog. VMWare requires that you add or change the VMX file. Use 'eth‐
|
||||||
|
ernet0.virtualDev = "vmxnet3"' in your VMWare config file.
|
||||||
|
|
||||||
|
If you are using QEMU, you must also setup a TAP adapter. Port redi‐
|
||||||
|
rection does not work to activate your own computer.
|
||||||
|
|
||||||
|
|
||||||
|
CONFIGURATION
|
||||||
|
floppy144.vfd can be customized to fit your needs. This is done by
|
||||||
|
editing the file syslinux.cfg on the floppy image. The floppy image
|
||||||
|
must be mounted. Under Linux you can simply attach floppy144.vfd to a
|
||||||
|
loop device which is mountable like any other block device. For Windows
|
||||||
|
you must use some software that allows mounting a floppy image, e.g.
|
||||||
|
OSFMount ⟨http://www.osforensics.com/tools/mount-disk-images.html⟩
|
||||||
|
|
||||||
|
OSFMount works under all Windows versions beginning with Windows XP up
|
||||||
|
to Windows 10 (32- and 64-bit).
|
||||||
|
|
||||||
|
The default syslinux.cfg file looks like this:
|
||||||
|
|
||||||
|
prompt 0
|
||||||
|
TIMEOUT 50
|
||||||
|
default dhcp
|
||||||
|
|
||||||
|
LABEL dhcp
|
||||||
|
KERNEL bzImage
|
||||||
|
APPEND vga=773 quiet initrd=initrd KBD=us LIS‐
|
||||||
|
TEN=[::]:1688,0.0.0.0:1688 TZ=UTC0 IPV4_CONFIG=DHCP
|
||||||
|
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd
|
||||||
|
USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd
|
||||||
|
INETD=Y WINDOWS=06401-00206-271-395032-03-1033-9600.0000-1652016
|
||||||
|
OFFICE2010=06401-00096-199-204970-03-1033-9600.0000-1652016
|
||||||
|
OFFICE2013=06401-00206-234-921934-03-1033-9600.0000-1652016
|
||||||
|
HWID=36:4F:46:3A:88:63:D3:5F
|
||||||
|
|
||||||
|
LABEL static
|
||||||
|
KERNEL bzImage
|
||||||
|
APPEND vga=773 quiet initrd=initrd KBD=fr LIS‐
|
||||||
|
TEN=[::]:1688,0.0.0.0:1688 TZ=CET-1CEST,M3.5.0,M10.5.0/3
|
||||||
|
IPV4_CONFIG=STATIC IPV4_ADDRESS=192.168.20.123/24 IPV4_GATE‐
|
||||||
|
WAY=192.168.20.2 IPV4_DNS1=192.168.20.2 IPV4_DNS2=NONE
|
||||||
|
NTP_SERVER=pool.ntp.org HOST_NAME=vlmcsd ROOT_PASSWORD=vlmcsd
|
||||||
|
USER_NAME=user USER_PASSWORD=vlmcsd GUEST_PASSWORD=vlmcsd
|
||||||
|
INETD=Y
|
||||||
|
|
||||||
|
|
||||||
|
There are two configurations in this files: dhcp (for configuring the
|
||||||
|
IPv4 network via DHCP) and static (for a static IPv4 configuration).
|
||||||
|
The kernel always boots the dhcp configuration without asking (lines
|
||||||
|
'prompt 0' and 'default dhcp'). You can simply change the default con‐
|
||||||
|
figuration to static and then customize the APPEND line in the static
|
||||||
|
configuration. For more details how to customize the syslinux.cfg file
|
||||||
|
see syslinux(1).
|
||||||
|
|
||||||
|
Each APPPEND line contains one or more items seperated by spaces. All
|
||||||
|
items are case-sensitive. The following parameters can be customized:
|
||||||
|
|
||||||
|
|
||||||
|
vga=vesa-video-mode
|
||||||
|
Sets the VESA display mode for the virtual machine. The parame‐
|
||||||
|
ter is not optional. If you ommit it, you will not see anything
|
||||||
|
on the screen. 773 means 1024x768 with 256 colors. See Wikipedia
|
||||||
|
⟨https://en.wikipedia.org/wiki/
|
||||||
|
VESA_BIOS_Extensions#Linux_video_mode_numbers⟩ for more video
|
||||||
|
modes. Note that all 16 color (4-bit) modes will not work. Use
|
||||||
|
8-bit (256 colors), 16-bit (65536 colors), 24-bit and 32-bit (>
|
||||||
|
16 Million colors) only. All modes above 1280x1024 are non-VESA-
|
||||||
|
standard and vary for all (virtual) graphic cards.
|
||||||
|
|
||||||
|
|
||||||
|
quiet This causes the kernel not display the its log during boot. You
|
||||||
|
may omit quiet but it doesn't make much sense. The boot log is
|
||||||
|
actually very verbose and scrolls away from screen quickly. If
|
||||||
|
any errors occur during boot, they will be displayed even if
|
||||||
|
quiet is present in the APPEND line. You may evaluate the com‐
|
||||||
|
plete boot log later by using the dmesg command or the menu on
|
||||||
|
/dev/tty8.
|
||||||
|
|
||||||
|
|
||||||
|
initrd=initial-ram-disk-file
|
||||||
|
This defines the initial ram disk that the kernel will read.
|
||||||
|
There is only one initial ram disk on the floppy thus leave ini‐
|
||||||
|
trd=initrd as it is.
|
||||||
|
|
||||||
|
|
||||||
|
KBD=keyboard-layout-name
|
||||||
|
This allows you to select the keyboard layout. keyboard-layout-
|
||||||
|
name is usually the ISO 3166-1 (top level domain) code for a
|
||||||
|
country. A list of valid keyboard-layout-names can be accessed
|
||||||
|
via the menu system on /dev/tty8 (press ALT-F8). Note, that this
|
||||||
|
is a keyboard driver only. There is no Unicode font support in
|
||||||
|
floppy144.vfd (due to the fact that the kernel uses a generic
|
||||||
|
VESA framebuffer device only). Characters beyond ASCII work for
|
||||||
|
Western European languages only but not Eastern European, Greek,
|
||||||
|
Cyrillic, Arabic, Hebrew, CJK and other languages. There is no
|
||||||
|
need in floppy144.vfd to enter any characters outside ASCII. The
|
||||||
|
purpose of the keyboard maps are that you will find characters
|
||||||
|
like dash, backslash, brackets, braces, etc. at the usual place
|
||||||
|
on your keyboard.
|
||||||
|
|
||||||
|
|
||||||
|
LISTEN=PRIVATE[:tcp-port] | ip-address[:tcp-port][,ip-address[:tcp-
|
||||||
|
port]][,...]
|
||||||
|
One or more combinations of IP addresses and optional TCP port
|
||||||
|
seperated by commas that vlmcsd(8) should listen on or PRIVATE
|
||||||
|
to listen on all private IP addresses only. The default port is
|
||||||
|
1688. If you use an explicit port number, append it to the IP
|
||||||
|
address seperated by a colon. If you use a port number and the
|
||||||
|
IP address contains colons, you must enclose the IP address in
|
||||||
|
brackets. For example 192.168.0.2,[fd00::dead:beef]:5678 causes
|
||||||
|
vlmcsd(8) to listen on 192.168.0.2 port 1688 and fd00::dead:beef
|
||||||
|
port 5678.
|
||||||
|
|
||||||
|
|
||||||
|
WINDOWS=epid
|
||||||
|
Defines the ePID that is used for Windows activations. If you
|
||||||
|
ommit this parameter, vlmcsd generates a random ePID when it is
|
||||||
|
started.
|
||||||
|
|
||||||
|
|
||||||
|
OFFICE2010=epid
|
||||||
|
Defines the ePID that is used for Office 2010 activations. If
|
||||||
|
you ommit this parameter, vlmcsd(8) generates a random ePID when
|
||||||
|
it is started.
|
||||||
|
|
||||||
|
|
||||||
|
OFFICE2013=epid
|
||||||
|
Defines the ePID that is used for Office (versions 2013 and
|
||||||
|
greater) activations. If you ommit this parameter, vlmcsd(8)
|
||||||
|
generates a random ePID when it is started.
|
||||||
|
|
||||||
|
|
||||||
|
HWID=hwid
|
||||||
|
Defines the HwId that is sent to clients. hwid must be specified
|
||||||
|
as 16 hex digits that are interpreted as a series of 8 bytes
|
||||||
|
(big endian). Any character that is not a hex digit will be
|
||||||
|
ignored. This is for better readability.
|
||||||
|
|
||||||
|
|
||||||
|
TZ=posix-time-zone-string
|
||||||
|
Set the time zone to posix-time-zone-string. It must conform to
|
||||||
|
the POSIX ⟨http://pubs.opengroup.org/onlinepubs/009695399/
|
||||||
|
basedefs/xbd_chap08.html⟩ specification. Simplified time zone
|
||||||
|
strings like "Europe/London" or "America/Detroit" are not
|
||||||
|
allowed. This has the very simple reason that there is no space
|
||||||
|
on the floppy to store the time zone database.
|
||||||
|
|
||||||
|
The string CET-1CEST,M3.5.0,M10.5.0/3 (most countries in Europe)
|
||||||
|
reads as follows:
|
||||||
|
|
||||||
|
CET The standard (winter) time zone has the name CET.
|
||||||
|
|
||||||
|
-1 The standard time zone is one hour east of UTC. Nega‐
|
||||||
|
tive numbers are east of UTC. Positive numbers are
|
||||||
|
west of UTC.
|
||||||
|
|
||||||
|
CEST The daylight saving (summer) time zone has the name
|
||||||
|
CEST.
|
||||||
|
|
||||||
|
M3.5.0 Daylight saving time starts in the 3rd month (March)
|
||||||
|
on the 5th (=last) occurence of weekday 0 (Sunday) at
|
||||||
|
2 o'clock (2 o'clock is a default value).
|
||||||
|
|
||||||
|
M10.5.0/3 Daylight saving time ends in the 10th month (October)
|
||||||
|
on the 5th (=last) occurence of weekday 0 (Sunday) at
|
||||||
|
3 o'clock.
|
||||||
|
|
||||||
|
If you don't have daylight saving time, things are easier. For
|
||||||
|
Chinese Standard Time for example, just use CST-8 as the time
|
||||||
|
zone string.
|
||||||
|
|
||||||
|
On a Linux desktop system, you can use a command like
|
||||||
|
strings /usr/share/zoneinfo/America/New_York | tail -n1. This
|
||||||
|
should return EST5EDT,M3.2.0,M11.1.0. You can use the returned
|
||||||
|
string for the TZ=posix-time-zone-string parameter.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_CONFIG=DHCP | STATIC
|
||||||
|
This determines how you want to configure IPv4 networking. If
|
||||||
|
you use IPV4_CONFIG=STATIC, you must supply additional para‐
|
||||||
|
maters to the APPEND command line.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_ADDRESS=ipv4-address/CIDR-mask
|
||||||
|
Use ipv4-address with netmask CIDR-mask for static IPv4 configu‐
|
||||||
|
ration. The netmask must not be ommitted. For IPv4 address
|
||||||
|
192.168.12.17 with a netmask of 255.255.255.0 use
|
||||||
|
192.168.12.17/24. For IPv4 address 10.4.0.8 with a netmask of
|
||||||
|
255.255.0.0 use 10.4.0.8/16. This paramater is ignored, if you
|
||||||
|
used IPV4_CONFIG=DHCP.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_GATEWAY=ipv4-address | NONE
|
||||||
|
Use ipv4-address as the default gateway. This is usually the
|
||||||
|
IPv4 address of your router. You may specify NONE explicitly for
|
||||||
|
no gateway. In this case your virtual machine is only visible on
|
||||||
|
its local LAN. This paramater is ignored, if you used IPV4_CON‐
|
||||||
|
FIG=DHCP.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_DNS1=ipv4-address | NONE
|
||||||
|
Use ipv4-address as the primary name server. In home networks
|
||||||
|
this is often the IPv4 address of your router. You may specify
|
||||||
|
NONE explicitly. If you specified NONE for both IPV4_DNS1= and
|
||||||
|
IPV4_DNS2=, your virtual machine cannot resolve host names to IP
|
||||||
|
addresses. While vlmcsd(8) works perfectly without DNS servers,
|
||||||
|
you must use IP addresses when referring to a host, e.g. for
|
||||||
|
specifying an NTP server. This paramater is ignored, if you used
|
||||||
|
IPV4_CONFIG=DHCP.
|
||||||
|
|
||||||
|
|
||||||
|
IPV4_DNS2=ipv4-address | NONE
|
||||||
|
Use ipv4-address as the secondary name server. It serves as a
|
||||||
|
backup if the primary name server is not available. Home net‐
|
||||||
|
works often don't have a secondary name server. In this case set
|
||||||
|
this to NONE. This paramater is ignored, if you used IPV4_CON‐
|
||||||
|
FIG=DHCP.
|
||||||
|
|
||||||
|
|
||||||
|
NTP_SERVER=host-name | ipv4-address | NONE
|
||||||
|
This sets the name of a time server using the NTP protocol. If
|
||||||
|
your virtualization environment reliably provides time, you can
|
||||||
|
set this to NONE. Don't use a public time service like
|
||||||
|
pool.ntp.org or time.nist.gov if you have a (at least somewhat
|
||||||
|
reliable) NTP server in your LAN.
|
||||||
|
|
||||||
|
|
||||||
|
HOST_NAME=host-name
|
||||||
|
Sets the local host name for your virtual machine. It can be a
|
||||||
|
single name or a fully-qualified domain name FQDN. If you used
|
||||||
|
IPV4_CONFIG=DHCP and your DHCP server returns a domain name, the
|
||||||
|
domain part of an FQDN will be replaced by that name. This host
|
||||||
|
name or host part of an FQDN will not replaced by a host name
|
||||||
|
returned via DHCP. The host name is not important for the opera‐
|
||||||
|
tion of floppy144.vfd.
|
||||||
|
|
||||||
|
|
||||||
|
ROOT_PASSWORD=password
|
||||||
|
Sets the password of the root user.
|
||||||
|
|
||||||
|
|
||||||
|
USER_NAME=username
|
||||||
|
Sets the name of for a general user with no special privileges.
|
||||||
|
This user can login but can't do much.
|
||||||
|
|
||||||
|
|
||||||
|
USER_PASSWORD=password
|
||||||
|
Sets the password for the user defined by USER_NAME=username.
|
||||||
|
|
||||||
|
|
||||||
|
GUEST_PASSWORD=password
|
||||||
|
Sets the password for the pre-defined guest user. This user has
|
||||||
|
the same priviliges (none) as the user defined by
|
||||||
|
USER_NAME=username.
|
||||||
|
|
||||||
|
|
||||||
|
INETD=Y | N
|
||||||
|
INETD=Y specifies that inetd(8) should automatically be started.
|
||||||
|
That means you can telnet and ftp to your virtual machine.
|
||||||
|
|
||||||
|
|
||||||
|
OPERATION
|
||||||
|
Diskless System
|
||||||
|
The floppy144.vfd virtual machine is a diskless system that works
|
||||||
|
entirely from RAM. The file system is actually a RAM disk that is cre‐
|
||||||
|
ated from the initrd(4) file on the floppy image.
|
||||||
|
|
||||||
|
Anything you'll do from inside the virtual machine, for instance edit‐
|
||||||
|
ing a config file, will be lost when you reboot the machine. So, if you
|
||||||
|
ever asked yourself if rm -fr / (root privileges required) really
|
||||||
|
deletes all files from all mounted partitions, the floppy144.vfd VM is
|
||||||
|
the right place to test it (Yes, it does).
|
||||||
|
|
||||||
|
The VM uses a RAM disk, because the Linux kernel had to be stripped
|
||||||
|
down to essential features to fit on a 1.44 MB floppy. It has no floppy
|
||||||
|
driver, no disk file system drivers and no block layer (cannot use
|
||||||
|
disks of any type).
|
||||||
|
|
||||||
|
|
||||||
|
System startup
|
||||||
|
The kernel boots up very quickly and the init script (/sbin/init) waits
|
||||||
|
5 seconds. In these 5 seconds you can:
|
||||||
|
|
||||||
|
Press 'm' to manually enter the time zone and the IPv4 parame‐
|
||||||
|
ters. These will be queried interactively.
|
||||||
|
Press 't' to manually enter the time zone only.
|
||||||
|
Press 's' to escape to a shell.
|
||||||
|
|
||||||
|
If you don't want to 5 seconds for continuing the init process, you can
|
||||||
|
press any other key to speed things up. At the end of the init script
|
||||||
|
you should see thatvlmcsd(8) has started. You should also see the IP
|
||||||
|
addresses and all user names and passwords.
|
||||||
|
|
||||||
|
|
||||||
|
Logging into the system
|
||||||
|
There are 5 local logins provided on /dev/tty2 to /dev/tty6. To switch
|
||||||
|
to these logins, simply press ALT-F2 to ALT-F6. To return to the con‐
|
||||||
|
sole on /dev/tty1, press ALT-F1. If inetd(8) is running you can also
|
||||||
|
use telnet(1). This allows you use a terminal program (e.g. putty) that
|
||||||
|
can utilize your keyboard layout, can be resized and has full UTF-8
|
||||||
|
support. The local terminals support US keyboard layout only. Please be
|
||||||
|
aware that telnet(1) is unencrypted and everything including passwords
|
||||||
|
is transmitted in clear text. There is not enough space for an ssh
|
||||||
|
server like sshd(8) or dropbear(8).
|
||||||
|
|
||||||
|
The floppy image only provides basic Unix commands. Type busybox or ll
|
||||||
|
/bin to get a list. The only editor available is vi(1). If you don't
|
||||||
|
like vi, you may transfer config files via ftp(1) edit them with the
|
||||||
|
editor of your choice and transfer them back to the floppy144.vfd VM.
|
||||||
|
|
||||||
|
|
||||||
|
The menu system
|
||||||
|
You'll find a menu system on /dev/tty8 (press ALT-F8 to see it). It
|
||||||
|
allows you performing some administrative tasks and to view various
|
||||||
|
system information. It is mainly for users that do not have much expe‐
|
||||||
|
rience with Unix commands.
|
||||||
|
|
||||||
|
|
||||||
|
1) (Re)start vlmcsd
|
||||||
|
Starts or restarts vlmcsd(8). This is useful if you changed
|
||||||
|
/etc/vlmcsd.ini(5).
|
||||||
|
|
||||||
|
|
||||||
|
2) Stop vlmcsd
|
||||||
|
Stops vlmcsd(8).
|
||||||
|
|
||||||
|
|
||||||
|
3) (Re)start inetd
|
||||||
|
Starts or restarts inetd(8). If inetd(8) is restarted, current
|
||||||
|
clients connected via telnet(1) or ftp(1) will not be dropped.
|
||||||
|
They can continue their sessions. This is useful if you changed
|
||||||
|
/etc/inetd.conf(5).
|
||||||
|
|
||||||
|
|
||||||
|
4) Stop inet
|
||||||
|
Stops inetd(8). All clients connected via telnet(1) or ftp(1)
|
||||||
|
will be dropped immediately.
|
||||||
|
|
||||||
|
|
||||||
|
5) Change the time zone
|
||||||
|
Just in case you missed pressing 't' during system startup. This
|
||||||
|
also restarts vlmcsd(8) if it was running to notify it that the
|
||||||
|
time zone has changed. Restarting vlmcsd(8) allows currently
|
||||||
|
connected clients to finish their activation.
|
||||||
|
|
||||||
|
|
||||||
|
k) Change keyboard layout
|
||||||
|
This allows you to select a different keyboard layout.
|
||||||
|
|
||||||
|
|
||||||
|
6) Show all kernel boot parameters
|
||||||
|
Shows all parameters passed to the kernel via syslinux.cfg. If
|
||||||
|
you experience any unexpected behavior, you can use this to
|
||||||
|
check if your APPEND line in syslinux.cfg is correct. The output
|
||||||
|
is piped through less(1). So press 'q' to return to the menu.
|
||||||
|
|
||||||
|
|
||||||
|
7) Show boot log (dmesg)
|
||||||
|
Shows the boot log of the kernel. The output is piped through
|
||||||
|
less(1). So press 'q' to return to the menu.
|
||||||
|
|
||||||
|
|
||||||
|
8) Show TCP/IP configuration
|
||||||
|
Shows the TCP/IP configuration, listening sockets and current
|
||||||
|
TCP and UDP connections. Useful, if you problems with net con‐
|
||||||
|
nectivity. The output is piped through less(1). So press 'q' to
|
||||||
|
return to the menu.
|
||||||
|
|
||||||
|
|
||||||
|
9) Show running processes
|
||||||
|
Shows all processes including memory and CPU usage. Display will
|
||||||
|
updated every second. Press 'q' or CTRL-C to return to the menu.
|
||||||
|
|
||||||
|
|
||||||
|
s) Shutdown
|
||||||
|
Shuts down the floppy144.vfd virtual machine. Proper shutdown is
|
||||||
|
not required. It is ok to use a hard power off in your virtual‐
|
||||||
|
ization program.
|
||||||
|
|
||||||
|
|
||||||
|
r) Reboot
|
||||||
|
Reboots the floppy144.vfd virtual machine. Proper reboot is not
|
||||||
|
required. It is ok to use a hard reset in your virtualization
|
||||||
|
program.
|
||||||
|
|
||||||
|
|
||||||
|
PERMANENT CHANGES OF INITRD
|
||||||
|
If you want to change any file or script of the file system (e.g. the
|
||||||
|
init script /sbin/init or /etc/vlmcsd.ini), you'll need to mount the
|
||||||
|
floppy image, unpack the initrd(4) file, make any modfications you
|
||||||
|
like, create a new initrd(4) file and copy it to the mounted floppy.
|
||||||
|
|
||||||
|
To unpack the initrd(4) file you'll need xz(1) (or lzma(1) on older
|
||||||
|
unix-like OSses) and cpio(1). These can be installed using your package
|
||||||
|
manager on all major distros. It is ok to use the BSD version of
|
||||||
|
cpio(1). No need to get the GNU version for BSD users. Provided the
|
||||||
|
floppy is mounted in /mnt/floppy do the following:
|
||||||
|
|
||||||
|
Create an empty directory
|
||||||
|
mkdir ~/vlmcsd-floppy-initrd
|
||||||
|
|
||||||
|
cd into that directory
|
||||||
|
cd ~/vlmcsd-floppy-initrd
|
||||||
|
|
||||||
|
Unpack initrd
|
||||||
|
cat /mnt/floppy/initrd | unlzma | cpio -i
|
||||||
|
|
||||||
|
After applying your changes build a new initrd(4) file:
|
||||||
|
|
||||||
|
|
||||||
|
cd into your directory
|
||||||
|
cd ~/vlmcsd-floppy-initrd
|
||||||
|
|
||||||
|
Create the packed file
|
||||||
|
find . | cpio -o -H newc | lzma > /mnt/floppy/initrd
|
||||||
|
|
||||||
|
Do not try to use 'lzma -9' to achive better compression. The kernel
|
||||||
|
can't read the resulting file. While customizing the initrd(4) file
|
||||||
|
works on almost any unix-like OS, it does not work on Windows even not
|
||||||
|
with Cygwin. The reason is that the NTFS file system can't handle uids
|
||||||
|
and gids. These cannot be preserved when unpacking the cpio(1) archive
|
||||||
|
to NTFS. If you use the WSL subsystem of Windows 10 Redstone (Anniver‐
|
||||||
|
sary Update) and later, you must make sure to unpack the initrd(4) file
|
||||||
|
to a directory on VolFs (normally everything that is not mounted under
|
||||||
|
/mnt). The initrd(4) file can be on a VolFs or DriveFs.
|
||||||
|
|
||||||
|
|
||||||
|
FAQ
|
||||||
|
On what distro is the floppy image based?
|
||||||
|
None. Besides the boot loader ldlinux.sys, there are only three bina‐
|
||||||
|
ries: The Linux kernel bzImage, busybox(1) and vlmcsdmulti-x86-musl-
|
||||||
|
static. bzImage and busybox(1) have been compiled with carefully
|
||||||
|
selected configuration parameters not found in any distro. This was
|
||||||
|
neccesary to fit everything on a 1.44 MB floppy.
|
||||||
|
|
||||||
|
|
||||||
|
Why is a rather old Linux kernel (3.12) used?
|
||||||
|
Linux 3.12 is the last kernel that can be booted with 16 MB of RAM.
|
||||||
|
Beginning with Linux 3.13 it requires much more memory (about 80 MB) to
|
||||||
|
boot. The floppy image is regularly tested with newer kernels. Every‐
|
||||||
|
thing works except that you need to assign much more main memory to the
|
||||||
|
virtual machine.
|
||||||
|
|
||||||
|
|
||||||
|
Can the floppy be booted on bare metal?
|
||||||
|
Basically yes. However, only Intel Pro/1000 and AMD PCNET32 ethernet
|
||||||
|
cards are supported by the kernel. In addition there is no USB support
|
||||||
|
compiled into the kernel. That means you can only use an IBM AT or IBM
|
||||||
|
PS/2 keyboard which are not available on newer hardware.
|
||||||
|
|
||||||
|
|
||||||
|
FILES
|
||||||
|
syslinux.cfg, vlmcsd.ini(5)
|
||||||
|
|
||||||
|
|
||||||
|
BUGS
|
||||||
|
IPv6 cannot be configured with static or manual parameters.
|
||||||
|
DHCPv6 is not supported.
|
||||||
|
´ip route add ...' does not work. Use 'route add ...' instead.
|
||||||
|
|
||||||
|
|
||||||
|
AUTHOR
|
||||||
|
floppy144.vfd has been created by Hotbird64
|
||||||
|
|
||||||
|
|
||||||
|
CREDITS
|
||||||
|
Linus Torvalds et al. for the Linux kernel
|
||||||
|
Erik Andersen et al. for the original uClibc
|
||||||
|
Waldemar Brodkorb et al. for uClibc-ng
|
||||||
|
Denys Vlasenko et al. for BusyBox
|
||||||
|
H. Peter Anvin et al. for SYSLINUX
|
||||||
|
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
vlmcsd(8), vlmcsd.ini(5), initrd(4), busybox(1), syslinux(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hotbird64 June 2016 VLMCSD-FLOPPY(7)
|
@ -1,5 +1,5 @@
|
|||||||
<!-- Creator : groff version 1.22.3 -->
|
<!-- Creator : groff version 1.22.3 -->
|
||||||
<!-- CreationDate: Sun Jun 5 14:31:10 2016 -->
|
<!-- CreationDate: Fri Jun 17 14:16:33 2016 -->
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
"http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
|
BIN
vlmcsd.7.pdf
BIN
vlmcsd.7.pdf
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
<!-- Creator : groff version 1.22.3 -->
|
<!-- Creator : groff version 1.22.3 -->
|
||||||
<!-- CreationDate: Sun Jun 5 14:31:10 2016 -->
|
<!-- CreationDate: Fri Jun 17 14:16:33 2016 -->
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
"http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
|
BIN
vlmcsd.8.pdf
BIN
vlmcsd.8.pdf
Binary file not shown.
6
vlmcsd.c
6
vlmcsd.c
@ -43,7 +43,9 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#ifndef NO_LIMIT
|
||||||
#include <semaphore.h>
|
#include <semaphore.h>
|
||||||
|
#endif // NO_LIMIT
|
||||||
#endif // !_WIN32
|
#endif // !_WIN32
|
||||||
|
|
||||||
#if __APPLE__
|
#if __APPLE__
|
||||||
@ -533,7 +535,7 @@ static BOOL setIniFileParameter(uint_fast8_t id, const char *const iniarg)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
# endif // !defined(NO_SOCKETS) && !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS)
|
# endif // !defined(NO_SOCKETS) && !defined(USE_MSRPC) && !defined(SIMPLE_SOCKETS)
|
||||||
# if !defined(NO_LIMIT) && !__minix__
|
# if !defined(NO_LIMIT) && !defined(NO_SOCKETS) && !__minix__
|
||||||
|
|
||||||
case INI_PARAM_MAX_WORKERS:
|
case INI_PARAM_MAX_WORKERS:
|
||||||
# ifdef USE_MSRPC
|
# ifdef USE_MSRPC
|
||||||
@ -543,7 +545,7 @@ static BOOL setIniFileParameter(uint_fast8_t id, const char *const iniarg)
|
|||||||
# endif // !USE_MSRPC
|
# endif // !USE_MSRPC
|
||||||
break;
|
break;
|
||||||
|
|
||||||
# endif // !defined(NO_LIMIT) && !__minix__
|
# endif // !defined(NO_LIMIT) && !defined(NO_SOCKETS) && !__minix__
|
||||||
|
|
||||||
# ifndef NO_PID_FILE
|
# ifndef NO_PID_FILE
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!-- Creator : groff version 1.22.3 -->
|
<!-- Creator : groff version 1.22.3 -->
|
||||||
<!-- CreationDate: Sun Jun 5 14:31:11 2016 -->
|
<!-- CreationDate: Fri Jun 17 14:16:33 2016 -->
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
"http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
|
BIN
vlmcsd.ini.5.pdf
BIN
vlmcsd.ini.5.pdf
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
<!-- Creator : groff version 1.22.3 -->
|
<!-- Creator : groff version 1.22.3 -->
|
||||||
<!-- CreationDate: Sun Jun 5 14:31:10 2016 -->
|
<!-- CreationDate: Fri Jun 17 14:16:33 2016 -->
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||||
"http://www.w3.org/TR/html4/loose.dtd">
|
"http://www.w3.org/TR/html4/loose.dtd">
|
||||||
<html>
|
<html>
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user