Understanding cmdline.txt on Raspberry Pi 4 (Minimal fresh install vs. XFCE)

I’ve got some questions about what’s going on these files across different flavors of Manjaro ARM. I’ve added line returns for readability, but the cmdline is, of course, a single file.

Regarding any differences, unless stated otherwise, I didn’t change any defaults during my second install (the minimal install).

XFCE:

root=LABEL=ROOT_MNJRO rw rootwait console=ttyAMA0,115200 console=tty1 selinux=0 plymouth.enable=0 
smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 kgdboc=ttyAMA0,115200 elevator=noop 
usbhid.mousepoll=8 snd-bcm2835.enable_compat_alsa=0 audit=0 
cgroup_enable=memory swapaccount=1 fsck.mode=force fsck.repair=yes

Minimal, Fresh Install:

root=PARTUUID=6207adc9-02 rw rootwait console=serial0,115200 console=tty3 selinux=0
quiet splash plymouth.ignore-serial-consoles smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 kgdboc=serial0,115200 elevator=noop
usbhid.mousepoll=8 snd-bcm2835.enable_compat_alsa=0 audit=0

Questions re: New Defaults:

  1. root: The XFCE version uses a LABEL for the root specifier. I remember this being explicitly done a few versions ago for ease of … something … I’m a bit fuzzy on the exact reason and can’t find the post from @Strit right now. Is there a specific reason the newer install uses PARTUUID? it seems like that would make transferring the install from one disk to another (e.g., from an SD card to a USB drive), or restoring from a full disk backup with a tool like dd more difficult?
  2. serial0: I’m pretty sure this relates to this note from @Darksky re: bluetooth support: New Raspberry Pi Kernels & Related Packages - #344 by Darksky ?
  3. console=tty1console=tty3: What does this do, and why did the tty change? I tried to google, but google flooded me with results re: config.txt, even though I specified cmdline.txt, so that was … thoughtful of it. I did notice that I don’t get a bunch of scrolling output on an HDMI monitor when the device is powering on. Is that because these messages are being output to the non-existent tty3?
  4. Plymouth, quiet, and splash: Not enabled on the XFCE install, but enabled here? I think this does the splash screen, and further is commanded to “ignore serials consoles” so as not to spam connected TTYs? But if that’s the case, what are splash and quiet for?

Questions re: Customizations

  1. cgroup_enable=memory swapaccount=1: I needed these to get docker to see and use cgroups correctly. They never caused any issues, but I’m curious if they’re not part of the default command for a specific reason?
  2. fsck.mode=force fsck.repair=yes: In the course of experimenting with my XFCE Pi, which I can only access over SSH, I ended up crashing it hard enough that I couldn’t order a reboot via SSH anymore. Several times. I added these to make sure it automatically checked the SSD boot device and conducted repairs caused by any hard reset, to try to prevent corruption. Is this actually a good idea? Am I doing more harm than good?

Thanks!

A really good source of info regarding embedded linux eLinux.org

2 Likes