Hello,

Damien Zammit, le ven. 27 juin 2025 06:41:53 +0000, a ecrit:
> This provides support for the /dev/ud* nodes
> that pass through to /dev/usbdisk, and enables
> usb disk support in the installer.
> 
> UNTESTED

Please do test changes.

Writing changes that look reasonable is not what would consume me time.
What consumes time is actually testing things and check that they go
alright. I tried your change and immediately got

[   1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
[   1.0000000]     2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
[   1.0000000]     2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
[   1.0000000]     2024
[   1.0000000]     The NetBSD Foundation, Inc.  All rights reserved.
[   1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[   1.0000000]     The Regents of the University of California.  All rights 
reserved.

[   1.0000000] NetBSD 10.99.12 (RUMP-ROAST)
[   1.0000000] total memory = unlimited (host limit)
[   1.0000000] entropy: ready
[   1.0000000] timecounter: Timecounters tick every 10.000 msec
[   1.0000040] timecounter: Timecounter "clockinterrupt" frequency 100 Hz 
quality 0
[   1.0000050] cpu0 at thinair0: rump virtual cpu
[   1.0000050] root file system type: rumpfs
[   1.0000050] kern.module.path=/stand/amd64/10.99.12/modules
[   1.0000050] mainbus0 (root)
[   1.0000050] pci0 at mainbus0 bus 0
[   1.0000050] pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv 
ok
[   1.0000050] vendor 8086 product 1237 (host bridge, revision 0x02) at pci0 
dev 0 function 0 not configured
[   1.0000050] vendor 8086 product 7000 (ISA bridge) at pci0 dev 1 function 0 
not configured
[   1.0000050] vendor 8086 product 7010 (IDE mass storage, interface 0x80) at 
pci0 dev 1 function 1 not configured
[   1.0000050] uhci0 at pci0 dev 1 function 2: vendor 8086 product 7020 (rev. 
0x01)
irq handler [11]: new delivery port ffffffffde276910 entry ffffffffde72bc40
/hurd/crash: /hurd/rumpusbdisk(1156) crashed, signal {no:11, code:2, error:2}, 
exception {1, code:2, subcode:40}, PCs: {
0xd1fc2 0x34c979 0x8826c 0x5098b3,
0xbaaec 0x32d74e 0xd0a52 0xd1b2a 0xca85b 0x3065b7 0x306625 0xea242 0xbb6a2 
0xea2c0,
0xbaaec 0x15e006 0x15e9e3 0x4ee9ad 0x4e59ff 0x4e1cb4 0x83588,
0xbaaec 0x1a08c9 0x4ed524 0x4e51be 0x4e1cb4 0x83588,
0xbaaec 0x15e006 0x15e9e3 0x4ee80d 0x4e5663 0x4e1cb4 0x83588,
0xbaaec 0x15e006 0x15e9e3 0x4ee9ad 0x4e59ff 0x4e1cb4 0x83588, DUP, DUP,
0xbaaec 0x15e006 0x15e9e3 0x4ee9ad 0x4de7ed 0x47ee96 0x4e1cb4 0x83588,
0xbaaec 0x15f1c7 0x15e81c 0x4eeaba 0x4de7c1 0x4deb3b 0x4cba33 0x4e1cb4 0x83588,
0xbaaec 0x15e006 0x15e9e3 0x4ee9ad 0x4de7ed 0x4e047c 0x4e1cb4 0x83588,
0xbaaec 0x15e006 0x15e9e3 0x4ee9ad 0x4de7ed 0x4ab95a 0x4e1cb4 0x83588,
0xbaaec 0x1a08c9 0x1b93d3 0x4ed4c1 0x4e5eb8 0x53ebd6 0x4e1cb4 0x83588,
0xbaaec 0x15e006 0x15e9e3 0x4ee9ad 0x4de7ed 0x48000b 0x4e1cb4 0x83588, DUP,
0x4ede44 0x42a3bd 0x5092f1 0xbb6a2 0x7981d 0x50931b
}, killing task.

And lost network access.

Possibly the network access loss is due to the share irq.

I however just don't have time to investigate problems that people throw
at me.

Do. test. your. changes.

Samuel

> ---
>  debian/hurd-udeb.install.in        |  1 +
>  debian/hurd-udeb.lintian-overrides |  2 ++
>  debian/local/setup-translators     |  4 ++++
>  debian/rules                       |  2 +-
>  sutils/MAKEDEV.sh                  | 15 +++++++++++++--
>  5 files changed, 21 insertions(+), 3 deletions(-)
> 
> diff --git a/debian/hurd-udeb.install.in b/debian/hurd-udeb.install.in
> index e0ad63c62..bede194e1 100644
> --- a/debian/hurd-udeb.install.in
> +++ b/debian/hurd-udeb.install.in
> @@ -59,6 +59,7 @@ hurd/procfs
>  hurd/proxy-defpager
>  hurd/random
>  hurd/rumpdisk
> +hurd/rumpusbdisk
>  hurd/shutdown
>  hurd/storeio
>  hurd/streamio
> diff --git a/debian/hurd-udeb.lintian-overrides 
> b/debian/hurd-udeb.lintian-overrides
> index 7f499ee90..1caa33752 100644
> --- a/debian/hurd-udeb.lintian-overrides
> +++ b/debian/hurd-udeb.lintian-overrides
> @@ -2,3 +2,5 @@ non-standard-toplevel-dir [hurd/]
>  non-standard-toplevel-dir [servers/]
>  package-contains-empty-directory [servers/]
>  hurd-udeb udeb: embedded-library zlib [boot/ext2fs.static]
> +hurd-udeb udeb: embedded-library librump [hurd/rumpdisk]
> +hurd-udeb udeb: embedded-library librump [hurd/rumpusbdisk]
> diff --git a/debian/local/setup-translators b/debian/local/setup-translators
> index ad10aea8a..1e12c4d97 100755
> --- a/debian/local/setup-translators
> +++ b/debian/local/setup-translators
> @@ -143,6 +143,10 @@ md rumpdisk
>  md wdX 012345
>  md wdXsY 012345 123456789
>  md wdXs1Y 012345 0123456
> +md rumpusbdisk
> +md udX 012345
> +md udXsY 012345 123456789
> +md udXs1Y 012345 0123456
>  md cdX 01
>  md netdde
>  md ethX 0123
> diff --git a/debian/rules b/debian/rules
> index a24179cba..658e8cc2f 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -29,7 +29,7 @@ TRANSLATORS_PROF = auth exec ext2fs pci-arbiter pfinet lwip 
> pflocal proc procfs
>  
>  CONFIGURE_ARGS = --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
>  ifeq (,$(filter stage1 stage2,$(DEB_BUILD_PROFILES)))
> -CONFIGURE_ARGS += --disable-profile 
> --enable-static-progs='ext2fs,iso9660fs,rumpdisk,pci-arbiter,acpi,startup,proc,auth,pfinet,pflocal'
> +CONFIGURE_ARGS += --disable-profile 
> --enable-static-progs='ext2fs,iso9660fs,rumpdisk,rumpusbdisk,pci-arbiter,acpi,startup,proc,auth,pfinet,pflocal'
>  else
>  CONFIGURE_ARGS += \
>                --disable-ncursesw \
> diff --git a/sutils/MAKEDEV.sh b/sutils/MAKEDEV.sh
> index de31c1bef..a67ff7a4b 100644
> --- a/sutils/MAKEDEV.sh
> +++ b/sutils/MAKEDEV.sh
> @@ -185,7 +185,11 @@ mkdev() {
>       st $I root 660 c /hurd/rumpdisk
>       cmd ln -f -s rumpdisk disk
>       ;;
> -      [hrscw]d*)
> +      rumpusbdisk)
> +     st $I root 660 c /hurd/rumpusbdisk
> +     cmd ln -f -s rumpusbdisk usbdisk
> +     ;;
> +      [hrscwu]d*)
>       local sliceno=
>          local n="${I#?d}"
>       local major="${n%%[!0-9]*}"
> @@ -220,16 +224,23 @@ mkdev() {
>         lose "$I: Invalid slice or partition syntax"
>         ;;
>       esac
> +
> +     dev=${I%s[0-9]*}
> +
>       case "$I" in
>       wd*|cd*)
>         USE_PARTSTORE=1
>         MASTER=@/dev/disk:
>         ;;
> +     ud*)
> +       USE_PARTSTORE=1
> +       MASTER=@/dev/usbdisk:
> +       dev=${dev/u/s}
> +       ;;
>       esac
>  
>       # The device name passed all syntax checks, so finally use it!
>       if [ "$USE_PARTSTORE" ] && [ -z "$rest" ] && [ "$sliceno" ]; then
> -       local dev=${I%s[0-9]*}
>         st $I root 640 b /hurd/storeio -T typed 
> part:$sliceno:device:$MASTER$dev
>       else
>         st $I root 640 b /hurd/storeio $MASTER$I
> -- 
> 2.45.2
> 
> 
> 

Reply via email to