In a previous blog post, I showed another way of syncing OneDrive folders on Linux as an alternative to using RCLONE. It was the Open-Source project “onedrive” by Github user “abraunegg” (a fork of an abandoned project by user “skilion”). One thing I was having trouble with was the installation as a daemon. I used an @reboot crontab workaround to achieve my goal instead. However, I was not satisfied, so I went back to the documentation to see if I missed something. And miss I did. To my defense, other steps I had tried are omitting a necessary detail required to make it work.
I have mentioned the installation in the other post, but I also left out a thing or two that I came across. That is why I will include the setup process again, this time in more detail, and refer you to the other blog post for configuration tips. That is the part I will skip here.
My test system is the same Fedora 34 distribution, and I have also tested the steps on Pop!_OS, which means it should work on the other Ubuntu derivates.
It has been about a year since my first blog post about
syncing Microsoft’s OneDrive cloud storage on Linux. The last time
around, I used RCLONE, which required a more hands-on approach. I have
found a new tool that I think is better because it can sync
automatically in the background without scripting or manually hacking.
It is aptly called onedrive that you can find on Github.
Its name might suggest that Microsoft finally ported their Windows and
Mac clients to Linux, but, unfortunately, that is not the case. I
would still like to see this happen, and if there is ever a time for
Microsoft to do it, it is probably now.
Let me briefly explain how I have installed and configured the
onedrive tool to suit my needs. Thanks to good default values, it is
straightforward, and you might not need any configuration at all.
(I wonder how I managed to not find this tool a year ago)
If you are in the market for anything gaming PC or gaming laptop
related, chances are, you have come across the industry-wide trend of
RGB illuminated hardware and peripherals. Everything is RGB, from the
graphics card to the RAM, to your headset (because you can see the
lights when you wear it 🙄), and many, many more. I am not against RGB
lighting per se, but if you follow the industry as a PC hardware
enthusiast, it is evident that in some aspects, this has gone too far.
Quick side note: after a rant about RGB software, I will show
examples of using OpenRGB on Windows and Linux. If you are interested
in only that, skip the rant and scroll to the bottom.
The next major version of Qt6 was released about two weeks ago, and I
wondered how to get it to run on Linux. It is pretty simple on
Windows because almost everything is based on an installer, and so
the Qt installer fits in nicely. On Linux, however, where everything
is package-manager based, how would you go about it there?
The following is an error that has shown itself every time I have
installed the Qt5 framework and the QtCreator development environment
on a Linux based machine. It never mattered which flavor of Linux;
QtCreator always showed this error.
Warning: The code model could not parse an included file, which might lead to incorrect code completion and highlighting, for example.
fatal error: 'stddef.h' file not found
note: in file included from /home/rlo/Code/C++/WorkTracker2/WorkTracker2Shared/src/data/taskrepository.h:1:
note: in file included from /home/rlo/Code/C++/WorkTracker2/WorkTracker2Shared/src/data/taskrepository.h:3:
note: in file included from /usr/include/c++/9/optional:38:
note: in file included from /usr/include/c++/9/stdexcept:38:
note: in file included from /usr/include/c++/9/exception:143:
note: in file included from /usr/include/c++/9/bits/exception_ptr.h:38:
Although that message never caused any issues compiling the code, I
found it rather annoying, and at some point, annoying enough to
search for a solution.
Gaming on Linux is a challenge because only a few companies take the
time to create native Linux ports of their games. It is even more
challenging when those natively ported games do not run at all or do
not run well. One of them is Middle Earth: Shadow of Mordor. I have
bought this game specifically because it has a native Linux version –
and because I remember that it was well received by media and players.
This game has two issues:
It refuses to start in full-screen mode.
The performance is terrible.
Let’s go through these two issues and see how they manifest and how
to fix them.
In a previous blog post I have mentioned that I was not able
to add my Windows 10 installation to the Grub boot menu. I have
finally found a solution. Now, in my last Linux blog post I
mentioned that I ultimately gave up on Linux after trying Ubuntu 20.04. Well,
I could not stop thinking about it. I am on Pop!_OS again and
although I did not disconnect any SSD on installation, Pop! did not
detect Windows 10 and add it to Grub itself. So, I was back at where
Quick recap of the setup: I have two SATA SSDs (yes, SATA, like a
cave man), one with Windows 10 (the Crucial MX500) and one with
Pop!_OS Linux (the Samsung 850 Evo). The bootloader for each OS is on
the respective SSD.
Now, enough background, let us get to the solution!
If you are CLI wizard do your thing, I will be using a convenient UI
for the first step. Open “Disks” and locate the Windows 10 EFI
partition. It’s around 100MB in size.
Once you have found it, click the “Play” button to mount it.
The Disks utility will then display the mount point that
is required in the next step.
Now, copy some Windows 10 Boot files to your Linux /boot folder. Yes,
you read that right. Sounds weird, but it did the trick.
Do this with Nautilus or use the following command (which I
recommend). Replace <mount point> with the path you got from the Disks
utility. Note that path completion does not work once you go past
/boot/efi. The EFI folder exists, you merely do not have
permissions to see it as a regular user.
The last step consists of making the boot menu show up so you can
actually select an entry. Edit loader.conf and add “timeout 10”
(or any amount of seconds you prefer).
sudo vim /boot/efi/loader/loader.conf
All you need to do now is reboot and (hopefully) enjoy a boot menu
with your Pop!_OS and Windows 10 boot entries. I do not know if this
procedure also works with other Linux variants. It might for the
Ubuntu based distributions, but I cannot say.
A few months back now I have written about how I was trying to use
Linux as my main operating system. I will not reiterate my motives
here. If you are interested feel free to read the initial story back
from March. In my one-month-later story I was
already having some doubts, but continued to stick with it.
Update, 2, July 2021
I have found another tool that I now prefer. Read this blog post to learn more.
In my quest to move to Linux as a daily driver it was important for
me that I could continue to use Microsoft’s OneDrive cloud storage.
Unsurprisingly, Windows 10 comes bundled with a OneDrive sync client.
There is no official Linux support though, so I had to resort to a
3rd party tool. Luckily, there is a very powerful utility called
rclone that does almost exactly what I want and I’ll explain how
I have it set up to suit my needs.
Spoiler: it’s not as convenient as Microsoft’s sync client, but it
has other things going for it.
It has been roughly a month since I switched from using Windows 10 as my main operating system to Linux. The reasons for that have all been detailed in The Switching Windows to Linux Experiment blog post. Now I will share a few of the experiences I have made during the first month (it’s been that long already) and what I think about how well it is going.
Let me address the elefant in the room first, the distribution. I think that is likely the first question you, the reader, would ask. The short answer is Pop!_OS by System76.
Debian’s documentation on installing the proprietary NVIDIA driver
does not (yet) cover the "Bullseye" release because, as of the time
of writing, it is still in testing. However, the
documentation for Debian 10 "Buster" can still be used.
The main difference is that there is no "backports" for "Bullseye" –
although I have found the folders on repo mirrors. At least to me
they seemed to be there. Anyway.
What you have to do is to add "contrib" and "non-free" to your main
mirror definition, not to backports. You don’t need to add a repo
for backports because you’ll only get an error.
(Unfortunately, I haven’t made a note of the error message)
This is what you have to do:
Open /etc/apt/sources.list as sudo/root.
Add "contrib" and "non-free" to the end of the main repo so it
looks like this.
For the longest time I have been a Windows user. My first computer
came with Windows 98 SE (ignoring the Amiga before it) and I’ve used
Windows as the main operating system for almost all that time since
then. There was a brief excursion into the Apple world for about a
year or two, but apart from that: Microsoft’s creation. It’s not that
I have not tried using Linux, it’s just that for many years my needs
could not be easily satisfied by a Linux based operating system. For
one, I have always enjoyed PC gaming and I still do. I’ve tried going
with a console, but that was one of the worst decisions I had made in
2019. There also was a long period where I had used my computer as a
TV, a time where Youtube and all the other streaming services hadn’t
existed. And although I had managed to get the TV tuners to somehow
work, it was not comparable to the experience on Windows. For my use
case, over all those years, Microsoft’s OS simply was the Vulkan
choice. But now in 2020, this isn’t the case anymore. Things have
changed, including the maturity of Linux as well as my own needs and
my views. Therefore, it’s about time that I revisit this topic.
I recently had to deal with this little bugger as we moved from the OpenJDK 8 package supplied by the Linux distro of choice to AdoptOpenJDK 8. It is important to know that we completely uninstalled OpenJDK, including all its transient dependencies.
(And in due time we’ll
uninstall Java 8 and replace that grandpa as well)
result, parts of our application didn’t work any longer, resulting in this nice
and shiny Java stacktrace.
2019-05-03 08:22:07,345 ERROR [qtp1896708863-35] [PlotChartController] [/][/][/]- error while creating chart image
at java.security.AccessController.doPrivileged(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.security.AccessController.doPrivileged(Native Method)
removed some (a lot) parts to make it more readable and to hide corporate IP 😉 But this is the relevant part.
I found this bug report on Github and for once, plowing through the comments, it helped me. As is mentioned there, the culprit is the missing “fontconfig” package. So, I added another Ansible task to our playbook to provision the server et voila, the problem is gone.
mentioned earlier, we had wiped all that was relevant to OpenJDK off the system
and by doing so, also uninstalled the “fontconfig” package. Otherwise this
error wouldn’t have surfaced. But that’s the benefit of starting with a clean
slate. This way you know if something is missing and don’t get surprised by
errors all of a sudden while, at the same time, it is working on another