New kernels

AmigaOne X5000 platform specific issues related to Linux only.
User avatar
Skateman
Posts: 954
Joined: Thu Aug 10, 2017 9:36 pm
Location: The Netherlands

Re: New kernels

Post by Skateman »

Kernel 6.16 RC5 up and running on my Mirari T1042

Image

Big picture https://www.skateman.nl/wp-content/uplo ... -23-46.png
AmigaOne X5000 -> 2GHz / 16GB RAM / Radeon RX 570 / Radeon X1950 / M-Audio 5.1 -> AmigaOS / Linux
Amiga 1200 -> Recapped / 68ec020 ACA 1221ec / CF HDD / RetroNET connected to the world
Vampire 4SA - RPi4 Running AmiKitXE Full
User avatar
xeno74
Posts: 10698
Joined: Fri Mar 23, 2012 7:58 am
Contact:

Re: New kernels

Post by xeno74 »

Skateman wrote: Mon Jul 07, 2025 9:28 pm Kernel 6.16 RC5 up and running on my Mirari T1042
Many thanks for testing the RC5! :-)
User avatar
xeno74
Posts: 10698
Joined: Fri Mar 23, 2012 7:58 am
Contact:

Re: New kernels

Post by xeno74 »

Hi All,

Here is the RC6 of kernel 6.16 for X1000 and e5500 machines (X5000/20, X5000/40, Mirari, and QEMU VMs).

Download and further information: github.com

Image

The kernel error messages are gone. :-)

Please test the kernels.

Thanks,
Christian
User avatar
xeno74
Posts: 10698
Joined: Fri Mar 23, 2012 7:58 am
Contact:

Re: New kernels

Post by xeno74 »

Hi All,

I released the RC7 of kernel 6.16 for X1000 and e5500 machines (X5000/20, X5000/40, Mirari, and QEMU VMs) today.

Download and further information: github.com

Image

Please test the kernels.

Thanks,
Christian
User avatar
xeno74
Posts: 10698
Joined: Fri Mar 23, 2012 7:58 am
Contact:

Re: New kernels

Post by xeno74 »

Hi All,

I am happy to announce the final kernel 6.16.0. 🎉🎊🥂

Thanks a lot to Skateman, Julian, Musa, and Hypex for testing the alphas and release candidates.

Download: github.com

Image

Cheers,
Christian
User avatar
xeno74
Posts: 10698
Joined: Fri Mar 23, 2012 7:58 am
Contact:

Re: New kernels

Post by xeno74 »

Hi All,

The merge window for the kernel 6.17 has been started and here is the first alpha with many file system updates for testing.

Download and further information: github.com

Image

Please test the kernels.

Thanks,
Christian
User avatar
xeno74
Posts: 10698
Joined: Fri Mar 23, 2012 7:58 am
Contact:

Re: New kernels

Post by xeno74 »

Hi All,

I compiled the alpha2 of kernel 6.17 with the first PowerPC updates 6.17-1 yesterday.

Unfortunately Xorg doesn’t start anymore.

Error message:

Code: Select all

xf86OpenConsole: Switching VT failed.
I tested it with QEMU with virtio-gpu-pci and VGA,vgamem_mb=256 with some Linux distributions yesterday.

I reported this issue to the kernel developers yesterday.

Link: Switching VT failed

Please test the kernels,

Christian
User avatar
xeno74
Posts: 10698
Joined: Fri Mar 23, 2012 7:58 am
Contact:

Re: New kernels

Post by xeno74 »

I bisected today.
  1. Code: Select all

    git bisect start
  2. Code: Select all

    git bisect good 038d61fd642278bab63ee8ef722c50d10ab01e8f
    (Good: Linux 6.16)
  3. Code: Select all

    git bisect bad 260f6f4fda93c8485c8037865c941b42b9cba5d2
    (Bad: drm-next-2025-07-30 -- 2025-07-30 19:26:49 -0700)
Result:

Code: Select all

f1180ca37abe3d117e4a19be12142fe722612a7c is the first bad commit
commit f1180ca37abe3d117e4a19be12142fe722612a7c
Author: Jiri Slaby (SUSE) <[email protected]>
Date:   Wed Jun 11 12:02:53 2025 +0200

    tty: vt: use _IO() to define ioctl numbers

    _IO*() is the proper way of defining ioctl numbers. All these vt numbers
    were synthetically built up the same way the _IO() macro does.

    So instead of implicit hex numbers, use _IO() properly.

    To not change the pre-existing numbers, use only _IO() (and not _IOR()
    or _IOW()). The latter would change the numbers indeed.

    Objdump of vt_ioctl.o reveals no difference with this patch.

    Again, VT_GETCONSIZECSRPOS already uses _IOR(), so everything is paved
    for this patch.

    Signed-off-by: "Jiri Slaby (SUSE)" <[email protected]>
    Cc: Nicolas Pitre <[email protected]>
    Reviewed-by: Nicolas Pitre <[email protected]>
    Reviewed-by: Ilpo Järvinen <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 include/uapi/linux/vt.h | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)
I was able to revert the first bad commit.

Code: Select all

git revert f1180ca37abe3d117e4a19be12142fe722612a7c
Output:

Code: Select all

Revert "tty: vt: use _IO() to define ioctl numbers"

This reverts commit f1180ca37abe3d117e4a19be12142fe722612a7c.
After a new compiling, Xorg works again.

I created a patch for reverting the bad commit.

Code: Select all

diff -rupN a b > vt_ioctl.patch
vt_ioctl.patch:

Code: Select all

diff -rupN a/include/uapi/linux/vt.h b/include/uapi/linux/vt.h
--- a/include/uapi/linux/vt.h   2025-07-31 10:23:41.928121321 +0200
+++ b/include/uapi/linux/vt.h   2025-07-31 14:25:04.079827271 +0200
@@ -14,9 +14,9 @@
                /* Note: the ioctl VT_GETSTATE does not work for
                   consoles 16 and higher (since it returns a short) */

-/* 'V' to avoid collision with termios and kd */
+/* 0x56 is 'V', to avoid collision with termios and kd */

-#define VT_OPENQRY             _IO('V', 0x00)  /* find available vt */
+#define VT_OPENQRY     0x5600  /* find available vt */

 struct vt_mode {
        __u8 mode;              /* vt mode */
@@ -25,8 +25,8 @@ struct vt_mode {
        __s16 acqsig;           /* signal to raise on acquisition */
        __s16 frsig;            /* unused (set to 0) */
 };
-#define VT_GETMODE             _IO('V', 0x01)  /* get mode of active vt */
-#define VT_SETMODE             _IO('V', 0x02)  /* set mode of active vt */
+#define VT_GETMODE     0x5601  /* get mode of active vt */
+#define VT_SETMODE     0x5602  /* set mode of active vt */
 #define                VT_AUTO         0x00    /* auto vt switching */
 #define                VT_PROCESS      0x01    /* process controls switching */
 #define                VT_ACKACQ       0x02    /* acknowledge switch */
@@ -36,21 +36,21 @@ struct vt_stat {
        __u16 v_signal; /* signal to send */
        __u16 v_state;          /* vt bitmask */
 };
-#define VT_GETSTATE            _IO('V', 0x03)  /* get global vt state info */
-#define VT_SENDSIG             _IO('V', 0x04)  /* signal to send to bitmask of vts */
+#define VT_GETSTATE    0x5603  /* get global vt state info */
+#define VT_SENDSIG     0x5604  /* signal to send to bitmask of vts */

-#define VT_RELDISP             _IO('V', 0x05)  /* release display */
+#define VT_RELDISP     0x5605  /* release display */

-#define VT_ACTIVATE            _IO('V', 0x06)  /* make vt active */
-#define VT_WAITACTIVE          _IO('V', 0x07)  /* wait for vt active */
-#define VT_DISALLOCATE         _IO('V', 0x08)  /* free memory associated to vt */
+#define VT_ACTIVATE    0x5606  /* make vt active */
+#define VT_WAITACTIVE  0x5607  /* wait for vt active */
+#define VT_DISALLOCATE 0x5608  /* free memory associated to vt */

 struct vt_sizes {
        __u16 v_rows;           /* number of rows */
        __u16 v_cols;           /* number of columns */
        __u16 v_scrollsize;     /* number of lines of scrollback */
 };
-#define VT_RESIZE              _IO('V', 0x09)  /* set kernel's idea of screensize */
+#define VT_RESIZE      0x5609  /* set kernel's idea of screensize */

 struct vt_consize {
        __u16 v_rows;   /* number of rows */
@@ -60,10 +60,10 @@ struct vt_consize {
        __u16 v_vcol;   /* number of pixel columns on screen */
        __u16 v_ccol;   /* number of pixel columns per character */
 };
-#define VT_RESIZEX             _IO('V', 0x0A)  /* set kernel's idea of screensize + more */
-#define VT_LOCKSWITCH          _IO('V', 0x0B)  /* disallow vt switching */
-#define VT_UNLOCKSWITCH                _IO('V', 0x0C)  /* allow vt switching */
-#define VT_GETHIFONTMASK       _IO('V', 0x0D)  /* return hi font mask */
+#define VT_RESIZEX      0x560A  /* set kernel's idea of screensize + more */
+#define VT_LOCKSWITCH   0x560B  /* disallow vt switching */
+#define VT_UNLOCKSWITCH 0x560C  /* allow vt switching */
+#define VT_GETHIFONTMASK 0x560D  /* return hi font mask */

 struct vt_event {
        __u32 event;
@@ -77,14 +77,14 @@ struct vt_event {
        __u32 pad[4];           /* Padding for expansion */
 };

-#define VT_WAITEVENT           _IO('V', 0x0E)  /* Wait for an event */
+#define VT_WAITEVENT   0x560E  /* Wait for an event */

 struct vt_setactivate {
        __u32 console;
        struct vt_mode mode;
 };

-#define VT_SETACTIVATE         _IO('V', 0x0F)  /* Activate and set the mode of a console */
+#define VT_SETACTIVATE 0x560F  /* Activate and set the mode of a console */

 /* get console size and cursor position */
 struct vt_consizecsrpos {
User avatar
xeno74
Posts: 10698
Joined: Fri Mar 23, 2012 7:58 am
Contact:

Re: New kernels

Post by xeno74 »

I reported this issue to the kernel developers today.

Link: Switching VT failed after commit tty: vt: use _IO() to define ioctl numbers
Post Reply