I find that boot with the 'rescue' option, then exit 'rescue' mode, then I can login to the ttyPS0, as below
bash-4.4# exit // *here exit rescue mode* exit Reloading system manager configuration Starting default target [ 1708.910000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 1712.080000] macb e000b000.ethernet eth0: link up (100/Full) [ 1712.080000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready ... Build date: 2019-08-22 21:56 Kernel 4.18.0-14480-gc4490f2dabc1 on an riscv64 (ttyPS0) ... stage4 login: root Password: [root@stage4 ~]# But how boot directly normally. Thanks all, At 2020-09-23 16:37:48, "ZhouPeng" <[email protected]> wrote: >Thank you very much. ' udevadm info -a /dev/ttyPS0' output: > > >bash-4.4# udevadm info -a /dev/ttyPS0 > >Udevadm info starts with the device specified by the devpath and then >walks up the chain of parent devices. It prints for every device >found, all possible attributes in the udev rules key format. >A rule to match, can be composed by the attributes of the device >and the attributes from one single parent device. > > looking at device '/devices/platform/soc/e0000000.serial/tty/ttyPS0': > KERNEL=="ttyPS0" > SUBSYSTEM=="tty" > DRIVER=="" > ATTR{close_delay}=="50" > ATTR{closing_wait}=="3000" > ATTR{custom_divisor}=="0" > ATTR{flags}=="0x10000000" > ATTR{io_type}=="3" > ATTR{iomem_base}=="0xE0000000" > ATTR{iomem_reg_shift}=="0" > ATTR{irq}=="2" > ATTR{line}=="0" > ATTR{port}=="0x0" > ATTR{type}=="98" > ATTR{uartclk}=="100000000" > ATTR{xmit_fifo_size}=="64" > > looking at parent device '/devices/platform/soc/e0000000.serial': > KERNELS=="e0000000.serial" > SUBSYSTEMS=="platform" > DRIVERS=="xuartps" > ATTRS{driver_override}=="(null)" > > looking at parent device '/devices/platform/soc': > KERNELS=="soc" > SUBSYSTEMS=="platform" > DRIVERS=="" > ATTRS{driver_override}=="(null)" > > looking at parent device '/devices/platform': > KERNELS=="platform" > SUBSYSTEMS=="" > DRIVERS=="" >bash-4.4# ls /dev/ttyPS0 -lh >crw-rw---- 1 root dialout 254, 0 Jan 28 16:05 /dev/ttyPS0 > > >Thanks, > >On Wed, Sep 23, 2020, 15:34,"Mantas Mikulėnas" <[email protected]> wrote: > > >On Wed, Sep 23, 2020, 09:21 ZhouPeng <[email protected]> wrote: > > > >Thank you very much for you great suggestions. > > > >I chroot the rootfs and tried to the 3 methods in '/usr/lib/udev/rules.d' >respectively: > > > >try 1) add a line of ACTION!="remove", KERNEL=="ttyPS0", TAG+="systemd" >below the line of "ACTION=="remove", GOTO="systemd_end"" in file >99-systemd.rules > >try 2) add a line of ACTION!="remove", KERNEL=="ttyPS0", NAME="ttyPS0", >TAG+="systemd" below the line of "ACTION=="remove", GOTO="systemd_end"" in >file 99-systemd.rules > >try 3) replace the line "SUBSYSTEM=="tty", >KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", >TAG+="systemd" with "SUBSYSTEM=="tty", >KERNEL=="ttyPS[0-9]|tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", > TAG+="systemd"", in file 99-systemd.rules. > > > >At least the 1st one *should* have worked, though NAME= seems wrong in the 2nd >one... > > > > > > > >At the same time, I replace the line of >"KERNEL=="tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", > GROUP="dialout"" with >"KERNEL=="ttyPS[0-9]|tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", > GROUP="dialout"". > > > >This line is irrelevant, since TAG+="systemd" is the important part – groups >and modes shouldn't be the problem. > > > > > > > > > >But they didn't take any effect. > > > >Then at the same time, I do > >cp /usr/lib/systemd/system/[email protected] >/etc/systemd/system/[email protected] > >Edit /etc/systemd/system/serial-getty\@ttyPS0.service: replace >"ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM" with >"ExecStart=-/sbin/agetty --keep-baud 115200 %I $TERM" > >ln -s /etc/systemd/system/[email protected] >/etc/systemd/system/getty.target.wants/ > > > >But there was still no effect. There is still boot failure logs like: > >[ *] (3 of 3) a start job is running for dev-ttyPS0.device (41s / 1min 30s)// >**here** > >... > > [ TIME ] Timed out waiting for device dev-ttyPS0.device. // **here** > >... > > > >Yeah, the baudrate won't change anything if systemd doesn't even see the >device in the first place. It doesn't even get to the point of launching >agetty. > > > > > > > >By the way, Do I need to add some configuration to tiger executing something >like 'mknod /dev/ttyPS0 c 248 0' for systemd or udev pls? If needed, where is >the proper place to add this action pls? > > > >No. The kernel automatically creates device nodes (as long as /dev has a >"devtmpfs" mounted); udev only applies modes/symlinks. The problem here is >that udev doesn't properly inform systemd about the new device. > > > > > > > >>What does "udevadm info -a /dev/ttyPS0" output? > >I can not get a console from ttyPS0, so I can not run "udevadm info -a >/dev/ttyPS0" in the target(xilinx pynq) board. > > > >Try booting with the 'rescue' option, this should directly create a root login >prompt on the kernel console. > > > > > >Alternatively, try creating a simple .service that runs this command, then >you'll find its output in the journal or in the boot console (depending on >what StandardOutput= you set). > > > > > > > > > >Thanks all, > >At 2020-09-22 20:34:15, "Andrei Borzenkov" <[email protected]> wrote: > >>On Tue, Sep 22, 2020 at 2:53 PM Mantas Mikulėnas <[email protected]> wrote: > >>> > >>> On Tue, Sep 22, 2020 at 1:46 PM Andrei Borzenkov <[email protected]> >>> wrote: > >>>> > >>>> On Tue, Sep 22, 2020 at 1:35 PM ZhouPeng <[email protected]> wrote: > >>>> > > >>>> > Hi all, > >>>> > > >>>> > When I use Fedora image as rootfs on Xilinx PYNQ-Z2, I encountered the >>>> > issue when use the /dev/ttyPS0. > >>>> > I think the issue is because systemd and udev on fedora can didn't >>>> > detect ttyPS0 properly. Do I need to install any other package or do >>>> > some special configuration? > >>>> > > >>>> > **systemd version the issue has been seen with** > >>>> > udevadm --version > >>>> > 237 > >>>> > systemd-udev.riscv64 237-1.0.riscv64.fc28 > >>>> > > >>>> > > >>>> > **Unexpected behaviour you saw** > >>>> > We can see ttyPS0 boots ok in the kernel boot period: > >>>> > [ 0.180000] console [ttyPS0] enabledat MMIO 0xe0000000 (irq = 2, >>>> > base_baud = 6250000) is a xuartps > >>>> > [ 0.180000] console [ttyPS0] enabled > >>>> > > >>>> > But, when boot into systemd, it failed on dev ttyPS0: > >>>> > [ TIME ] Timed out waiting for device dev-ttyPS0.device. // **here** > >>>> > >>>> systemd only monitors for devices with "sysemd" tag. Tags are assigned > >>>> by udev rules. You should add rule to assign tag to ttyPS0. I have no > >>>> idea what it is, but something like > >>>> > >>>> ACTION!="remove", KERNEL=="ttyPS0", TAG+="systemd"Mantas > >>>> > >>>> should do it. Whether this should go upstream depends on how common > >>>> this device is. > >>> > >>> > >>> Well yes, but that should have been already covered by the existing >>> upstream rules: > >>> > >>> 99-systemd.rules:12:SUBSYSTEM=="tty", >>> KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", >>> TAG+="systemd" > >>> > >> > >>Are you sure ttyPS0 has the "tty" subsystem? > >
_______________________________________________ systemd-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/systemd-devel
