top | item 32077823

My business card runs Linux

433 points| pantalaimon | 3 years ago |dmitry.gr | reply

133 comments

order
[+] sergers|3 years ago|reply
Not sure who was first(as the article linked isn't dated), but remember seeing something a few years back that someone else created as a business Linux card

Tracked it down: https://hackaday.com/2019/12/24/now-even-your-business-card-...

https://www.thirtythreeforty.net/posts/2019/12/my-business-c...

This design looks better.

Both creative

Edit: somehow I duplicate posted when I edited my last comment, qchris beat me to posting this (and was on HN in 2019, I think I probably saw it on hackaday at the time)

[+] thrtythreeforty|3 years ago|reply
I'm the author of the first article. I'm very pleased to see a trend of this theme!

Of course, the software on this card is perhaps more impressive than mine. All I did was patch the kernel and make an image. This card does all that and emulate a processor.

I was greatly entertained by the description of the DMA. I am unsure why DMA always ends up being the boogeyman, but I don't disagree.

[+] abirch|3 years ago|reply
This card does look better. But who would bootup a person's "card", seems like there's a virus waiting to happen.
[+] soco|3 years ago|reply
Okay but what everybody skipped is explaining why would you need a business card running Linux. I mean, except for showing off to fellow nerds.
[+] camtarn|3 years ago|reply
"My business card emulates a long-obsolete MIPS-based DEC computer, which then runs Linux" is a more accurate, and certainly significantly more impressive, description :)
[+] dmitrygr|3 years ago|reply
Just you wait, i am working on booting ULTRIX on it, and then hopefully emulating JAZZ system and booting windows NT (video provided over virtual vnc over virtual ethernet over usb)
[+] Gordonjcp|3 years ago|reply
I wish I still had my old DECStation 3100. I know there's an oil refinery near me that runs VAXStation 3100s to control SCADA systems still, in mint condition in glass-fronted racks in the control outstation buildings, with the protective plastic film still on the badges. I *want* those when they get decommed!
[+] dmitrygr|3 years ago|reply
Fun story: since the kernel is kept in a FAT partition that Linux can (and does) mount on /boot, and since gcc works, one of these cards is currently sitting on my desk compiling its own kernel, so that i can then "cp vmlinux /boot; reboot" and have it boot a kernel built on it.
[+] yjftsjthsd-h|3 years ago|reply
Please do post an addendum to the page with the time it takes:)
[+] JetAlone|3 years ago|reply
"I can't believe that Price prefers McDermott's card to mine."

-American Psycho

[+] atemerev|3 years ago|reply
My God, it even has a custom-written MMU!
[+] Aeolun|3 years ago|reply
> Of course, C is not the language one uses when one wants to go fast

Never expected to hear this one.

[+] spicyjpeg|3 years ago|reply
Trying to write optimized Huffman decompression code for the PlayStation 1 (which by total coincidence happens to be MIPS R3000-based) taught me this. C can go very far if you know how to optimize it, but at some point you are going to run into roadblocks anyway since the compiler will not generate the exact code you want it to generate. It will generate code that _looks_ compact and fast, but can't hold a candle to properly hand-rolled assembly that takes pipelining and asynchronous behavior into account.

And of course this gets worse with CPUs that were not designed to be a target for compiled code in the first place, i.e. the vast majority of 8-bit architectures which for better or worse still dominate the low-end microcontroller market.

[+] pjmlp|3 years ago|reply
Not a child of 8 and 16 bit home computers?

Contrary to modern knowledge, C compilers were quite crappy back in those days, it was the increasing tricks used by C optmizisers, specially regarding the nowadays so beloved UB, that really improved it.

There is a reason why Michael Abrash books are all about Assembly.

[+] _tom_|3 years ago|reply
I was expecting a few fluffy paragraphs on someone's cool business card, not an education. That went deep.

Fantastic!

[+] ComputerGuru|3 years ago|reply
I was so excited for the ATSAMD21 series when I first came across it maybe five or six years ago, because on paper it had most of everything I was looking for while remaining approachable for single-man dev teams and home(lab) assembly. Like OP, I found it extremely difficult to successfully use in practice, and have since then migrated to STMicroelectronics' offerings (STM32 MCUs, available in a huge range that includes Cortex-M0, M3, M4, M7, and now M33 for ARMv8-M). They're much more intimidating on paper, but they actually work like it says on the sticker.

I have a fondness for MIPS as I first learned CPU architecture and more advanced compiler design against it, but I'm surprised OP didn't go with ARMv7 support. The bi-endianness is almost a non-issue as it's effectively a Little Endian architecture with a Big Endian toggle for backwards compatibility - I can't say I'm positive, but my gut instinct would be that it's been forever since ARMv3 shipped defaulting to Little Endian, and most (if not all) of the kernel code has been migrated to Little Endian since then to unify with the most popular targets.

[+] hbossy|3 years ago|reply
Next goal: business card with edge HDMI connector, so you don't need to compromise your computer security.
[+] niklasrde|3 years ago|reply
Or display-port over USB-C and you get it all in one.
[+] jhonatn|3 years ago|reply
I've thinked about this one for the longest one, but I do not know anything about working on this kind of stuff. The only thing I know is that HDMI doesn't provide enough energy to power something like this, which would have been the most elegant solution
[+] walrus01|3 years ago|reply
I wonder how simple I could make a business card with a microcontroller on it that only had a serial UART with copper pads to solder wires to, or some kind of pins.

People will be paranoid about inserting a USB device into their PC, but maybe a business card thing clearly labeled like "I am a 96008N1 RS232 terminal" would encourage people to wire it up and take a look.

[+] dmitrygr|3 years ago|reply
Revision 0 was precisely this. Until I realized that literally nobody will never use it then
[+] jefftk|3 years ago|reply
> I just had to remember that the board thickness needs to be 0.8mm for this to work.

Clicking through to https://github.com/Pinuct/Eagle_PCB_USB_connectors, it seems like it actually needs to be 0.6mm?

[+] dmitrygr|3 years ago|reply
0.6mm is too loose in most cables. It works but is jiggly. 0.7 would be ideal. But my board house doesn’t do that thickness. 0.8 works very well and fits snugly.
[+] yjftsjthsd-h|3 years ago|reply
It doesn't fix the software side, but I wonder if projects like this are a reasonable solution to hardware-based trusting trust worries. The real hardware is unlikely to know what it's being used for, and Linux is running in a custom VM that's tiny enough to audit.
[+] cowtools|3 years ago|reply
What, just based off of the custom-ness of the device? I think the endgame of this type of security-by-obscurity is like a randomized FPGA computer trying to fool a hypervisor in the same chip.
[+] sircastor|3 years ago|reply
I was contemplating something like this as I’ve been thinking about a modern business card. I don’t need to run Linux, but I do like some degree of interactivity and uniqueness associated with something I could hand out.
[+] testmasterflex|3 years ago|reply
Perhaps something like this: https://youtu.be/_BSfO9LAIqg

Looks cool, has NFC and flashing LEDs and fits in your wallet.

The NFC chip can be reprogrammed with an app from your phone.

[+] racl101|3 years ago|reply
What distro does Paul Allen run?
[+] fvold|3 years ago|reply
Something smooth, with a stutter-free Compiz implementation, I'm sure.
[+] nigrioid|3 years ago|reply
I've got an 8:30 rez at Dorsia.
[+] bjd2385|3 years ago|reply
Very creative and original, but I don't think I want to plug any complete machine into mine, let alone over USB haha. This is sort of like passing out flash drives, and plugging it in hoping there's no malicious content.
[+] dm319|3 years ago|reply
I'm not a computer scientist, but can someone explain to me how this can be a computer without all the other bits you normally associate with it other than the CPU. I.e. a chip for interfaces, the mmu/fpu (I don't understand how you can get the cpu to cover this role?). I can see it doesn't have/need sound/gpu. Just would have thought more would be needed!
[+] dmitrygr|3 years ago|reply
emulation. the bits are emulated
[+] krobbn|3 years ago|reply
Will it run Doom?
[+] yjftsjthsd-h|3 years ago|reply
Given no graphics output and all I/O is via serial port... not directly. You could try SLiRP to get proper TCP/IP and use that to connect to an X server somewhere else, and ... I suppose I can't see any reason why that wouldn't work, actually. No promises about it fitting (you're not exactly drowning in free storage or RAM here), it'd be hilariously slow (like, I'd bet below 1 frame per second), but... maybe?
[+] dmitrygr|3 years ago|reply
easily, graphics can be exported over VNC over usb-ethernet