Hello, with the following hacky patch, I no longer see any crashes, debootstrap --second-stage runs all the way and leaves me with an almost full Debian GNU/Hurd x86_64 system \o/
Well, debootstrap does output lots of errors like dpkg: dependency problems prevent configuration of openssh-server: openssh-server depends on ucf; however: Package ucf is not installed. openssh-server depends on runit-helper (>= 2.14.0~); however: Package runit-helper is not installed. but that's an issue with the selection of packages and not with the x86_64 Hurd. Nano works, I can write text! The network stack kind of works; I can 'curl http://example.com' and get *almost* the whole output, but it hangs towards the end there. Sergey -- >8 -- diff --git a/i386/i386/debug_i386.c b/i386/i386/debug_i386.c index b5465796..41d032e3 100644 --- a/i386/i386/debug_i386.c +++ b/i386/i386/debug_i386.c @@ -40,8 +40,6 @@ void dump_ss(const struct i386_saved_state *st) st->r8, st->r9, st->r10, st->r11); printf("R12 %016lx R13 %016lx R14 %016lx R15 %016lx\n", st->r12, st->r13, st->r14, st->r15); - printf("FSBASE %016lx GSBASE %016lx\n", - st->fsbase, st->gsbase); printf("RIP %016lx EFLAGS %08lx\n", st->eip, st->efl); #else printf("EAX %08lx EBX %08lx ECX %08lx EDX %08lx\n", diff --git a/i386/i386/pcb.c b/i386/i386/pcb.c index fb535709..3691a1f3 100644 --- a/i386/i386/pcb.c +++ b/i386/i386/pcb.c @@ -224,8 +224,8 @@ void switch_ktss(pcb_t pcb) #endif /* MACH_PV_DESCRIPTORS */ #if defined(__x86_64__) && !defined(USER32) - wrmsr(MSR_REG_FSBASE, pcb->iss.fsbase); - wrmsr(MSR_REG_GSBASE, pcb->iss.gsbase); + wrmsr(MSR_REG_FSBASE, pcb->fsbase); + wrmsr(MSR_REG_GSBASE, pcb->gsbase); #endif db_load_context(pcb); @@ -680,8 +680,8 @@ kern_return_t thread_setstatus( return KERN_INVALID_ARGUMENT; state = (struct i386_fsgs_base_state *) tstate; - thread->pcb->iss.fsbase = state->fs_base; - thread->pcb->iss.gsbase = state->gs_base; + thread->pcb->fsbase = state->fs_base; + thread->pcb->gsbase = state->gs_base; if (thread == current_thread()) { wrmsr(MSR_REG_FSBASE, state->fs_base); wrmsr(MSR_REG_GSBASE, state->gs_base); @@ -872,8 +872,8 @@ kern_return_t thread_getstatus( return KERN_INVALID_ARGUMENT; state = (struct i386_fsgs_base_state *) tstate; - state->fs_base = thread->pcb->iss.fsbase; - state->gs_base = thread->pcb->iss.gsbase; + state->fs_base = thread->pcb->fsbase; + state->gs_base = thread->pcb->gsbase; *count = i386_FSGS_BASE_STATE_COUNT; break; } diff --git a/i386/i386/thread.h b/i386/i386/thread.h index b5fc5ffb..4f42c145 100644 --- a/i386/i386/thread.h +++ b/i386/i386/thread.h @@ -51,10 +51,7 @@ */ struct i386_saved_state { -#ifdef __x86_64__ - unsigned long fsbase; - unsigned long gsbase; -#endif + unsigned long fake_bases[2]; unsigned long gs; unsigned long fs; unsigned long es; @@ -208,6 +205,10 @@ typedef struct pcb { unsigned long pad; /* ensure exception stack is aligned to 16 */ #endif struct i386_saved_state iss; +#ifdef __x86_64__ + unsigned long fsbase; + unsigned long gsbase; +#endif struct i386_machine_state ims; decl_simple_lock_data(, lock) unsigned short init_control; /* Initial FPU control to set */ -- >8 -- I have no name!@hurd:/# fsysopts / --writable I have no name!@hurd:/# /debootstrap/debootstrap --second-stage I: Installing core packages... I: Unpacking required packages... I: Unpacking base-files... I: Unpacking base-passwd... I: Unpacking bash... I: Unpacking bsdutils... I: Unpacking coreutils... I: Unpacking dash... I: Unpacking debconf... I: Unpacking debianutils... I: Unpacking diffutils... I: Unpacking dpkg... I: Unpacking e2fsprogs... I: Unpacking findutils... I: Unpacking gnumach-common... I: Unpacking gnumach-image-1.8-486... I: Unpacking grep... I: Unpacking gzip... I: Unpacking hostname... I: Unpacking hurd... I: Unpacking hurd-libs0.3:hurd-amd64... I: Unpacking init-system-helpers... I: Unpacking less... I: Unpacking libacl1:hurd-amd64... I: Unpacking libblkid1:hurd-amd64... I: Unpacking libbsd0:hurd-amd64... I: Unpacking libbz2-1.0:hurd-amd64... I: Unpacking libc-bin... I: Unpacking libc0.3:hurd-amd64... I: Unpacking libcom-err2:hurd-amd64... I: Unpacking libcrypt1:hurd-amd64... I: Unpacking libdaemon0:hurd-amd64... I: Unpacking libdb5.3:hurd-amd64... I: Unpacking libdebconfclient0:hurd-amd64... I: Unpacking libext2fs2:hurd-amd64... I: Unpacking libgcrypt20:hurd-amd64... I: Unpacking libgmp10:hurd-amd64... I: Unpacking libgpg-error0:hurd-amd64... I: Unpacking liblwip0:hurd-amd64... I: Unpacking liblzma5:hurd-amd64... I: Unpacking libmd0:hurd-amd64... I: Unpacking libmount1:hurd-amd64... I: Unpacking libncursesw6:hurd-amd64... I: Unpacking libpam-modules:hurd-amd64... I: Unpacking libpam-modules-bin... I: Unpacking libpam-runtime... I: Unpacking libpam0g:hurd-amd64... I: Unpacking libparted2:hurd-amd64... I: Unpacking libpciaccess0:hurd-amd64... I: Unpacking libpcre2-8-0:hurd-amd64... I: Unpacking libsmartcols1:hurd-amd64... I: Unpacking libss2:hurd-amd64... I: Unpacking libtext-wrapi18n-perl... I: Unpacking libtinfo6:hurd-amd64... I: Unpacking libuuid1:hurd-amd64... I: Unpacking libx11-6:hurd-amd64... I: Unpacking libxau6:hurd-amd64... I: Unpacking libxcb1:hurd-amd64... I: Unpacking libxdmcp6:hurd-amd64... I: Unpacking libzstd1:hurd-amd64... I: Unpacking login... I: Unpacking logsave... I: Unpacking mawk... I: Unpacking ncurses-base... I: Unpacking ncurses-bin... I: Unpacking netdde... I: Unpacking netdde-dbg... I: Unpacking passwd... I: Unpacking perl-base... I: Unpacking sed... I: Unpacking sensible-utils... I: Unpacking sysvinit-utils... I: Unpacking tar... I: Unpacking tzdata... I: Unpacking usr-is-merged... I: Unpacking util-linux... I: Unpacking util-linux-extra... I: Unpacking zlib1g:hurd-amd64... I: Configuring required packages... I: Configuring usr-is-merged... I: Configuring gnumach-common... I: Configuring debconf... I: Configuring tzdata... I: Configuring ncurses-base... I: Configuring init-system-helpers... I: Configuring sensible-utils... I: Configuring libc0.3:hurd-amd64... I: Configuring sysvinit-utils... I: Configuring debianutils... I: Configuring mawk... I: Configuring libdebconfclient0:hurd-amd64... I: Configuring base-files... I: Configuring libbz2-1.0:hurd-amd64... I: Configuring libdaemon0:hurd-amd64... I: Configuring base-passwd... I: Configuring libdb5.3:hurd-amd64... I: Configuring libblkid1:hurd-amd64... I: Configuring util-linux-extra... I: Configuring libtinfo6:hurd-amd64... I: Configuring bash... I: Configuring libzstd1:hurd-amd64... I: Configuring libxau6:hurd-amd64... I: Configuring bsdutils... I: Configuring liblzma5:hurd-amd64... I: Configuring libgpg-error0:hurd-amd64... I: Configuring libc-bin... I: Configuring ncurses-bin... I: Configuring libacl1:hurd-amd64... I: Configuring libsmartcols1:hurd-amd64... I: Configuring less... I: Configuring libgcrypt20:hurd-amd64... I: Configuring gnumach-image-1.8-486... I: Configuring zlib1g:hurd-amd64... I: Configuring libcrypt1:hurd-amd64... I: Configuring libcom-err2:hurd-amd64... I: Configuring diffutils... I: Configuring hostname... I: Configuring libext2fs2:hurd-amd64... I: Configuring libpam0g:hurd-amd64... I: Configuring libgmp10:hurd-amd64... I: Configuring sed... I: Configuring libuuid1:hurd-amd64... I: Configuring libss2:hurd-amd64... I: Configuring libpcre2-8-0:hurd-amd64... I: Configuring libncursesw6:hurd-amd64... I: Configuring logsave... I: Configuring libmd0:hurd-amd64... I: Configuring findutils... I: Configuring liblwip0:hurd-amd64... I: Configuring libmount1:hurd-amd64... I: Configuring libbsd0:hurd-amd64... I: Configuring libpciaccess0:hurd-amd64... I: Configuring libxdmcp6:hurd-amd64... I: Configuring libxcb1:hurd-amd64... I: Configuring tar... I: Configuring libpam-modules-bin... I: Configuring coreutils... I: Configuring e2fsprogs... I: Configuring util-linux... I: Configuring libpam-modules:hurd-amd64... I: Configuring passwd... I: Configuring libpam-runtime... I: Configuring login... I: Configuring libparted2:hurd-amd64... I: Configuring hurd-libs0.3:hurd-amd64... I: Configuring netdde... I: Configuring dpkg... I: Configuring dash... I: Configuring netdde-dbg... I: Configuring grep... I: Configuring perl-base... I: Configuring gzip... I: Configuring hurd... I: Configuring libx11-6:hurd-amd64... I: Configuring libtext-wrapi18n-perl... I: Configuring libc-bin... I: Unpacking the base system... I: Unpacking apt... I: Unpacking apt-utils... I: Unpacking bash-static... I: Unpacking bsdextrautils... I: Unpacking build-essential... I: Unpacking ca-certificates... I: Unpacking cpio... I: Unpacking cron... I: Unpacking curl... I: Unpacking debconf-i18n... I: Unpacking debian-archive-keyring... I: Unpacking fdisk... I: Unpacking gcc-13-base:hurd-amd64... I: Unpacking gpgv... I: Unpacking groff-base... I: Unpacking hurd-dbgsym... I: Unpacking hurd-libs0.3-dbgsym:hurd-amd64... I: Unpacking ifupdown... I: Unpacking inetutils-ping... I: Unpacking inetutils-tools... I: Unpacking libapt-pkg6.0:hurd-amd64... I: Unpacking libbrotli1:hurd-amd64... I: Unpacking libc0.3-dbg:hurd-amd64... I: Unpacking libcurl4:hurd-amd64... I: Unpacking libedit2:hurd-amd64... I: Unpacking libfdisk1:hurd-amd64... I: Unpacking libffi8:hurd-amd64... I: Unpacking libgcc-s1:hurd-amd64... I: Unpacking libgdbm6:hurd-amd64... I: Unpacking libgnutls30:hurd-amd64... I: Unpacking libgssapi-krb5-2:hurd-amd64... I: Unpacking libhogweed6:hurd-amd64... I: Unpacking libidn2-0:hurd-amd64... I: Unpacking libk5crypto3:hurd-amd64... I: Unpacking libkrb5-3:hurd-amd64... I: Unpacking libkrb5support0:hurd-amd64... I: Unpacking libldap-2.5-0:hurd-amd64... I: Unpacking liblz4-1:hurd-amd64... I: Unpacking libnettle8:hurd-amd64... I: Unpacking libnghttp2-14:hurd-amd64... I: Unpacking libnsl2:hurd-amd64... I: Unpacking libp11-kit0:hurd-amd64... I: Unpacking libpipeline1:hurd-amd64... I: Unpacking libpopt0:hurd-amd64... I: Unpacking libproc2-0:hurd-amd64... I: Unpacking libpsl5:hurd-amd64... I: Unpacking libreadline8:hurd-amd64... I: Unpacking librtmp1:hurd-amd64... I: Unpacking libsasl2-2:hurd-amd64... I: Unpacking libsasl2-modules-db:hurd-amd64... I: Unpacking libssh2-1:hurd-amd64... I: Unpacking libssl3:hurd-amd64... I: Unpacking libstdc++6:hurd-amd64... I: Unpacking libtasn1-6:hurd-amd64... I: Unpacking libtirpc-common... I: Unpacking libtirpc3:hurd-amd64... I: Unpacking libuchardet0:hurd-amd64... I: Unpacking libunistring2:hurd-amd64... I: Unpacking libwrap0:hurd-amd64... I: Unpacking libxxhash0:hurd-amd64... I: Unpacking logrotate... I: Unpacking make... I: Unpacking man-db... I: Unpacking nano... I: Unpacking netbase... I: Unpacking openssh-client... I: Unpacking openssh-server... I: Unpacking openssh-sftp-server... I: Unpacking openssl... I: Unpacking procps... I: Unpacking readline-common... I: Unpacking vim-common... I: Unpacking wget... I: Configuring the base system... I: Configuring hurd-libs0.3-dbgsym:hurd-amd64... I: Configuring cpio... I: Configuring libpipeline1:hurd-amd64... I: Configuring libc0.3-dbg:hurd-amd64... I: Configuring bsdextrautils... I: Configuring liblz4-1:hurd-amd64... I: Configuring libtirpc-common... I: Configuring libbrotli1:hurd-amd64... I: Configuring libedit2:hurd-amd64... I: Configuring bash-static... I: Configuring cron... I: Configuring debian-archive-keyring... I: Configuring libssl3:hurd-amd64... I: Configuring libnghttp2-14:hurd-amd64... I: Configuring libunistring2:hurd-amd64... I: Configuring libidn2-0:hurd-amd64... I: Configuring libkrb5support0:hurd-amd64... I: Configuring libsasl2-modules-db:hurd-amd64... I: Configuring vim-common... I: Configuring gcc-13-base:hurd-amd64... I: Configuring libnettle8:hurd-amd64... I: Configuring make... I: Configuring libproc2-0:hurd-amd64... I: Configuring libk5crypto3:hurd-amd64... I: Configuring libsasl2-2:hurd-amd64... I: Configuring libfdisk1:hurd-amd64... I: Configuring nano... I: Configuring libffi8:hurd-amd64... I: Configuring gpgv... I: Configuring libxxhash0:hurd-amd64... I: Configuring procps... I: Configuring libtasn1-6:hurd-amd64... I: Configuring libssh2-1:hurd-amd64... I: Configuring netbase... I: Configuring libkrb5-3:hurd-amd64... I: Configuring inetutils-tools... I: Configuring openssl... I: Configuring readline-common... I: Configuring libgdbm6:hurd-amd64... I: Configuring libpopt0:hurd-amd64... I: Configuring hurd-dbgsym... I: Configuring logrotate... I: Configuring libpsl5:hurd-amd64... I: Configuring libhogweed6:hurd-amd64... I: Configuring libreadline8:hurd-amd64... I: Configuring libgcc-s1:hurd-amd64... I: Configuring fdisk... I: Configuring ca-certificates... I: Configuring ifupdown... I: Configuring libp11-kit0:hurd-amd64... I: Configuring libgssapi-krb5-2:hurd-amd64... I: Configuring inetutils-ping... I: Configuring libstdc++6:hurd-amd64... I: Configuring libtirpc3:hurd-amd64... I: Configuring openssh-client... I: Configuring libgnutls30:hurd-amd64... I: Configuring librtmp1:hurd-amd64... I: Configuring libapt-pkg6.0:hurd-amd64... I: Configuring libuchardet0:hurd-amd64... I: Configuring libnsl2:hurd-amd64... I: Configuring openssh-sftp-server... I: Configuring apt... I: Configuring apt-utils... I: Configuring wget... I: Configuring libldap-2.5-0:hurd-amd64... I: Configuring libwrap0:hurd-amd64... I: Configuring groff-base... I: Configuring libcurl4:hurd-amd64... I: Configuring curl... I: Configuring man-db... I: Configuring libc-bin... I: Configuring ca-certificates... W: Failure while configuring base packages. This will be re-attempted up to five times. W: See //debootstrap/debootstrap.log for details (possibly the package openssh-server is at fault) W: Failure while configuring base packages. This will be re-attempted up to five times. W: See //debootstrap/debootstrap.log for details (possibly the package openssh-server is at fault) W: Failure while configuring base packages. This will be re-attempted up to five times. W: See //debootstrap/debootstrap.log for details (possibly the package openssh-server is at fault) W: Failure while configuring base packages. This will be re-attempted up to five times. W: See //debootstrap/debootstrap.log for details (possibly the package openssh-server is at fault) W: Failure while configuring base packages. This will be re-attempted up to five times. W: See //debootstrap/debootstrap.log for details (possibly the package openssh-server is at fault)