[HN Gopher] This Blog is now hosted on a GPS/LTE modem
___________________________________________________________________
This Blog is now hosted on a GPS/LTE modem
Author : dtx1
Score : 631 points
Date : 2021-04-02 07:53 UTC (15 hours ago)
(HTM) web link (nns.ee)
(TXT) w3m dump (nns.ee)
| asadhaider wrote:
| According to this[0] which is a neat read anyway, it "has 256 MiB
| DRAM, 256 MiB NAND, and a single Cortex-A7 CPU clocked up to
| 1.3GHz."
|
| You can run DNS, a VPN, or a small web server even on a VPS with
| 32MB of RAM so those are pretty cool specs.
|
| [0] https://xnux.eu/devices/feature/modem-pp.html
| fouc wrote:
| Wow, that's probably about the same ram & cpu as my desktop 16
| years ago.
| anthk wrote:
| My Athlon in 2003 was partnered with 256MB of RAM and a
| Geforce 2 MX 200/400.
| oblio wrote:
| I started with a Pentium I, 166Mhz, 16MB, 1GB HDD, and I'm
| not even that old. I imagine we have folks here that started
| on a PDP :-)
|
| My P1 would stutter while playing MP3s :-))
| HenryBemis wrote:
| Amstrad PC 1512 here
| (https://en.wikipedia.org/wiki/PC1512).
|
| I remember they were saving up for many months to get this
| for me.
|
| When (many years later) I had a P3 (or a P4?), I would
| switch on my Amstrad and feel warmth in my heart, as if I
| was hugging an old friend.
| StavrosK wrote:
| 166 MHz? You splurged for a good one! Mine was 100 MHz, the
| rest was the same though. 16 MB RAM, those weren't the
| days...
| oblio wrote:
| Don't be so sure. I got that PC in 98 (99?).
|
| By that time I think Pentium III was close to launch or
| even already released.
| [deleted]
| iujjkfjdkkdkf wrote:
| We had an Apple IIe, but our first x86 was a 386 with 2MB
| ram and a 25MHz processor. I think the HDD was 40 MB.
| benja123 wrote:
| When I was 6 my parents decided to buy a PC for our home. I
| think it must have been a 286, but I really don't remember.
| I do remember moving to a 386 and then a 486.
|
| Lots of fond memories of norton commander, wordperfect and
| the old versions of battle chess.
|
| Good times! I wish I had understood back then how much
| computers were going to change the world. Luckily my
| parents did.
| olyjohn wrote:
| Same story here. I remember being 5 or 6 years old. We
| had a DOS PC with an orange CRT display. I think it was
| also a 286. I still remember the commands to run Word
| Perfect and this game called Fun House. My first command
| line experience. Mostly my mom used the computer for word
| processing and printed off letters on our dot matrix
| printer.
| benja123 wrote:
| Peeling off the edges of the pages printed on a dot
| matrix printer was either super relaxing or super
| stressful depending on what you had just printed.
| Cthulhu_ wrote:
| I really appreciate that CPU manufacturers started adding
| dedicated hardware for things like decoding MP3's. Not sure
| about the machine learning hardware they put in it
| nowadays, but then, that's mainly Apple who do a lot of
| that for e.g. your pictures (so they don't have to send it
| to their servers).
| anthk wrote:
| A Pentium II was more than enough to decode MP3's in
| parallel.
| olyjohn wrote:
| What's interesting is, I used to have this old 486
| laptop. With Linux on it, I could run XMMS playing my
| MP3s and do other things and you could barely tell it was
| there. In Windows, playing an MP3 file with WinAmp took
| up so much CPU, you were stuck running only WinAmp.
| retrac wrote:
| Windows 9x had preemptive multitasking bolted on as an
| afterthought. Same engineering flaw that made it so
| crash-prone, with much of the kernel exposed read/write
| to the application for backwards compatibility with
| Windows 3.1. And Windows 3.1 did not have preemptive
| multitasking at all. Everything was cooperative running
| in one address space. If an application used anything
| from that era, the kernel could end up wasting way too
| many cycles handling the request. This made multitasking
| under high load dicey at best.
|
| Linux is a fully preemptive OS with a kernel designed to
| return from system calls quickly, without blocking all
| the processes in the system. No surprise it fared better.
| ComputerGuru wrote:
| I'm not aware of any desktop CPUs (now or before) that
| had hardware MP3 decoding. Do you mind enlightening me?
| rrss wrote:
| In my interpretation, "dedicated hardware for things like
| MP3s" doesn't necessarily mean "hardware MP3 decoding."
|
| Intel MMX (multimedia extensions) introduced dedicated
| hardware to accelerate things like MP3 decoding.
| codazoda wrote:
| 8088 with EGA monitor was my first PC. Before that a Tandy
| CoCo (model 1) 64K. I still have a CoCo.
| Black101 wrote:
| I was able to play mp3s on my 486 DX4-100Mhz if I remember
| correctly.
| jstsch wrote:
| Yes. My 486 DX2-66MHz could do 112kbit MP3s, but was
| struggling with 128kbit MP3s.
| jonpurdy wrote:
| These anecdotes mesh with what I remember. A friend in
| high school around 1999 had a Pentium 133; it could play
| MP3s without stuttering but it couldn't do anything else
| while it did that.
| earth_walker wrote:
| When I was a kid my school got a Sinclair ZX81 with 1k of
| memory. One 1k computer for the whole school! Once in a
| blue moon we would get class time on the computer - Our
| class got to program a 'turtle' to draw shapes on a big
| piece of paper.
|
| I was so excited about it, and my mom had done some punch-
| card programming in university and so knew that this was
| going to be the future.
|
| The Sinclair Spectrum 48k had just come out, and so we
| splurged and bought one.
|
| We lived in Asia at the time, and games on cassette were
| difficult to get, so at 10 years old I spent hours typing
| in BASIC games from magazines, debugging and POKEing and
| PEEKing to see how things worked.
|
| Great times.
| Iwan-Zotow wrote:
| > started on a PDP
|
| make it CDC 6500
| taneq wrote:
| When I was a kid we had a BBC Micro. In university we had
| CD burners but if you bumped the computer or did anything
| else while it was burning the CD, the disc was ruined. :P
| mod wrote:
| I splurged in high school for a 4x cdrw drive by Sony.
|
| I had to kill all extra processes or else the machine
| (maybe the fault of the HDD) couldn't keep the buffer
| filled and the write operation would fail.
|
| I made a lot of coasters, but that was my favorite time
| with computers (1999 or so).
| olyjohn wrote:
| They were expensive coasters back then too! When I was in
| high school, I spent like $30 (was a ton of money to me
| back then) on blank CDs (like a 10 pack) only to have
| them all stolen out of my locker. No idea what the thief
| would have done with them, as CD burners were not common
| at all.
| t0mas88 wrote:
| Oh yes and then right around the time 8x became possible
| (but cd-r only, cd-rw was still 4x initially I think)
| someone invented a way to continue after a buffer
| underrun instead of throwing away the disc. I think that
| really sold the faster burners because otherwise they
| were kind of useless for the increased risk of having a
| buffer underrun skmewhe in the process.
| bayindirh wrote:
| I started with a C64, tried copying games from magazines to
| try. Then I got a 486DX. I don't remember the rest. :D
| npsomaratna wrote:
| Commodore 64 -> 286 -> 386 -> 486 -> Pentium ?
|
| (Can't remember the rest afterwards...)
| [deleted]
| lormayna wrote:
| I bought my first PC in the late 80s. It was an 8086 by
| Amstrad, with a 4Mhz processor, 512kb of RAM and no HDD. It
| was running MS DOS 3.30 Plus and I made my first programs in
| GW-Basic.
| vidarh wrote:
| My first job was an ISP I co-founded. Our first dial-up system
| was a classic 120MHz Pentium w/128MB RAM and 4GB harddrive,
| that served as the terminal server for 16 phone lines and let
| users start SLIP/PPP or a shell connection. It was not unusual
| to have 16 users logged into it at once running applications on
| it.
|
| It also was our main e-mail server and web server, hosting both
| our own website and several customer websites. We had a second
| one of the same specs for a few other things and backups, but
| that was our main workhorse.
|
| [EDIT: They were running Linux 1.0 and 1.2, first with NCSA
| httpd, then Apache; when we first got them they ran Slackware,
| installed from floppies; I think we ended up installing Redhat
| at some point before we retired them; the modems were hanging
| off Cyclades serial cards; and they were literally hanging -
| for our first 16 lines we had US Robotics Sportster modems
| hanging on the wall. (I'm writing this in the hope someone will
| tell me to get off their lawn and tell me how they did more
| with less, btw.) ]
| MayeulC wrote:
| Slightly misleading title. This blog post is not hosted over LTE.
| Instead, the web server just happens to run inside the Pinephone
| modem.
|
| Internet --> USB --> Pinephone CPU --> (ADB forwarding) -->
| Pinephone modem with webserver.
|
| That's cool, but I am slightly disappointed. I was hoping to find
| out that some ISPs allowed to forward ports over LTE.
|
| Here, I don't really see the advantage over doing it on the main
| CPU, since it will have to forward packets anyway. And you can
| use the same reasoning with whatever the pinephone is connected
| to.
| DaniloDias wrote:
| You can get carrier grade connections that would allow this
| kind of routing- it is not part of a standard consumer package.
| This type of capability is managed via the "Access Point Name"
| feature in phones.
| xx_ns wrote:
| Sorry if it's a bit misleading! Wasn't my intention.
|
| However, there's nothing stopping me from getting a data SIM
| from my provider (who does allow forwarding ports over LTE). I
| just currently don't have any spare SIM cards at hand. But that
| is the plan.
| ashkankiani wrote:
| I had been looking to do this _exact_ thing for so long. It didn
| 't occur to me that it was possible to unlock the AT commands for
| the pinephone. I just wanted to turn it into a modem. It's a
| pretty solid price for that piece of tech alone, since dev kit
| LTE modem boards are >$100 in all the places I could find.
|
| Thank you, sincerely!
| paultopia wrote:
| Wait wait wait, does this mean data is going over a cellular
| network? On a data plan from some phone company? And their blog
| post just showed up here, on the front page of HN, which is
| notorious for crushing small servers with traffic?
|
| LOLSOB, I really hope this poor person isn't in the US. Or the
| cellphone overage charges...
| darknavi wrote:
| It says the device is hardwired and the data is forwarded via
| adb, so I doubt they are on an LTE connection.
| paultopia wrote:
| Whew! Thank goodness!
| [deleted]
| pengaru wrote:
| > LOLSOB, I really hope this poor person isn't in the US. Or
| the cellphone overage charges...
|
| I am in the US, and have unlimited 4G LTE data w/AT&T prepaid
| for just $65/mo. There wouldn't be any risk of overage charges
| in this plan, at worst it would be throttled if the network is
| congested.
|
| You could totally host a small site over such a link, it would
| just require something like a dirt cheap VPS for the public IP
| address. Behind the 4G connection your server would maintain
| tunnels with the VPS for serving the actual content via a
| reverse proxy or some other circuit. Wouldn't hurt to do some
| caching at the VPS as well, for static content.
| eeZah7Ux wrote:
| > just $65/mo
|
| "just"? That's very expensive.
| pengaru wrote:
| That's very expensive for what's effectively cordless
| broadband internet including unlimited texting and calls?
|
| Not compared to contemporary broadband prices in the US...
|
| Also the price drops if you setup autopay.
|
| What are you comparing to? This is Starlink territory.
| ajnin wrote:
| He's not actually serving data over the cellular network, but
| even if he did, how much traffic does being on the front page
| of HN generate ? His blog is very light, this page is only
| 22.2kB. Assuming 100k pageviews from HN, that would be 2.2GB.
| Well within most mobile plans.
| INTPenis wrote:
| Could this be a specific choice of the Pinephone project? Or do
| all modems from this manufacturer have an Android Debug Bridge?
| foobar33333 wrote:
| They likely all have some kind of debug tools but I'm assuming
| its all super locked down to consumers.
| [deleted]
| timvisee wrote:
| Surprised it's still up with all the traffic it must be getting.
| Fantastic, great work!
| DaniloDias wrote:
| That carrier grade nat'd ip address would make this an unreliable
| resource.
| Robotbeat wrote:
| Is there something like the PinePhone that is manufactured in a
| place with substantial political freedom (however you wish to
| define that)?
| fsflover wrote:
| Depending on your definition of political freedom, USA might
| fit: https://puri.sm/products/librem-5-usa. It's expensive,
| since practically no phones are produced in USA. Alternatively,
| https://puri.sm/products/librem-5 has its components produced
| in China and assembled in USA.
| Robotbeat wrote:
| Holy crap, $2000! Literally 10x the price of PinePhone.
| Still, that's exactly what I was looking for; thank you!
| johnbrodie wrote:
| You can buy an American-made Purism phone, which may or may not
| fit your definition. It's not cheap, though.
| sylwester wrote:
| Does the modem have access to GPS? If so, it would be interesting
| to implement theft protection or things alike. Do binaries built
| with "GOARCH=ARM ARM=7 GOOS=linux go build" work?
| xx_ns wrote:
| Author here! Seems to work fine: https://arse.ee/4uQ6R5Ck.png
|
| edit: And yes, the modem has access to the GPS data, which is
| passed from the modem to the main OS.
| SXX wrote:
| I didn't worked with exactly this modem model, but yes Go
| binaries work just fine on most of them since it's usually
| heavily cut Android inside which using BusyBox.
| megous wrote:
| > While developing software on the PinePhone, I came across this
| peculiar message in dmesg:
|
| Beautiful seeing this on top of HN. :)
|
| That message is from me. Nice to see someone using the access for
| something cool.
|
| One of the reasons I decided to add it there was to give some
| visibility to this "feature" of EG-25G FW to people interested
| enough to look at dmesg.
| xx_ns wrote:
| Brilliant! Thanks for drawing attention to this "feature".
|
| The world is a small place indeed.
| tmzt wrote:
| Can you think of a more efficient protocol between the modem
| and main cpu then the AT-based ril with constant status checks?
| Is there anyway to make the modem more efficient, since its cpu
| is just consuming power and not adding much to the
| functionality of the phone? Can it be a smarter gateway that
| only triggers a main cpu wakeup when there's something
| important to notify the user of, like an incoming call or sms?
| andreidd wrote:
| As somebody who is looking to start a comercial product that
| needs a cheap SOM with some IOT connectivity I'm wondering
| whether there is a module similar to the one in the OP, but
| actually advertised and sold as a computer module rather than
| just a lte modem. Does anyone know? Something like Onion Omega2s
| without the SPI bugs.
| em3rgent0rdr wrote:
| impressive latency.
| seba_dos1 wrote:
| It uses USB networking, not the cellular network, so that's not
| unexpected.
| treesknees wrote:
| Yeah the blog is slightly misleading. The binary web server
| is running on the ARM core of the modem only. It's not as
| though mobile providers are starting to allow web hosting
| across their LTE network.
| teddyh wrote:
| Does this mean that every Pinephone is also constantly running
| this secret proprietary non-updateable machine?
| xx_ns wrote:
| Yep! You can read about it here:
| https://www.pine64.org/2020/01/24/setting-the-record-straigh...
| although bear in mind that the article is obviously a bit
| biased.
| megous wrote:
| It's not secret, it's updateable, and doesn't need to be
| running constantly, and doesn't need to be proprietary.
|
| It's possible to just not load the modem firmware and have
| Pinephone as a device with two ARM SoCs both running mainline
| Linux and open bootloader. ;)
|
| You'll just not be able to use EG25-G as a modem with modem FW
| not loaded. There are also options in between.
| ajnin wrote:
| It's a stretch to call it unneeded, being able to communicate
| over the cellular network is pretty much the definition of
| what a mobile phone is, if you remove that it stops being a
| phone. In that sense running the phone with any system is
| optional too since you can always use it to weigh down some
| papers on your desk ...
| megous wrote:
| So? Apple made such a thing into a product years ago. It
| was called iPod Touch.
|
| Pinephone may have a phone in name, but it's basically a
| neat little SBC with an integrated touchscreen and battery,
| and bunch of other peripherals, and can be used for
| anything you like.
| slim wrote:
| it's surprising, but it's not secret. every mobile phone runs a
| similar machine. and then another even lower level machine
| which is your sim card. it's as microcontroller running
| javacard which can be programmed remotely by your telco.
| SXX wrote:
| Fun part about LTE modems is that they usually pack not one, but
| two OS in them: Android as well as VxWorks that actually handle
| work with cellular.
|
| So your connection usually going like that: Carrier -> HW ->
| VxWorks -> Android-based OS -> your device.
| roflchoppa wrote:
| Not gonna lie that's pretty cool.
| jdc wrote:
| Burning question: what ISP is it connected via?
| swiley wrote:
| I think AT&T is giving me an IPv6 address now but they appear
| to be doing some kind of NAT because connections appear to come
| from a different v6 address. Convincing one of these ISPs to
| give you a public address is probably an uphill battle since
| they'd get in trouble dumping people's phones on the internet.
| alberth wrote:
| Appears to be Telia Eesti
| hannofcart wrote:
| It's amazing that posting this on HN has not melted it down. Are
| you using an edge CDN like Cloudflare to provide caching?
| xyst wrote:
| I mean it did take a few seconds to load, so there's at least
| some effect.
| tyingq wrote:
| It's returning headers with Etags (I don't think darkhttp does
| those) and a "Server: Nginx" header. So maybe he put a proxy
| in?
| austinjp wrote:
| Perhaps I'm not being very generous, but I'm often kinda
| surprised when sites _do_ meltdown from the HN effect --
| although I recognise it depends on a lot of factors.
| tyingq wrote:
| It usually seems to be stock CMS platforms that melt down.
| Where generating a page means a bunch of database queries.
| indymike wrote:
| Seems like a lot of times the meltdown is just conservative
| rate limits on linux shared hosting. It's too bad because a
| lot of times it happens to sites that are getting their first
| substantial exposure.
| dtx1 wrote:
| Sry, not my blog just thought it's interesting
| ev1 wrote:
| It's a static file being served, 32MB RAM nginx instance can
| handle well past HN traffic for something like that
| dtx1 wrote:
| It uses darkhttpd https://unix4lyfe.org/darkhttpd/
| busymom0 wrote:
| The blog post does state they are using darkhttpd but the
| network request for the blog post says "Server: nginx".
| Does darkhttpd use nginx inside or something?
| xx_ns wrote:
| Author here! I'm serving a load of different services on
| that domain, which are all behind nginx.
| ev1 wrote:
| My assumption is reverse proxy via USB localhost
| ce4 wrote:
| According to a Maxmind Geoip lookup, both ip4/ip6 belong to
| Telia Eesti ISP, so probably no CDN caching.
| ekianjo wrote:
| if it's pure static you can easily server thousands and
| thousands of request per second no problem.
| vbezhenar wrote:
| This website returns 40.5 kB from nns.ee host (with CSS and
| SVG). 1000 users per second requires 40.5 MB/s or 324 Mb/s
| connection. Author mentioned that his device provides 10 Mb/s
| throughput. So realistic number is serving 30 users per
| second.
|
| For some reason his main.css is not compressed, so that would
| be the first thing to optimize.
| busymom0 wrote:
| Looking at the network requests, the fonts are being served
| from Google api so not a problem for this.
|
| The CSS on the other hand has TONS of comments which can be
| gotten rid of and minimized.
| vbezhenar wrote:
| You're right, removed part about fonts.
| lloeki wrote:
| Seems like it's currently melted right now.
|
| Edit: ah, not. Looks like it's reachable from my landline
| (which is IPv4 only) but not from my 4G connection (which has
| IPv6).
| Nowado wrote:
| What truly melts sites posted on HN is inevitabile reddit post
| that follows.
| rdkbo wrote:
| Https://www.rdkbo id
| amahajan wrote:
| I have been using these modems at work, specifically the
| EC25/EC20. They come with linux with some limitations. These
| modems are typically meant for IOT devices and you can get them
| for ~ 16/18 USD (or even lower). 4G/3G/2G, with around 128/256M
| flash and 128M RAM and 1.3GHz Arm Cortex A7. They are pretty
| powerful for their size, cost, current consumption and usability.
| Almost all such parts can be hacked across manufacturers see
|
| https://i.blackhat.com/USA-19/Wednesday/us-19-Shupeng-All-Th...
|
| You can get the Linux distribution and a compilation environment
| for these from the manufacturer (source code). You may need to
| have a business account though.
|
| Linux binaries can be used on these, we have tried code compiled
| in Rust, Go etc cross compiled for arm target and used on these
| targets, though the primary development is still in c / c++
|
| They come with a bit dated OPENSSL, though you can compile to a
| newer version and use that. SQLITE comes built in
|
| There is support for peripheral access I2C, SPI, SDIO, I2S etc.
| You could possibly create a simple gaming console with LTE
| connectivity, since the SPI can drive a TFT and there are IOs for
| keypad and I2C for touch and accelerometer, gyro etc
|
| Actual modem FW is not available, since that would be Qualcomm
| properietary!
| andreidd wrote:
| I'm a bit confused: does the manufacturer provide a toolchain
| to compile and run binary code on something that is not
| advertised as a SOM/SOC, but only as an lte modem?
| amahajan wrote:
| Yes that is true in fact even the most basic modems in their
| line up for 2G can be used as an Application processor rather
| than as a plain modem.
|
| In this case however it is more like a complete build
| environment that includes the Linux distribution, GCC and
| other relevant Linux libraries etc for the distribution. The
| real FW for cellular modem is likely never exposed since that
| may run on a DSP core or an ASIC sub system
| megous wrote:
| Yes. :) https://github.com/quectel-wireless-
| solutions/QuecOpen
| rdkbo wrote:
| Https://www.rdkbo.id
| marcodiego wrote:
| These modems are way powerful. This reinforces the need of open
| source firmware for them. They run their own OS and can stay on
| independent of the rest of the hardware consuming very little
| power. Imagine putting your computer to sleep while downloads
| continue and can survive geographical network migration.
|
| A fully open source firmware for GPS/LTE modem is badly needed.
| rsync wrote:
| "They run their own OS and can stay on independent of the rest
| of the hardware consuming very little power."
|
| It's worse - there's a _second, independent computer_ inside
| your phone that you have no control over: the SIM card.
|
| The SIM is a standalone computer with its own processor and
| memory which _your carrier_ can communicate with and upload
| programs to run on it without your knowledge ( "OTA updates",
| etc.)
|
| https://osmocom.org/projects/cellular-infrastructure/wiki/SI...
|
| ftp://www.3gpp.org/tsg_sa/WG3_Security/TSGS3_30_Povoa/Docs/PDF/
| S3-030534.pdf
| de6u99er wrote:
| Yeah, that's nuts and frightening.
| dcposch wrote:
| Do esims fix this problem? Increasingly the norm, no physical
| sim card at all.
| bmcahren wrote:
| No
|
| https://www.hologram.io/blog/what-is-an-esim-and-how-is-
| it-u....
|
| > The eSIM (embedded SIM) is a small chip soldered directly
| to a board inside a device
| a1369209993 wrote:
| TBF, eSIM as you describe it is _not_ "no physical sim
| card at all", so they might be confusing it with
| something else. (I assumed, based on their phrasing, that
| they were talking about a virtuallized SIM card running
| in a (hopefully suitably locked-down) VM.)
| adamnew123456 wrote:
| Seeing the ShadySIM project mentioned on that page reminded
| me of this DEFCON talk, which talks about some of the
| capabilities of the SIM OS (some of them run Java!) and what
| power they grant you over phones if you have control over the
| underlying cell network (legitimately or otherwise).
|
| https://www.youtube.com/watch?v=31D94QOo2gY
| puzzlingcaptcha wrote:
| I think they run Java Card, which is not quite the same
| thing https://en.wikipedia.org/wiki/Java_Card
| monocasa wrote:
| And you see some of what you're talking about in closed systems
| too, where the system integrator can control both sides.
|
| The Wii, and PlayStations since the PS3 have had system control
| processors that can perform downloads, updates, and general
| system maintenance on a low power processors even while the
| majority of the system is off. In the Wii that processor was
| also responsible for the majority of the network stack even
| when accessed from the main processor. On the PS4 that
| processor even ran a relatively complete FreeBSD.
|
| Democratizing these techniques would be killer.
| anoncow wrote:
| How did the site implement https?
| captainmuon wrote:
| The Quectel modems are fun parts. We are using one in a project
| as a kind of theft protection. I couldn't belive at first "this
| is a whole computer with Linux on it".
|
| I really wonder why modem manufacturers feel the need to
| encapsulate everything so much. Is it for regulatory reasons, to
| protect their secret sauce, or for our convenience? On the one
| hand it makes simple things really easy with some AT commands, on
| the other hand it makes debugging quite frustrating because it is
| a black box.
| scoutt wrote:
| > I really wonder why modem manufacturers feel the need to
| encapsulate everything so much.
|
| The alternative would be using an RTOS of some sort,
| implementing a full network stack (with > 100Mb throughput) and
| a USB device, as the bare minimum. Then you also have I2S
| audio, GNSS, etc.
|
| It probably makes more sense using an entire OS at some point.
|
| BTW, this is typical Qualcomm, that makes the chipsets for
| these modems.
| Nextgrid wrote:
| Why not offload all that to the driver running on the main
| application processor? The risk of having a second, black-box
| running Linux is that it'll get outdated and/or compromised
| and used as a persistence mechanism for malware.
| scoutt wrote:
| Because you can also use the modem coupled with a low-end
| MCU, communicating through a serial port. This
| configuration is more common than one might think (I was
| personally involved in many of projects with that
| configuration).
| seba_dos1 wrote:
| It's actually the main use case for these modem modules.
| swiley wrote:
| Drivers on Linux usually mean GPL which freaks out modem
| manufacturers.
| gsich wrote:
| Yes, mainly because their code quality is absolute shit.
| kelnos wrote:
| Most of these can probably receive updates from the host OS
| if it's _really_ needed, but I think what it boils down to
| is that the manufacturers just don 't care, unfortunately.
| ashkankiani wrote:
| I've been playing with the ESP32's a lot more recently (which
| go the RTOS route), and in reading the code for network
| stacks for these devices, it did occur to me how simple they
| were in terms of features. I wouldn't say that one _needs_
| the entirety of the Linux kernel to be able to implement all
| of those things, but it does build off of a more well used
| stack and reuses a lot of well-tested components.
|
| So from this perspective, it's honestly more secure probably,
| too, as opposed to trusting a hardware company to hire
| embedded software engineers to reinvent an entire stack from
| scratch. The latter of which are in rare supply and we all
| know that reinventing things is a process that often leads to
| vulnerabilities.
|
| Locking down the communication to just AT commands then makes
| sense for similar reasons.
| monocasa wrote:
| LTE et al is wayyyyy more complicated than WiFI/BlueTooth
| for what it's worth. I can get the idea that process
| boundaries help the large heterogeneous teams needed to
| ship a full featured LTE modem, similar to how
| microservices help large heterogenous teams ship code at
| FAANGs. It's infrastructure for dealing with human
| inadequacies rather than a technical requirement.
| [deleted]
| jcims wrote:
| Sounds like it would make a good payload for a high-altitude
| balloon ride to send live data on the way up and back down (to
| whatever range limits)
| Tuna-Fish wrote:
| Regulatory reasons. There are a lot of things that FCC regs say
| that devices that transmit either must or must not do, which
| made more sense back when everything was analog. Now that the
| device is a full computer and can be programmed to do whatever
| you want, the way the industry has decided to best fulfill all
| those requirements is to make the computer do exactly and only
| what is required and then lock it down into a black box.
|
| If you just unlocked everything, it would probably be better at
| what it does, but it would also not be possible to sell to
| consumers.
| unnah wrote:
| Do those regulations explicitly say that the RF device is not
| allowed to be programmable by the user? And isn't the user
| legally forbidden from substantially modifying the RF
| behaviour in any case?
| tomxor wrote:
| I can't find it now but there was an article posted a while
| ago that explained the existence of just such rules back
| when the very first mobile phones used analogue
| transmission, which of course was easy to intercept. So the
| FCC forced radio manufacturers to prevent users being able
| to tune to those frequencies and additionally specified
| that manufacturers be responsible for making this
| limitation very hard to defeat... rather than fix the
| original problem of course.
|
| Those rules exist to this day but have no relevance.
| However I suspect there are other similar but slightly more
| sane rules in play since modems are now just software
| defined radios that can be made to do nearly anything you
| want given the right access - i.e you can cause a lot of
| trouble, even if you don't intend to.
| gary_0 wrote:
| https://news.ycombinator.com/item?id=25403163 "Why radio
| receivers won't tune 800-900 MHz"
| dtech wrote:
| Requiring a device to not allow illegal RF behavior is
| significantly easier to require and audit than policing the
| actions of millions of consumers.
| hansvm wrote:
| Off-topic, abstracting laws away from the harm they aim
| to prevent has always bothered me a bit. By punishing
| behaviors (e.g., making a device with a certain set of
| capabilities) other than the ones people care about
| (e.g., careless or malicious RF activity) you're nearly
| guaranteed to introduce unwanted loopholes and second-
| order effects.
|
| E.g., CA requires tags for your vehicles (fair enough --
| gotta charge people for the privilege of driving at all,
| not just incrementally through gas taxes and whatnot /s),
| but the law isn't that your vehicle be registered and
| have tags purchased; it's that valid tags must be
| displayed on the vehicle.
|
| That makes enforcement super easy because an officer can
| just walk up and down a line of cars handing out tickets,
| but it also means that people can break the law for no
| fault of their own even after having taken the action the
| law was intending to promote (paying CA in this case). If
| you tried to renew your tags at the right time in 2020,
| even months before they were set to expire, you couldn't
| pick them up in person (covid) and wouldn't receive them
| in the mail till after the governor's order temporarily
| allowing you to drive with expired tags had expired.
| Moreover, at least one police department was excited to
| cash in on that discrepancy :)
|
| The problem in that example is that the behavior the law
| is supposed to encourage (paying CA if you own a car)
| only partially aligns with what the law punishes (not
| displaying a valid tag on your car). That lack of
| alignment leaves room for exploitation.
|
| That's just a small example (intentionally so --
| hopefully it's simple enough so as to not be
| controversial), but it's a constant pattern in our legal
| system:
|
| - Taser-immune meth-heads robbing people at knife point
| is bad, so let's make a hint of a whiff of any kind of
| drug anywhere near an individual for any reason a felony.
|
| - Child pornography is bad, so let's (try to) make
| encryption illegal.
|
| - Pump-and-dump scams are bad, so let's make [thousands
| of pages of financial legalese] illegal.
|
| - (intentional hyperbole on this point) Low quality
| medical devices hurting people is bad, so let's give a
| private corporation the privilege to write up a set of
| standards, never change them no matter how far the world
| progresses, and charge people for the privilege of
| reading them to know what's legal or not.
| gsich wrote:
| Baseband: yes
|
| Rest: no. Some modem manufacturers have SDKs to get your
| application on the device as a feature.
| junon wrote:
| The security section at the bottom is important. This screams
| malware vector.
| cheschire wrote:
| Now it just needs to charge / run from solar and it can be
| dropped anywhere with signal. I wonder what sort of wattage this
| thing draws.
| vidarh wrote:
| For a while I've really liked the thought of small little cheap
| hardened devices that could be surreptitiously dropped to act
| like wifi extenders as a "guerilla mesh". Of course there'd
| probably need to be some thought put into making them safe and
| look harmless enough not to trigger any kind of severe response
| if found. But imagine taking a bag around town and dropping
| "disposable" devices with low enough power use to mostly stay
| online w/solar and form a mesh network all over the place.
|
| I think the biggest challenge to getting somewhere small enough
| that it can be "dropped anywhere" is definitively the solar
| panels. If you add the qualifier "where you have permission" it
| gets a lot easier - I don't think you need a very large panel
| to be able to power something suitably basic like this.
| myself248 wrote:
| Seems quite a lot of us have had the same idea.
|
| I keep thinking the Meshtastic network is heading in that
| direction, maybe Disaster.Radio might have some features, and
| generally there seem to be a ton of projects that contain
| some but not all of the pieces you'd want.
|
| I'm down to build the hardware, I just haven't a clue on the
| software side of things.
| cbradford wrote:
| This is a fabulous idea. I would pay to fund that
| ashkankiani wrote:
| Displacing the heat in continuous usage will also probably be
| a challenge, not to mention figuring out how to deploy
| updates, having nodes be compromised, impostor nodes,
| latency, etc.
|
| I mean it's an idea I've thrown around a lot in my head since
| college, but in all my scenarios, I never opened it up to the
| public, it was just going to be used for me. If that's the
| case, then yeah it's doable.
| vidarh wrote:
| Depends on climate, I guess. I'm in London and here the far
| greater problem would be moisture and not heat dissipation.
|
| Deploying updates is not that hard - you'll want a flash
| that's large enough for at least two partitions so you can
| keep a known good version around. Other than that, signing
| updates isn't a big deal, and tamper-proofing key storage
| enough for casual use isn't that hard. I wouldn't trust
| sending senstitive data clear-text over a network like
| that, but I wouldn't do that over public wifi anyway.
|
| Latency is a bit more of a challenge if you're somewhere
| that'd need lots of hops, but if you are then presumably
| the alternative is worse, especially if you have nodes with
| LTE connectivity as a possible fallback.
| goda90 wrote:
| Something I used to daydream about was a self-deploying mesh
| using drones to drop off solar powered nodes on roofs around
| a city. It could be a sort of emergency deployment system.
| The drones could go back and pick up nodes that stopped
| working for some reason and bring them back to base.
| spicybright wrote:
| I would love to see someone run the electricity draw numbers
| on a theoretical build of this, accounting for solar panel
| output, battery longevity, and how long it could
| theoretically stay online based how long the sun is up each
| day.
|
| In my head I'm thinking an air tight tupperware container
| with a pi zero inside, setup for meshing. It would be cool if
| it was fairly flat and had panels on both sides, so you could
| throw it on a roof top and be reasonably sure it'll land with
| a panel facing up to run.
| xx_ns wrote:
| Author here! I'll try to figure the power draw out some time in
| the future. Currently, the phone's just always plugged in and
| being powered over USB.
| jacquesm wrote:
| Funny to have not just one but _two_ Linux computers in your
| pocket. I wonder if there are still more of these.
| squarefoot wrote:
| Any chances that opening a root shell into the modem can be used
| to grab the closed firmware, reverse engineer it, then swap with
| an open source one? I mean it's not just about security but also
| being able to implement nice things to have running and connected
| while for example the phone operating system sleeps between
| calls.
| imglorp wrote:
| There's also privacy.
|
| If someone's reverse engineering that modem, I'm curious what
| all is running on there, if it makes any connections other than
| what you ask for, and who it talks to, and what is said.
| madushan1000 wrote:
| No need to actually do the re work(at least re the whole
| firmware), if you google a little bit you can find a leaked
| source to a firmware related to the modem in pinephone. look
| for mdm9607, mdm9x07, mdm9207. Also, some devs actually managed
| to replace the linux part of the firmware with linux build from
| source recently. I think they're trying to get mainline linux
| running now
| swiley wrote:
| The firmware is already on github and the pinephone devs have
| mostly redone the Linux part to be less crappy.
| tinus_hn wrote:
| I have never really tried but it surprises me providers let you
| accept connections on a gsm connection.
| roywashere wrote:
| The server is connected via ethernet over USB. But the server
| is running on the CPU of the GSM modem!!!
| ajnin wrote:
| His blog is hosted on the modem but it does not actually use
| the cellular network, he routes traffic back to the host using
| adb port forwarding and then to some other host via USB and
| then to the Internet.
| jtbayly wrote:
| This isn't going over the mobile network if I understood the
| post correctly.
| grishka wrote:
| Over here some carriers will even sell you a static IPv4
| address for your cellular connection. Other than that, packets
| are packets, this shouldn't be very surprising.
| johnchristopher wrote:
| What's the blog generation workflow ?
| bogwog wrote:
| So a modem on a pine phone can survive the HN hug of death (and
| the number one post no less)? Am I missing something here?
| Because there's no way I believe that!
| [deleted]
| andai wrote:
| HN itself runs on one core.
| IgorPartola wrote:
| Currently can't load the site.
|
| But also, serving static content is more or less a matter of
| network connection speed. You can cache everything in RAM and
| write data to a socket very quickly. HTTPS makes things a
| little wonky because you can't just sendfile() files directly
| into a socket but the overhead is still pretty minimal.
| folmar wrote:
| I think you can now. You can have TLS handled by the kernel
| setsockopt(sock, SOL_TCP, TCP_ULP, "tls", sizeof("tls"));
| vmception wrote:
| Its uncached database hits that crash sites.
|
| You pretty much never need that, but many/most sites do it
| somewhere anyway.
|
| A static site running on a modem should be fine, _but_ there is
| nothing saying they cant /arent using a CDN too, which would be
| even better.
| mrb wrote:
| Yes it can survive the HN hug of death.
|
| I speak as a software engineer whose blog has hit the HN
| frontpage multiple times, and who has optimized my blog to be
| static & lightweight, just like the author. In my experience, a
| front-page HN post (in the top 3) leads to 30-40 page hits per
| second. The page at https://nns.ee/blog/2021/04/01/modem-
| blog.html weights 44.4 kB transferred (HTML, CSS, images,
| fonts, etc, all compressed over HTTPS). So this is 11-15 Mbit/s
| of peak bandwidth, below the maximum throughput the author
| measured on the Pine phone modem (20.7 Mbit/s).
|
| And the bottleneck is going to be purely network. Not CPU. Not
| disk. Just serving a small set of files cached in RAM by the
| pagecache.
| ognarb wrote:
| My website also got multiple times in the HN frontpage and
| there was never any lags even on a very cheap VPS. The
| websites that get the HN hug of death are often the one
| requiring database access (e.g. wordpress).
| kelnos wrote:
| It's above the max, no? The author measured 20Mbps between
| the phones main OS and the rest of the world, but 10Mbps
| between the phone and the modem (over the adb bridge).
| Matthias247 wrote:
| See the first two words in the post: "No, really."
|
| It was just used to catch attention.
|
| But with a CDN in front it might likely work out.
| cormorant wrote:
| Something in front of it, maybe? It reports nginx.
| $ curl --head 'https://nns.ee/blog/2021/04/01/modem-blog.html'
| HTTP/2 200 server: nginx date: Fri, 02 Apr 2021
| 13:28:26 GMT content-type: text/html content-
| length: 12937 last-modified: Fri, 02 Apr 2021 09:40:40
| GMT etag: "6066e698-3289" accept-ranges: bytes
| PragmaticPulp wrote:
| Could be. The statuspage from the device shows darkhttpd as
| the server, not nginx: https://nns.ee/blog/status.html
| Scoundreller wrote:
| Looks like darkhttpd's website:
| https://unix4lyfe.org/darkhttpd/ is NOT hosted on a GPS/LTE
| modem and has been hugged to death.
| xx_ns wrote:
| Oh my. Sorry to who hosts that site!
|
| (FWIW, I think the darkhttpd's website uses... Apache)
| yellowapple wrote:
| And if it turns out that Apache's website uses lighttpd?
| drewzero1 wrote:
| I think I saw it mentioned (possibly also linked) in a
| comment on another article here today. So it's not just
| us, it's also us!
| kevincox wrote:
| I see nginx there too.
|
| % curl -I https://nns.ee/blog/status.html HTTP/2 200
| server: nginx date: Fri, 02 Apr 2021 14:48:48 GMT content-
| type: text/html content-length: 8754 last-modified: Fri, 02
| Apr 2021 14:48:31 GMT etag: "60672ebf-2232" accept-ranges:
| bytes
| PragmaticPulp wrote:
| I meant the content of the page, which shows running
| processes on the system.
| tyingq wrote:
| The op mentions in another comment that he has nginx in
| front: https://news.ycombinator.com/item?id=26670500
|
| No idea if he's caching there, though.
| yakubin wrote:
| HN traffic isn't all that demanding[1]. Websites falling under
| the load are a testament to the poor quality of the software
| stack used to host them.
|
| [1]: <https://xyrillian.de/thoughts/posts/latency-matters-
| aftermat...>
| majewsky wrote:
| Hey look, it's my blog. It's a small world. :)
|
| Since we're here, I did a quick grep through today's access
| log. It appears that your link got me 573 visitors to that
| article and 56 people clicking through to the other article
| linked therein.
| yakubin wrote:
| What can I say. That's a good blog. :)
| rahulroy9202 wrote:
| I was thinking of much larger numbers here.
| caslon wrote:
| A static site is _really_ easy to host and HN 's hug of death
| isn't actually that intense; the site itself only gets like six
| million views a day, a fraction of those click on every link,
| and no syndicated page has much reach.
| [deleted]
| jerf wrote:
| People badly overestimate what it takes to serve a website
| nowadays. I don't know whether it's just because we're all
| used to 10+ second website loads as our browser groans under
| the weight of all the trackers, or if we all have too much
| experience with web pages that run multiple 10ms+ unoptimized
| queries against databases that pull way too much data back,
| etc. and so we all think web pages are some sort of
| challenge, but webpages themselves really aren't that hard.
| It's all the stuff you're trying to put in to them that is
| the challenge.
|
| I hit SHIFT-CTRL-r to watch the page reload under the network
| debugger so I could get a snapshot of the total size, which
| looks to be about 100KB, just eyeballing the sums, so at
| 10MB/s it should be able to serve around 100 requests/second,
| which is enough for most websites, even ones getting hugged.
| kelnos wrote:
| That's 10 mega _bits_ per second, not bytes.
| Scoundreller wrote:
| Reminds me of when my university changed from "CCnet",
| running all courseware/grading on custom code written by an
| engineering professor running on a tower under his desk to
| WebCT/blackboard.
|
| The former worked fast and without any issues, but the
| latter just groaned and groaned and crashed.
|
| During the transition, a prof asked the class which one to
| use and all 250 people said in unison "CCnet".
|
| " Its main virtues were the stark, no-nonsense interface
| and the incredibly efficient (although complex) database
| system that made CCNet ideal for running large numbers of
| courses with very little by way of server computing
| resources."
|
| https://www.utsc.utoronto.ca/technology/what-learning-
| manage...
| stadium wrote:
| I recently migrated a personal blog running on a hugo static
| site to digital ocean with automated github deployment, SSL
| certificates, CDN, and a custom domain. It took all of 15
| minutes including updating the DNS on my custom domain
| registrar.
| t0mas88 wrote:
| The same but with AWS S3 instead of a VPS is even simpler
| and avoids any maintenance / software updates. The
| bandwidth is more expensive but for a small personal site
| it shouldn't make much of a difference because you also
| save the price of the VPS.
| stadium wrote:
| I'm using DO's free tier. The static site hosting may be
| a new feature. There is no VPS needed for it.
|
| My AWS S3 skills weren't good enough to figure out the
| CDN + https. S3 static hosting without those was super
| simple though.
| verst wrote:
| I find GitHub Pages even easier for that scenario.
| alliao wrote:
| doesn't sound very secure seeing all those processes running
| under root...
| megous wrote:
| Original firmware is full of security issues. Things like
| effectively running `system("something %s", some string input
| from AT command)` under root, etc.
|
| Originally I wanted to get access to the FW via one of these
| issues, but then I found the adb unlock, and it's way easier.
|
| All it took me to crack their ADB protection was to extract and
| disassemble their atfwd_daemon from firmware update package,
| and look for interestingly named commands and reverse their
| algorithm for generating the unlock key.
|
| You can see for yourself how "complicated" it is:
|
| https://xnux.eu/devices/feature/qadbkey-unlock.c
|
| And that was it.
|
| They also allow to run code under root downloaded from the net
| via special push SMS, etc. Thankfully not enabled by default.
| But bleh.
| dtx1 wrote:
| What difference does it make if it's just serving static HTML?
| d1sxeyes wrote:
| Well none, but if it's the hardware responsible for managing
| your wireless connectivity on your mobile phone, you might
| not be happy about the possibility of that being compromised.
| imhoguy wrote:
| This is realy cool!
|
| I wonder if Justine's Redbean[0] webserver, which got recently
| posted on HN[1], would support ARM in such use case. Its
| executable size is 460KB, it even allows Lua scripting, and
| benchmarks 1 million pages per second on desktop PC.
|
| [0] https://justine.lol/redbean/index.html [1]
| https://news.ycombinator.com/item?id=26271117
| mfashby wrote:
| Possibly not. I believe that runs natively on (any!) x86
| system, but it uses QEMU to run on ARM, which might make things
| a big too big here.
| imhoguy wrote:
| You are right. Indeed it falls back to QEMU on non-x86_64 htt
| ps://github.com/jart/cosmopolitan/issues/73#issuecomment-...
|
| Running QEMU on a modem would be another hack for a day :)
| xx_ns wrote:
| Don't give me any ideas...
| spijdar wrote:
| While you'll probably run out of memory first, there's the
| enormous overhead of running qemu's translation, too. Using
| QEMU to emulate x86 on my POWER9 system, I get... roughly the
| performance of a 2001-2004 pentium processor, and the host
| cpu is running at 3.8GHz and comparable speed wise to a
| 2018ish intel processor.
|
| In spite of the author's insistence, I don't think
| Cosmopolitan is really usable on anything but x86, the QEMU
| thing is more a cute proof-of-concept. For very simple
| programs I guess...
| pantalaimon wrote:
| gatling [0] is also pretty small and fast, it also can do FTP
| and SMB if you need that.
|
| [0] https://www.fefe.de/gatling/
| marban wrote:
| Also: https://github.com/mufeedvh/binserve
| bayindirh wrote:
| Don't forget webfs. It's just 196K installed.
___________________________________________________________________
(page generated 2021-04-02 23:00 UTC)