[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
This bug was fixed in the package qemu - 1:6.2+dfsg-2ubuntu6.31 --- qemu (1:6.2+dfsg-2ubuntu6.31) jammy; urgency=medium * d/qemu-guest-agent.postinst: trigger udev rule to start the service (LP: #2102093) * d/p/u/lp2133804/*: linux-user: Add termios2 support (LP: #2133804) -- Hector Cao Wed, 22 Apr 2026 11:24:43 +0200 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Fix Released Status in qemu source package in Noble: Fix Released Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Released Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
This bug was fixed in the package qemu - 1:10.1.0+ds-5ubuntu2.7 --- qemu (1:10.1.0+ds-5ubuntu2.7) questing; urgency=medium * d/qemu-guest-agent.postinst: trigger udev rule to start the service (LP: #2102093) * d/p/u/lp2133804/*: linux-user: Add termios2 support (LP: #2133804) -- Hector Cao Wed, 22 Apr 2026 11:24:43 +0200 ** Changed in: qemu (Ubuntu Questing) Status: Fix Committed => Fix Released ** Changed in: qemu (Ubuntu Noble) Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Fix Released Status in qemu source package in Noble: Fix Released Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Released Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
This bug was fixed in the package qemu - 1:8.2.2+ds-0ubuntu1.17 --- qemu (1:8.2.2+ds-0ubuntu1.17) noble; urgency=medium * d/qemu-guest-agent.postinst: trigger udev rule to start the service (LP: #2102093) * d/p/u/lp2133804/*: linux-user: Add termios2 support (LP: #2133804) -- Hector Cao Wed, 22 Apr 2026 11:24:43 +0200 ** Changed in: qemu (Ubuntu Jammy) Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Fix Released Status in qemu source package in Noble: Fix Released Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Released Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
On Jammy amd64 qemu-user-static=1:6.2+dfsg-2ubuntu6.31 shows the prompt when starting the Ubuntu 26.04 docker image. On Noble amd64 qemu-user-static=1:8.2.2+ds-0ubuntu1.17 shows the prompt when starting the Ubuntu 26.04 docker image. ** Tags removed: verification-needed-jammy verification-needed-noble ** Tags added: verification-done-jammy verification-done-noble -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Fix Committed Status in qemu source package in Noble: Fix Committed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Committed Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Hello Heinrich, or anyone else affected, Accepted qemu into noble-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/qemu/1:8.2.2+ds-0ubuntu1.17 in a few hours, and then in the -proposed repository. Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users. If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed- noble to verification-done-noble. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification- failed-noble. In either case, without details of your testing we will not be able to proceed. Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping! N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days. ** Changed in: qemu (Ubuntu Noble) Status: Incomplete => Fix Committed ** Tags added: verification-needed-noble ** Changed in: qemu (Ubuntu Jammy) Status: Confirmed => Fix Committed ** Tags added: verification-needed-jammy -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Fix Committed Status in qemu source package in Noble: Fix Committed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Committed Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Reuploaded for noble -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Incomplete Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Committed Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
> In the noble upload, why was python3-venv moved from Build-Depends- Arch to Build-Depends? Looks like it was auto formatted that way during the clean step. I can reupload after building with the -nc option -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Incomplete Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Committed Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
I did the verification for Ubuntu Questing, I install the package from -proposed and $ docker run --platform=linux/riscv64 -it ubuntu:26.04 bash I gets the prompt root@570d30c6da95:/# ** Tags removed: verification-needed-questing ** Tags added: verification-done-questing -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Incomplete Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Committed Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
In the noble upload, why was python3-venv moved from Build-Depends-Arch to Build-Depends? This is not documented in d/changelog: --- a/debian/control +++ b/debian/control @@ -7,13 +7,13 @@ XSBC-Original-Maintainer: Debian QEMU Team Build-Depends: debhelper-compat (= 13), python3:any, + python3-venv, meson (>> 0.63.0~), ninja-build, flex, bison, Build-Depends-Arch: # In comments below we also specify (system-specific) arguments # to qemu's configure script, -- optional features which depend # on build-dependencies. - python3-venv, # --enable-docs # for python3-sphinx:native see #995622 texinfo, python3-sphinx:native, python3-sphinx-rtd-theme, ** Changed in: qemu (Ubuntu Noble) Status: In Progress => Incomplete -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Incomplete Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Committed Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Hello Heinrich, or anyone else affected, Accepted qemu into questing-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/qemu/1:10.1.0+ds-5ubuntu2.7 in a few hours, and then in the -proposed repository. Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users. If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed- questing to verification-done-questing. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-questing. In either case, without details of your testing we will not be able to proceed. Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping! N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days. ** Changed in: qemu (Ubuntu Questing) Status: In Progress => Fix Committed ** Tags added: verification-needed-questing -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: In Progress Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Fix Committed Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Merge proposal linked: https://code.launchpad.net/~hectorcao/ubuntu/+source/qemu/+git/qemu/+merge/504461 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: In Progress Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: In Progress Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might be regressions on the prompt display. The prompt display is widely used so potential regressions should be visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Description changed: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands - However the absence of the prompt can be misleading and make users think that the container hangs. + However the absence of the prompt can be misleading and make users think that the container hangs. + + - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# - [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. - There might ne regressions on the prompt display. + There might be regressions on the prompt display. + + The prompt display is widely used so potential regressions should be + visible quickly. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu-arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: In Progress Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: In Progress Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. - this fix implements the missing ioctl TERMIOS2 [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could oc
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Description changed: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user + - Terminal prompt is missing for multiarch containers with qemu-user + + - Users cannot see the prompt but still can type the commands + However the absence of the prompt can be misleading and make users think that the container hangs. [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu - 818154cda96d: Pull complete - 352b2c3faa58: Download complete + 818154cda96d: Pull complete + 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 - root@bf8124075385:/# + root@bf8124075385:/# + + With this fix, the users should see the prompt when they run bash + interactively in the container: + + $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash + root@bf8124075385:/# [ Where problems could occur ] - The fix is around the termios managament so regressions can happen - there. + The fix is around the termios managament so regressions can happen there. + There might ne regressions on the prompt display. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu-arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: In Progress Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: In Progress Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] - Terminal prompt is missing for multiarch containers with qemu-user - Users cannot see the prompt but still can type the commands However the absence of the prompt can be misleading and make users think that the container hangs. [ Test Plan ] On an amd64 host $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) After docker pulls the image and run the container, you cannot see the prompt ... Status: Downloaded newer image for ubuntu:26.04 ... $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Doing the same for Ubuntu Noble image works. $ docker run --platform=linux/arm64 -it ubuntu:24.04 bash Unable to find image 'ubuntu:24.04' locally 24.04: Pulling from library/ubuntu 818154cda96d: Pull complete 352b2c3faa58: Download complete Digest: sha256:c4a8d5503dfb2a3eb8ab5f807da5bc69a85730fb49b5cfca2330194ebcc41c7b Status: Downloaded newer image for ubuntu:24.04 root@bf8124075385:/# With this fix, the users should see the prompt when they run bash interactively in the container: $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash root@bf8124075385:/# [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. There might ne regressions on
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Description changed: + [ Impact ] + + Terminal prompt is missing for multiarch containers with qemu-user + + + [ Test Plan ] + + $ sudo apt install -y docker.io qemu-user-static + $ sudo usermod -aG docker ubuntu + + Log out / Log in + + $ docker run --platform=linux/arm64 --name ubuntu26 -itd ubuntu:26.04 + bash + + You cannot see the prompt + + [ Where problems could occur ] + + The fix is around the termios managament so regressions can happen + there. + + [ Other Info ] + + None + + -- Original bug report --- + In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu-arm64, ...). - This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. + This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); ** Description changed: [ Impact ] Terminal prompt is missing for multiarch containers with qemu-user - [ Test Plan ] $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu - - Log out / Log in - - $ docker run --platform=linux/arm64 --name ubuntu26 -itd ubuntu:26.04 - bash + $ newgrp docker + $ docker run --platform=linux/arm64 --name ubuntu26 -it ubuntu:26.04 bash You cannot see the prompt [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu-arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); ** Description changed: [ Impact ] Terminal prompt is missing for multiarch containers with qemu-user [ Test Plan ] $ sudo apt install -y docker.io qemu-user-static $ sudo usermod -aG docker ubuntu $ newgrp docker - $ docker run --platform=linux/arm64 --name ubuntu26 -it ubuntu:26.04 bash + $ docker run --platform=linux/arm64 -it ubuntu:26.04 bash + (this runs on AMD64 host, if you are runnig on ARM64, use -platform=linux/riscv64 instead) You cannot see the prompt [ Where problems could occur ] The fix is around the termios managament so regressions can happen there. [ Other Info ] None -- Original bug report --- In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu-arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_S
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Changed in: qemu (Ubuntu Questing) Status: Confirmed => In Progress ** Changed in: qemu (Ubuntu Noble) Status: Confirmed => In Progress -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: In Progress Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: In Progress Status in qemu source package in Resolute: Fix Released Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Merge proposal linked: https://code.launchpad.net/~hectorcao/ubuntu/+source/qemu/+git/qemu/+merge/504068 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Fix Released Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Merge proposal linked: https://code.launchpad.net/~hectorcao/ubuntu/+source/qemu/+git/qemu/+merge/504065 ** Merge proposal linked: https://code.launchpad.net/~hectorcao/ubuntu/+source/qemu/+git/qemu/+merge/504066 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Fix Released Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Debian patch to backport to Questing and Noble: https://salsa.debian.org/qemu- team/qemu/-/commit/5380228f7fbdc094f8ff7ad002b796ed4f131546 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Fix Released Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Changed in: qemu (Ubuntu Jammy) Importance: Low => Medium ** Changed in: qemu (Ubuntu Noble) Importance: High => Medium -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Fix Released Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Hello Christian, The failure due to missing IOCTL TCGETS2 is not RISC-V specific but is reproducible on Ubuntu 24.04 amd64 also when trying to run an Ubuntu 26.04 arm64 container. The fix should be backported irrespective of LP 2133188. Best regards Heinrich -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Fix Released Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Hi Heinrich, the changes d0be1b581c9 linux-user: fixup termios2 related things on PowerPC 22a55fc7df1 linux-user: Add termios2 support to sparc target c1fac5fbfe6 linux-user: Add termios2 support to sh4 target ce78d40265c linux-user: Add termios2 support to mips target 06cfe78536d linux-user: Add termios2 support to hppa target 20b93df8d79 linux-user: Add termios2 support to alpha target 5380228f7fb linux-user: Add termios2 support are in 10.2.1 and thereby good in resolute. But IIRC this is needed to run resolute guests at all, so do you agree that this should need to be backported to at least Noble? Or am I missing a point here and that would not be needed? Depending on what you answer on bug 2133188 they might also go well together for testing. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Fix Released Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Changed in: qemu (Ubuntu Questing) Assignee: (unassigned) => Hector CAO (hectorcao) ** Changed in: qemu (Ubuntu Noble) Assignee: (unassigned) => Hector CAO (hectorcao) ** Changed in: qemu (Ubuntu Jammy) Assignee: (unassigned) => Hector CAO (hectorcao) -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Fix Released Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Fix Released Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
This bug was fixed in the package qemu - 1:10.2.1+ds-1ubuntu1 --- qemu (1:10.2.1+ds-1ubuntu1) resolute; urgency=medium * Merge with Debian unstable (LP: #2131929): Among several other backported fixes this will resolve - qemu-system-any brings in random system emulator with the new APT solver (LP: #2127053) - add termios2 support (LP: #2133804) Remaining changes: - qemu-kvm to systemd unit - d/qemu-kvm-init: script for QEMU KVM preparation modules, ksm, hugepages and architecture specifics - d/qemu-system-common.qemu-kvm.service: systemd unit to call qemu-kvm-init - d/qemu-system-common.install: install helper script - d/qemu-system-common.qemu-kvm.default: defaults for /etc/default/qemu-kvm - d/rules: call dh_installinit and dh_installsystemd for qemu-kvm - Distribution specific machine type (LP 1776189 1761372 1769053 2012763 2131822) - d/p/ubuntu/define-ubuntu-machine-types.patch: define distro machine types containing release versioned machine attributes - Add an info about -hpb machine type in debian/qemu-system-x86.NEWS - ubuntu-q35 alias added to auto-select the most recent q35 ubuntu type - Enable nesting by default - d/p/ubuntu/enable-svm-by-default.patch: Enable nested svm by default in qemu64 on amd [ No more strictly needed, but required for backward compatibility ] - tolerate ipxe size change on migrations to >=18.04 (LP 1713490) - d/p/ubuntu/pre-bionic-256k-ipxe-efi-roms.patch: old machine types reference 256k path - d/control-in: depend on ipxe-qemu-256k-compat-efi-roms to be able to handle incoming migrations from former releases. - d/qemu-block-extra.postinst: Use latest Ubuntu's QEMU package version when deciding whether to invoke 'deb-systemd-helper purge'. - d/control-in: Disable B-D on qemu-system-data, due to that also - d/rules: Export DEB_BUILD_PROFILES with pkg.qemu.use-upstream-vdso when building on non-amd64 architectures. - d/control: Disable B-D on seabios. - d/rules: Disable upstream tests depending on qemu-system-data - d/control-in: B-D on multipath libs for multipath persist in qemu-pr-helper (LP 2117378) - d/control-in: breaks/replaces for dtb files moving qemu-system-misc to qemu-system-data - d/rules: Use upstream vDSO for architecture variant builds (LP 2131236) * Updated delta: - d/p/u/define-ubuntu-machine-types.patch: update to match 10.2 * Dropped changes: - d/p/u/lp2121787/* : Fix migration issues because of missing features (LP 2121787) [Fixed in upstream 10.2] - d/p/u/lp-2123828-*: Fix RISC-V instructions endianness (LP 2123828) [Fixed in upstream 10.2] qemu (1:10.2.1+ds-1) unstable; urgency=medium * new upstream stable/bugfix release (Closes: #1123670, CVE-2025-14876) * - fix-PIRQ-bounds-check-in-xen_physdev_map_pirq-CVE-2026-0665.patch * remove ipxe from FIRMWAREPATH (needs ipxe from trixie and up) qemu (1:10.2.0+ds-2) unstable; urgency=medium * two patches to make statically-linked linux-user not depend on nss (remove linkage to qemu-sockets.c) * 1095935.patch (Closes: #1095935) * d/control: qemu-user: mention possibility to sym-link files in /usr/share/qemu/binfmt.d/ to /etc/binfmt.d/ * d/rules: remove workaround for #1019011 for palcode-clipper - the bug in gcc has been fixed (in 2022) * d/control: better versioned dependencies of qemu modules: use qemu-system-common as a syncronisation point instead of qemu-system-any (Closes: LP#2127053) * d/control: finally de-couple qemu-system-riscv and qemu-system-s390x from qemu-system-misc (remove misc:Depends: riscv, s390x) * fix-PIRQ-bounds-check-in-xen_physdev_map_pirq-CVE-2026-0665.patch (Closes: #1125423, CVE-2026-0665) * d/copyright: fix Files/License sections qemu (1:10.2.0+ds-1) unstable; urgency=medium * new upstream release * d/gbp.conf: switch to 10.2 * d/patches: refresh * d/control.mk: checked-version: 10.2.0+ds, vdso-version: 1:10.2.0+ds-1~ * d/copyright: rename u-boot-sam460ex bin following upstream change * d/copyright: add pc-bios/npcm[78]xx_bootrom.bin to Files-Excluded * d/rules: adjust for u-boot-sam460ex rename, work around build bug, provide a compat symlink for now * d/control.mk: 32bit mips and powerpc hosts are not supported anymore qemu (1:10.1.3+ds-1) unstable; urgency=medium [ Michael Tokarev ] * new upstream stable/bugfix release 10.1.3 Closes: #1119917, CVE-2025-12464 (buffer overflow in e1000_receive_iov) Closes: #1117153, CVE-2025-11234 (UAF in websocket handshake code) * d/qemu-user.postinst: add the forgotten `set -e' * d/rules: enable vnc-sasl and vnc password (through nettle) for xen build (Closes: #1041533) * remove patches applied upstream: - linux-user-use-correct-type-for-FIBMAP-and-
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
FWIW, for the upstream stable qemu series, the forkflow is as follows. First, stable-N.M branches are only updated when a next stable release is made (in this case, v10.2.1) - at the same time, I push a tag and we publish new tarballs on download.qemu.org, and I send announces. stable-N.M branches are static, only receiving new commits, once a commit is there, it's cast in stone. Before a stable release, it is staging-N.M branch, - which is a volatile branch, which can be overridden, reordered, etc, as the work progresses. And even before staging-N.M, I usually push to my repository on gitlab first, https://gitlab.com/mjt0k/qemu - this is because there, I can avoid thinking about gitlab CI credits, clashing CI pipelines with the staging/master branches, etc. So, expecting stuff to show up on stable-N.M branches isn't wise before the next stable release. HTH -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: In Progress Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: In Progress Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Merge proposal linked: https://code.launchpad.net/~hectorcao/ubuntu/+source/qemu/+git/qemu/+merge/498837 ** Changed in: qemu (Ubuntu Resolute) Status: Confirmed => In Progress -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: In Progress Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: In Progress Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
The patchset has been merged in qemu upstream : https://gitlab.com/qemu-project/qemu/-/commit/fea2d7a784fc3627a8aa72875f51fe7634b04b81 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
@mjt - Ideally we'd pick up those and all else you queued up so far, but I do not see those pushed to upstream/stable-10.2 yet, can we find them anywhere already? -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Awesome, that will make the backport along the merge no effort at all - thanks Michael! -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
fwiw, I've picked up termios2 to the current qemu stable series, to be released in a couple days. 10.0, 10.1 and 10.2 will have it. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Changed in: qemu (Ubuntu Resolute) Assignee: (unassigned) => Hector CAO (hectorcao) ** Tags added: server-todo -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Changed in: qemu Status: New => Fix Released -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Fix Released Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Sadly that has not yet fully concluded by now, patches got sent in https://mail.gnu.org/archive/html/qemu-devel/2026-01/msg00129.html but not yet fully merged. We need to re-check what we could merge along 10.2 in the next few days. Or we merge 10.2 but add this as a test fix later but before 26.04 comes out. That is ok for 26.04, but further delays the SRU of the same to older releases which can affect running the new release there :-/ -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: New Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Ubuntu 25.04 (Plucky Puffin) has reached end of life, so this bug will not be fixed for that specific release. ** Changed in: qemu (Ubuntu Plucky) Status: Confirmed => Won't Fix -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: New Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Won't Fix Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Changed in: qemu (Ubuntu Noble) Milestone: None => ubuntu-24.04.4 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: New Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Confirmed Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Unfortunately the series was sent without an In-Reply-To header. The other patches can be found with at https://lore.kernel.org/qemu- devel/?q=Luca+Bonissi+%3Cqemu%40bonslack.org%3E These extra patches seem to be needed for target architectures like PPC and MIPS that don't use generic/termbits.h. S390X should be good as it uses generic/termbits.h. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: New Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Confirmed Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
@Christian The patch "[PATCH 1/7] Add termios2 support to linux-user" looks good to me. Except for the extra two fields in struct termios2 it follows what is done for struct termios. I added the patch on top of origin/master and it resolves the issue both on arm64 and on riscv64. Once https://code.launchpad.net/~slyon/ubuntu/+source/qemu/+git/qemu/+merge/496788 is accepted, we should go ahead with this patch. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: New Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Confirmed Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
There are two patches with the same title "[PATCH 1/7] Add termios2 support to linux-user" https://lore.kernel.org/qemu- devel/[email protected]/ contains an updated version. It adds copying c_ispeed, c_ospeed. These are the fields that struct termios2 has on top of what is in struct termios. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: New Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Confirmed Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
** Changed in: qemu Status: Unknown => New -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: New Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Confirmed Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
[Bug 2133804] Re: QEMU does not emulate IOCTL TCGETS2
Thanks for the report, we need to add that indeed the moment we have something reliable by upstream I've added the upstream bug tracker https://gitlab.com/qemu-project/qemu/-/issues/3065 Implementation looks like being worked on since https://mail.gnu.org/archive/html/qemu-devel/2025-08/msg04984.html With iterations on feedback and fixes like https://mail.gnu.org/archive/html/qemu-devel/2025-10/msg08521.html https://mail.gnu.org/archive/html/qemu-devel/2025-11/msg00043.html Recently got some more attention by us and Fedora picking up and seeing the same https://mail.gnu.org/archive/html/qemu-devel/2025-12/msg00468.html @Heinrich do you think we need to rush glossing over it by using the incomplete versions in resolute until the final one is out. No risc there yet, but this isn't exclusive to risc - that is just more common to run emulated. Or can we wait until they have it finalized (either way before resolute release we should have it in R but also in SRU that we expect to run resolute binaries. ** Bug watch added: gitlab.com/qemu-project/qemu/-/issues #3065 https://gitlab.com/qemu-project/qemu/-/issues/3065 ** Also affects: qemu via https://gitlab.com/qemu-project/qemu/-/issues/3065 Importance: Unknown Status: Unknown ** Also affects: qemu (Ubuntu Noble) Importance: Undecided Status: New ** Also affects: qemu (Ubuntu Resolute) Importance: High Status: Confirmed ** Also affects: qemu (Ubuntu Jammy) Importance: Undecided Status: New ** Also affects: qemu (Ubuntu Plucky) Importance: Undecided Status: New ** Also affects: qemu (Ubuntu Questing) Importance: Undecided Status: New ** Changed in: qemu (Ubuntu Questing) Status: New => Confirmed ** Changed in: qemu (Ubuntu Plucky) Status: New => Confirmed ** Changed in: qemu (Ubuntu Noble) Status: New => Confirmed ** Changed in: qemu (Ubuntu Jammy) Status: New => Confirmed ** Changed in: qemu (Ubuntu Questing) Importance: Undecided => Medium ** Changed in: qemu (Ubuntu Plucky) Importance: Undecided => Medium ** Changed in: qemu (Ubuntu Noble) Importance: Undecided => High ** Changed in: qemu (Ubuntu Jammy) Importance: Undecided => Low -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2133804 Title: QEMU does not emulate IOCTL TCGETS2 Status in QEMU: Unknown Status in qemu package in Ubuntu: Confirmed Status in qemu source package in Jammy: Confirmed Status in qemu source package in Noble: Confirmed Status in qemu source package in Plucky: Confirmed Status in qemu source package in Questing: Confirmed Status in qemu source package in Resolute: Confirmed Bug description: In Ubuntu 25.10 we moved to glibc 2.42. Here glibc has changed the implementation of isatty(). It now uses IOCTL TCGETS2 instead of TCGETS. TCGETS2 is not emulated by static QEMU (qemu-riscv64, qemu- arm64, ...). This leads to failures in containers for foreign architectures. E.g. no console prompt is displayed. A detailed analysis is contained in LP #2133188. A proper implementation of the missing IOCTLs will include: Functions: in linux-user/syscall.c: host_to_target_termios2() target_to_host_termios2() print_termios2() Definitions: in linux-user/syscall.c #define termios2 host_termios2 in linux-user/syscall_types.h STRUCT_SPECIAL(termios2) in linux-user/ioctls.h: IOCTL(TCGETS2, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETS2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSF2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) IOCTL(TCSETSW2, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios2))) in linux-user/user-internals.h: void print_termios2(void *arg); To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2133804/+subscriptions
