WEBVTT

00:00.000 --> 00:16.080
So, Colin Dean is going to talk about Nick's OS and how we've $60 second turn his laptop

00:16.080 --> 00:19.760
in a cellular router, which sounds like a cool topic.

00:19.760 --> 00:20.760
The stage is yours.

00:20.760 --> 00:21.760
I have fun.

00:21.760 --> 00:22.760
Thank you very much.

00:22.760 --> 00:23.760
Great.

00:23.760 --> 00:35.640
We're going to talk about running Nick's OS on a really cheap laptop.

00:35.640 --> 00:36.880
My name is Colin Dean.

00:36.880 --> 00:43.320
I have been a programmer for about 27 years, paid to do it for about 20 years this year.

00:43.320 --> 00:46.240
And I really enjoy it.

00:46.240 --> 00:53.200
I come from Pittsburgh in the United States, metropolitan area of about 2.5 million people,

00:53.200 --> 00:58.040
and Northern Appalachia in an area of the US we call the Rust Belt.

00:58.040 --> 01:01.480
So my accent slips a little bit, sorry.

01:01.480 --> 01:03.360
We have our own accent.

01:03.360 --> 01:05.520
This is not my first Faustin talk.

01:05.520 --> 01:10.880
I first spoke at the 2021 Faustin that was online, and I've been coming out for, I think

01:10.880 --> 01:16.480
this is my third year in person and my fifth Faustin overall.

01:16.480 --> 01:19.280
You can generally find me hanging out at the Homebury table.

01:19.280 --> 01:24.080
I've been a Homebury contributor for about 12 years, and I'm finishing my first term

01:24.080 --> 01:27.720
on our Board of Directors a few.

01:27.720 --> 01:31.760
So hello from a fellow packaging project, although I know Nick's is much more than just

01:31.760 --> 01:34.160
packaging.

01:34.160 --> 01:36.320
Please do save your questions to the end.

01:36.320 --> 01:40.760
I'm going to be really blessed for time, and I want to try to get to everything.

01:40.760 --> 01:42.040
Also, I'm a Nick's newbie.

01:42.040 --> 01:46.960
I'm just learning Nick's, and there may be things in here that are a little bit strange

01:46.960 --> 01:52.400
to you because you may be learning them a long time ago.

01:52.400 --> 01:54.400
Me and Linux give back a long time.

01:54.400 --> 01:59.000
I've used Linux in various forms since about 2001.

01:59.000 --> 02:03.040
Started with Trostix Secure Linux, Long Dead Destro.

02:03.040 --> 02:10.320
It's been about a decade using primarily Ubuntu before switching mostly to MacOS and Windows

02:10.320 --> 02:11.320
for work.

02:11.320 --> 02:16.320
Currently, I've split my time between elementary and Chrome OS, you can see I'm using

02:16.320 --> 02:22.640
a Chromebook up here, but haven't had an unexplored interest in Nick's OS for quite a long

02:22.640 --> 02:23.640
time.

02:23.640 --> 02:28.880
Going back to about 2017, it was the first time that I heard about them.

02:28.880 --> 02:36.600
About a year ago, I instantly picked up Nick's OS when I spotted a clear opportunity

02:36.600 --> 02:44.600
to treat this shiny new Nick's OS installation as an appliance of sorts.

02:44.600 --> 02:48.040
There's the use case that I was looking for.

02:48.040 --> 02:53.040
So this talk, well, I'm not full of this talk, but this talk is about the system I threw

02:53.040 --> 02:57.840
together that was supposed to be very temporary and ended up lost in several months.

02:57.840 --> 03:04.200
It grabbed some unused hardware with a very specific advantage, LTE modem, to turn into a

03:04.200 --> 03:07.160
gateway for a mining house.

03:07.160 --> 03:13.200
I'm a huge fan of addressing problems through describing them as a problem a diagnosis

03:13.200 --> 03:14.200
and a remedy.

03:14.200 --> 03:19.200
If you search for my name, calling dean, and problem diagnosis remedy, you'll find a bunch

03:19.200 --> 03:22.320
of stuff that I wrote on the internet about it.

03:22.320 --> 03:29.800
So just talk, I'll be presenting in this style from the most part.

03:29.800 --> 03:37.440
So in February of 2024, about a year ago, just a couple of weeks after falls done last

03:37.440 --> 03:44.240
year, I finalized the purchase of a house, about a 10-minute drive from where I'd lived

03:44.240 --> 03:45.880
for about 12 years.

03:45.880 --> 03:53.920
I immediately started renovation on that house built in 1968 with a very high-end furnace.

03:53.920 --> 04:00.360
The previous owners were very wealthy CEO of a local dairy company and had put in a spare

04:00.360 --> 04:04.800
no expense in 1987.

04:04.800 --> 04:10.240
You can imagine what a 40-year-old furnace in the United States is working with, especially

04:10.240 --> 04:12.240
in a very cold area like Pittsburgh.

04:12.240 --> 04:20.040
I was too really good though, because it could heat the whole about 105 square meter

04:20.040 --> 04:28.080
house in about 40 minutes from 15 degrees Celsius to 20 degrees Celsius, I guess that's

04:28.080 --> 04:30.920
pretty good.

04:30.920 --> 04:34.880
I wanted to be able to control it remotely, because I also didn't want to pay to heat

04:34.880 --> 04:41.840
two houses, and it would be a game changer for working there comfortably, because it could

04:41.840 --> 04:43.600
get very cold.

04:43.600 --> 04:52.040
February and March in Pittsburgh is around 0 to negative 10, sometimes negative 20 Celsius,

04:52.040 --> 04:54.040
so you can get pretty chilly.

04:54.040 --> 04:56.760
I also wanted to know when packages were coming.

04:56.760 --> 05:00.840
We were going to have so much new stuff delivered to the house that we were renovating

05:00.840 --> 05:04.280
that I wanted to know when it arrived so that I could know if I could go immediately

05:04.280 --> 05:07.760
start working with something got here.

05:07.800 --> 05:12.960
The cheapest reason about internet service that we could find was about $50 a month for

05:12.960 --> 05:16.400
a 300-megabit line.

05:16.400 --> 05:26.200
At that price, I also had another option that was a T-Mobile cellular service, but it's

05:26.200 --> 05:32.840
10 gigabyte data cap was too little for the expected usage of the one webcam that I was

05:32.840 --> 05:36.800
going to have running in there.

05:36.840 --> 05:41.120
T-Mobile's data cap wasn't going to be good.

05:41.120 --> 05:49.000
Verizon offered a one of our local fiber provider offered a 300-megabit plan with no

05:49.000 --> 05:51.920
data cap, but I didn't need that much.

05:51.920 --> 05:59.040
I only needed about 32 kilobytes per second in order to have the webcam running 24-7,

05:59.040 --> 06:03.720
and I needed like a half a kilobite per second for the thermostat average to a month.

06:03.960 --> 06:09.480
I didn't have a mobile hotspot device available to me, and everything that I saw that

06:09.480 --> 06:13.680
I could get quickly was just kind of crap, throw away hardware.

06:13.680 --> 06:20.720
I didn't have some extra unused Raspberry Pi's, but none of them had LTE modems.

06:20.720 --> 06:29.400
Then I remembered that I had three laptops that I bought at the mech over electronics

06:29.520 --> 06:32.520
in the US these days called MicroCenter.

06:32.520 --> 06:43.160
I bought these laptops for only $60 a piece, new during the 2022 recession of the COVID pandemic

06:43.160 --> 06:45.160
in the United States.

06:45.160 --> 06:50.160
I remember that they had this strangely expensive feature in LTE modem.

06:50.160 --> 06:55.800
Why would you put an LTE modem in such a cheap laptop, especially when that LTE modem

06:55.880 --> 07:00.680
was $25 on the used market, and these laptops were $60.

07:00.680 --> 07:03.400
How are they making any profit here?

07:03.400 --> 07:07.880
Well, it turns out they probably weren't, and that's why the companies in the business anymore.

07:07.880 --> 07:12.360
But these laptops were pretty low and spec.

07:12.360 --> 07:15.080
I'll talk a little bit more about their specs later.

07:15.080 --> 07:20.920
All they really needed was horsepower, storage, and compute.

07:20.920 --> 07:25.320
Raspberry Pi's were kind of hard to find, come by, and I thought, hey,

07:25.320 --> 07:28.760
when I buy these and just use them for a cluster, you know, I'll build a day off

07:28.760 --> 07:33.000
cluster, I've always wanted it, I forgot about it.

07:33.000 --> 07:37.640
It's not very ambitious project, just put in a box someplace.

07:37.640 --> 07:39.880
After some searching, I found the laptops.

07:39.880 --> 07:45.800
With some more research, I found another wireless provider mint mobile, could give me

07:45.800 --> 07:53.560
a $15 a month for 10 gigabytes, which wasn't going to be enough, but if you read the

07:53.560 --> 08:00.600
fine print for once, you'd find that they just reduced your speed, and they reduced your speed

08:01.560 --> 08:08.760
120 kilobytes per second, 120 kilobytes per second, I only needed 32.

08:10.520 --> 08:11.720
Okay, I'll take the free bandels.

08:13.240 --> 08:15.480
But Nixon also was the thing that completed the idea.

08:15.480 --> 08:23.320
I wanted to treat this like as an appliance, and Nixon was a pledge of a single configuration file

08:23.320 --> 08:29.080
for a system, it was very attractive, so I decided to see what the prestige would deliver.

08:31.880 --> 08:33.080
So turn into this.

08:33.080 --> 08:36.840
Can I actually define an entire router in one file?

08:38.520 --> 08:42.600
Having built a router distro for my college graduation project, I knew a thing or two about the

08:42.600 --> 08:43.960
components that I'd need.

08:43.960 --> 08:49.640
Need things like DACP, DNS, some stuff to control the firewall, and master it in

08:50.600 --> 08:57.400
whatever, didn't need to be fancy, this was a network for a webcam, you know, that was it.

08:59.800 --> 09:02.680
And shortly somebody else had done this in next OS.

09:04.280 --> 09:07.480
And eventually it took me a lot, but I did find somebody else had done something similar.

09:08.600 --> 09:14.040
Here's a somewhat picture of the actual beast in situ.

09:15.000 --> 09:16.920
Evolved three is the name of the company.

09:17.640 --> 09:19.160
Mystro is the name of the model.

09:19.160 --> 09:24.120
It's got a 29 centimeter screen, keyboard, the track pad.

09:25.880 --> 09:27.960
Our speakers are all step above garbage.

09:29.240 --> 09:35.880
But for the elementary school students who were using these in schools in the U.S. during the pandemic,

09:36.440 --> 09:39.400
it was just enough for what they needed, and that's what mattered.

09:40.360 --> 09:46.040
Has two USB ports on the side, USB 2.0 over there, USB 3.0 over here,

09:46.840 --> 09:49.800
and those would be able to work around all those limitations.

09:51.240 --> 09:54.360
The Ethernet adapter would just plug into the switch.

09:56.040 --> 10:01.000
And the USB Wi-Fi was used to connect to the internal network, so I could actually get packages.

10:02.440 --> 10:03.880
Everybody loves a good board shot.

10:04.680 --> 10:12.600
It's got an Intel cell-on quad core at 1.1 gigahertz, 4 gigs of RAM, 64 gigs storage.

10:14.440 --> 10:19.080
I'm come to learn while setting up that the Wi-Fi card in this is rather ace of terror,

10:19.080 --> 10:21.640
and the drivers are not already in the corner, not in the curl.

10:22.680 --> 10:27.000
I gave about a 10-minute try to build a next package for those drivers.

10:27.000 --> 10:27.800
Couldn't do it.

10:27.800 --> 10:28.760
Move done.

10:28.760 --> 10:29.960
Got the USB driver.

10:29.960 --> 10:31.880
USB Wi-Fi adapter implaked it in.

10:32.840 --> 10:34.680
I also love that it had a battery.

10:34.680 --> 10:37.960
I mean, how many people's routers have a battery in it?

10:39.800 --> 10:41.320
That was going to be really useful.

10:41.320 --> 10:45.480
As we knew, we were going to be toggling the electricity in the house frequently.

10:46.280 --> 10:49.720
Sometimes the whole house, maybe just a circuit, and this was going to move around,

10:49.720 --> 10:51.640
based on what, where we were working on.

10:51.640 --> 10:55.800
So I wanted to have the internet working, even if we had the electricity off for a couple of hours.

10:56.760 --> 11:01.320
It also saved me the runny to buy a UPS.

11:03.160 --> 11:04.840
So these are the values that I've decided.

11:05.880 --> 11:08.920
I wanted an inexpensive hardware with two back-up devices available.

11:09.320 --> 11:09.960
Great done.

11:11.160 --> 11:13.720
We produced a book configuration, something went wrong.

11:13.720 --> 11:16.360
I had the entire configuration on a flash drive.

11:17.720 --> 11:20.760
And then minimal maintenance, I didn't really need to update it.

11:20.760 --> 11:25.640
Yeah, okay, security could be a concern, but this is a network for a webcam.

11:26.200 --> 11:29.400
And there's only going to live for three to four months.

11:29.400 --> 11:33.080
So any big security updates, I wasn't going to be that worried about.

11:34.920 --> 11:37.080
Most importantly, it had to be partner compatible.

11:39.080 --> 11:42.120
It had to reboot cleanly and work immediately on reboot.

11:42.120 --> 11:44.040
No human intervention, necessary.

11:44.920 --> 11:48.600
No Linux administration, certainly no next administration,

11:48.600 --> 11:54.360
just had to turn off and on again in order to be working again.

11:55.880 --> 11:59.240
And this did happen several times where we left the electricity off too long and the battery

11:59.240 --> 12:03.800
drained, and then as soon as it became back up, it came right back up and we had internet again.

12:06.920 --> 12:10.200
So I'll show you the next configuration, just because it's so short.

12:11.400 --> 12:16.520
This is the hardware configuration that next, when I installed, next OS through the installer,

12:16.520 --> 12:17.800
I didn't have to touch anything.

12:17.800 --> 12:23.560
It worked great. It's a very basic hardware, you know, off the shelf, nothing custom in here.

12:26.200 --> 12:28.920
Again, nothing special, auto-detect for the win.

12:31.480 --> 12:39.000
I did find that I needed to enable network manager to best play with the LTE modem while studying it up.

12:39.560 --> 12:45.080
The one thing I couldn't figure out how to do in NYX was to set the network manager

12:46.200 --> 12:50.120
cellular access point name. The only thing that I couldn't figure out how to do.

12:50.840 --> 12:57.880
I also want to desktop environment because I was going to be setting this up on the machine itself.

12:57.880 --> 13:04.840
So I wanted to be able to use Firefox and the tech senator on this 29 or 29 centimeter screen.

13:06.680 --> 13:10.360
As a odd constraint in working in the system, you're going to be using.

13:10.680 --> 13:17.320
User was an interesting basic stuff.

13:18.840 --> 13:21.400
These are the packages that I found that I needed along the way.

13:23.160 --> 13:27.080
Especially if tool and contract tools, just to see what was going over the network,

13:27.080 --> 13:29.000
I wanted to see what the webcam was actually doing.

13:29.000 --> 13:34.200
See if it was actually sending a 32 kilobytes per second reliably if it was bursty.

13:34.920 --> 13:35.880
Now I don't remember.

13:38.520 --> 13:41.560
I wanted SSH just in case I needed to manage it remotely.

13:43.320 --> 13:46.360
There's nothing on this network of import to anybody.

13:48.520 --> 13:50.120
I wanted to upgrade it manually.

13:53.400 --> 14:00.760
Basic router configuration and then some serious stuff.

14:01.560 --> 14:07.480
Setting static IP address on the wireless or on the wire network adapter and then setting the

14:07.480 --> 14:09.000
LTE modem to use DECP.

14:10.360 --> 14:15.400
I tried some more complicated firewall rules but ultimately just fell back to really basic stuff

14:15.400 --> 14:19.400
and that worked a lot better than my 20-year-old memories of IP change.

14:21.160 --> 14:26.360
And then lastly, let's give the land some DNS and DECP with DNS mask.

14:27.080 --> 14:31.720
I tried a few different services for DECP.

14:31.720 --> 14:34.200
Eventually just fell back to using DNS mask.

14:34.200 --> 14:37.320
One of the use key, but couldn't.

14:39.320 --> 14:42.520
And then to complete it, this was all the firewall that I actually ended up needing.

14:43.320 --> 14:43.960
This is great.

14:48.840 --> 14:51.160
In practice, I'm getting towards the end of things here.

14:51.480 --> 14:56.200
The LTE coverage ended up being enough.

14:56.920 --> 14:58.920
The new house is on a little bit of the hill.

14:59.560 --> 15:03.400
I can see the tower that I'm pretty sure is the tower that's connecting to.

15:04.280 --> 15:08.600
And it was enough for a webcam and a doorbell.

15:09.240 --> 15:15.240
Really a doorbell camera and a webcam eventually and the thermostat.

15:15.560 --> 15:20.600
Eventually we had some, I think I bought it over like a Google assistant so that I could

15:20.600 --> 15:22.920
hear the doorbell ring, it was a Nest doorbell.

15:25.080 --> 15:27.560
Three-plate. It was enough.

15:27.560 --> 15:32.120
You know, the LTE connections in Pittsburgh are about 20 megabytes per second.

15:32.840 --> 15:33.640
Certainly enough.

15:35.480 --> 15:39.320
I had some concerns about using LTE for home service,

15:40.360 --> 15:42.520
having had wired internet my entire life.

15:43.560 --> 15:44.520
But this one.

15:46.600 --> 15:48.520
And some takeaways, of course.

15:49.080 --> 15:54.360
I'm impressed by how little work I had to do to make this work.

15:55.000 --> 15:57.400
That was as a new to Nick's.

15:58.280 --> 15:59.880
That was really cool.

15:59.880 --> 16:02.760
No, I called it Svelte.

16:02.760 --> 16:07.880
I was explaining to my partner what made it so Svelte.

16:08.520 --> 16:12.120
And because it was thin, it was 95 lines.

16:12.680 --> 16:15.560
Well, I showed you there, it was a distillation of it, but it was really

16:16.200 --> 16:17.240
most of the configuration.

16:19.160 --> 16:21.160
There's 95 lines.

16:25.160 --> 16:26.920
For some reason, I also installed audio.

16:26.920 --> 16:30.840
I don't know why. Maybe because at some point I had to watch them YouTube videos or something.

16:33.640 --> 16:37.720
I remember some guard wheels keeping me from completely messing up.

16:39.240 --> 16:43.480
If I had, you know, a misplaced circle one.

16:43.480 --> 16:45.320
Some basics that we appreciate now.

16:45.960 --> 16:51.560
And still took a lot of searching and experimentation to arrive at the final working configuration.

16:52.280 --> 16:57.720
Some of my reference material was out of date only by about a year, but a year is a long time in Nick's.

16:59.400 --> 17:07.160
One of my biggest mistakes, mostly user error, underestimating how much bandwidth running

17:07.160 --> 17:10.680
I was at Nick's end of apply.

17:11.560 --> 17:13.400
The application command I can't remember at the moment.

17:13.960 --> 17:21.800
And pulling down a whole lot of packages, a couple gigabytes of package on a 10 gigabyte month with plan kind of hurt.

17:23.800 --> 17:28.600
And I got burned by not enabling or not disabling automatic updates early on too.

17:32.120 --> 17:36.600
What I also found was that I wanted more documentation, especially like in line documentation.

17:37.000 --> 17:44.440
And I really wanted some kind of an editor for the next configuration that could give me the documentation

17:44.440 --> 17:48.840
and the available options for every possible thing that I could set.

17:48.840 --> 17:52.520
That would have made my life as Nick's new, a little bit easier.

17:54.520 --> 18:00.440
It took about six hours in total to build this, including reading documentation and examples.

18:00.440 --> 18:05.000
That's still really awesome. Having built that router gesture of myself from scratch.

18:06.600 --> 18:10.040
Condensing approximately three months of work into six hours is really cool.

18:14.440 --> 18:21.320
About three hours of maintenance over six months. That's pretty cool. That ticks the box on the minimum administration.

18:24.760 --> 18:31.160
What's next? The old house. The one I just moved out of is going to get this set up quite literally when I get back from fondsdom.

18:32.120 --> 18:41.000
And then the massive inspiration for this work is Matt Layer. If Matt, if you're in this room and you're seeing this presentation, thank you, you are a god.

18:43.800 --> 18:45.400
That's it. Thanks, Yens.

18:52.360 --> 18:55.880
Thank you very much. Are there any questions about this presentation?

18:56.680 --> 18:57.880
Probably take one question.

19:02.120 --> 19:11.000
I found that they told us about that. I guess this goes out there, or on this there are like a nice way to get a list of available options in Nick's illness or an ex-starvan.

19:13.000 --> 19:15.000
It is repeat the question, do you?

19:15.000 --> 19:23.000
Yes. If Domen's asking if there are ways to generate a list of the options that are available,

19:24.600 --> 19:27.800
search through the options to see if, see what's available.

19:28.680 --> 19:30.520
I don't know the question.

19:32.360 --> 19:36.600
Yeah, that's searching through the documentation as about it and reading code.

19:38.920 --> 19:45.960
So, we do have time for more questions. I have one question. Speak up for the next.

19:48.040 --> 19:52.280
The second, like not the next talk, but the talk after that. Ramsey, he's just dressing here.

19:52.840 --> 19:55.080
All right, you're back. I can see you. Thank you very much.

19:56.040 --> 19:58.040
You already have some experience?

20:02.360 --> 20:04.360
How's that any further questions? Thank you.

20:10.520 --> 20:18.920
Mostly just running updates, like taking the machine to my other house, running updates, just to help it.

20:19.880 --> 20:25.160
And just making sure the LTE not him was working. I'm actually looking at it.

20:26.440 --> 20:32.600
Like looking at the motor, but looking at the machine is really minimal.

20:32.600 --> 20:34.840
Yeah, I probably could have not done anything.

20:34.840 --> 20:38.600
So the question was, what are you doing in those three hours?

20:38.600 --> 20:41.160
Just repeat, oh yeah, yeah, yeah, that was the question.

20:41.160 --> 20:42.840
What is that? What are you doing in the three hours?

20:42.840 --> 20:45.960
Just give a nice few feet to talk to the speaker after this talk. Thank you very much.

20:45.960 --> 20:47.560
Another one. I have a glass for the ticket, please.

20:48.920 --> 20:51.880
Thank you very much.

