bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 64bit startup


From: Sergey Bugaev
Subject: Re: 64bit startup
Date: Fri, 9 Jun 2023 20:49:44 +0300

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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]