[HN Gopher] My business card runs Linux
___________________________________________________________________
My business card runs Linux
Author : pantalaimon
Score : 410 points
Date : 2022-07-13 01:03 UTC (21 hours ago)
(HTM) web link (dmitry.gr)
(TXT) w3m dump (dmitry.gr)
| imwillofficial wrote:
| This is why I read hacker news.
|
| I would have never conceived of such a project.
| species8472 wrote:
| I am waiting for mainframe emulator on a business card
| http://www.hercules-390.eu/
| trasz wrote:
| Your business card requires security updates.
| com2kid wrote:
| That really is the worst possible DMA engine. Given how those
| tiny cortex M0s rely on DMA to get pretty much everything done,
| it is confusing why atmel put a basically useless DMA engine in
| place.
| dmitrygr2 wrote:
| It is OK-ish if you just want to move one thing into one unit,
| past that it quickly becomes useless and doing PIO becomes
| faster ...
|
| - am author but HN is limiting how fast i can reply :(
| pclmulqdq wrote:
| Those chips generally have on-board RAM, so accessing it 14
| times isn't much of a big deal. This DMA engine can be fed very
| quickly (in core clock cycles) if you are doing several DMA
| transfers at a time: write out all the descriptors to RAM and
| then just go one pointer at a time.
| tjpnz wrote:
| How much does each card cost?
| dmitrygr2 wrote:
| BOM is $5 or so, PCB is $1
|
| - am author but HN is limiting how fast i can reply :(
| tjpnz wrote:
| Very nice! At that amount your biggest expense would be in
| time.
|
| Have you ever considered offering this as a service to
| others? I'm guessing you could make some pretty big savings
| in parts too if you were ordering in bulk.
| dmitrygr wrote:
| I am going to have a small batch made now, as I mentioned
| in the article. Then we'll see
| mordae wrote:
| I think this would defeat the purpose of showing off your
| skills.
| _tom_ wrote:
| I think this would defeat the purpose of doing things
| just because you want to!
| ComputerGuru wrote:
| 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.
| dmitrygr wrote:
| didn't go for ARM emulation cause i've already done that :)
|
| http://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit
| hbossy wrote:
| Next goal: business card with edge HDMI connector, so you don't
| need to compromise your computer security.
| niklasrde wrote:
| Or display-port over USB-C and you get it all in one.
| taneliv wrote:
| Don't forget to put one of them HDMI firewalls there as well,
| to further protect computers on both sides of the connection:
| https://git.cuvoodoo.info/kingkevin/board/src/branch/hdmi_fi...
| camtarn wrote:
| "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 :)
| Gordonjcp wrote:
| 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 wrote:
| 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)
| camtarn wrote:
| As if the ulcers gained from Atmel's DMA implementation
| weren't enough, you just have to delve deeper ;)
|
| Excellent work, excellent writeup. Hopefully those lucky
| should who receive these cards from you understand how much
| sweat and blood went into them!
| tomcam wrote:
| What, no Xerox Alto?
|
| Love your work.
| trollian wrote:
| It's a pity they never ported VMS to it...
| phs318u wrote:
| Presumably you could port SIMH to it.
| 8n4vidtmkvmk wrote:
| can you then run WSL so we can get back to Linux again?
| dmitrygr wrote:
| no WSL available for windows NT on MIPS
| 2000UltraDeluxe wrote:
| There was a subsystem for POSIX, though, it's very
| rudimentary from what I've heard.
| ComputerGuru wrote:
| Windows NT had a fairly complete POSIX subsystem (for the
| time) [0] (but not virtualization layer) so you'd only be
| able to use Linux if it could compile as a rump kernel
| (it can't).
|
| That was followed by a replacement subsystem, Windows
| Services for Unix [1], which later used a "real" Unix
| compatible layer after their purchase of Interix.
|
| WSLv1 was therefore the fourth subsystem available
| (though it couldn't do some of what the previous ones
| did, and did some of what they couldn't), and the
| complete rewrite as WSLv2 is at least the fifth such
| attempt.
|
| [0]:
| https://en.m.wikipedia.org/wiki/Microsoft_POSIX_subsystem
|
| [1]:
| https://en.m.wikipedia.org/wiki/Windows_Services_for_UNIX
| projektfu wrote:
| Maybe colinux could be hacked for that.
| sircastor wrote:
| 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 wrote:
| 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.
| sircastor wrote:
| Yes - Precisely!
| Ivoah wrote:
| Another cool business card PCB project:
| https://mitxela.com/projects/stylocard
|
| https://youtu.be/zHVrY_xLM3c
| nigrioid wrote:
| Impressive. Very nice.
| jsiaajdsdaa wrote:
| Let's see macOS' business card.
| 28304283409234 wrote:
| Ahhhhh I remember my DamnSmallLinux Business Card CD. Those were
| the days.
|
| http://damnsmalllinux.org/cd.html
| racl101 wrote:
| What distro does Paul Allen run?
| sandGorgon wrote:
| this!
| nigrioid wrote:
| I've got an 8:30 rez at Dorsia.
| lproven wrote:
| For anyone else mystified...
|
| https://www.gq-magazine.co.uk/article/gq-food-dorsia-
| restaur...
| fvold wrote:
| Something smooth, with a stutter-free Compiz implementation,
| I'm sure.
| sakarisson wrote:
| Impressive. Very nice.
| krobbn wrote:
| Will it run Doom?
| dmitrygr wrote:
| easily, graphics can be exported over VNC over usb-ethernet
| yjftsjthsd-h wrote:
| 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?
| sergers wrote:
| 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)
| abirch wrote:
| This card does look better. But who would bootup a person's
| "card", seems like there's a virus waiting to happen.
| franga2000 wrote:
| "Booting up" [suspicious device] isn't really a security
| risk. It's it's own hardware with no access to anything else
| you own.
|
| Plugging it into your PC, which this one seems to almost
| require, is the dangerous part of course, but not any more so
| than plugging in any other USB device. The fact this runs
| Linux is essentially irrelevant. A promotional USB stick,
| charging cable, battery bank or whatever other USB gadgets
| marketing departments throw around these days could hurt you
| just as easily.
| soco wrote:
| 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.
| throwaway744678 wrote:
| I mean, you never know when you'll want to recompile a kernel
| in a hurry, or drop to a terminal for a quick ssh into your
| servers
| PhasmaFelis wrote:
| It's for showing off to fellow nerds, obviously.
| debesyla wrote:
| The same reason you need any business card: making yourself a
| bit less forgettable.
| scott_s wrote:
| If it's one you designed and implemented yourself, it's both
| a business card _and_ a portfolio.
| justsomehnguy wrote:
| You just answered it by yourself.
| Aeolun wrote:
| > Of course, C is not the language one uses when one wants to go
| fast
|
| Never expected to hear this one.
| pjmlp wrote:
| 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.
| spicyjpeg wrote:
| 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.
| ceejayoz wrote:
| "Hey, stranger! Here's my card. Plug it into your computer's USB
| slot."
|
| Cool project, but as a business card, making someone think
| they're about to install Stuxnet might not be the best first
| impression. Heh.
| charcircuit wrote:
| The same could be said about a portfolio website because there
| could be a drive by on it.
| yjftsjthsd-h wrote:
| USB stacks tend to be in kernel space and less hardened, as
| opposed to browsers which run in user space and are used to
| being under attack.
| xorvoid wrote:
| Disappointed seeing a negative comment at the top.
|
| This is a COOL project: BADASS even. You're not technically
| wrong, but the world advances much more via optimism than
| pessimism.
|
| To the creator: Rock On Dude. So so so cool.
| ceejayoz wrote:
| I agree it's cool; that's why I prefaced everything with
| "Cool project".
|
| > the world advances much more via optimism than pessimism
|
| I don't think that's a slogan infosec folks frequently adopt.
| willcipriano wrote:
| Infosec folks should live a little. You can have more than
| one computer and not everyone is a head of state.
| legalcorrection wrote:
| It's all fun and games until your wife's nudes or your
| most private messages are leaked.
| Swizec wrote:
| The world would be a much better place if we all agreed
| everyone's naked under their clothes and it's no big
| deal.
|
| Oh and most grownups have consensual sex occasionally.
| Shocker!
|
| And they drink too :O
|
| Sometimes even break minor laws!!
| legalcorrection wrote:
| Human nature is not infinitely malleable. A video of a
| woman sucking a dick becoming public will always be
| humiliating to almost everyone.
| trasz wrote:
| I can think of vastly more humiliating things, like a
| video of a woman spreading antivax or pro-choice
| propaganda. And, differently from a blowjob, which is
| just a religiously motivated prejudice, those acts are
| actually harmful and evil.
| brigandish wrote:
| > everyone's naked under their clothes and it's no big
| deal
|
| Until the day you render human biological urges
| inconsequential to the one experiencing them, all that
| phrase adds up to is the kind of line a teenage boy uses
| to get his girlfriend's clothes off.
| [deleted]
| brigandish wrote:
| Only heads of state are targets of black hat hackers?
|
| The proliferation of virus scanners, firewall products
| and spam filters either means we have a lot of heads of
| state or a lot of people rich enough to own several
| computers and not give a damn about at least one of them.
|
| Or the risk assessment is wrong, of course.
| ctxc wrote:
| Not in the context of this project:
|
| Please don't dismiss this so easily. You don't need to be
| the head of anything to take security seriously.
| Regardless of who you are or what you do, everybody has
| secrets they should protect.
|
| And I mean secrets not only in the "human" sense (what
| you like/dislike), but also technical (credentials and so
| on).
|
| Losing say, your bank account because you plugged in a
| USB can be devastating no matter who you are.
| willcipriano wrote:
| If you wanted to do something nefarious, using a medium
| that has your contact details printed on it seems unwise.
|
| We all have a line. You may not plug things into your USB
| ports, some people don't even connect to the internet.
|
| Either way, if I have a secret I'm sure as hell not going
| to write it down, let alone put evidence of it on a
| computer. Defraud my bank if you want, that's between you
| and them and honestly they can afford it.
| Johnny555 wrote:
| _If you wanted to do something nefarious, using a medium
| that has your contact details printed on it seems
| unwise._
|
| Then put someone else's contact details on it "Hey man, I
| just found this 'linux business card' with Linus
| Torvald's contact information on it -- plug it in and try
| it!"
| [deleted]
| willcipriano wrote:
| I'd notice it isn't Linus handing me his business card.
| The author is handing this to people in person. I
| wouldn't use it if he was wearing a ski mask. If you are
| already there, showing your face, commiting crimes, just
| use a gun to get whatever you want and skip the cloak and
| dagger stuff.
| beebmam wrote:
| Thank goodness that bank accounts are heavily regulated
| and something like that is really hard in this era with
| AML efforts!
|
| Cryptocurrencies on the other hand...
| InitialBP wrote:
| That's a very unrealistic view of how that works. If you
| plug a USB into your computer and your computer is
| compromised, the next time you log into bank account your
| cookies are snagged and they do something with your
| money.
| wowokay wrote:
| If it's that easy to do, why do I get spam emails and
| texts with broken English? Seriously the earlier comment
| was accurate, if you feel the need to comment on the
| security of this obviously not nefarious project change
| fields, you don't have the stomach for infosec.
| wenc wrote:
| One can be impressed by the effort and ingenuity (I am) and
| still question the premise. Business cards have a purpose --
| to provide info about a person/company. This implementation
| defeats that purpose.
|
| Plugging in any USB data device is prohibited by most infosec
| policies. Even if it wasn't, it's generally not a good idea.
| Not everyone has an isolated second computer.
|
| I would argue the business card isn't the card itself but the
| blog post detailing how it was made.
|
| Edit: author agrees.
| crawshaw wrote:
| Malicious USB devices look like this:
| https://shop.hak5.org/collections/mischief-gadgets/products/...
|
| Should people be cautious about unknown USB devices? Yes.
| Should they determine their level of caution based on being
| able to see a PCB? No.
| dmitrygr wrote:
| That is why I provide sources. Inspect them and tell me if you
| find anything scary. At most, maybe i forgot to implement some
| corner of USB-CDC spec :D
| ceejayoz wrote:
| To be very clear, since someone else got confused: This is
| awesome, and you should be proud. I'm just probably not
| plugging it into my work computer. :-p
| uranusjr wrote:
| But you have no way to prove your business card actually runs
| the released source. And if users are expected to build from
| source, the card becomes less meaningful.
|
| Similar to the original comment, I fully agree this is a very
| cool thing. But a business card, which is by definition given
| to people that likely neither know or trust you, is probably
| not a particularly good application for it.
| dmitrygr wrote:
| Consider this article my business card, and the physical
| artifact produced by it - a bonus artwork :D
| uranusjr wrote:
| Thinking it this way, the card definitely work very well,
| excellent job!
| jaclaz wrote:
| Yep, or viceversa it could be a good test, my comment on the
| other, old, thread:
|
| https://news.ycombinator.com/item?id=21871249
| [deleted]
| [deleted]
| judge2020 wrote:
| Maybe make it an unshielded USB-A connector and don't implement
| pins 2 and 3, so there's only the 5v and ground pins.
| remram wrote:
| If you have no way to reach the console, how do you know it's
| running Linux? Or doing anything at all really? The card has
| no way to display anything by itself.
| XorNot wrote:
| Such is the tragedy of USB I suspect: all we need is serial
| ports, and it's extremely hard to prove that's all we'll be
| doing.
| jhugo wrote:
| One could imagine a more sophisticated USB Condom that
| has a basic uC to implement (only) USB serial on both
| sides.
| remram wrote:
| If you need all kinds of "condoms", each allowing a
| single protocol, you lose the "universal" part. It would
| be just as annoying as specialized adapters.
|
| Also no one would have one for serial.
| notjulianjaynes wrote:
| On the other hand, if you want to covertly infect someone's
| computer, probably don't etch your name and contact information
| prominently on the PCB of the infecting device.
| ceejayoz wrote:
| That's why you etch someone else's!
| brigandish wrote:
| I'm going to assume that someone handing me their contact
| details is someone I probably don't know well enough to know
| whether those details are correct.
| bravetraveler wrote:
| Why would anyone? You want it to be plausible, but obviously
| not a loose thread. It'd be a good [and I would hope,
| obvious] idea to misdirect
| [deleted]
| [deleted]
| londons_explore wrote:
| Easier approach: Get one of those wifi SD cards that run linux,
| and put it on a bigger business-card sized board...
| qchris wrote:
| Past HN thread on a similar project that had a lot of discussion:
|
| https://news.ycombinator.com/item?id=21871026
| phreack wrote:
| I had deja vu and was about to check the date to suggest adding
| it to the title but whoa, it's a different one with the exact
| same title.
| [deleted]
| generalizations wrote:
| And it looks a lot better.
| [deleted]
| dmitrygr wrote:
| 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 wrote:
| Please do post an addendum to the page with the time it takes:)
| dmitrygr wrote:
| it is slowly working on it :)
|
| https://twitter.com/dmitrygr/status/1547099180220518400
| _tom_ wrote:
| I was expecting a few fluffy paragraphs on someone's cool
| business card, not an education. That went deep.
|
| Fantastic!
| yjftsjthsd-h wrote:
| 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 wrote:
| 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.
| yjftsjthsd-h wrote:
| More or less, yes. A backdoor has to be able to pattern match
| to find what it's backdooring; the more custom your
| implementation is the harder that should be. AIUI, it would
| be easy to make, say, a CPU that recognizes gcc doing a
| compile natively. It would be, I _think_ , extremely
| difficult to create a CPU that recognizes the instructions to
| emulate a MIPS processor running gcc, especially when the
| emulator didn't even exist when the chip was taped out.
| snovv_crash wrote:
| This is roughly how the game obfuscation layers work to
| prevent crackers. If it takes weeks for top hackers to
| crack a game, there's no way it will be done automatically
| by the chip that was taped out before the VM was generated.
| bjd2385 wrote:
| 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 wrote:
| 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 wrote:
| emulation. the bits are emulated
| jkrubin wrote:
| As someone who has a printable website (latex) I think this is
| funny and dope.
| amelius wrote:
| Are those chips still easily available to buy?
| dmitrygr wrote:
| So far, every single one I linked to has nonzero inventory
| available
| someoneFromWeb wrote:
| plot twist: it also runs rootkit
| jefftk wrote:
| _> 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 wrote:
| 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.
| msla wrote:
| This has puzzled me for a while now: Why was the first MIPS
| processor called the R2000?
| plugin-baby wrote:
| 2000 used to be the biggest, most impressive number known
| JetAlone wrote:
| "I can't believe that Price prefers McDermott's card to mine."
|
| -American Psycho
| atemerev wrote:
| My God, it even has a custom-written MMU!
| lapetitejort wrote:
| I can't imagine Paul Allen's card running Linux.
| stonecharioteer wrote:
| Ahahahaha I was looking for this comment.
| walrus01 wrote:
| 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 wrote:
| Revision 0 was precisely this. Until I realized that literally
| nobody will never use it then
| walrus01 wrote:
| People in the small UAV industry absolutely would since
| serial uarts are incredibly common interfaces on small flight
| controllers, how they talk to radios for command/control and
| to motor ESCs.
___________________________________________________________________
(page generated 2022-07-13 23:03 UTC)