Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

2019.12 - Updated browser, software on demand, new games and more

This site may earn commission on affiliate links.
They gave me the Free FSD trial for 12 days but it’s always when I’m busy and can’t play with it, this time I was in Vegas and the Free Trial screen blocked my screen, had to decline it.. besides I wouldn’t know how to activate FSD while on the move.
 
There is no chance that they are pushing updates from a single 1Gbps application server, generating an OS image and buffering it through HTTP on the fly to the car, all over VPN, lol.

I never said it was a single application server. Read my post carefully. I said a single set of infrastructure.

I'm really getting sick of high-and-mighty people on this forum arguing minutiae like this. Who cares what the exact configuration of their update servers is? The point was to show that the limitations to update 350,000 cars in the field may indeed be technical, not willful. That is all. That was in response to someone who was complaining how long the updates are taking, which in itself is a frivilous concern.

If you want to argue BS that just doesn't matter, go do it somewhere else.
 
The only manageble way to handle that is for the car to inventory it's exact modules and firmware, download a list of available updates from the server, decide what needs to be updated while resolving any dependencies, and then have the server build it an appropriate upgrade package. This is indeed basically exactly what Linux machines do with the yum or apt tools.

In terms of package delivery for hardware drivers, that's not quite what most Linux distributions do. Most hardware drivers go in the Linux kernel package set, which is identical for all computers of a given architecture (AMD64, ARM64, etc.). All the driver modules files are installed locally and the ones that aren't needed are ignored. You can install new or remove old hardware and, in most cases, the computer will boot up and adjust automatically. There are a few exceptions to this rule, such as for proprietary drivers, which usually come in third-party packages (sometimes installable from the distribution's package repository, but sometimes not). Video drivers for the X Window System also go in another set of packages, but they're also usually all installed as a complete set.

That said, non-driver software is typically distributed in something akin to the method you describe -- if you want, say, MythTV installed, you can install it explicitly from the distribution's repository, but an unusual package like that won't be installed by default on most distributions. That said, even then, the local computer doesn't request that the remote server build a unique package; it just downloads and installs individual package files based on what it computes it needs. This minimizes the load on the remote server; it needs only deliver files, not build collections of files into unique packages.

If Tesla's on-board computers are limited in local storage or bandwidth, it might make sense for it to download only what's required, roughly as you suggest. This wouldn't necessarily require the remote server to build a unique package for it, though. If you follow the Linux repository example, Tesla could simply make a bunch of driver packages available to cover all the options, and the car could request exactly what it needs. OTOH, it could be done as you suggest, with the remote server building a single binary blob to be installed, but I'm not sure why that would be necessary. (Maybe if building the blob requires too much in the way of resources for the local computer on the car, but that seems iffy to me.)

Note that I have no inside knowledge of how Tesla does this, so I'm not arguing strongly one way or the other. That said, it's my understanding that Tesla's infotainment computer, at least, is based on Ubuntu, which works in the way I've outlined. (I'm pretty familiar with that side of the story.)
 
We all get the update when we get the update. It’s rather silly to argue about this. Only those working at Tesla know how the updates are distributed. All the rest of us can do is speculate and wait patiently (or try to).

Anyway, back to my “failed” installed of 2019.12.1.1. Drove over 2 hours today and everything was working normally. Autopilot and NoA we’re working as expected as well. Not sure why my 3 said that the update did not complete successfully because as far as I can tell everything seems fine.
 
In terms of package delivery for hardware drivers, that's not quite what most Linux distributions do. Most hardware drivers go in the Linux kernel package set, which is identical for all computers of a given architecture (AMD64, ARM64, etc.). All the driver modules files are installed locally and the ones that aren't needed are ignored. You can install new or remove old hardware and, in most cases, the computer will boot up and adjust automatically. There are a few exceptions to this rule, such as for proprietary drivers, which usually come in third-party packages (sometimes installable from the distribution's package repository, but sometimes not). Video drivers for the X Window System also go in another set of packages, but they're also usually all installed as a complete set.

That said, non-driver software is typically distributed in something akin to the method you describe -- if you want, say, MythTV installed, you can install it explicitly from the distribution's repository, but an unusual package like that won't be installed by default on most distributions. That said, even then, the local computer doesn't request that the remote server build a unique package; it just downloads and installs individual package files based on what it computes it needs. This minimizes the load on the remote server; it needs only deliver files, not build collections of files into unique packages.

If Tesla's on-board computers are limited in local storage or bandwidth, it might make sense for it to download only what's required, roughly as you suggest. This wouldn't necessarily require the remote server to build a unique package for it, though. If you follow the Linux repository example, Tesla could simply make a bunch of driver packages available to cover all the options, and the car could request exactly what it needs. OTOH, it could be done as you suggest, with the remote server building a single binary blob to be installed, but I'm not sure why that would be necessary. (Maybe if building the blob requires too much in the way of resources for the local computer on the car, but that seems iffy to me.)

Note that I have no inside knowledge of how Tesla does this, so I'm not arguing strongly one way or the other. That said, it's my understanding that Tesla's infotainment computer, at least, is based on Ubuntu, which works in the way I've outlined. (I'm pretty familiar with that side of the story.)
You and Joe really know your stuff. Thanks very much for both posts.
 
Last edited by a moderator:
It updated my Model-3 two nights back & took around 20 mins in all.
Here's my speculation, since the time I have purchased my Model-3, the past three times the s/w was upgraded, I think the car (while being charged) 'senses' the connection to my home internet (FIOS 100/100) and then sends me a notification for s/w upgrade. This usually happens always late at night while the overall internet usage is down as it probably might be needing a lot of bandwidth to download the software.

Any thoughts or if anyone too has experienced the same like me?
 
What do you mean your EAP will crash? Are you talking about the center screen computer (MCU) crashing and rebooting (screen goes black and after ~20 secs you get Tesla logo and then normal screen)? Or do you mean that the AutoPilot computer (APE) is crashing while you are on EAP and that affects how it is driving? Those are two separate things entirely.

EAP crashes so it takes me out of AP. Screen is fine. It just doesn’t show other cars around me or the lines. It takes 1 or 2 min for it to come back and I can use AP again. Only started seeing this in 12.1 and 12.1.1 did not fix it.
 
In terms of package delivery for hardware drivers, that's not quite what most Linux distributions do. Most hardware drivers go in the Linux kernel package set, which is identical for all computers of a given architecture (AMD64, ARM64, etc.). All the driver modules files are installed locally and the ones that aren't needed are ignored. You can install new or remove old hardware and, in most cases, the computer will boot up and adjust automatically. There are a few exceptions to this rule, such as for proprietary drivers, which usually come in third-party packages (sometimes installable from the distribution's package repository, but sometimes not). Video drivers for the X Window System also go in another set of packages, but they're also usually all installed as a complete set.

That said, non-driver software is typically distributed in something akin to the method you describe -- if you want, say, MythTV installed, you can install it explicitly from the distribution's repository, but an unusual package like that won't be installed by default on most distributions. That said, even then, the local computer doesn't request that the remote server build a unique package; it just downloads and installs individual package files based on what it computes it needs. This minimizes the load on the remote server; it needs only deliver files, not build collections of files into unique packages.

If Tesla's on-board computers are limited in local storage or bandwidth, it might make sense for it to download only what's required, roughly as you suggest. This wouldn't necessarily require the remote server to build a unique package for it, though. If you follow the Linux repository example, Tesla could simply make a bunch of driver packages available to cover all the options, and the car could request exactly what it needs. OTOH, it could be done as you suggest, with the remote server building a single binary blob to be installed, but I'm not sure why that would be necessary. (Maybe if building the blob requires too much in the way of resources for the local computer on the car, but that seems iffy to me.)

Note that I have no inside knowledge of how Tesla does this, so I'm not arguing strongly one way or the other. That said, it's my understanding that Tesla's infotainment computer, at least, is based on Ubuntu, which works in the way I've outlined. (I'm pretty familiar with that side of the story.)

You're spot-on for how Linux does it's updates and drivers, and indeed I believe that at least parts of the Tesla OS operate in a similar fashion. But there's some caveats that I think may necessitate some alterations.

1. Earlier vehicles like the first 100K or so Model S's and first 20K or so Model X's have a much older and less powerful MCU (MCU1). It doesn't really have enough processing power or resources to handle a complex upgrade procedure involving many files. It may indeed need to have an update package built for it. I remember when I had my Model S 85D that it would occasionally download an update package while I was driving (this was back in the days when they used to send updates over LTE). Once the package was downloaded, the MCU would spend about 20 minutes validating and preparing for the update before the yellow clock icon would appear, letting you know the update was ready to install. During the 20 minute period, the MCU was very slow, with jerky map updates and the browser was useless. Obviously, just unpacking and validating the package was taxing it.

2. Tesla is paying for bandwidth, and they've taken a huge number of steps to minimize it's use, such as no satellite maps for the Model 3 SR, vector mapping system instead of bitmapped tiles, and here in the last year, no more software updates over LTE. While the Linux kernel contains many drivers that wouldn't be used on any given system, that's a waste of bandwidth to push a package like that to each Tesla. The large rear drive unit used in the rear-wheel drive and performance Model S/X vehicles has had almost twenty different hardware revisions, many of which have unique firmware. I cannot imagine that given bandwidth limitations, Tesla would send an update package that has 1 firmware package you need and 19 that you don't.

Anyway, no one knows exactly how any of this works except Tesla and a few of the expert guys who have long since abandoned this forum like Ingineer and wk057, among others. I wish I knew how to get into the MCU, but I think Telsa closed the exploits those guys used long ago.
 
1. Earlier vehicles like the first 100K or so Model S's and first 20K or so Model X's have a much older and less powerful MCU (MCU1). It doesn't really have enough processing power or resources to handle a complex upgrade procedure involving many files. It may indeed need to have an update package built for it.

I'm skeptical of this analysis. Among many other computers in my house, I run a Raspberry Pi with a Debian derivative OS. The one I've got is very slim by modern standards, and it has no trouble with installing Debian packages. The first Raspberry Pi was released in 2012, so it's of similar vintage to the Tesla Model S, and even then, Linux distributions were common on Raspberry Pis, although I have no personal experience with those earliest ones. Android-based smart phones -- even those from around the time the Tesla Model S was introduced -- also have no problem installing individual packages; they're just called "apps," not Debian packages. For a computer to be so weak as to be unable to handle this type of upgrade, you'd need to go way back in computing history.

A little Googling suggests that Tesla's MCU1 is based on Nvidia's Tegra 3. I don't know much about that CPU, but the spec sheet suggests it is far from the sort of dinosaur that wouldn't be able to keep up with managing Debian's APT database and the files in Debian packages. I don't know how much RAM or "disk" space Tesla's MCU1 has, but I was running Linux distributions, including Debian, on computers with far less than the 2GiB memory size noted on Nvidia's page as the CPU's maximum, and far less disk space than was available even on cheap USB flash drives in 2012.

Also, Tesla reportedly uses Ubuntu on some of its in-car computing (presumably the MCU), and Ubuntu is based on Debian GNU/Linux. Debian was introduced in 1993. I'm not sure if the Debian package format is that old, but it must be close to it. Even desktop computers of that day were pretty pathetic by today's standards. I'd be surprised if Tesla's MCU1 couldn't blow a 1993 desktop out of the water by most measures of computing power.

Modern desktop and laptop computers sometimes seem painfully slow largely because they're running bloated software stacks. An in-car computer doesn't need to run all that stuff. No matter how the software is distributed, Tesla is in a position to cut away the unnecessary cruft -- or at least, enough of it to make it run reasonably well on a computer that's less powerful than the laptops and desktops that are for sale in Best Buy today.

That said, and as I wrote before, I don't have any inside knowledge of how Tesla manages things. I'm just skeptical that there's any need for Tesla's servers to custom-build installation images for each car. Even a really pathetic computer today, or from 2012, is more than capable enough to download and install a subset of available packages based on locally-computed needs, using a packaging system like Debian's.
 
The Tegra 3 isn't a dinosaur, but Tesla is/was doing a lot of stuff on that MCU, at least back then. I know that one of the major things they did in the move from software 7.1 to 8.0 was to remove a large amount of debugging code and logging, apparently because those were using a lot of CPU cycles that they needed for the newer features in 8.0.

Anyway, suffice to say that there's many things we could speculate on, some of which might be right and others not so much. But it's pretty obvious from just using the MCU that sometimes things are taxed.

If you have AP 2.5 hardware, try using the web browser with Navigate on Autopilot engaged. In software 2019.8.5, it won't even load pages unless you give it several minutes. Supposedly, this has been addressed in the newer 2019.12.1.1, but I don't have that version yet so I can't comment.
 
OK, Guess I'll start another thread about the web browser issues, but I did get a chance to try a 150kW Supercharger with the update, this was the results:

Model 3 150kW Supercharging.jpg


2-80% in 30 minutes. Seems like the readout of MPH was clipped as it showed 500 MPH for a broad range of current. The charge seemed extremely linear, or perhaps my graph is distorted.

-Randy
 
OK, Guess I'll start another thread about the web browser issues, but I did get a chance to try a 150kW Supercharger with the update, this was the results:

View attachment 403177

2-80% in 30 minutes. Seems like the readout of MPH was clipped as it showed 500 MPH for a broad range of current. The charge seemed extremely linear, or perhaps my graph is distorted.

-Randy

240 miles in 30 minutes?!
 
Last night, my navigation said there were no routes to any destination I selected.
This morning, 2019.12.1.1 was available. Installed it and navigation was working again.
I got a few extra atari games.
I tried out the browser and it was just a gray screen wouldn't respond to any touches.
rebooted the screen and then it finally woke up.
Dog slow. Don't know if I got the browser update, but mine is still unuseable. 4G capable, but I was on house wifi, which is at least 30 Mbs.
2015 S85D HW1
 
Last edited:
Here's Tesla's recommendation that fixed some problems I was having.
I think it's important to update the phone app and do this after every download:
  • Touchscreen reboot: Hold down your foot on the brake while holding in the two scroll wheel buttons (around 20 seconds) on the steering wheel. Do this until the Tesla ‘T’ appears on the touchscreen, and then let go for a restart.
  • Powercycle: Controls > Settings > Safety and Security > POWER OFF and confirm. Tap the brake pedal to turn the car on.
Good idea that someone got from Tesla, to set phone to Airplane mode
and wait 3 minutes before touching anything during the power off.

People who are truly interested in the software builds might want to
look at Tesla's open source linux etc make files right here:

Tesla, Inc.

..
 
  • Informative
Reactions: VQTRVA
The only manageble way to handle that is for the car to inventory it's exact modules and firmware, download a list of available updates from the server, decide what needs to be updated while resolving any dependencies, and then have the server build it an appropriate upgrade package.

Anyway, no one knows exactly how any of this works except Tesla and a few of the expert guys who have long since abandoned this forum like Ingineer and wk057, among others.

IIRC, wk057, Ingineer, and others have confirmed in fact, this is exactly how the firmware updates are handled (or were handled back when they were posting on TMC, it's possible it has changed since then).
 
  • Informative
Reactions: hcdavis3