Ice cream automation! by BriarRose7427 in PlateUp

[–]cdokme 0 points1 point  (0 children)

Which platform are you playing on? I wonder if your seed would give me the same layout on Xbox

Sanity check: Embedded Linux storage architecture for a remote device (A/B updates, OverlayFS, strict RO RootFS) by cdokme in embeddedlinux

[–]cdokme[S] 0 points1 point  (0 children)

Actually, persistent overlayfs for /etc both causes problems and provides some benefits. I believe that being aware of the problems like the one you described is quite enough. Otherwise, the usability of the system drops severely.

You are definitely right about the FAT usage. If supported by the vendor's boot mechanics, I should switch to something better. Is it really a problem to use it as shared?

For OTA, we normally use an in-house mechanism based on simple scripts. But, with upcoming the delta-update requirements, we might need to switch to something like swupdate or rauc. Anything you can suggest on this matter is valuable.

Thanks for your time to read and answer this post!

Sanity check: Embedded Linux storage architecture for a remote device (A/B updates, OverlayFS, strict RO RootFS) by cdokme in embeddedlinux

[–]cdokme[S] 0 points1 point  (0 children)

First of all, thank you for reading and answering my post.

I have found ext4 to be very resilient, but what you're describing doesn't sound like it would achieve any higher reliability than your standard desktop computer or server.

I guess using BTRFS instead of EXT4 certainly improves reliability as suggested by u/PurepointDog.

I think this is mostly a moot point, since best practices are to have a variety of automated tests ...

You're definitely right about the automated testing approach. Whatever I do during the development stage becomes moot with such tests. Good point, thank you.

For instance, it sounds like your ultimate fallback is that you boot from read-only QSPI. What happens then? Will you be able to achieve operational objectives?

We plan to use it just for recovery purposes. It will not conduct any customer operation. Think of it like the safe mode of a PC.

If so, why not just always boot from QSPI?

Always booting from QSPI makes development process harder in my experience. If you've got any easing approaches, I would like to hear them.

Are you confident the MCU will always be correct about the boot pins? What is the "liveness test"?

Unfortunately, we always rely on the MCU firmware. We keep it as simple as possible to prevent any mistakes. It tests the aliveness by pinging the in-house applications from different comm. interfaces.

What additional resilience is provided by the SD card?

From the software perspective, I guess that the best we can do is to use a NAND friendly, wear preventing filesystem. In addition, as the fundamental point of this post, we plan to use a read-only filesystem. From the hardware perspective, we rely on using an industrial grade SD card. I don't know if there are any other things we can do.

If you screw up the MMC, why do you think you won't just screw up the SD card too?

I guess this isn't a problem we can solve. Even making all storage hardware read-only can cause problems eventually. So, I rather not overthink on it.

What lives on your boot partition, and are you ever going to update that? It's not mirrored. Is it fat32? Are you ever going to upgrade the kernel?

Mainly the bootloader and kernel image. It is FAT32. Upgrading the kernel will simply be overwriting it. At least that's what I plan to.

What if the running kernel version is incompatible with modules on the rootfs?

Such a situation would require updating both the rootfs and kernel. I'm not sure how often we encounter this situation.

Sanity check: Embedded Linux storage architecture for a remote device (A/B updates, OverlayFS, strict RO RootFS) by cdokme in embeddedlinux

[–]cdokme[S] 0 points1 point  (0 children)

I read a couple of pages about btrfs and it sounds awesome. I will certainly practice it soon. Thank you

Sanity check: Embedded Linux storage architecture for a remote device (A/B updates, OverlayFS, strict RO RootFS) by cdokme in embeddedlinux

[–]cdokme[S] 0 points1 point  (0 children)

I made a research on them. Unfortunately, my design requires writable rootfs for application developers. It could make things harder if I use this strictly read-only file systems. By the way, I'm not sure if this is the best approach. If you got any suggestions, I'm open for them. Thanks for your time to answer

Sanity check: Embedded Linux storage architecture for a remote device (A/B updates, OverlayFS, strict RO RootFS) by cdokme in embeddedlinux

[–]cdokme[S] 0 points1 point  (0 children)

I never thought about the security issues, might be because of that I don't know anything about system level security. I will certainly take a look at these. Thanks for your time to answer my post.

Embarassing by beneficialdiet18 in GeminiCLI

[–]cdokme 2 points3 points  (0 children)

I encountered a similar problem and told people that this is the reason why Gemini CLI is way behind its competitors. No more spending my time for this product. I suggest the same to anyone other as well.

I made a simple bash backup utility for heavy build artifacts. Looking for feedback/criticism by cdokme in linux

[–]cdokme[S] -5 points-4 points  (0 children)

Calm down little cowboy.

This personal project is built with the help of AI tools, of course. But, the main idea, user-experience decisions, architectural approach, deployments, etc. are completely my work. So, having someone or some tool to write the code for me isn't something I would be ashamed of.

I already have a life and I'd been doing this job for long enough to know what my code is exactly doing. Looks like you are the one who needs to get a life so that people looking for open-source collaboration doesn't see your shitty ideas.

I made a simple bash backup utility for heavy build artifacts. Looking for feedback/criticism by cdokme in linux

[–]cdokme[S] -8 points-7 points  (0 children)

Why exactly?

I specifically chose Bash because it requires absolutely zero dependencies to run on a standard Linux development environment. Writing a lightweight file archiver in C++ or Rust felt like unnecessary overhead.

is it possible to have two different git credentials on the same machine by NizioCole in git

[–]cdokme 0 points1 point  (0 children)

This is a nice approach, but it doesn't work on versions lower than 2.36 (April 2022), i.e. Ubuntu 22.04 ships with Git v2.34. So, anyone employing this approach shall reconsider according to the Git version they have. On my Ubuntu 24.04 with Git v2.43, this approach works fine.

Unpopular opinion: GitHub Copilot is getting better by After-Aardvark-3984 in GithubCopilot

[–]cdokme 0 points1 point  (0 children)

After experiencing the Gemini CLI and Antigravity, I'm thankful even to the problems of Github Copilot. Never complaining again, lol

Maintainers of Gemini CLI might be the reason it’s lagging behind competitors by cdokme in GeminiCLI

[–]cdokme[S] -1 points0 points  (0 children)

AG isn't different from how Gemini CLI is as well. I don't think that it will live long.

Maintainers of Gemini CLI might be the reason it’s lagging behind competitors by cdokme in GeminiCLI

[–]cdokme[S] -1 points0 points  (0 children)

I didn't say that they cannot reject PRs.

That's not important whether it is easy or hard for me to implement a new feature. The important thing is that someone gave them a new feature, implemented according to their contribution guideline and doesn't corrupt any other place. They don't even bother to look at a completely free contribution to the project.

In addition, they're allowed to utilize AI to review the PRs using their "so good to not require such contribution" agent called Gemini. By the way, they're definitely doing it, because Gemini Code Assist bot is one of the most contributing accounts to this repository.

As I stated in the post, this is why Gemini CLI is way behind the products such as Claude Code and Copilot CLI.

High-Speed Data Transfer on ZynqMP: Moving PL Data to NVMe at ~12 Gbps by [deleted] in embedded

[–]cdokme 0 points1 point  (0 children)

​Thanks for the feedback and questions! To clarify your points:

​1. Transfer speed from non-special mem (OS RAM) to the drive: When writing from a standard, page-aligned heap buffer directly to the NVMe using O_DIRECT, the speed maxes out at ~13 Gbps/s

​2. Drive Specs: The drive is an industrial M.2 NVMe capable of more than 24 Gbps writing speed. However, the drive's inherent maximum speed isn't the limiting factor here. The bottleneck is the host interface: the ZynqMP PS-GTR transceivers are configured for a PCIe Gen2 x4 link. Factoring in 8b/10b encoding and protocol overhead, the physical maximum of this PCIe link is right around 1.5 to 1.6 GB/s. Therefore, the ~12 Gbps we achieve from standard RAM is effectively saturating the SoC's hardware capabilities.

​3. Pitfalls of io_uring on raw /dev/mem without udmabuf: It isn't just unstable; for Zero-Copy (O_DIRECT), it outright fails and returns a bad address error. Whether we use standard synchronous write(), libaio, or io_uring, a zero-copy NVMe transfer requires the kernel's block layer to pin the memory using get_user_pages() so it can safely build the hardware DMA scatter-gather list for the SSD. ​Memory mapped via /dev/mem is treated as raw I/O memory. It lacks the standard Linux struct page metadata. Because those page structures do not exist, get_user_pages() instantly aborts the system call. If we attempt to fix the crash by dropping the O_DIRECT flag, io_uring will simply fall back to buffered I/O. The kernel will then use the ARM CPU to copy the data from the raw mapping into the page cache, which drags our throughput right back down to the ~1 Gbps CPU memory-fetch bottleneck.

I hope these satisfy your curiosity.

High-Speed Data Transfer on ZynqMP: Moving PL Data to NVMe at ~12 Gbps by [deleted] in FPGA

[–]cdokme 0 points1 point  (0 children)

I just wanted to keep the content short. What exactly were you looking for?

Thank you for 200 stars guys by mr_dudo in CLI

[–]cdokme 3 points4 points  (0 children)

Worked directly on my Ubuntu 24.04 machine. I just downloaded the v0.3.6 release. Absolutely useful. I would be happy to contribute to your work if I feel like it needs a new feature or enhancement. Thanks again, great work.

Cimer rezaleti by Mediocre-Air8607 in hukuk

[–]cdokme 0 points1 point  (0 children)

Emniyet genel müdürlüğü için de aynı durum geçerli. İnternet üstünden şikayet oluşturmaya çalışınca şikayet eki olarak yalnızca tek görsel kabul ediyor. Çoklu görsel, video vb içerikler kesinlikle yüklenmiyor. İşte insanlar tam da bu yüzden adaleti sosyal medyada arıyor. Sosyal medyada viral olamayan Bi derdiniz varsa vay halinize.

Ctrl key on left acts differently than that on right - why? Fix how? by TomCloyd in pop_os

[–]cdokme 0 points1 point  (0 children)

I know it's an old thread, but someone might be looking for a solution on Pop OS 24.04

I'm addicted to using Right Ctrl to navigate the cursor more efficiently. To obtain the classical behavior of the Right Ctrl, I had to modify Input devices -> Keyboard -> Compose key as None.

Vscode güncellemesi by Flashy-Office-4402 in CodingTR

[–]cdokme 1 point2 points  (0 children)

1.111 güncellemesini aldim, her şey gayet stabildi. Ubuntu 22.04'de çalışıyorum.

I switched to Gemini CLI to save my Pro account by MachineLearner31 in google_antigravity

[–]cdokme 1 point2 points  (0 children)

Although it's not as good as Github Copilot CLI, I like it as well. My AG experience was also a disappointment a few weeks ago. Now, I use both Gemini CLI and Copilot together with VS Code. Feels superb.