User Tools

Site Tools


hardwarerelated:nintendo_switch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hardwarerelated:nintendo_switch [2019/06/15 00:55]
chris [Links]
hardwarerelated:nintendo_switch [2019/06/25 15:31] (current)
chris [Todo]
Line 2: Line 2:
 Some notes regarding running Linux on the Nintendo Switch. First things first, thanks [[https://​github.com/​fail0verflow/​shofel2|fail0verflow]]. I did just play a bit on the software side, but fail0verflow was one of the 2 groups who found the way to run Linux, and established all the chain to make this possible, including providing the patched Linux kernel. You guys rock! Some notes regarding running Linux on the Nintendo Switch. First things first, thanks [[https://​github.com/​fail0verflow/​shofel2|fail0verflow]]. I did just play a bit on the software side, but fail0verflow was one of the 2 groups who found the way to run Linux, and established all the chain to make this possible, including providing the patched Linux kernel. You guys rock!
  
-{{https://​fluxcoil.net/​files/​tmp/​20180527_200130_nintendo_switch.jpg?400x200 ​}} +{{https://​fluxcoil.net/​files/​tmp/​20190616_184612_switch2s.jpg?600x400 ​}}
 ===== Links ===== ===== Links =====
-  * [[https://​arstechnica.com/​gaming/​2018/​04/​the-unpatchable-exploit-that-makes-every-current-nintendo-switch-hackable/​|Linux is now running on the Nintendo switch]] 
-  * https://​github.com/​natinusala/​painless-linux - one of the first distros with kernel on the sdcard 
   * https://​www.reddit.com/​r/​SwitchHaxing/​ -- reddit switch news   * https://​www.reddit.com/​r/​SwitchHaxing/​ -- reddit switch news
   * [[https://​media.ccc.de/​v/​c4.openchaos.2018.06.glitching-the-switch|"​glitching the switch"​ from Andreas Galauner]]   * [[https://​media.ccc.de/​v/​c4.openchaos.2018.06.glitching-the-switch|"​glitching the switch"​ from Andreas Galauner]]
-  * https://​switchbrew.org - switch homebrew 
-  * [[https://​www.youtube.com/​watch?​v=ChRZJod_vwc|xbox emulator running on L4T]] 
   * [[https://​fluxcoil.net/​software/​switch/​fedora|My older linux@switch notes]]   * [[https://​fluxcoil.net/​software/​switch/​fedora|My older linux@switch notes]]
   * [[https://​fluxcoil.net/​software/​switch/​debian|notes on Debian@switch]]   * [[https://​fluxcoil.net/​software/​switch/​debian|notes on Debian@switch]]
   * [[https://​www.youtube.com/​watch?​v=tmGImw8cs0o|cuda on switch?]]   * [[https://​www.youtube.com/​watch?​v=tmGImw8cs0o|cuda on switch?]]
   * [[https://​www.youtube.com/​watch?​v=_kXtIWThE2A|L4T installation video (uses Windows as base, not Linux)]]   * [[https://​www.youtube.com/​watch?​v=_kXtIWThE2A|L4T installation video (uses Windows as base, not Linux)]]
 +  * [[https://​twitter.com/​switchroot_org|Android@switch is being worked on]]
 ===== hardware ===== ===== hardware =====
   * cpu:   * cpu:
-    * Nvidia Tegra X1: 4x Cortex-A57, 4x Cortex-A53+    * Nvidia Tegra X1, model T210: 4x Cortex-A57, 4x Cortex-A53 ​(big.LITTLE approach, but Linux kernel 4.16 is just presenting the 4 A57 cores)
     * Nvidia Maxwell GPU     * Nvidia Maxwell GPU
     * 4GB LPDDR4 RAM     * 4GB LPDDR4 RAM
Line 30: Line 26:
  
 ===== Todo ===== ===== Todo =====
 +The Fedora30/​switch build does all I need now. Just these things might be interesting to look into:
 +  * Need a replacement for the microsd card I mainly use. ext4 errors on both L4T and Fedora30.
 +  * 3D setup is not proper, got hinted to recompile mesa with GLVND (mesa needs to support it). Verification:​ supertuxkart should run, with gles. [[/​software/​switch/​fedora#​fedora_28_xorg_3d_support|the old Fed28/mesa recompile notes]]
 +  * Compare '​systemd-analyze plot' of L4T and Fed30 to understand why Fedora boots slower, although it needs less RAM with LXDE
 +  * Raspberry pi 4 got released, would be interesting to compare benchmark results with the nintendo switch on Linux. I do not have a raspie, and it will probably take time until it gets available in Japan, but one could use the benchmark results on the internet and compare..
   * Try again to recompile L4T kernels. In the past these did just not boot, I was not able to get the information on '​why'​ out of the booting system. Now it seems like in HDMI-dock, the logs can be seen via HDMI.   * Try again to recompile L4T kernels. In the past these did just not boot, I was not able to get the information on '​why'​ out of the booting system. Now it seems like in HDMI-dock, the logs can be seen via HDMI.
-  * Find interesting applications to demonstrate? supertuxcart+  * Find interesting applications to demonstrate?​ 
-  * Boot Fed30 into xorg/​autologin +  * Research CUDA support. Would be awesome to utilize to tegra cores for image manipulation. Is cuda here pure graphic, or AI style computing? The switch ​might be a nice platform ​for playing with AI code then! The switch Tegra has double the power of the Nvidia Jetson nano board. [[https://​elinux.org/​Jetson/​Installing_CUDA|link1]] [[https://​developer.nvidia.com/​embedded/​develop/​software|link2]] [[https://​developer.nvidia.com/​embedded/​jetpack|link3]] 
-  * Automatic screen switching upon docking/​undocking + 
-  * Centos7 ​might be interesting +
-  * try for hdmi-soundspeaker-test --channels 2 --rate 48000 --device hw:0,3​+
 ===== Boot order for Linux@switch ===== ===== Boot order for Linux@switch =====
   - As first step, the switch needs to be booted into RCM, an early debug mode. For doing this for the first time, pins on the switch need to be crossed, for example using this [[https://​github.com/​fail0verflow/​shofel2/​tree/​master/​rcm-jig|RCM jig device]]. ​ When this succeeded one time, you can use Hekate to set '​autorcm',​ the switch will then after resets always enter RCM instead of booting Nintendos Horizon.   - As first step, the switch needs to be booted into RCM, an early debug mode. For doing this for the first time, pins on the switch need to be crossed, for example using this [[https://​github.com/​fail0verflow/​shofel2/​tree/​master/​rcm-jig|RCM jig device]]. ​ When this succeeded one time, you can use Hekate to set '​autorcm',​ the switch will then after resets always enter RCM instead of booting Nintendos Horizon.
Line 46: Line 46:
       * it can poweroff the switch       * it can poweroff the switch
     * [[https://​github.com/​fail0verflow/​shofel2|Shovel2]] can be used to upload Linux kernels via USB, coreboot is also here used. Userland to be booted could be on the microsd card, or supplied via NFS.     * [[https://​github.com/​fail0verflow/​shofel2|Shovel2]] can be used to upload Linux kernels via USB, coreboot is also here used. Userland to be booted could be on the microsd card, or supplied via NFS.
 +    * [[https://​github.com/​Guillem96/​argon-nx|ArgonNX]] has more eyecandy than hekate.
 +    * [[https://​wiki.gbatemp.net/​wiki/​List_of_Switch_payloads|This is a list of various payloads]]
   - Which kernel to run? There are basically 2 levels of kernel patches.   - Which kernel to run? There are basically 2 levels of kernel patches.
     * mid-2018 kernel, using the initial patches from Fail0verflow:​ no audio, problems charging the switch, resets when load is high (compile things only with 'make -j1'), wlan only works after one reset of the system. Yet, on this kernel one can see Linux console output directly on the screen after booting. This kernel is great for initially running for example Fedora30, Opensuse or Debian userlands: because you can use the screen to get debugging output, until you get the userland appropriately configured to log into wlan after booting. From that state on you can work via SSH.     * mid-2018 kernel, using the initial patches from Fail0verflow:​ no audio, problems charging the switch, resets when load is high (compile things only with 'make -j1'), wlan only works after one reset of the system. Yet, on this kernel one can see Linux console output directly on the screen after booting. This kernel is great for initially running for example Fedora30, Opensuse or Debian userlands: because you can use the screen to get debugging output, until you get the userland appropriately configured to log into wlan after booting. From that state on you can work via SSH.
Line 69: Line 71:
  
 ===== Fedora boot order ===== ===== Fedora boot order =====
-2 variants can be used: loading kernel/​initrd from sdcard, or via USB.  I use USB so far, it's easier to exchange kernels. Single steps (nicely summed up [[https://​wiki.postmarketos.org/​wiki/​Nintendo_Switch_(nintendo-nx)|here]]:​+2 variants can be used: loading kernel/​initrd from sdcard, or via USB.  I use USB so far, it's easier to exchange kernels. Single steps (nicely summed up [[https://​wiki.postmarketos.org/​wiki/​Nintendo_Switch_(nintendo-nx)|here]]):
   * Switch booting into to Tegra RCM flashing mode over USB   * Switch booting into to Tegra RCM flashing mode over USB
   * ShofEL2 boots Coreboot   * ShofEL2 boots Coreboot
Line 77: Line 79:
   * U-Boot script decompresses (if comressed kernel) and boots Linux   * U-Boot script decompresses (if comressed kernel) and boots Linux
  
-===== Installing Fedora ===== +===== Installing Fedora ​30 ===== 
-Installing ​Fedora for the switch on the microsd card, using a Fedora30 x86_64 as host. I created DOS style partitions on a 32GB card, and switch between the partitions in modifying the kernel command line. +I am installing ​Fedora for the switch on the microsd card, using a Fedora30 x86_64 as host. I created DOS style partitions on a 32GB card, and switch between the partitions in modifying the kernel command line. First, I installed L4T on the card, this  did setup partitions 1 (vfat) and 2 (ext4, L4T). After increasing the second partition to 16GB, I created a third partition and installed Fedora 30 there.
  
-  * First followed ​[[https://​gbatemp.net/​threads/​quick-tuto-how-to-boot-linux-on-your-switch.501918/​|these steps]] to compile a kernel ​and the required tools These were crosscompiled from Fedora30 x86_64. ​ The latest linaro-crosscompiler did not work, needed to use the older gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi . +L4T is booting the linux kernel from the card, but am booting Fedora with kernel/​initrd supplied via USB. For this, I have compiled shovel2/​coreboot from [[https://​gbatemp.net/​threads/​quick-tuto-how-to-boot-linux-on-your-switch.501918/​|this guide]]. I also compiled the kernel ​as per these instructions,​ but it has many downsides over the L4T kernel. I am booting Fedora with the L4T kernelDetails on how I boot kernels are [[/software/​switch/​l4t-kernel-compile|here]] 
-  * As for installing the Fedora30 aarch64 userland for the switch, I used Fedora-Server-30-1.2.aarch64.raw.xz. Despite being the server spin, it comes with wpa_supplicant and Networkmanager-wifi.+ 
 +For installing the Fedora30 aarch64 userland for the switch, I used Fedora-Server-30-1.2.aarch64.raw.xz. Despite being the server spin, it comes with packages ​wpa_supplicant and Networkmanager-wifi.
    
 <​code>​ <​code>​
 ### preparing the new partition ### preparing the new partition
 mkfs.ext4 /​dev/​mmcblk0p3 mkfs.ext4 /​dev/​mmcblk0p3
-mount /dev/mmcblk0p4 ​/mnt/tmp3+mount /dev/mmcblk0p3 ​/mnt/tmp3
  
 ### deploying the image ### deploying the image
Line 98: Line 101:
  
 ### preparations ### preparations
-vi /etc/fstab+cd /mnt/tmp3 
 +vi etc/fstab
 # only need this: /​dev/​mmcblk0p3 / ext4 defaults 0 0 # only need this: /​dev/​mmcblk0p3 / ext4 defaults 0 0
  
Line 105: Line 109:
  
 echo switch.local >​etc/​hostname echo switch.local >​etc/​hostname
 +echo '​127.0.0.1 ​  ​switch.local switch'​ >>​etc/​hosts
  
 # disable console on tty1.  We have no input anyway, and can # disable console on tty1.  We have no input anyway, and can
-# see debugmessages that way.+# see debugmessages that way - via HDMI
 mv etc/​systemd/​system/​getty.target.wants/​getty@tty1.service root/ mv etc/​systemd/​system/​getty.target.wants/​getty@tty1.service root/
  
Line 113: Line 118:
 # I have my wlan already setup on my Fedora30 host system, # I have my wlan already setup on my Fedora30 host system,
 # so I can simply copy over the files # so I can simply copy over the files
-cp /etc/NetworkManager/system-connections/​keys-mynetwork \ +cp /etc/sysconfig/network-scripts/​keys-mynetwork \ 
-   /etc/NetworkManager/system-connections/​ifcfg-mynetwork \ +   /etc/sysconfig/network-scripts/​ifcfg-mynetwork \
-    etc/​NetworkManager/​system-connections/​ +
-cp /​etc/​NetworkManager/​system-connections/​keys-mynetwork \ +
-   /​etc/​NetworkManager/​system-connections/​ifcfg-mynetwork \+
     etc/​sysconfig/​network-scripts/​     etc/​sysconfig/​network-scripts/​
  
Line 123: Line 125:
 # work.  Login via ssh into root, run dnf upgrade, and install # work.  Login via ssh into root, run dnf upgrade, and install
 # the 2 packages cleanly so dnf is aware of them. # the 2 packages cleanly so dnf is aware of them.
-dnf remove iscsi-initiator-utils-iscsiuio iscsi-initiator-utils clevis-luks+dnf remove iscsi-initiator-utils-iscsiuio iscsi-initiator-utils ​
 +  ​clevis-luks ​atmel-firmware
  
 for i in auditd smartd pcscd ModemManager multipathd mdmonitor \ for i in auditd smartd pcscd ModemManager multipathd mdmonitor \
-         ​dmraid-activation initial-setup;​ do+         ​dmraid-activation initial-setup ​lvm2-monitor zram-swap \ 
 +         ​plymouth-start lm_sensors udisks2 ​; do
     systemctl disable $i     systemctl disable $i
 done done
 +
 +### tuning, seen in the L4T scripts
 +cat >/​etc/​rc.local<<​EOT
 +#​!/​usr/​bin/​bash
 +echo 2048 > /​sys/​block/​mmcblk0/​queue/​read_ahead_kb
 +echo 0 > "/​proc/​sys/​vm/​lazy_vfree_pages"​
 +EOT
 +chmod +x /​etc/​rc.local
 +/​etc/​rc.local
 +ln -s /​etc/​rc.local /​etc/​rc.d/​rc.local
  
 dnf install -y langpacks-ja upower screen dnf install -y langpacks-ja upower screen
Line 144: Line 158:
 ssh root@switch ssh root@switch
  
 +# Install the basic environment.
 dnf -y groupinstall 'Basic Desktop'​ 'LXDE Desktop'​ dnf -y groupinstall 'Basic Desktop'​ 'LXDE Desktop'​
  
Line 150: Line 165:
 # - synergy, so I can use mouse/​keyboard of my linux box # - synergy, so I can use mouse/​keyboard of my linux box
 # - f29-backgrounds,​ because they are awesome :) # - f29-backgrounds,​ because they are awesome :)
-dnf install xvkbd synergy f29-backgrounds-base+dnf install ​-y xvkbd synergy f29-backgrounds-base ​mplayer
  
-# adding ​the LXDE to the startfile+# adding LXDE to the startfile
 echo 'exec /​usr/​bin/​startlxde'​ >​~/​.xinitrc echo 'exec /​usr/​bin/​startlxde'​ >​~/​.xinitrc
  
-# Now copying drivers from an L4T installation on partition2.+# Now copying drivers from an L4T installation on partition2:
 mount /​dev/​mmcblk0p2 /mnt/tmp2/ mount /​dev/​mmcblk0p2 /mnt/tmp2/
 cd /mnt/tmp2 cd /mnt/tmp2
Line 178: Line 193:
 cp -r lib/​firmware/​tegra21x lib/​firmware/​gm20b /​lib/​firmware/​ cp -r lib/​firmware/​tegra21x lib/​firmware/​gm20b /​lib/​firmware/​
 cp lib/​firmware/​bcm4354.hcd /​lib/​firmware/​ cp lib/​firmware/​bcm4354.hcd /​lib/​firmware/​
- 
-# ensure that the screen gets rotated after starting 
-mkdir -p ~/​.config/​autostart 
-cat <<EOT >​~/​.config/​autostart/​.desktop 
-[Desktop Entry] 
-Type=rotater 
-Exec=xrandr --output DSI-0 --rotate left 
-EOT 
  
 # special xorg config # special xorg config
Line 201: Line 208:
     # Allow X server to be started even if no display devices are connected.     # Allow X server to be started even if no display devices are connected.
     Option ​     "​AllowEmptyInitialConfiguration"​ "​true"​     Option ​     "​AllowEmptyInitialConfiguration"​ "​true"​
-        ​Option ​             "​Rotate"​ "​CW"​+    ​Option ​     "​Rotate"​ "​CW"​
 EndSection EndSection
  
 Section "​InputClass"​ Section "​InputClass"​
-        ​Identifier "evdev touchscreen catchall"​ +    ​Identifier "evdev touchscreen catchall"​ 
-        MatchIsTouchscreen "​on"​ +    MatchIsTouchscreen "​on"​ 
-        MatchDevicePath "/​dev/​input/​event*"​ +    MatchDevicePath "/​dev/​input/​event*"​ 
-        Driver "​evdev"​ +    Driver "​evdev"​ 
-        Option "​InvertX"​ "​no"​ +    Option "​InvertX"​ "​no"​ 
-        Option "​InvertY"​ "​no"​ +    Option "​InvertY"​ "​no"​ 
-        Option "​SwapAxes"​ "​no"​ +    Option "​SwapAxes"​ "​no"​ 
-        Option "​Calibration"​ "0 1279 0 719"+    Option "​Calibration"​ "0 1279 0 719"
 EndSection EndSection
 +
 +Section "​Monitor"​
 +    Identifier "​DFP-0"​
 +    Option "​Rotate"​ "​left"​
 +EndSection ​
 EOT EOT
  
Line 225: Line 237:
 @synergy-core --client 192.168.0.3 @synergy-core --client 192.168.0.3
 EOT EOT
- 
-# loading firmware 
-# mount /​dev/​mmcblk0p2 /mnt/tmp2 
-cd /​mnt/​tmp2/​etc/​systemd/​ 
-./​nvwifibt-pre.sh 
-./​nvwifibt.sh 
  
 # then, X can be started manually # then, X can be started manually
 startx startx
 +</​code>​
 +
 +===== Fedora LXDM/​autologin =====
 +<​code>​
 +# exit from running Xorg
 +
 +useradd -m lxde
 +
 +mkdir -p ~lxde/​.config/​lxsession/​LXDE
 +cat >​~lxde/​.config/​lxsession/​LXDE/​autostart<<​EOT
 +@lxpanel --profile LXDE
 +@pcmanfm --desktop --profile LXDE
 +@synergy-core --client 192.168.0.3
 +EOT
 +chown -R lxde ~lxde/​.config
 +
 +# configure autologin
 +vi /​etc/​lxdm/​lxdm.conf
 +# autologin=lxde
 +# session=/​usr/​bin/​startlxde
 +
 +# We need to ensure that our user later appears in the '​who'​ output.
 +# That is important for the /​usr/​bin/​dock-hotplug script, for
 +# switching screens.
 +echo '​sessreg -a -l $DISPLAY -x /​etc/​X11/​xdm/​Xservers $USER &' >> \
 +  /​etc/​lxdm/​PostLogin
 +echo '​sessreg -d -l $DISPLAY -x /​etc/​X11/​xdm/​Xservers $USER &' >> \
 +  /​etc/​lxdm/​PostLogout
 +  ​
 +mount /​dev/​mmcblk0p2 /mnt/tmp2
 +cp /​mnt/​tmp2/​usr/​bin/​dock-hotplug /usr/bin
 +
 +rm -f rm /​etc/​systemd/​system/​display-manager.service
 +systemctl enable --now lxdm
 +systemctl set-default graphical.target
 </​code>​ </​code>​
  
Line 242: Line 283:
 cd /mnt/tmp2 cd /mnt/tmp2
  
-dnf install -y alsa-ucm+dnf install -y alsa-ucm ​alsa-plugins-pulseaudio alsa-utils \ 
 +  pulseaudio pulseaudio-module-x11 pulseaudio-utils pavucontrol
 cp -r usr/​share/​alsa/​ucm/​tegra-snd-t210ref-mobile-rt565x/​ /​usr/​share/​alsa/​ucm/​ cp -r usr/​share/​alsa/​ucm/​tegra-snd-t210ref-mobile-rt565x/​ /​usr/​share/​alsa/​ucm/​
- +cp usr/share/alsa/cards/tegra-hda.conf ​/usr/share/alsa/cards
-# mv /​lib/​firmware/​nvidia /​lib/​firmware/​nvidia.org +
-cp -r lib/firmware/nvidia ​/lib/firmware +
-# cp lib/​firmware/​tegra21x_xusb_firmware /​lib/​firmware +
-# cp lib/​firmware/​nv-BT-Version lib/firmware/bcm4354.hcd ​/lib/firmware+
  
 cp -r opt/nvidia/ /opt/ cp -r opt/nvidia/ /opt/
-cp usr/​sbin/​nv* /usr/sbin/+cp usr/sbin/nv* usr/​sbin/​brcm* /usr/sbin/
 cp -r etc/nv* /etc/ cp -r etc/nv* /etc/
- 
-cp etc/​asound.conf.* /etc/ 
-cp etc/​udev/​rules.d/​90-alsa-asound-tegra.rules \ 
-  etc/​udev/​rules.d/​92-hdmi-audio-tegra.rules /​etc/​udev/​rules.d/​ 
 cp etc/​systemd/​nv* /​etc/​systemd cp etc/​systemd/​nv* /​etc/​systemd
 cp etc/​systemd/​system/​nv*service /​etc/​systemd/​system/​ cp etc/​systemd/​system/​nv*service /​etc/​systemd/​system/​
-cd /​etc/​systemd/​system/​multi-user.target.wants/​ 
-ln -s ../​nv.service ​ 
-ln -s ../​nvargus-daemon.service 
  
-### restores settings +cp etc/asound.conf.* /etc/
-# ln -s ../nvfb-early.service  +
-# ln -s ../nvfb.service ​+
  
-### physical zones service? +ensure that /​etc/​asound.conf is linked to 
-ln -s ../nvphs.service ​ +the appropriate file, depending on whether we are docked or not 
-### nvidia power model tool +cat >/​etc/​udev/​rules.d/92-dp-switch.rules<<​EOT 
-ln -../nvpmodel.service ​ +SUBSYSTEM!="​switch",​ GOTO="​dp_end"​ 
-### NVS-SERVICE Embedded Sensor HAL Daemon +KERNEL!="​dp",​ GOTO="​dp_end"​ 
-ln -../nvs-service.service ​+ATTRS{state}=="​1",​ TEST=="/​proc/​asound/​tegrahda",​ RUN+="/​bin/​ln -sf /etc/asound.conf.tegrahda ​/etc/asound.conf" 
 +ATTRS{state}=="​1",​ TEST=="/​usr/​bin/​dock-hotplug",​ RUN+="/​usr/​bin/​dock-hotplug"​ 
 +ATTRS{state}=="​0",​ TEST=="/​usr/​bin/​dock-hotplug",​ RUN+="/​usr/​bin/​dock-hotplug"​ 
 +ATTRS{state}=="​0",​ TEST=="/​proc/​asound/​tegrasndt210ref",​ RUN+="/​bin/​ln -sf /etc/asound.conf.tegrasndt210ref ​/etc/asound.conf"​ 
 +LABEL="​dp_end"​ 
 +EOT
  
-reboot+reboot
  
 +# for playing via alsa, this has to be active:
 alsamixer # I2S1 Mux -> ADMAIF1 alsamixer # I2S1 Mux -> ADMAIF1
-mplayer+ 
 +# we should now be able to start X, and have sound output: 
 +mplayer ​<​something>​  
 + 
 +# When the switch is docked, the screen should switch to HDMI 
 +# output automatically,​ via profile switch in /​usr/​bin/​dock-hotplug . 
 +# The profile can also be selected via '​pavucontrol'​ from X. 
 + 
 +# also for output testing:  
 +# speaker-test –channels 2 –rate 48000 –device hw:0,3​
 </​code>​ </​code>​
 +
 ===== Fedora/​switch FAQ ===== ===== Fedora/​switch FAQ =====
   * **Q:** Can I use XFS?    * **Q:** Can I use XFS? 
Line 314: Line 359:
     * matchbox-window-manager ('/​usr/​bin/​matchbox-window-manager in ~/.xinitrc)     * matchbox-window-manager ('/​usr/​bin/​matchbox-window-manager in ~/.xinitrc)
   * No virtual keyboard x-application seems to be available. So this, or synergy, would have to be compiled and installed by hand.   * No virtual keyboard x-application seems to be available. So this, or synergy, would have to be compiled and installed by hand.
 +
 ===== Graphical demos/games ===== ===== Graphical demos/games =====
-  * 'dnf -y install glmark2 extremetuxracer'​ is a good start+  * 'dnf -y install glmark2 extremetuxracer ​supertuxkart' is a good start
   * 'dnf install freedoom2'​ also runs nicely: '​prboom -window -iwad /​usr/​share/​doom/​freedoom.wad'​. Explicit OpenGL rendering with '​-vidmode gl'.   * 'dnf install freedoom2'​ also runs nicely: '​prboom -window -iwad /​usr/​share/​doom/​freedoom.wad'​. Explicit OpenGL rendering with '​-vidmode gl'.
   * mplayer can play videos fetched with youtube-dl   * mplayer can play videos fetched with youtube-dl
Line 327: Line 373:
     * dolphin: gamecube/​wii emulator     * dolphin: gamecube/​wii emulator
     * citra: 3DS emulator     * citra: 3DS emulator
 +
 ===== Generic xorg hints ===== ===== Generic xorg hints =====
 === touchscreen detection not in sync === === touchscreen detection not in sync ===
-The touchscreen driver will work in horizontal mode by default, but the xorg screen might come up in vertical mode. Fix for LXDE:+The touchscreen driver will work in horizontal mode by default, but the xorg screen might come up in vertical mode. Above xorgs monitor definition should rotate the monitor ​for all Xorg windowmanagers,​ but the rotation could instead also be done at the windowmanager level. ​ Rotating the screen in LXDE:
 <​code>​ <​code>​
 mkdir -p ~/​.config/​autostart mkdir -p ~/​.config/​autostart
Line 344: Line 391:
   * https://​stackoverflow.com/​questions/​45511533/​can-i-get-debug-information-on-usb   * https://​stackoverflow.com/​questions/​45511533/​can-i-get-debug-information-on-usb
   * files initrd: /​lib/​firmware/​tegra21x_xusb_firmware /​lib/​firmware/​tegra210b01_xusb_firmware   * files initrd: /​lib/​firmware/​tegra21x_xusb_firmware /​lib/​firmware/​tegra210b01_xusb_firmware
 +
 +=== How to run the synergy server? ===
 +You are running the synergy client for mouse/​keyboard sharing, in the LXDE autostart. But what to run to get the server part? I use this:
 +<​code>​
 +[chris@電脳 ~]$ cat ./​synergy-server.sh ​
 +#​!/​usr/​bin/​bash
 +synergy-core --server --name ThinkPadL480 --config /​home/​chris/​synergy.conf
 +[chris@電脳 ~]$ 
 +[chris@電脳 ~]$ cat synergy.conf ​
 +section: screens
 +        ThinkPadL480:​
 +        switch.local:​
 +end
 +
 +section: links
 +        ThinkPadL480:​
 +                up = switch.local
 +        switch.local:​
 +                down = ThinkPadL480
 +end
 +[chris@電脳 ~]$ 
 +</​code>​
 +
 +=== dealing with filesystem corruptions ===
 +I use 2 micro-sd cards, 16GB and 32GB. I run L4T and Fedora30/​L4T-kernel on the 32GB card, and see ext4 corruptions there, on both partitions. Using the RPM checksums to verify:
 +<​code>​
 +for i in $(rpm -qa|sort); do echo "### $i"; rpm -V $i; done  >>​logg
 +egrep -B1 -v '​^#​|\.uuid'​ logg2|grep -c '​^#'​
 +egrep -B1 -v '​^#​|\.uuid'​ logg2|grep '​^#'​
 +</​code>​
 +
  
 ===== Noteworthy games ===== ===== Noteworthy games =====
hardwarerelated/nintendo_switch.1560552904.txt · Last modified: 2019/06/15 00:55 by chris