Fedora 34 Workstation - XU Edition

Post Reply
MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Fedora 34 Workstation - XU Edition

Post by MastaG »

Fedora 34 Workstation - XU Edition

A very nice Fedora (Red Hat) image for ODroid XU3/4-based systems with a great out-of-the-box experience!
Unlike other images I don't focus on shipping as much packages as possible, instead I try to make sure that everything works without issues.
This makes it very suitable for both beginners and more experienced Linux users.
Whether you would like to enjoy a deskop like experience, use it for Kodi or RetroArch, or simply run it as a server, it's all there!

ImageImage
ImageImage
ImageImage
ImageImage

So I've finally finished my Fedora 34 image for the ODroid XU3 and 4, even before the official release!
I've put a lot of effort in this one to get the best user experience out of this one.
My main goal was to get the Gnome 40 desktop running with a functional browser.
Both Firefox and Chromium have been built with optimizations for the ODroid XU3/4 platforms.
Both browsers feature HW compositing using OpenGL for a smooth experience.
Also Chromium ships with Widevine L3, Chromecast and Google services support and it was built with the arm neon assembly patches taken from the raspbian project.
I don't think you'll get a better web-browser experience on the XU3/4 than this ;)
All additional software has been compiled from scratch from their latest git revisions (except for PPSSPP where the older version is faster).
However this time around I didn't build the libretro stuff for Kodi as I find it lags too much (due to missing dmabuf support on the mali drivers).
Furthermore I've added scripts for installing to external storage devices and setting up the kernel sources.
Last but not least, most (if not all) crashes and segfaults have been resolved now and I did a massive cleanup.
I hope you'll enjoy this one.

PS. A big shout-out to AreaScout for his Kodi 19 fixes !

Features / Info:
- Running on Linux 5.8.18
- Full SELinux support
- Support for kernel namespaces for e.g. (rootless) containers
- Chromium 89.0.4389.114 with "in-process-gpu" OpenGL HW compositing, featuring both Wayland and X11 Ozone platforms, Widevine L3 and Chromecast support.
- Firefox 86.1 with working OpenGL compositing
- FFMPeg 4.3.1 (from Kodi branch)
- Kodi 19 for Wayland/GBM/X11 with Netflix, Amazon Prime and Disney+ pre-configured
- Kodi 19 binary addons pre-installed
- TVHeadend with NEON-accelerated CSA descramling and all codecs enabled
- Oscam-emu pre-conigured for TVHeadend
- RetroArch for Wayland/GBM/X11 with the following cores (all built with optimizations for XU4):
Flycast - Sega Dreamcast
Genesis Plus GX - Sega Genesis
Mupen64plus NX - Nintendo 64
Parallel N64 - Nintendo 64
Picodrive - Sega Genesis/MegaCD/32X
Snes9x - Super Nintendo
Bsnes Mercury Accuracy - Super Nintendo
Bsnes Mercury Balanced - Super Nintendo
Bsnes Mercury Performance - Super Nintendo
Gambatte - Gameboy Color
mGBA - Gameboy Advance
Nestopia - Nintendo
PCSX Rearmed - Sony Playstation
PPSSPP - Sony PSP (slow, use standalone version instead)
Yabause - Sega Saturn

- PPSSPP for Wayland/GBM/X11
- DOSBox Staging for Wayland/GBM/X11
- Grand Theft Auto 3 (re3) and Vice City (reVC)
- ODroid XU3 analog headphone jack output working
- ODroid XU3 OTG-port is configured to be used as a regular USB 3.0 host
- HDMI-CEC working
- Custom scripts for installing to external storage and setting up kernel sources

Update v2:
- Added Grand Theft Auto 3 (re3) and Vice City (reVC)
- Set default language to English and remove pre-installed dutch language packages (sorry about that..)
- Enforce SELinux again
- Disable zram (a bit more snappier now)
- Chromium: fix open file dialogs (gtk/glib support)
- Chromium: remove drm/gbm platforms to shrink the binary a bit more
- Kodi/DOSBox/PPSSPP/RetroArch standalone: fix high pitched audio (by making sure pulseaudio is available)
- Remove Pre-Release info as the stable repositories have been branched now
- More cleaning

Update v3:
- Fixed flycast libretro core dependency to libomp
If you're running v2, no need to re-flash, just install libomp and you're all set:

Code: Select all

sudo dnf install libomp

Requirements:
- ODroid XU3, XU3-Lite or XU4 (MC1, HC1 and HC2 should work but untested)
- eMMC or sd-card of 16GB or larger


Download:
Base image:
https://mega.nz/file/vxlUxZKZ#dNjOFqlEe ... y_pGg7fIfk
Development files (Only for developers! see technical information):
https://mega.nz/file/2p0W2JSR#UQJTYDjxB ... E0KyudtCTg
Patches for Linux/Kodi/FFMpeg (Only for developers! see technical information):
https://mega.nz/file/KkdAGDhL#5FFOhFy1l ... xF8h96OxmA


Getting started: (please read all of it!)
Default user: odroid
Password for odroid: odroid
Password for root: odroid

- Unpack the downloaded archive and use your favourite tool to write the image to your eMMC/sd-card (Etcher/win32diskimager/dd).
- Insert it into your ODroid and power it up, you should be prompted by the Gnome Display Manager (logon screen).

You can manage your ODroid using Cockpit by visiting: https://odroidIP:9090/ (login with the above credentials: odroid / odroid)


If your eMMC / sd-card is larger than 16GB, you can extend the root-filesystem by issuing:

Code: Select all

sudo extend_rootfs.sh

If you would like to install the OS to your external storage device:
sudo install_to_hdd.sh <dev>
<dev> should be the device node of your device including the partition number.
For example:

Code: Select all

sudo install_to_hdd.sh /dev/sda1
I have not tested raid devices, but it should (hopefully) work as I'm already passing: rd.auto=1 to dracut in /media/boot/boot.ini
Please note that you'll still need your eMMC/sd-card plugged to boot your ODroid, so I recommend to use your cheapest sd-card if you're planning on installing to external storage.


If you want to run Fedora as a headless server you can disable the graphical target (disabling Gnome) by issuing:

Code: Select all

sudo systemctl set-default multi-user.target
sudo reboot

If you don't want to boot into Gnome but run Kodi, RetroArch, PPSSPP or DOSBox in standalone mode:
- First disable Gnome Desktop:

Code: Select all

sudo systemctl disable gdm
- Then enable your favourite application: kodi, retroarch, dosbox or ppsspp (ONLY ENABLE ONE AT THE TIME)

Code: Select all

sudo systemctl enable kodi
sudo reboot

Optionally: If you're planning on using the Gnome desktop a lot, you can try to enable swap on zram.
By default it's disabled as it can slow down RetroArch and Kodi a bit.
But if you're planning on doing heavy web-browsing or other memory intensive tasks, you can enable it by running this command:

Code: Select all

sudo rm -f /etc/systemd/zram-generator.conf
sudo reboot
See: https://fedoraproject.org/wiki/QA:Testc ... AM_disable



Tips and known issues:

- The first login to Gnome may timeout and bring you back to the login screen.
This can only happen the first time because setting up the account can take a bit too long (especially when runinng from slower sd-cards...).
All subsequent logins will be OK.

- The Amazon VOD addon for Kodi requires you to enable support for the (outdated and unsafe) TLS 1.0 protocol.
You can do this by editing this file: /etc/crypto-policies/back-ends/opensslcnf.config
Change: MinProtocol = TLSv1.2 to MinProtocol = TLSv1.0
NOTE! This is unsafe as it will allow every application utilizing OpenSSL to support the outdated and unsafe TLS 1.0 protocol!
So only enable this if you're going to be using the Amazon VOD addon!


- The Parallel N64 core will hang RetroArch when closing a game.
It's a known issue, please use Mupen64 instead.

- Fedora 34 has switched to Pipewire as the default audio-backend.
However it doesn't work for me (even on my desktop PC), so I switched back to Pulseaudio for now.
If you'd like to try it out, please read: https://fedoraproject.org/wiki/Changes/DefaultPipeWire

- A custom version of Firefox 86.1 with optimizations for the ODroid XU3/4 is pre-installed, because at this time of writing there is no version available from the official Fedora repositories for 32bit arm.
However it seems the Fedora package maintainers are looking into building it again (but it's still failing at this time of writing).
See: https://koji.fedoraproject.org/koji/pac ... ckageID=37
If they manage to build it for 32bit arm again you can remove the pre-installed version and enable the one from the repositories using this command:

Code: Select all

sudo remove_firefox.sh
Note: This cannot be undone!

- Chromium's V4L2 video decoder requires working eglCreateImageKHR, which seems broken on the mali driver.
However the ODroid XU4 can software decode h264 just fine (especially when rendering using OpenGLES).
Please install the h264ify addon for Chromium to enjoy youtube!


Kodi 19:
Kodi comes pre-configured for using Netflix, Amazon Prime and Disney+
Just open the addon, login and play.

If you would like to get very smooth playback it's advised to run Kodi in standalone mode (see Getting started).
In standalone mode you can make Kodi switch the display refresh rate to match the frame-rate of the video being played.
First whitelist the display modes supported by your TV:
Settings -> System -> Display -> White-list
Then enable the following option:
Settings -> Player -> Videos -> Adjust display refresh rate -> On start/stop


Grand Theft Auto 3 / Vice City:
Both Grand Theft Auto 3 (re3) and Vice City (reVC) have been pre-installed and pre-configured.
They however require the original game files to run.
When you first try to run any of the two games, the folders are created in your home directory.
gta3 for Grand Theft Auto 3 and gtavc for Vice City.
You will need to place the original game files in these folders.
You can get these easily from the Steam versions by right-clicking on the game in your library:
Properties -> Browse local files
After the game files have been copied, they will run fine.

For best performance:
- The games do not support setting a custom resolution, so set your desktop resolution to something like 800x600 for best performance.
- Disable the vsync and framerate limiter in graphics options
- Lower the draw distance a little bit in display options

You can place your own mp3 or opus music files in the ~/gta3/mp3 and ~/gtavc/mp3 directories :)


TVHeadend / Oscam:
If you would like to setup TVHeadend you can enable it by issuing:

Code: Select all

sudo systemctl enable --now tvheadend
Oscam will automatically get enabled and started as well.

You can access the TVHeadend webinterface by going to: http://odroidIP:9981/
For administrator access you can login with: admin / odroid
For regular access (e.g. Kodi addon) you can use: odroid / odroid

To configure Oscam visit its webinterface by going to: http://odroidIP:9191/
Oscam credentials: odroid / odroid


Technical information:
- I've installed both the ARM Mali driver for Wayland/GBM (r12p004) and the Hardkernel Mali r17p0 driver (GBM/X11/FBDev).
Both drivers have been hex edited to rename: EGL_KHR_platform_gbm to EGL_MESA_platform_gbm
This means that you don't need to patch this when building Kodi.
By default the ARM Mali Wayland driver is enabled (required for Gnome desktop).
You can easily switch between the two by issuing the following command:

Code: Select all

sudo select_mali_driver.sh
You can only use HK's r17p0 for running Kodi/RetroArch/PPSSPP/Dosbox in stand-alone mode or if you'd like to install a non-accelerated X11 desktop, such as XFCE.


- If you would like to update the dracut initramfs image and re-generate the uInitrd image, you can issue the following command:

Code: Select all

sudo gen-uinitrd
This is useful after changing (or blacklisting) module parameters (changes to /etc/modprobe.d or /etc/modules-load.d etc).


- If you would like to setup and compile the kernel sources, you can do so by issuing the following command:

Code: Select all

sudo kernel_compile.sh
This will take care of downloading, patching and installing the kernel (including generating and installing of the uInitrd image).
You now have the full source installed, so you're able to compile your own drivers/kernel-modules.
You can also go into the source directory: /usr/src/kernels/linux-5.8.18/ and change it by running make menuconfig.
Then simply re-run the sudo kernel_compile.sh and it will re-install using your changes.


- Both the systemd out-of-memory deamon and the ability to save crash (core)dumps have been disabled.
I found the oomd to aggresive, constantly killing of my webbrowser sessions.
If you like, you can re-enable it with:

Code: Select all

sudo systemctl enable systemd-oomd
If you would like to make coredump save the actual dumps you can edit the following file: /etc/systemd/coredump.conf and remove Storage=none.
Both changes require you to reboot the system.


- For ease of use I've packed up all the development libraries (in /usr/local) before I started cleaning up.
If you're planning on compiling your own version of Kodi/RetroArch/SDL2-based apps you can download it and unpack it to your root-filesystem:

Code: Select all

sudo tar --selinux --acls --xattrs  -C / -xvf usr_local_v2.tar.xz

- Custom SElinux rules added for ODroid:

Code: Select all

fcontext -a -f a -t xserver_misc_device_t -r 's0' '/dev/mali.*'

- Custom dracut configuration: /etc/dracut.conf.d/odroid.conf

Code: Select all

install_optional_items+=" /lib/firmware/s5p-mfc.fw  /lib/firmware/s5p-mfc-v6.fw  /lib/firmware/s5p-mfc-v6-v2.fw  /lib/firmware/s5p-mfc-v7.fw  /lib/firmware/s5p-mfc-v8.fw /etc/udev/rules.d/10-odroid.rules "
compress="xz"

- Custom udev rules:
10-odroid.rules

Code: Select all

KERNEL=="mali", SUBSYSTEM=="misc", MODE="0666", GROUP="video"
KERNEL=="mali0", SUBSYSTEM=="misc", MODE="0666", GROUP="video"
KERNEL=="ump", SUBSYSTEM=="ump", MODE="0777", GROUP="video"
KERNEL=="ttySAC0", SYMLINK+="ttyACM99"
KERNEL=="event*", SUBSYSTEM=="input", MODE="0777"
KERNEL=="CEC", MODE="0666", GROUP="video"
KERNEL=="cec*", MODE="0666", GROUP="video"
KERNEL=="cec0", MODE="0666", GROUP="video"
KERNEL=="amvideo", MODE="0666"
KERNEL=="amstream*", MODE="0666"
20-smartreader.rules (For using USB Smartreader with Oscam)

Code: Select all

ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="video", MODE="0666"

That's about it :)
Enjoy!
Last edited by MastaG on Wed Apr 21, 2021 9:41 pm, edited 6 times in total.
These users thanked the author MastaG for the post (total 4):
odroid (Thu Apr 15, 2021 8:42 am) • pothos (Tue Jun 22, 2021 7:42 am) • sdip (Fri Sep 10, 2021 10:05 pm) • hilton8r (Fri Sep 17, 2021 4:04 am)

User avatar
mad_ady
Posts: 9689
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 609 times
Been thanked: 721 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by mad_ady »

Looks like a work of passion. Congratulations!
These users thanked the author mad_ady for the post:
MastaG (Thu Apr 15, 2021 4:59 am)

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

I'm currently working on V2 which will include GTA 3 and Vice City from the Re3 project :)
These users thanked the author MastaG for the post:
odroid (Mon Apr 19, 2021 9:52 am)

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

Hell yeah!

EDIT:
- Fixed the file open dialog windows for Chromium ozone platforms
- Reduced chromium's binary by disabling the drm/gbm platforms (they only work on ChromeOS anyways).
- Fixed Vice City texture corruption

TODO:
- Add SuperTuxKart
- Any other wishes?
Attachments
Screenshot from 2021-04-20 10-53-04.png
Screenshot from 2021-04-20 10-53-04.png (3.19 MiB) Viewed 2876 times

User avatar
odroid
Site Admin
Posts: 38033
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1999 times
Been thanked: 1206 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by odroid »

Nice texture indeed. :D

Can you please check FPS on this WebGL test page with Chromium browser at full screen mode (F11) as well as window mode with the default 500 fishes?
https://webglsamples.org/aquarium/aquarium.html
I expect around 15~20FPS if GPU HW acceleration and compositor work fine.

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

odroid wrote:
Wed Apr 21, 2021 9:25 am
Nice texture indeed. :D

Can you please check FPS on this WebGL test page with Chromium browser at full screen mode (F11) as well as window mode with the default 500 fishes?
https://webglsamples.org/aquarium/aquarium.html
I expect around 15~20FPS if GPU HW acceleration and compositor work fine.
I'm getting around 45~50fps with 500 fish on the screen.
Image

User avatar
odroid
Site Admin
Posts: 38033
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1999 times
Been thanked: 1206 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by odroid »

MastaG wrote:
Wed Apr 21, 2021 5:01 pm
I'm getting around 45~50fps with 500 fish on the screen.
Thank you for the test.
Very impressive FPS! :o

I could get only 20~25fps on my N2+ with the Panfrost GPU driver on X11.
I think the commercial (closed-source) Mali driver seems to be more optimized well.
Or, the GPU clock source frequency driver in the N2+ upstream kernel might be wrongly programmed.

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

odroid wrote:
Wed Apr 21, 2021 5:17 pm
MastaG wrote:
Wed Apr 21, 2021 5:01 pm
I'm getting around 45~50fps with 500 fish on the screen.
Thank you for the test.
Very impressive FPS! :o

I could get only 20~25fps on my N2+ with the Panfrost GPU driver on X11.
I think the commercial (closed-source) Mali driver seems to be more optimized well.
Or, the GPU clock source frequency driver in the N2+ upstream kernel might be wrongly programmed.
Perhaps you should check the about://gpu page and check whether it's using OpenGL for compositing.
Also I think it's better to use Gnome on wayland if you're using the panfrost drivers :)
I'm running chromium with --in-process-gpu so it enforces OpenGL compositing exclusively on the gpu using EGL.
If I disable this feature, then it will fallback to software compositing (due to missing wayland dmabuf extensions in the mali driver), which is a lot slower.
So even if WebGL is being rendered using the mali OpenGLES driver, it will be a lot slower if the output is painted using software compositing.

I've updated my image to v2:
- Added Grand Theft Auto 3 (re3) and Vice City (reVC)
- Set default language to English and remove pre-installed dutch language packages (sorry about that..)
- Enforce SELinux again
- Disable zram (a bit more snappier now)
- Chromium: fix open file dialogs (gtk/glib support)
- Chromium: remove drm/gbm platforms to shrink the binary a bit more
- Kodi/DOSBox/PPSSPP/RetroArch standalone: fix high pitched audio (by making sure pulseaudio is available)
- Remove Pre-Release info as the stable repositories have been branched now
- More cleaning


I did not add SuperTuxKart, because I found the performance lacking.

Also if no major issues come out, this will probably be my last image for the XU3/4.
My N2 sample has been sitting in the drawer for almost 2 years I guess.
Perhaps I'll try to release the same Fedora image for it in the near future.
These users thanked the author MastaG for the post (total 2):
odroid (Thu Apr 22, 2021 9:16 am) • istanbulls (Fri Jun 18, 2021 8:13 am)

User avatar
odroid
Site Admin
Posts: 38033
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 1999 times
Been thanked: 1206 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by odroid »

Thank you for the hint and the new image.

@tobetter has tested --in-process-gpu option on Wayland and we could observe 30~40% more fps as this video. :D
viewtopic.php?p=327219#p327219

DESE
Posts: 50
Joined: Sat Jan 17, 2015 3:49 pm
languages_spoken: english, spanish
ODROIDs: Odroid C1
Has thanked: 0
Been thanked: 0
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by DESE »

Just see this post but already download Fedora 32 (mega got me downloading by 1.5gig parts), gonna see how to updgrade it and put it slim in my hc2 device but also will try to set it up in my xu4 for gaming. Great Distro! Much respect! Thank you.

User avatar
istanbulls
Posts: 584
Joined: Tue May 14, 2019 10:18 pm
languages_spoken: Turkish
ODROIDs: ODROID; N2, C4, XU4, N2+, CH4
Location: Istanbul-Turkey
Has thanked: 359 times
Been thanked: 97 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by istanbulls »

I tried this, I'm really confused.
XU4 has evolved into another dimension.

N2+ will be jealous of this performance :D

If there was support for Netflix 1080p waawww on Kodide and multi-channel audio, the n2+ would be spidered in my drawer.

Please start a project like this in N2 please :)

odro-volti
Posts: 89
Joined: Fri Apr 12, 2019 4:35 pm
languages_spoken: english
ODROIDs: Odroid XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by odro-volti »

Hi!

Which kernel do you use? Would it be possible to have only a lightweight server image without graphics? Don't want it all installed (saw the option to disable Gnome....).

Many thanks in advance!
kind regards

volti

jbodhorn
Posts: 20
Joined: Sun Mar 13, 2016 10:36 am
languages_spoken: english
ODROIDs: odroid-xu4
Has thanked: 0
Been thanked: 0
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by jbodhorn »

I was trying to switch from wayland to X11 at the gnome login screen but before it gets to gnome it falls back to the login screen. So far I've read that this may be due to permissions. Has this happened to anyone else? So far gnome has been running pretty well on the odroid-xu4. It's been a long time since I last used fedora, was my favorite before switching to Arch, guess I gotta learn dnf now anyway, last I used fedora they were still using yum

Edit:
After checking the log I'm not sure it has to do with permissions anymore

Code: Select all

[joe@YOGA-12 ~]$ mv Xorg.0.log odroid-Xorg.0.log
[joe@YOGA-12 ~]$ cat odroid-Xorg.0.log 
[    72.299] (--) Log file renamed from "/home/odroid/.local/share/xorg/Xorg.pid-1463.log" to "/home/odroid/.local/share/xorg/Xorg.0.log"
[    72.301] 
X.Org X Server 1.20.11
X Protocol Version 11, Revision 0
[    72.301] Build Operating System:  5.6.6-300.fc32.armv7hl+lpae 
[    72.301] Current Operating System: Linux odroid 5.8.18-HK #1 SMP PREEMPT Tue Mar 30 17:16:41 CEST 2021 armv7l
[    72.302] Kernel command line: s5p_mfc.mem=16M console=tty1 console=ttySAC2,115200n8 root=UUID=55e1c0d3-f117-4b5c-af01-9e1a6ed85646 ro ext4 rootwait rd.auto=1 rhgb quiet  HPD=true vout=hdmi usbhid.quirks=0x0eef:0x0005:0x0004 smsc95xx.macaddr=00:1e:06:61:7a:39 false
[    72.302] Build Date: 14 April 2021  12:00:00AM
[    72.302] Build ID: xorg-x11-server 1.20.11-1.fc34 
[    72.302] Current version of pixman: 0.40.0
[    72.302] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[    72.302] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    72.302] (==) Log file: "/home/odroid/.local/share/xorg/Xorg.0.log", Time: Wed Jun 23 17:44:05 2021
[    72.306] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    72.306] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    72.311] (==) ServerLayout "Default Layout"
[    72.311] (==) No screen section available. Using defaults.
[    72.311] (**) |-->Screen "Default Screen Section" (0)
[    72.312] (**) |   |-->Monitor "<default monitor>"
[    72.312] (==) No device specified for screen "Default Screen Section".
	Using the first device section listed.
[    72.312] (**) |   |-->Device "ODROID"
[    72.312] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[    72.312] (**) Option "BlankTime" "0"
[    72.312] (**) Option "StandbyTime" "0"
[    72.312] (**) Option "SuspendTime" "0"
[    72.313] (**) Option "OffTime" "0"
[    72.313] (==) Automatically adding devices
[    72.313] (==) Automatically enabling devices
[    72.313] (==) Automatically adding GPU devices
[    72.313] (==) Automatically binding GPU devices
[    72.313] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    72.313] (==) FontPath set to:
	catalogue:/etc/X11/fontpath.d,
	built-ins
[    72.313] (==) ModulePath set to "/usr/lib/xorg/modules"
[    72.313] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[    72.313] (II) Loader magic: 0x6ad018
[    72.313] (II) Module ABI versions:
[    72.313] 	X.Org ANSI C Emulation: 0.4
[    72.313] 	X.Org Video Driver: 24.1
[    72.313] 	X.Org XInput driver : 24.1
[    72.313] 	X.Org Server Extension : 10.0
[    72.316] (++) using VT number 2

[    72.323] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_33
[    72.326] (II) xfree86: Adding drm device (/dev/dri/card0)
[    72.328] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 12 paused 0
[    72.329] (II) no primary bus or device found
[    72.329] 	falling back to /sys/devices/platform/exynos-drm/drm/card0
[    72.329] (II) LoadModule: "glx"
[    72.331] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    72.339] (II) Module glx: vendor="X.Org Foundation"
[    72.339] 	compiled for 1.20.11, module version = 1.0.0
[    72.339] 	ABI class: X.Org Server Extension, version 10.0
[    72.339] (II) LoadModule: "armsoc"
[    72.341] (II) Loading /usr/lib/xorg/modules/drivers/armsoc_drv.so
[    72.343] (II) Module armsoc: vendor="X.Org Foundation"
[    72.343] 	compiled for 1.20.10, module version = 1.4.1
[    72.343] 	Module class: X.Org Video Driver
[    72.343] 	ABI class: X.Org Video Driver, version 24.1
[    72.343] (II) ARMSOC: Driver for ARM Mali compatible chipsets
[    72.343] (WW) Falling back to old probe method for armsoc
[    72.343] (II) No BusID or DriverName specified - opening /dev/dri/card0
[    72.343] (EE) ERROR: Cannot set the DRM interface version.
[    72.343] (EE) ERROR: Cannot open a connection with the DRM - Permission denied
[    72.343] (WW) Falling back to old probe method for armsoc
[    72.343] (II) No BusID or DriverName specified - opening /dev/dri/card0
[    72.343] (EE) ERROR: Cannot set the DRM interface version.
[    72.343] (EE) ERROR: Cannot open a connection with the DRM - Permission denied
[    72.343] (EE) No devices detected.
[    72.343] (EE) 
Fatal server error:
[    72.344] (EE) no screens found(EE) 
[    72.344] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[    72.344] (EE) Please also check the log file at "/home/odroid/.local/share/xorg/Xorg.0.log" for additional information.
[    72.344] (EE) 
[    72.358] (EE) Server terminated with error (1). Closing log file.

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

jbodhorn wrote:
Thu Jun 24, 2021 6:56 am
I was trying to switch from wayland to X11 at the gnome login screen but before it gets to gnome it falls back to the login screen. So far I've read that this may be due to permissions. Has this happened to anyone else? So far gnome has been running pretty well on the odroid-xu4. It's been a long time since I last used fedora, was my favorite before switching to Arch, guess I gotta learn dnf now anyway, last I used fedora they were still using yum
Hi there,
Unfortunately you cannot run Gnome on X11 using the armsoc driver.
Gnome has requirements on the kernel (drm) side such as kms modesetting and userspace (xf86 video drivers) side such as dri2 for video acceleration which is lacking on the XU3/4.

If you really like to use X11 you could try to install something like XFCE and use the select_mali_driver.sh command to switch to the x11 driver.
The desktop itself should be mostly software rendered, but you should be able to run OpenGLES applications such as Kodi and Retroarch using the mali blob (just like the HK ubuntu images).
However I did not test this myself (yet).
EDIT: You also have to use another greeter (login screen), because gdm also won't work on the armsoc driver.
odro-volti wrote:
Tue Jun 22, 2021 12:11 am
Hi!

Which kernel do you use? Would it be possible to have only a lightweight server image without graphics? Don't want it all installed (saw the option to disable Gnome....).

Many thanks in advance!
For the kernel I'm running version 5.8.18, you could check out the sources in /usr/src/kernels and optionally build it yourself using the kernel_compile.sh command :)
I'll look into making a script which will convert the OS from Workstation to Server edition and remove everything related to graphics and gaming (which is mostly in /usr/local anyways).


But currently the highest priority is getting the latest libwidevinecdm.so to work again, so we can still enjoy Netflix and other widevine enabled services in the future.
The old libwidevinecdm will be (or is already?) revoked :(
It requires a few out of tree patches for glibc for it to be loadable again.
This means I'm looking into setting up a repository on koji where I build my own fork of glibc with these patches so I can make sure it stays up to date with upstream.
I hope I can do this soon.
On the flip side, the new cdm seems to perform better, it was reported on a S905X board a 15Mbps stream is decrypted fast enough to keep buffer filled and a 1080p Netflix video looks smoother.
So who knows if it will make a difference for XU4 as well, I guess one could try coreElec or libreElec and report back :)

I've also updated Chromium to 91.0.4472.106 which should contain the new Sparkplug javascript compiler (saving you 17 years of CPU cycles every day lol).
Meanwhile I'm also bumping Kodi to the latest 19.x version.
These users thanked the author MastaG for the post (total 3):
odroid (Thu Jun 24, 2021 9:25 am) • odro-volti (Fri Jun 25, 2021 5:20 pm) • istanbulls (Sun Jun 27, 2021 1:59 am)

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

Well, I've forked Fedora's glibc repository and rebased the two patches for glibc version 2.33.
https://github.com/MastaG/glibc_widevine/tree/f34
My local build of glibc is now capable dlopen the new libwidevinecdm.so :)

Code: Select all

#include <iostream>
#include <dlfcn.h>

int main(int argc, char **argv)
{
    using std::cerr;

    void *dl = dlopen("./libwidevinecdm.so", RTLD_LAZY);
    if (!dl) {
        cerr << "ERROR: " << dlerror() << "\n";
        return 1;
    }

    char* (*GetCdmVersion)();
    GetCdmVersion = dlsym(dl, "GetCdmVersion");
    std::string cdm_version = GetCdmVersion();
    cerr << "CDM Version: " << cdm_version << "\n";


    dlclose(dl);
}

Code: Select all

./a.out 
CDM Version: 4.10.2252.0
This used to error out on some TLS fault.

Setting up a copr repository also seems easy enough (and free):
https://copr.fedorainfracloud.org/coprs ... _widevine/

Exciting times !
These users thanked the author MastaG for the post (total 2):
odroid (Fri Jun 25, 2021 9:43 am) • istanbulls (Sun Jun 27, 2021 2:00 am)

odro-volti
Posts: 89
Joined: Fri Apr 12, 2019 4:35 pm
languages_spoken: english
ODROIDs: Odroid XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by odro-volti »

For the kernel I'm running version 5.8.18, you could check out the sources in /usr/src/kernels and optionally build it yourself using the kernel_compile.sh command :)
I'll look into making a script which will convert the OS from Workstation to Server edition and remove everything related to graphics and gaming (which is mostly in /usr/local anyways).
Many thanks for replying! Kernel 5.8.18 does have wireguard in the kernel iirc, is the wireguard-tools package in the respective Fedora repos for installation? :-)

Do you propose one should remove /usr/local for removing worksation stuff?!? One would need to uninstall I guess...
kind regards

volti

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

odro-volti wrote:
Fri Jun 25, 2021 5:20 pm
For the kernel I'm running version 5.8.18, you could check out the sources in /usr/src/kernels and optionally build it yourself using the kernel_compile.sh command :)
I'll look into making a script which will convert the OS from Workstation to Server edition and remove everything related to graphics and gaming (which is mostly in /usr/local anyways).
Many thanks for replying! Kernel 5.8.18 does have wireguard in the kernel iirc, is the wireguard-tools package in the respective Fedora repos for installation? :-)

Do you propose one should remove /usr/local for removing worksation stuff?!? One would need to uninstall I guess...
Yes Wireguard is enabled in the kernel as well as support for containers (namespaces and stuff), so you can just "dnf install wireguard-tools" :)
For a clean Server edition, I'll create another image on the next release, which doesn't contain graphical/gaming applications.
I tried looking into converting it, however it's a bit of a mess, as the current image doesn't show all installed groups.
I'll also fix this for the next release.

odro-volti
Posts: 89
Joined: Fri Apr 12, 2019 4:35 pm
languages_spoken: english
ODROIDs: Odroid XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by odro-volti »

Sounds perfect! What's the ETA? In a month? Or longer? :-)
kind regards

volti

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

odro-volti wrote:
Fri Jun 25, 2021 9:07 pm
Sounds perfect! What's the ETA? In a month? Or longer? :-)
I'll try to finish it within 2 weeks :)

I just did a test with the new image.
- Kodi updated to 19.1 (including all binary addons)
- Patched glibc (for loading recent CDM)
- Widevine CDM updated to 4.10.2252.0 (using in both Chromium and Kodi)
- Chromium updated to 91.0.4472.106 (includes the Sparkplug JS compiler)

Kodi (tested in GBM) is capable of smoothly playing back 1080p netflix in both VP9 and H264 (I didn't test this with the previous CDM version).
But that new Chromium version really shines with it's Sparkplug JS compiler.
I think this is the most snappiest web-browser I've ever experienced on a XU4.
You can just browse to netflix.com and the UI is very snappy also playback is very smooth now.

TODO:
- More testing for bugs
- Create a clean Server Edition with just tvheadend/oscam as the only custom additions.
- Clean clean clean

odro-volti
Posts: 89
Joined: Fri Apr 12, 2019 4:35 pm
languages_spoken: english
ODROIDs: Odroid XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by odro-volti »

MastaG wrote:
Sat Jun 26, 2021 12:22 am
odro-volti wrote:
Fri Jun 25, 2021 9:07 pm
Sounds perfect! What's the ETA? In a month? Or longer? :-)
I'll try to finish it within 2 weeks :)

I just did a test with the new image.
- Kodi updated to 19.1 (including all binary addons)
- Patched glibc (for loading recent CDM)
- Widevine CDM updated to 4.10.2252.0 (using in both Chromium and Kodi)
- Chromium updated to 91.0.4472.106 (includes the Sparkplug JS compiler)

Kodi (tested in GBM) is capable of smoothly playing back 1080p netflix in both VP9 and H264 (I didn't test this with the previous CDM version).
But that new Chromium version really shines with it's Sparkplug JS compiler.
I think this is the most snappiest web-browser I've ever experienced on a XU4.
You can just browse to netflix.com and the UI is very snappy also playback is very smooth now.

TODO:
- More testing for bugs
- Create a clean Server Edition with just tvheadend/oscam as the only custom additions.
- Clean clean clean
Any news, good or bad, on this? :-)
kind regards

volti

jbodhorn
Posts: 20
Joined: Sun Mar 13, 2016 10:36 am
languages_spoken: english
ODROIDs: odroid-xu4
Has thanked: 0
Been thanked: 0
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by jbodhorn »

MastaG wrote:
Thu Jun 24, 2021 7:20 am
jbodhorn wrote:
Thu Jun 24, 2021 6:56 am
I was trying to switch from wayland to X11 at the gnome login screen but before it gets to gnome it falls back to the login screen. So far I've read that this may be due to permissions. Has this happened to anyone else? So far gnome has been running pretty well on the odroid-xu4. It's been a long time since I last used fedora, was my favorite before switching to Arch, guess I gotta learn dnf now anyway, last I used fedora they were still using yum
Hi there,
Unfortunately you cannot run Gnome on X11 using the armsoc driver.
Gnome has requirements on the kernel (drm) side such as kms modesetting and userspace (xf86 video drivers) side such as dri2 for video acceleration which is lacking on the XU3/4.

If you really like to use X11 you could try to install something like XFCE and use the select_mali_driver.sh command to switch to the x11 driver.
The desktop itself should be mostly software rendered, but you should be able to run OpenGLES applications such as Kodi and Retroarch using the mali blob (just like the HK ubuntu images).
However I did not test this myself (yet).
EDIT: You also have to use another greeter (login screen), because gdm also won't work on the armsoc driver.
odro-volti wrote:
Tue Jun 22, 2021 12:11 am
Hi!

Which kernel do you use? Would it be possible to have only a lightweight server image without graphics? Don't want it all installed (saw the option to disable Gnome....).

Many thanks in advance!
For the kernel I'm running version 5.8.18, you could check out the sources in /usr/src/kernels and optionally build it yourself using the kernel_compile.sh command :)
I'll look into making a script which will convert the OS from Workstation to Server edition and remove everything related to graphics and gaming (which is mostly in /usr/local anyways).


But currently the highest priority is getting the latest libwidevinecdm.so to work again, so we can still enjoy Netflix and other widevine enabled services in the future.
The old libwidevinecdm will be (or is already?) revoked :(
It requires a few out of tree patches for glibc for it to be loadable again.
This means I'm looking into setting up a repository on koji where I build my own fork of glibc with these patches so I can make sure it stays up to date with upstream.
I hope I can do this soon.
On the flip side, the new cdm seems to perform better, it was reported on a S905X board a 15Mbps stream is decrypted fast enough to keep buffer filled and a 1080p Netflix video looks smoother.
So who knows if it will make a difference for XU4 as well, I guess one could try coreElec or libreElec and report back :)

I've also updated Chromium to 91.0.4472.106 which should contain the new Sparkplug javascript compiler (saving you 17 years of CPU cycles every day lol).
Meanwhile I'm also bumping Kodi to the latest 19.x version.

Thank you for your reply, and thank you for all the work you've done! My odroid-xu4 is now more useful than it's ever been, and I've had the damn thing since they were new. My only reason for wanting to switch to X11 is to use barrier, it's a fork of synergy. I hate juggling keyboards, I'm too uncoordinated and over cluttered for it anyway, so I've really been wanting to give barrier a try.

The odroid-xu4 is like the only device I have not running x, though most of my stuff aside from my laptop and now the odroid are like pi's running headless. It seems like most apps that caused me to stay with X11 are now compatible with Wayland, but not barrier, sigh.... I'll have to plug a pi into a monitor and give barrier a try, see if it'll be worth the effort to get everything working with X11 on the odroid.

Xfce is less resource intensive than gnome right? So even though gnome is my favorite DE it may be worth "suffering" Xfce in this case? I spent like a good week or two just trying unsuccessfully to get widevine working with chromium so I could stream prime and Hulu. I hadn't even bothered to set up anything else, cuz if I couldn't stream drm content I didn't give a shit what else it could do and it'd have gone back to its banishment to a headless octoprint server....

I was begrudgingly about to try getting widevine to work with the stock hardkernel image, this was after failing to get widevine working with arch arm. But then, hallelujah, I found this post with your image! I hadn't used Fedora since they switched from yum to dnf, but next to arch, Fedora is my fav. Default gnome and no apt/apt-get.... I fucking hate apt... Dnf may not be as awesome as pacman, but at least it's better than apt

User avatar
mad_ady
Posts: 9689
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 609 times
Been thanked: 721 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by mad_ady »

Hey MastaG! I'm giving your image a try on an older XU3 I recovered from a friend. All looks fine - apart from the fact that Mega.nz has a 5G download cap and makes me wait for 3 hours to complete the download :(
You can PM mdrjr and ask him for hosting space on his server - https://oph.mdrjr.net/
These users thanked the author mad_ady for the post:
Nuts_ (Tue Aug 10, 2021 5:24 am)

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

Hi sorry guys for the long delay.
We took some time off with the family to get some rest.
I have just started picking up work on this project again.
I've applied the le9 patch from here: https://github.com/hakavlad/le9-patch with CONFIG_CLEAN_LOW_KBYTES=300000 and CONFIG_CLEAN_MIN_KBYTES=0.
With zram disabled It actually performs really well now when watching 1080p netflix in the browser.
I also did a fresh build of Chromium 92 with the v4l2 video decoding patches from rockchip linux although I haven't got the MFC decoder to kick in yet.
jbodhorn wrote:
Thu Jun 24, 2021 6:56 am
Thank you for your reply, and thank you for all the work you've done! My odroid-xu4 is now more useful than it's ever been, and I've had the damn thing since they were new. My only reason for wanting to switch to X11 is to use barrier, it's a fork of synergy. I hate juggling keyboards, I'm too uncoordinated and over cluttered for it anyway, so I've really been wanting to give barrier a try.

The odroid-xu4 is like the only device I have not running x, though most of my stuff aside from my laptop and now the odroid are like pi's running headless. It seems like most apps that caused me to stay with X11 are now compatible with Wayland, but not barrier, sigh.... I'll have to plug a pi into a monitor and give barrier a try, see if it'll be worth the effort to get everything working with X11 on the odroid.

Xfce is less resource intensive than gnome right? So even though gnome is my favorite DE it may be worth "suffering" Xfce in this case? I spent like a good week or two just trying unsuccessfully to get widevine working with chromium so I could stream prime and Hulu. I hadn't even bothered to set up anything else, cuz if I couldn't stream drm content I didn't give a shit what else it could do and it'd have gone back to its banishment to a headless octoprint server....

I was begrudgingly about to try getting widevine to work with the stock hardkernel image, this was after failing to get widevine working with arch arm. But then, hallelujah, I found this post with your image! I hadn't used Fedora since they switched from yum to dnf, but next to arch, Fedora is my fav. Default gnome and no apt/apt-get.... I fucking hate apt... Dnf may not be as awesome as pacman, but at least it's better than apt
For the latest widevine cdm you'll need to patch your glibc with the attached patches.
Unfortunately if you upgrade the CDM it'll stop working (in fact Chromium won't even launch) unless we use a patched version of glibc.
So if Kodi asks you to upgrade, don't do it until the next release :)
mad_ady wrote:
Mon Aug 09, 2021 6:06 pm
Hey MastaG! I'm giving your image a try on an older XU3 I recovered from a friend. All looks fine - apart from the fact that Mega.nz has a 5G download cap and makes me wait for 3 hours to complete the download :(
You can PM mdrjr and ask him for hosting space on his server - https://oph.mdrjr.net/
That would be a great idea.
Especially if they would also offer me some place to host the repository for the patched glibc.
Then I can always push a newer version than the one in the official repository.
I've tried copr but as armv7 is virtualized, it takes too long to build and kills the process after a long timeout.

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

MastaG,

I installed your image to see if I could take advantage of the awesome frames per second you are getting. I've never used Fedora before, but figured I'd give it a shot. I'm trying to install the following edup wifi dongle.
https://www.szedup.com/product-item/ac- ... pter-2dbi/

Code: Select all

[root@odroidxu 8821au]# lsusb
Bus 006 Device 002: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 05e3:0616 Genesys Logic, Inc. hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 003: ID 0bda:0811 Realtek Semiconductor Corp. Realtek 8812AU/8821AU 802.11ac WLAN Adapter [USB Wireless Dual-Band Adapter 2.4/5Ghz]
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
I followed the instructions below which worked for me on an Ubuntu image.

Code: Select all

https://github.com/morrownr/8821au

Code: Select all

Running install-driver.sh version 20210524
Starting installation.
Copying source files to: /usr/src/rtl8821au-5.8.2.3
Copying 8821au.conf to: /etc/modprobe.d

Creating symlink /var/lib/dkms/rtl8821au/5.8.2.3/source ->
                 /usr/src/rtl8821au-5.8.2.3

DKMS: add completed.
Error! echo
Your kernel headers for kernel 5.8.18-HK cannot be found at
/lib/modules/5.8.18-HK/build or /lib/modules/5.8.18-HK/source.
You can use the --kernelsourcedir option to tell DKMS where it's located.
An error occurred. dkms build error = 1
Please report this error.
Would you have any recommendations on how I can get this wifi dongle installed? I'm going to work on installing the touch driver next. Thank you.

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

hilton8r wrote:
Fri Aug 27, 2021 6:41 am
MastaG,

I installed your image to see if I could take advantage of the awesome frames per second you are getting. I've never used Fedora before, but figured I'd give it a shot. I'm trying to install the following edup wifi dongle.
https://www.szedup.com/product-item/ac- ... pter-2dbi/

Code: Select all

[root@odroidxu 8821au]# lsusb
Bus 006 Device 002: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 05e3:0616 Genesys Logic, Inc. hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 003: ID 0bda:0811 Realtek Semiconductor Corp. Realtek 8812AU/8821AU 802.11ac WLAN Adapter [USB Wireless Dual-Band Adapter 2.4/5Ghz]
Bus 003 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
I followed the instructions below which worked for me on an Ubuntu image.

Code: Select all

https://github.com/morrownr/8821au

Code: Select all

Running install-driver.sh version 20210524
Starting installation.
Copying source files to: /usr/src/rtl8821au-5.8.2.3
Copying 8821au.conf to: /etc/modprobe.d

Creating symlink /var/lib/dkms/rtl8821au/5.8.2.3/source ->
                 /usr/src/rtl8821au-5.8.2.3

DKMS: add completed.
Error! echo
Your kernel headers for kernel 5.8.18-HK cannot be found at
/lib/modules/5.8.18-HK/build or /lib/modules/5.8.18-HK/source.
You can use the --kernelsourcedir option to tell DKMS where it's located.
An error occurred. dkms build error = 1
Please report this error.
Would you have any recommendations on how I can get this wifi dongle installed? I'm going to work on installing the touch driver next. Thank you.
Hi, did you try to setup the kernel sources by running: sudo kernel_compile.sh ?
It will download, patch and re-compile the kernel, but when done you should be able to install any kernel driver.
These users thanked the author MastaG for the post:
hilton8r (Tue Aug 31, 2021 3:17 am)

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

MastaG wrote:
Mon Aug 30, 2021 5:07 pm
Hi, did you try to setup the kernel sources by running: sudo kernel_compile.sh ?
It will download, patch and re-compile the kernel, but when done you should be able to install any kernel driver.
Thank you MastaG!

I ran kernel_compile.sh without any issues.

I tried to install the dkms driver following these instructions https://github.com/morrownr/8821au, but it failed because it couldn't find an armv7l directory. I just copied the arm directory over to armv7l, and was able to install the dkms driver without any issues.

Code: Select all

cp -a /usr/src/kernels/linux-5.8.18/arch/arm /usr/src/kernels/linux-5.8.18/arch/armv7l
I'm now connected to your image via wifi. I really appreciate your help.
These users thanked the author hilton8r for the post:
MastaG (Tue Aug 31, 2021 5:37 pm)

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

hilton8r wrote:
Tue Aug 31, 2021 3:16 am
MastaG wrote:
Mon Aug 30, 2021 5:07 pm
Hi, did you try to setup the kernel sources by running: sudo kernel_compile.sh ?
It will download, patch and re-compile the kernel, but when done you should be able to install any kernel driver.
Thank you MastaG!

I ran kernel_compile.sh without any issues.

I tried to install the dkms driver following these instructions https://github.com/morrownr/8821au, but it failed because it couldn't find an armv7l directory. I just copied the arm directory over to armv7l, and was able to install the dkms driver without any issues.

Code: Select all

cp -a /usr/src/kernels/linux-5.8.18/arch/arm /usr/src/kernels/linux-5.8.18/arch/armv7l
I'm now connected to your image via wifi. I really appreciate your help.

Well then I should be thanking you for testing uit dkms :)
Could you perhaps test if a symlink is also sufficient?
Something like:

Code: Select all

ln -s /usr/src/kernels/linux-5.8.18/arch/arm /usr/src/kernels/linux-5.8.18/arch/armv7l
Then I'll make sure to update the script in the next image so dkms should work out of the box when setting up the kernel sources.

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

Absolutely. I’ll do that tomorrow and report back. I should have done it that way in the first place!

User avatar
meveric
Posts: 11613
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: X2, U2, U3, XU-Lite, XU3, XU3-Lite, C1, XU4, C2, C1+, XU4Q, HC1, N1, Go, H2 (N4100), N2, H2 (J4105), GoA, C4, GoA v1.1, H2+, HC4, GoS
Has thanked: 71 times
Been thanked: 514 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by meveric »

https://github.com/morrownr/8821au/blob ... file#L1309

Code: Select all

SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ | sed -e s/armv7l/arm/ | sed -e s/aarch64/arm64/)
These users thanked the author meveric for the post (total 2):
MastaG (Tue Aug 31, 2021 9:34 pm) • hilton8r (Wed Sep 01, 2021 12:12 pm)
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.

sdip
Posts: 10
Joined: Mon Dec 05, 2016 2:21 am
languages_spoken: english
Has thanked: 2 times
Been thanked: 0
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by sdip »

Consider me subscribed!! <3
Time to dust off my dormant XU4

Edit:
- Kodi Plex addon v0.3.3 and v0.3.4 issue related to python 3.9 deprecating isAlive()
https://github.com/plexinc/plex-for-kod ... 22dd0ae46c
#!/usr/bin/env bash
find /home/odroid/.kodi/addons/script.plex/ -type f -exec sed -i -e s/\.isAlive()/\.is_alive()/g {} ;
Last edited by sdip on Thu Sep 02, 2021 8:05 am, edited 1 time in total.

sdip
Posts: 10
Joined: Mon Dec 05, 2016 2:21 am
languages_spoken: english
Has thanked: 2 times
Been thanked: 0
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by sdip »

Quick question.. is "dnf upgrade" safe to do, or we should just stick to the image itself?

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

MastaG wrote:
Mon Aug 30, 2021 5:07 pm
Well then I should be thanking you for testing uit dkms :)
Could you perhaps test if a symlink is also sufficient?
Something like:

Code: Select all

ln -s /usr/src/kernels/linux-5.8.18/arch/arm /usr/src/kernels/linux-5.8.18/arch/armv7l
Then I'll make sure to update the script in the next image so dkms should work out of the box when setting up the kernel sources.
I saw Meverik's post using sed, so let me know if you still want me to test using symlink?

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

For testing, I called /usr/local/bin/chromium from command line pointed to:

Code: Select all

'https://webglsamples.org/aquarium/aquarium.html'
It fired up at 40ish frames per second for 500 fish. I added --kiosk to the call, and it failed. I immediately removed the --kiosk flag, but it still failed with:

Code: Select all

[4316:4316:0901/140136.769953:FATAL:platform_selection.cc(45)] Invalid ozone platform: drm
I played around with:

Code: Select all

--enable-features=UseOzonePlatform
and

Code: Select all

--ozone-platform=wayland
It was a guess, but I thought maybe chromium didn't have a default set or something...

I didn't think it failing had anything to do with the --kiosk flag, but I can't confirm if the flag is valid via chromium --help. I am able to perform chromium --version etc...

It initially took a few tries to get it to work. I recall changing http to https in the url, and that's when it worked. It's promising that it did work once though.

My python3 script goes through a bunch of steps, but essentially the command is:

Code: Select all

subprocess.run(['/usr/local/bin/chromium', 'https://webglsamples.org/aquarium/aquarium.html'])
I ran this command from the python3 interpreter to be sure I'm not jacking something up somewhere. This resulted in:

Code: Select all

TypeError: bufsize must be an integer
Any suggestions for resolving my browser call? I don't know how or where I would set bufsize. I'll keep digging...

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

hilton8r wrote:
Thu Sep 02, 2021 6:41 am
For testing, I called /usr/local/bin/chromium from command line pointed to:

Code: Select all

'https://webglsamples.org/aquarium/aquarium.html'
It fired up at 40ish frames per second for 500 fish. I added --kiosk to the call, and it failed. I immediately removed the --kiosk flag, but it still failed with:

Code: Select all

[4316:4316:0901/140136.769953:FATAL:platform_selection.cc(45)] Invalid ozone platform: drm
I played around with:

Code: Select all

--enable-features=UseOzonePlatform
and

Code: Select all

--ozone-platform=wayland
It was a guess, but I thought maybe chromium didn't have a default set or something...

I didn't think it failing had anything to do with the --kiosk flag, but I can't confirm if the flag is valid via chromium --help. I am able to perform chromium --version etc...

It initially took a few tries to get it to work. I recall changing http to https in the url, and that's when it worked. It's promising that it did work once though.

My python3 script goes through a bunch of steps, but essentially the command is:

Code: Select all

subprocess.run(['/usr/local/bin/chromium', 'https://webglsamples.org/aquarium/aquarium.html'])
I ran this command from the python3 interpreter to be sure I'm not jacking something up somewhere. This resulted in:

Code: Select all

TypeError: bufsize must be an integer
Any suggestions for resolving my browser call? I don't know how or where I would set bufsize. I'll keep digging...
/usr/local/bin/chromium should link to /usr/local/lib/chromium/chromium-wrapper
In this file you can find all the flags I'm passing to the binary :)

If you read this file you can see it looks for some environmental flag to determine we're running on Wayland or X11.
I think it's something like $XDG_SESSION_TYPE.
If this variable isn't defined then it will default to the drm platform which doesn't work as it's actually only compatible with ChromeOS' drm drivers.
This could possible be the case when executing it from within your python code.

I'm posting from my phone, but if you go to the bottom of the chromium-wrapper file, you can simply edit it to always pass the wayland ozone-platform.
These users thanked the author MastaG for the post:
hilton8r (Thu Sep 02, 2021 9:58 pm)

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

I do typically set some environment variables I’ll be sure to include $XDG_SESSION_TYPE. I’ll take a look at the wrapper file this morning as well. Thank you!

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

hilton8r wrote:
Thu Sep 02, 2021 9:57 pm
I do typically set some environment variables I’ll be sure to include $XDG_SESSION_TYPE. I’ll take a look at the wrapper file this morning as well. Thank you!
I've been in meetings all morning. It was killing me because I was super anxious to work on the chromium call.

I was able to default $XDG_SESSION_TYPE to wayland no problem. This results in the following error:

Code: Select all

$XDG_RUNTIME_DIR not set in the environment
So chromium fails to connect to wayland display and fails to initialize wayland platform.

Any recommendation on the value I should use for the xdg runtime directory? I'll google it a bit, but wanted to post the results for now...

User avatar
mad_ady
Posts: 9689
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 609 times
Been thanked: 721 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by mad_ady »

Try running set or env in a working environment and you should see the correct values.

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

mad_ady wrote:
Fri Sep 03, 2021 5:29 am
Try running set or env in a working environment and you should see the correct values.
I already ran env on a working odroid:
XDG_RUNTIME_DIR=/run/user/1001
I'm going to set the variable and retest shortly, but I also noticed that the .Xauthority file is owned by root. I was having trouble on a previous Ubuntu dev image with ownership constantly reverting to root and jacking up login ability until I corrected it. So not sure what is going on with that...

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

mad_ady wrote:
Fri Sep 03, 2021 5:29 am
Try running set or env in a working environment and you should see the correct values.
Getting bounced all over the place with work. It's keeping me from spending as much time on this image as I'd like!

I did update

Code: Select all

$XDG_RUNTIME_DIR
with

Code: Select all

/run/user/1003 
It's dynamic for whatever user id it's running under.

So aquarium is running in kiosk mode at 45 frames per second for 500 fish.

There is a flash/flicker every 10 seconds regardless if I open browser manually or call from my python3 script. I don't think this has anything to do with the browser itself, but the way the images transition. I ran

Code: Select all

webglsamples.org/blob/blob.html
I didn't see any issues with 40 frames per second for 1000 blobs.

Hopefully I'll be able to test with the intended application at some point soon as I work through a few issues on my end. This is really cool.

I haven't been able to get the touchscreen driver working yet. I'll work on that Tuesday after the holiday. Thanks for the help everyone! I really appreciate it.

MastaG
Posts: 381
Joined: Mon Aug 26, 2013 6:05 pm
languages_spoken: english
Has thanked: 34 times
Been thanked: 45 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by MastaG »

Sorry for the lack of updates recently.
A small progress update:
- forum member mdrjr has been so kind to setup webspace for me to host a small repository for the patched glibc release.
This is basically now mandatory to keep on using libwidevine, as the newest version does not work without it.
See also: https://github.com/xbmc/inputstream.adaptive/issues/678
- chromium got updated na couple of times and should run better with it's new JavaScript engine and the new widevine CDM
- Kodi is at 19.1
- I've built another custom version of Firefox as it was pulled from the official repository again
- I've applied the le9 kernel patch and I'm now running the desktop environment without zram enabled

Todo:
- update gta3 en vice city (and enable dx1/3 texture compression)
- clean things up for a new release
- strip all desktop stuff and convert to a server only release (I might do this later)
These users thanked the author MastaG for the post (total 2):
sdip (Fri Sep 10, 2021 10:05 pm) • odroid (Mon Sep 13, 2021 10:06 am)

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

I made a lot of progress on my end, but I'm still having a tough time carving out as much time as I'd like to work on this image. I was able to resolve touchscreen drivers!

I'm using a 32gb emmc card. I ran out of space, so I extended the partition using gparted. I then remembered you mentioned extend_rootfs.sh. :?

I just realized that I haven't backed up my work for awhile. I will probably stop to do that before I go any further. Should I be doing dnf update? I'm not sure if that updates repositories or updates packages. This is my first experience with Fedora. Anything specific in order to patch glibc? I wanted to ask to avoid bricking wifi / touch drivers on the image...

I did hit a roadblock. I'll post it below, and research while I'm backing up my image.

I installed mariadb, but was having trouble with authentications etc... after I bricked it, I decided to uninstall / reinstall:

Code: Select all

[root@001e0624533e ~]# dnf -y install mariadb-server
Invalid configuration value: installonly_limit=1 in /etc/dnf/dnf.conf; value 1 is not allowed
Fedora 34 - armhfp - Updates                                                                                                                                 0.0  B/s |   0  B     00:00    
Errors during downloading metadata for repository 'updates':
  - Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=updates-released-f34&arch=armhfp [Could not resolve host: mirrors.fedoraproject.org]
Error: Failed to download metadata for repo 'updates': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=updates-released-f34&arch=armhfp [Could not resolve host: mirrors.fedoraproject.org]
Last edited by hilton8r on Thu Sep 16, 2021 11:04 am, edited 4 times in total.

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

Code: Select all

Invalid configuration value: installonly_limit=1 in /etc/dnf/dnf.conf; value 1 is not allowed

Code: Select all

installonly_limit=value
…where value is an integer representing the maximum number of versions that can be installed simultaneously for any single package listed in the installonlypkgs directive.
The defaults for the installonlypkgs directive include several different kernel packages, so be aware that changing the value of installonly_limit will also affect the maximum number of installed versions of any single kernel package. The default value listed in /etc/dnf/dnf.conf is installonly_limit=3, and it is not recommended to decrease this value, particularly below 2.
I'll change this from 1 to 2...

Thanks!

User avatar
mad_ady
Posts: 9689
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
Location: Bucharest, Romania
Has thanked: 609 times
Been thanked: 721 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by mad_ady »

Based on the output, DNS isn't working...

hilton8r
Posts: 116
Joined: Tue Oct 27, 2015 10:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 12 times
Been thanked: 2 times
Contact:

Re: Fedora 34 Workstation - XU Edition

Post by hilton8r »

mad_ady wrote:
Wed Sep 15, 2021 7:34 pm
Based on the output, DNS isn't working...
Thank you. I did get past this.

I disabled NetworkManager while working on a script to manage connectivity awhile back, and forgot to enable it again. So that will require additional thought before I go that route, so I can still perform updates.

I resolved all of my mariadb issues today.

One more issue related to touch popped up, so I'm working on that tomorrow.

I'm very close to functional. Then I can start looking at all of the little things. I'm super stoked that @odroid brought this build to my attention. I'm learning a lot in the process!

Post Reply

Return to “Other OS”

Who is online

Users browsing this forum: No registered users and 3 guests