21 ms·
Running Debian on a 32MB RAM Single Core ARM SBC
- deleted 6y ago[deleted]
- snvzz 6y agoNetbsd is often a better fit for the older or more resource constrained machines.
- jamesmd 6y agoI agree, or even something like openwrt. This was just to see if it could be done, it’s not the most practical OS for the hardware but it runs pretty well!
- slezyr 6y agoOpenWRT no longer supports devices with the 4MB ROM or 32MB RAM
- slacka 6y agoYeah, I encountered this. Repurposed my Netgear WNR1000 v2 with OpenWrt to act as a bridge to connect wired devices to my network. While it has served this role flawlessly for 5+ years, it's frozen in time running an old kernel. The write-up as to why they had to drop support is a good read. [1] [1] https://openwrt.org/supported_devices/432_warning https://openwrt.org/supported_devices/432_warning
- anthk 6y ago>OpenWRT no longer supports devices with the 4MB ROM or 32MB RAM So no new zipit z2 port? I doudbt it...
- pantalaimon 6y agoi doubt NetBSD has drivers for this SoC
- jamesmd 6y agoIt doesn’t, it’s Linux only for now. Unless someone builds uboot for bsd. Even then there would be a huge amount of work to do to get it running stable.
- snvzz 6y agoIt supports (and I've run it on) some allwinner families. Apparently not this device, as far as I can tell. https://wiki.netbsd.org/ports/evbarm/allwinner/ https://wiki.netbsd.org/ports/evbarm/allwinner/
- loeg 6y agoThere is a small group of folks who try to keep a FreeBSD configuration alive that fits on these tiny 16-32M machines as well: https://github.com/freebsd/freebsd-wifi-build https://github.com/freebsd/freebsd-wifi-build . E.g., this hardware has 16MB of RAM and 4MB of flash: https://github.com/freebsd/freebsd-wifi-build/blob/master/build/kern/AP91 https://github.com/freebsd/freebsd-wifi-build/blob/master/bu... 32MB RAM: https://github.com/freebsd/freebsd-wifi-build/blob/master/build/kern/PB92 https://github.com/freebsd/freebsd-wifi-build/blob/master/bu...
- puzzlingcaptcha 6y agoI remember running Debian on NSLU2 over a decade ago, that was likely similar spec (single core ARM/32MB RAM) though less integrated.
- jamesmd 6y agoI remember running it on this cheap iomega NAS drive around the same time. Very similar specs although it had a SATA controller.
- dsr_ 6y agoCorel Netwinder, single core Intel-made ARM, 2 ethernet ports (10 and 10/100), VGA, serial, and a 2.5" PATA disk; I think I splurged on the 64MB version and paid something like $800 for it. My nostalgia for it is tempered by knowing that a Raspberry Pi 4B is better in basically every single way and ridiculously cheaper.
- puzzlingcaptcha 6y agoMy benchmark for the cheap single-board has been the $9 CHIP [1]. As far as I can tell nothing since was able to match that kind of value - 512MB RAM / 4GB MMC / wifi+BT. Hell, it even had a power management IC and a battery connector. I regret I didn't grab more of them before the company went defunct. If anyone knows of a spiritual successor please share. https://www.kickstarter.com/projects/1598272670/chip-the-worlds-first-9-computer https://www.kickstarter.com/projects/1598272670/chip-the-wor...
- pantalaimon 6y agoThe only bummer is missing upstream support. Although right now the only thing missing seems to be the NAND. https://linux-sunxi.org/NextThingCo_CHIP https://linux-sunxi.org/NextThingCo_CHIP https://linux-sunxi.org/MTD_Driver#Challenges https://linux-sunxi.org/MTD_Driver#Challenges
- fheld 6y ago
- rwmj 6y agoOne dream project I have is to build a CM-5 like machine from hundreds of cheap units like this. Unfortunately this one seems to lack fast I/O. Could probably do something with the I2C connections but they would be very slow. (Before anyone jumps in with "why don't you use a desktop machine, it'll be faster", this is for fun, not a practical project.)
- magicalhippo 6y agoIt apparently supports SDIO 2.0[1] and with that apparently WiFi/Ethernet. I assume one would have to add SPI Flash and boot off that. Though yeah, I doubt it would be very fast regardless, but it's something. edit: I assume you're aware of the OTG port. [1]: https://linux-sunxi.org/F1C100s https://linux-sunxi.org/F1C100s (datasheet)
- jamesmd 6y agoThe board already has spi flash but it’s only 8 or 16mb. Enough for buildroot or maybe openwrt but Debian ain’t going to fit in there.
- FlyMoreRockets 6y agoNot Debian, but there are lots of Linux distros pared down to fit on a single floppy disk. They will run just fine within that amount of RAM. https://web.archive.org/web/20161109230651/https://bengross.com/smallunix/ https://web.archive.org/web/20161109230651/https://bengross....
- dgfitz 6y agoCheck these out: http://tinycorelinux.net/ http://tinycorelinux.net/ https://www.openembedded.org/wiki/Main_Page https://www.openembedded.org/wiki/Main_Page
- deleted 6y ago[deleted]
- tyingq 6y ago
- rvr_ 6y agoIt's nice to run a common distro on such tiny resources, but things tend to pile very fast when you add packages because of long (and sometimes unneeded) dependencies chains. That's when more specialized solutions shine (like openwrt or buildroot). Kudos to the author.
- deleted 6y ago[deleted]
- davidw 6y agoMy first Linux machine had 4MB and ran Slackware
- dekhn 6y agoI ran TAMU Linux on a 486 with 4MB RAM in 1994. It wasn't much fun- you could start X windows, and emacs, but if you tried to compile with g++ at the same time it would page. I spent $250 of my hard-earned money to buy an 8MB upgrade, and ultimately upgraded that machine to 32MB, at which point it "flew"- no paging during development.
- flatiron 6y agoI used a 486 66dx2 until 2001 when I went to college. FreeBSD was by far and away the winner on that thing. Had 20 megs of RAM and a 2.2 gig hard drive. Ran X and WordPerfect and Netscape in Linux compatibility better than natively in Slackware. Got me through high school with no problems (had to buy an external modem as the one it came with was a winmodem) No clue the current state of things though.
- anthk 6y agoYou could browse the web perfectly back in the day, and Nethack ran like a charm, too :).
- dleslie 6y agoThe web loaded and rendered faster because Javascript was used sparingly, if it was used at all. XMLHTTPRequest didn't become a thing until 1999 and didn't catch fire until later, and so async requests just didn't happen. For a short window of time we were using 1px flash objects to act as an async intermediary... Yeah, I miss the static web.
- anthk 6y agoYeah, I know. I still use Dillo because almost everything is usable. at least fora, news sites and such. Except this site, which I find atrocious having to use JS in order to search. I use DDG/Google on just the domain (site:news.ycombinator.com) and call it done. But well, no mpg123's unless being played at a reduced band (11MHZ, mono). If converted to mp2, the files would be bigger, but playable at highest quality.
- pjmlp 6y agoSlackware 2.0, Pentium 166 MHz with 8 MB RAM and 256 MB HDD, running fvwm. Progress.
- bitwize 6y agoMy first Debian system had 32 MiB of RAM or so.
- locusofself 6y agoMy first computer was a Pentium 120mhz with 16 MB of ram :)
- incanus77 6y agoI currently have BasicLinux (http://distro.ibiblio.org/baslinux/ http://distro.ibiblio.org/baslinux/) running on a 386SX with 8MB RAM. Last remaining thing I’m still puzzling over is getting its 10Mbit Ethernet card working.
- jbuzbee 6y agoYou knew this was coming ;-) Back in 1993 I had SLS Linux running on a 386SX with 4MB of RAM. And that included X11 and gcc so I could compile my own kernels!
- guenthert 6y ago(almost) same here. Had the DX though and quickly upgraded to 8MiB (by adding 36 RAM chips in DIP). Still when compiling the kernel (took about 20m, iirc), I left X11. Swapping wasn't that much fun using a single 65MB RLL(!) drive.
- rwmj 6y agoWhat's the problem with the ethernet card? I'm guessing Linux has deprecated/removed the driver for it? Also I'm quite surprised that Linux still works on a 386SX, because support for 386 was removed some time ago (https://lwn.net/Articles/527396/ https://lwn.net/Articles/527396/).
- incanus77 6y agoRight, this was the first problem: “i386” distros actually pretty much all went 486+ some years back. So that severely limits the ecosystem. While you can always go back in the archive and get a bare kernel, I wanted a full system with init, package management, etc. The card is (unsurprisingly) an ISA slot, an Intel EtherExpress 16. I forget exactly where I was with it when last I poked at this earlier this year, but the promising thing is I have it worked in MS-DOS 6.22 without issue. There are some utilities from Intel that I found that write EEPROM on the card to setup its IRQ and all of that, which is how I got it working in DOS. Perhaps I’ll take another swing at it and document more precisely what the issues are and what I’ve tried so far. I wrote up the acquisition, repair, and resuscitation of the machine on a series of posts on my blog under “Project 386” beginning with https://justinmiller.io/posts/2020/04/26/project-386-part-1/ https://justinmiller.io/posts/2020/04/26/project-386-part-1/ so I have intentions of adding some more posts.
- solarkraft 6y ago7 MB of RAM at idle, wow. But what can it run on top of it? Dotnet? Python? Go? AFAIK even the latter has a non- negligible runtime overhead. In general I wonder if it's actually practically usable for common tasks one could imagine. One advantage over micro-controllers is clear, though: Dynamic loading/execution of binaries, which no microcontroller OS seems to care about (why?).
- deleted 6y ago[deleted]
- retrac 6y agoFor context, I currently have a 16 MHz 68030 machine with 24 MB running a recent NetBSD install, just as a lark. For simple command line things like poking around the file system over telnet, it feels pretty much like a contemporary system. It can even run the Python REPL fine, though it takes a good number of seconds to start up. Apache is no problem and it can host a website, though I imagine it would crumple with more than a dozen requests a minute or so. Actually, the only real annoyance for that kind of work is that the machine's too slow to authenticate SSL keys in a reasonable time, so logging in takes forever and you can't host an HTTPS site. Given this ARM machine is probably ~100x faster, if you're willing to add some swap for flexibility, I imagine it'd be usable for a wide variety of low-memory tasks.
- anthk 6y ago> Actually, the only real annoyance for that kind of work is that the machine's too slow to authenticate SSL keys in a reasonable time, so logging in takes forever and you can't host an HTTPS site. Isn't Dillo (compiled from Mercurial) with mbedtls fast enough? Also, Gopher servers like sdf.org, magical.fish or i-logout.cz would shine on that machine. Fire up lynx and go. Or better, compile sacc with tcc, it will run megafast.
- anthk 6y agoInstead of python, try compiling both JimTCL and the SDL "widgets". You will like it.
- 6y ago
- dehrmann 6y agoI year ago, I got my ~first computer, a Pentium 2, to run the latest x86 Debian release with minimal effort. Half of what made it possible was that the P2 was the second chip to have 686 instructions, and that's the oldest supported target for Debian. It didn't hurt that the motherboard's 440BX chipset is popular with VMs, and the board had a USB port, so in many ways, it looks modern.
- anthk 6y ago>It didn't hurt that the motherboard's 440BX chipset is popular with VMs Bochs has that among i440FX :) Still, I can't emulate some spin-o-rama (Google Street View like) games fast enough under w95 on my AMD Turion...
- mz23 6y agoDebian on less RAM would be difficult, I guess ?
- Teknoman117 6y agoJust a few days ago I was trying to cut down the configuration for the current Linux kernel so I could boot it on a circa 2001 PC/104 SBC with 32 MiB of SDRAM. The processor is an AMD Elan SC520, which is a 133 MHz AM5x86 core and about on par with a 75 MHz Pentium. Sadly the memory is not expandable. Getting a buildroot based system to work was fairly easy starting with "make tinyconfig" for the kernel. IDE was a real hangup because there really isn't an IDE controller, it's a legacy IDE interface with no DMA. Disk IO is abysmally slow. Found that libata has experimental support for legacy IDE, rather than use the old IDE drivers. So I've managed to not select any deprecated kernel options. Booting a current Gentoo stage3 with networking was a major challenge though. Still haven't managed to get IPv6 and all of the standard netfilter modules before the kernel hangs mysteriously between finishing self extract and producing any logs. I also haven't managed to get ZONE_DMA support working for legacy DMA on ISA (for the PC/104 bus) without it using too much of the remaining DMA'able memory to load the Intel 82559 ethernet driver (e100.ko). It's rather hilarious seeing a 5.10 Linux kernel complaining that it can't find a 256 KiB contiguous region of physical ram. Buildroot boots in a matter of seconds on it, Gentoo takes a few minutes.
- anthk 6y agoTry Minix3 or NetBSD.
- meekrohprocess 6y agoThis might be a good time to mention Jay Carlson's excellent "So you want to build an embedded Linux system?" article: https://jaycarlson.net/embedded-linux/ https://jaycarlson.net/embedded-linux/ It's been discussed here before, but it's an impressive reminder of what an individual can accomplish with modern small-batch PCB manufacturing. It also goes a long way to make large-pitch BGA devices and high-speed signal design seem less intimidating to newcomers. Definitely worth a read if you're interested in these kinds of devices. Also, the Lichee Nano is one of the only freely-available English-language reference designs for the Allwinner FIC100s processor, which is nice.
- thamer 6y agoThe first time I installed a minimal Gentoo (~2005 or so) I could boot to a shell with 17 MB of RAM used. This was after tuning the kernel to make it as small as possible and removing everything I didn't need, disabling all superfluous init services, etc. It's quite possible that it did use more than 17 MB temporarily before going back down, but I would expect that it's probably doable in 32 MB + swap. Configuring a minimal Linux system with Gentoo or Linux From Scratch is a great way to learn how things work (especially learning from mistakes like disabling ATA/IDE in the kernel and having to figure out why it no longer boots :p).
- Andys 6y agoThis is cool, but hopefully newbies are aware that for a few dollars more ($9.99) you can get complete ARM boards from Friendyarm.com, the ZeroPI has 512MB ram, and ethernet, USB, etc.
- aussiegreenie 6y agoWhy is that hard? Smaller unix-type systems such as QNX fit on a floppy disk.
- Evidlo 6y agoSeems like the author used Debian over buildroot because of package manager availability. You can still get a package manager in buildroot.
- pabs3 6y agoHmm, this doesn't appear to mention which version of the Linux kernel it is running.
- jamesmd 6y agoIt’s in the article. 4.15 compiled specifically for the onboard SOC. It’s not a Debian kernel.
- Jenda_ 6y agoFYI you don't need to run the second stage of debootstrap/dpkg on the device. You can install qemu-user-static, "cp /usr/bin/qemu-arm-static path/to/sd/card/mount/usr/bin/" and then you can chroot there from your x86 machine. It works by registering a handler in /proc/sys/fs/binfmt_misc and then it runs the binaries with qemu.
- andrewshadura 6y agoThere's also a tool called debos which can automate that.
- jamesmd 6y agoI tried that, it refused to execute armel binaries however arm64 worked fine. I’m not sure if it’s a bug or something I was doing wrong but I gave up and just finished the install on the device.