top of page

Minimal Debian (u-boot, kernel, and Debian from scratch)

  • Writer: Alex
    Alex
  • Jun 1, 2020
  • 2 min read

I created a clean Debian, and u-boot from scratch to be used in our device.

The menu is Retroarch. It boots directly to it in KMS mode (without X11). I have been working on an optimized version of retroarch with brightness control, more OSD options, power off, reboot on the menu, and other small features, but I decided to use the retroarch from the official repository. Maybe someone wants to use my build for other stuff, and it is very easy to uninstall retroarch now (apt uninstall retroarch). I’ll launch my retroarch in a dpkg file in the future to keep compatibility.

The OS only uses ~500MB of disk space, but I couldn’t shrink the partition I used, so you need at least a 2 GB SD card ( You will have 1.5GB of free space).

I documented as much as possible so someone else can recreate what I did. The skeleton (u-boot, kernel, partition procedure) can be the base for a Buildroot or another distribution.


Functionalities

  • Based on Debian Bullseye for the latest MESA driver with full lima support.

  • Clean OS with only Debian packages (no handmade compiled binaries) and small tweaks for hardware compatibility with gameshell.

  • No strange symbolic links nor duplicate files.

  • Max CPU frequency of 1.4GHz.

    • I don’t consider it an overclock. It is inside CPU specs, you can always use the governor settings to limit the frequency and increase battery life. The default governor is performance.


  • Standby mode (freeze) by pressing quickly the power key.

  • Power off by long-press (~2 seconds) the power key.

  • 500 MB of space occupied in the disk.

    • The system uses the minimum necessary to have a full Debian distribution with all the functionalities such as:

      • Package management (apt-get).

      • Wifi management with wpa-supplicant.

      • Bluetooth with bluez server.

      • DHCP server for USB ethernet functionality. I’m using network 192.168.11.x because some routers use the 192.168.10.x and using it will cause network problems.

      • SSH server.

      • Retroarch as a menu, and starting at boot. Takes around ~20 seconds from power on to get RetroArch running.


  • RAM usage of only 29MB, and 51MB with RetroArch running.

  • Cedrus support enabled in the kernel.

    • This is for video encoding/decoding in hardware. The libva driver still not complete, but we should have it soon. This will be good if you want to record your game with retroarch and ffmpeg driver.


  • Charging LED is now in userspace (next release 0.2).

    • I Patched the kernel. Now you have the charging LED (Orange LED) in the userspace at (/sys/class/leds/axp20x\:chgled/). You can control it manually (to use it for what you want like a normal led), or automatic (controlled by the charger).


  • Enabled status LED (green LED) to monitor (next release 0.2):

    • Activity (CPU usage) [default mode], you can change it in the userspace.

    • Heartbeat. (I will use it later to signalize standby mode)


Known Issues

  • HDMI doesn’t work.

  • LED’s doesn’t work. FIXED (next release 0.2).


Download:


Documentation, and patches can be found on:

425 Comments


Dmitry Siversky
Dmitry Siversky
4 hours ago

Tried this platform for a few weeks. The prepaid card option works as described, no delays noticed during transactions. For anyone tracking spending manually, having a fixed-limit card does simplify things. The interface is functional without unnecessary complexity. Found https://paygoo-casino.no/ while researching payment options for Norwegian users. The anonymity aspect is a real feature, not marketing language. Transaction speeds were consistent across multiple tests. Nothing exceptional, but nothing broken either. Worth noting that prepaid cards set a natural ceiling on what you spend, which is useful for people who prefer hard limits. Results may vary depending on your bank or card issuer. As always, approach any platform with reasonable caution and verify terms before committing.

Like

Thomasthomasssydg
Thomasthomasssydg
14 hours ago

Really cool to see a full Debian system built from the ground up with u-boot and a custom kernel. I've been experimenting with a similar minimal setup for embedded projects and found https://aiphototemplate.com

Like

Really cool to see a full Debian system built from the ground up with u-boot and kernel — I've been looking for a clear walkthrough like this for my own embedded projects, and this is exactly what I needed to get started. https://3dtrellis.com

Like

Unbox Payroll
Unbox Payroll
a day ago

Payroll accuracy is essential for maintaining employee trust. Implementing Payroll Management Software automates calculations and statutory deductions, while HR and payroll software keeps employee records organized. Automation significantly reduces payroll errors and helps HR teams complete monthly processing much faster.

Like

cyrus
cyrus
a day ago

Artificial Intelligence (AI) enables machines to perform tasks such as learning, problem-solving, decision-making, and language understanding. It powers technologies including chatbots, predictive analytics, computer vision, and automation across various industries. As AI adoption continues to grow, understanding its concepts and applications has become increasingly important for professionals. An Artificial Intelligence Course in Chennai provides learners with structured knowledge of AI fundamentals, tools, and practical implementation techniques.

Edited
Like
bottom of page