树莓派打造魔镜系统的完全教程


Complete Setup Tutorial

KirAsh4Moderator
about a year ago

What will follow this post will be a series of steps to go from taking a brand new raspberry Pi 3 out of the box to having MagicMirror² up and running. I will try to keep things in order but that’s no guarantee. I will however link each post back into this one in the correct order, so you’d be able to just click on the link and jump straight to that specific post.
The Raspberri Pi setup is as follows:

Note: I have no affiliation with the listed vendors. I list them because that’s where I got the parts from. You can buy them wherever you buy your daily dose of electronics.
    Raspberry Pi 3 - Model B - ARMv8 with 1GB of RAM (Adafruit)
    5V/2.4A Power supply (Adafruit)
    8GB Sandisk Ultra Class 10 MicroSDHC card (Amazon)
    ASUS ProArt PA248Q Monitor (Amazon)
    Belkin 6’ HDMI Cable (Amazon)
    Mini 2.4G Wireless Keyboard & Mouse Combo (eBay)

Notes:
    The Raspberry Pi 3 needs a hefty power supply to run. You don’t need a 2.4Amp one, but I wouldn’t go below 2Amps.
    You want a high speed SD card. Since the entire OS runs off of it, get a fast one. eLunix.org has a comprehensive list of what’s tested and works. You can find the list here.
    Monitor and choice of cable is obviously up to you.

I use a mini keyboard for any/all of my projects that require a temporary solution. Even those that need a permanent one. They’re smaller than a regular sized one. And this one in particular is also rather thin. And I like that they are wireless. it cuts down on the cords needed to be connected to the device itself. These ones have a miniature USB dongle. Again, personal choice.
I will be running this wirelessly and will make a note of it again in the setup part.
I will be using my Windows 10 system for the initial setup of the card containing the operating system. What you use is up to you, however keep in mind that any screen captures I take and any software I use during this process will be from a Windows 10 platform.
DO NOT INSTALL MagicMirror² as the root user! Always do it as the regular, non privileged pi user and learn to use the sudo command instead. “But why?”, you ask, “… if it’s in my house, and on my network, and not on the internet.” That’s all fine, however we don’t control every possible module that others contribute and someone, or something, could expose your Raspberry Pi, or your entire network to the outside world. Just don’t do it.
This entire tutorial is based on you having physical access to the Raspberry Pi. After all, you will need that to set it up, but even at the end, installing MagicMirror², it is assumed you are doing that directly on the Raspberry Pi, and not through a remote SSH login.

Section 1: Preparing the SD card with the operating system
Section 2: Booting up the Raspberry Pi and configuring it
Section 3: Configuring wireless networking
Section 4: Cleaning up and updating the operating system
Section 5: Installing MagicMirror² & Configuring Raspberry Pi for MagicMirror²
Section #: … beer?

A Life? Cool! Where can I download one of those from?

KirAsh4Moderator
about a year ago

Preparing the SD card

This may seem dumb but if not done properly, you may end up with a card showing you less available storage than it actually has on it. Specially if you are trying to redo it because you made a mistake and have to start over.

Required tools:

(I will leave the installing of these as an exercise to the user. I’m not going to cover that here.)
7-Zip: http://www.7-zip.org/ (because Window’s builtin Zip facility is extremely slow)
SD Card Formatter: https://www.sdcard.org/downloads/formatter_4/
Win32 Disk Imager: https://sourceforge.net/projects/win32diskimager/

Step 1

Download the operating system from the Raspberry Pi Foundation web site:
https://www.raspberrypi.org/downloads/raspbian/
As of this writing, the most recent version is Jessie, released May 27th, 2016. You want to pick the full Jessie image.

0_1465929096957_001-rpi-jessie.png

Step 2

Once you’ve downloaded the file, find it in whatever location you saved it and right click on it. On the context menu, pick 7-zip -> Extract Here.

0_1465929311483_002-7zip-extract-01.png

0_1465929378631_003-7zip-extract-02.png

Step 3

While the file is extracting, you can start preparing the SD card itself. Pop it into your reader and open SDFormatter. Make sure the drive letter is the correct one. The Volume Label doesn’t matter since it will get overwritten anyway. (In the screen capture, you can see the Size at 60MB. That’s because I had previously used this card on a Raspberry Pi, and since Windows can’t read that partition, it only lists 60MB. In order to fix that, you must perform the following steps!)

0_1465929557548_004-sdformatter-01.png

Click on Option and select FULL (erase) as the FORMAT TYPE

0_1465929605540_005-sdformatter-02.png

Under FORMAT SIZE ADJUSTMENT, pick ON

0_1465929658015_006-sdformatter-03.png

Next click on the Format button and wait a few seconds. You may get an error about something being unsupported, that’s fine, you can ignore it. If all went well, at the end of the format, the screen will look like this:

0_1465929733082_007-sdformatter-04.png

Notice the Size, it should list the approximate size of the card, in this case it’s an 8GB card, so that number is correct.)

Step 4

Now it’s time to write the operating system image onto the card. It should be done extracting by now and you should have an .img file now. For the May 27th release, the file name is 2016-05-27-raspbian-jessie.img. For this step, you’re going to use the Win32 Disk Imager software. It must be run as the Administrator user, otherwise it will fail.

Click on Start, find the program in your menu, right-click on the name of it and select Run as Administrator. On my Windows 10 system, the menu looks like this:

0_1465930048110_008-imagewriter-01.png

When the program launches, click on the tiny folder icon to the right of the empty field, then browse to where your Raspbian Jessie image is located and select it. Again, verify the drive letter to the right of that! While the program will only pick external drives, if you happen to have something else in your reader, it will happily list it and possibly write to it if you don’t check that.

0_1465930234990_009-imagewriter-02.png

Once you’ve checked the correct drive, click on Write and wait for it to finish.

0_1465930287990_010-imagewriter-03.png

0_1465930292479_011-imagewriter-04.png

0_1465930296328_012-imagewriter-05.png

Once completed, Eject the card. I know that sounds silly, but I know way too many people who don’t know to Eject any cards or USB thumbdrives.They simply yank them out. There’s only a small number of brands on the market that will be fine if you yank them out, however the majority should be ejected first. That will signal any latent process to finish writing to the card or drive before unmounting it from the operating system. You are now ready to insert the card into your Raspberry Pi and boot it up for the first time.

A Life? Cool! Where can I download one of those from?
0
KirAsh4Moderator
about a year ago

Booting up the Raspberry Pi and configuring it

Now that we have the operating system on the card, we’re ready to boot up the Raspberry Pi (rpi). Put the card into the slot on the bottom of the rpi, plug in your monitor cable, turn the monitor on. Whether you are using a wired or wireless keyboard and mouse, make sure those are plugged in, then plug in power to the rpi itself.

The first boot up takes a bit longer than usual because it’s reconfiguring itself and setting all the defaults. If all went well, it should boot straight into the graphical interface. I apologize but I forgot to take a screen capture of this, but in the upper menu, click on the Terminal icon. It looks like a black monitor. This opens up a black terminal window, logged in as the pi user.

We are now going to run through the basic configuration of the rpi itself. This will result in a rather long post with lost of screen captures. You’ve been warned. :)

Step 1

In the terminal window, type in sudo raspi-config and hit return/enter. This will launch the Raspberry Pi Software Configuration Tool. (Navigation is done with the arrow keys, the TAB key allows you to jump from the selection menu to the buttons on the bottom, and the space bar is used to select or un-select menu items.)

0_1465931806571_001-raspiconfig.png

The first item, Expand Filesystem is already highlighted for you, so just hit enter/return on that. This will instruct the rpi to resize the partition to use the full size of the card.

0_1465931869981_002-raspiconfig.png

You do not need to immediately reboot, so let’s move on.

Step 2

Now we’re going to configure the Internationalisation Options. This will configure your rpi to use the correct language, timezone, and others. Select that option (5) and hit enter/return.

0_1465931969915_003-raspiconfig.png

Select the first option, Change Locale (I1)

0_1465932007733_004-raspiconfig.png

Now scroll to your preferred language using the up/down arrow keys. In my case, I’ll be using US English as opposed to the default GB English. Press your space bar to select your preferred language, and don’t forget to un-select the default. one. And I specifically picked the UTF version because it supports any Unicode character. ISO-8859-1 only supports the first 256 characters.

0_1465932196146_005-raspiconfig.png

0_1465932208265_006-raspiconfig.png

Once you complete that step, you’re back at the main menu. Select the Internationalisation Options again, and go to the second option, Change Timezone (I2)

0_1465932259726_007-raspiconfig.png

Start by picking your region, then the respective timezone that you’re in. In my case, I’m in the US, living in the Mountain timezone

0_1465932328231_008-raspiconfig.png

0_1465932339295_009-raspiconfig.png

Once again, when you finish that, it takes you back to the main menu. Get back to the Internationalisation Options and pick the third option, Change Keyboard Layout (I3). The default is a standard UK, full size keyboard. If that’s what you’re using, then you don’t need to do this. However, it’s still worth looking at in case you do happen to have a different keyboard. I wanted to change mine to a US keyboard instead.

0_1465932457562_010-raspiconfig.png

By default the Generic 105-key (Intl) PC version is selected. For most cases, that’s fine, just hit enter/return on that and it will take you to the layout option. Note the default UK settings:

0_1465932529172_012-raspiconfig.png

Since I wanted a US layout, I selected Other.

0_1465932579015_012-raspiconfig.png

On the next screens, I picked the English (US) for the country, again English (US) for the layout,The default for the keyboard layout, and No compose key

0_1465932880569_013-raspiconfig.png

0_1465932893456_014-raspiconfig.png

0_1465932901366_015-raspiconfig.png

0_1465932910201_016-raspiconfig.png

At the end of this, it will ask you what you want the CTRL-ALT-Backspace combination to do. Normally it does nothing, but it can be configured so that if you hit that combination, it instantly kills the X-Server (and depending on the OS setup, will restart it fresh.) This was a more applicable when X11 was still in its infancy and things crashed a lot. Over the years, things became more stable, threads started getting removed from the main process, so applications could be killed and restarted without needing to completely kill the X-Server itself. However, it’s still around today. I have yet to have the X-Server on my rpi crash on me, ever. And if things really get completely bogged down, I just restart it remotely. Specially since this isn’t going to have a keyboard on it, there’s no sense in configuring this option, so I left it as No.

0_1465933095320_017-raspiconfig.png

Ok, one more time, go back into Internationalisation Options and pick the last item, Change Wi-fi Country (I4). This will set the correct channel frequencies available. In the US, channels 1 through 11 are common. Channels 12 and 13 are allowed, but for low power only, and channel 14 is forbidden. For the rest of the world, channels 12-13 are not restricted. And for those in Japan, well aren’t you guys special … you get to use channel 14 as well (only specific protocols.)

0_1465933365567_018-raspiconfig.png

0_1465933378615_019-raspiconfig.png

0_1465933391670_020-raspiconfig.png

Step 3

Scroll down to Advanced Options and select it. Pick the second option, Hostname (A2). Here you will give your rpi a name. By default it’s raspberrypi but why be like the rest of the world? You can change that.

0_1465933619435_023-raspiconfig.png

Make sure you read the warning that pops up, then set the name to whatever you want. For example, I changed mine to magicpi … after all, it will be running MagicMiror! (the screen shot shows the default setting)

0_1465934297102_025-raspiconfig.png

Once back at the main screen, pick Advanced options again and scroll down to SSH (A4). I like having the SSH server running because it allows me to connect to the rpi from anywhere on my network using a terminal program. So I don’t need to have a keyboard and mouse connected to the rpi itself, I can log into it using a different machine. But if you don’t need/want this, you can turn off/on the SSH server. In this case, I wanted mine turned on

0_1465933788724_026-raspiconfig.png

0_1465933800224_027-raspiconfig.png

Optional Camera Step
Are you using a Raspberry Pi specific camera? If so, you need to enable the rpi to work with it. Scroll down to option 6, Enable Camera and turn it on.

0_1465933463193_021-raspiconfig.png

Step 4

Done! When you’re back at the main screen after the last step, press the TAB key and highlight Finish at the bottom and hit return/enter. It will ask if you want to restart to which you will say Yes of course.

0_1465933849440_028-raspiconfig.png

0_1465933905935_029-raspiconfig.png

A Life? Cool! Where can I download one of those from?
2
KirAsh4Moderator
about a year ago

Configuring Wireless

Tired of the mile long posts? Well, here’s a short one. As I noted earlier, I will be running my rpi wirelessly. If you are physically connecting it to your network using a cable, you can skip this post.

Step 1

Once your rpi reboots and you’re back at the graphical desktop, launch the Terminal program (it’s a black monitor icon on the menu bar at the top.) Edit the wpa_supplicant.conf file to add your network information

0_1465935687240_030-wifi-config-sm.png

Step 2

At the bottom of the contents, add your network information. Note the quotation marks as this is specially important if you have a space in your wireless network name. Same for the password part. When you’re done editing, press CTRL-X to exit, saying Y(es) to saving the changes.

0_1465935941427_031-wifi-config-sm.png

Step 3

Time to reboot and make sure the rpi comes up and successfully connects to your wireless network.

0_1465936127908_032-wifi-config-sm.png

If all went well, when the rpi reboots and comes back to the graphical desktop, in the upper right corner you should see a familiar blue WiFi icon.

0_1465936267885_wifi-icon.png

And if you want to make double sure that it connected, you can open a Terminal window again, and type in ifconfig and look for the wlan0 section

0_1465936892163_wifi-ifconfig-sm.png

You’re looking for it to have a valid IP that belongs to your network. The specific private network that this rpi is connected to is in the 192.168.25.x range, so this validates that the rpi connected and received an IP from the DHCP server.

If you are physically connecting the rpi to a network hub or router, you need to look at the eth0 section at the top.

So what if it failed? Then you’d want to check a few things:

Did you enter the corect information in the wpa_supplicant.conf file above? Go back and check again.
Is your wireless router set to block unknown hosts? In a secure environment, it could be (mine is.) Make sure you allow it to connect and receive an IP from the router.
Are you in range of the wireless router?

A Life? Cool! Where can I download one of those from?
1
KirAsh4Moderator
about a year ago

Cleaning up and updating the operating system

Ready for some fun? Let’s clean up the rpi OS and remove some of the big packages and a few things that we won’t need. This is but a small list of apps, but they are by far the biggest ones aside from the X-server itself.

First, let’s look at the current state of the storage:

0_1465938488348_033-df-stock-sm.png

The df command will show you storage across the entire file system (or it can be restricted with specific options.) The -k option shows the values in 1K block format, while the -h option refers to the human readable option, which prints the sizes in powers of 1024. So we can see the /dev/root/ file system is at 48% full. That’s just the default Jessie installation!

Now, for all intents and purposes, this is just fine. It still has over 50% of the file system free and if you aren’t doing anything else with it, this is fine, you can leave it alone. However, I run all of my systems lean, meaning I will remove all (or most) of the stuff I won’t be using for the specific application. And in this case, I only removed the big space hogs that I know I will never use. There are a lot of packages that you could remove, since MM does not need them, but I didn’t care to do that … yet. So let’s move on.

Step 1

Remove unnecessary software packages. I started with the stuff I know I won’t be using and the big stuff!

idle3            java-common        libreoffice        minecraft-pi
scratch            nuscratch        penguinspuzzle        python-minecraftpi
python3-minecraftpi    smartsim        sonic-pi        wolfram-engine

The command I used to remove all of them is:
sudo apt-get remove –purge idle3 java-common libreoffice* minecraft-pi scratch nuscratch penguinspuzzle python-minecraftpi python3-minecraftpi smartsim sonic-pi wolfram-engine

NOTE: on libreoffice I added a star at the end, making it libreoffice*. This is because there’s a single libreoffice package, as well as several libreoffice-* packages, and if you don’t add the star, it will only remove the one, while leaving all the rest.

When you run that, it will collect everything that needs removing and present you with a [Y/n] question. Notice the amount of space that’s about to be reclaimed:

0_1465939281578_034-aptget-remove.png

You’re reading that right, a whopping 1,112MB, or 1.1GB worth of space. Let that run and remove all those packages.

Step 2

Once completed, we’ll also remove those that aren’t needed anymore:
sudo apt-get autoremove
It will present you with a list of packages that aren’t used anymore (since you just removed all those other ones above). Again, say Y(es) to the question:

0_1465939485028_035-aptget-remove-sm.png

Now, for comparison, let’s look at the storage usage again:

0_1465939560323_036-df-clean-sm.png

Look at that, we went from 48% full, down to 30%, or from 3.3GB down to 2.1GB used. That’s a lot of space reclaimed!

Step 3

Moving on. It’s time to run an update/upgrade on the system packages. You do that by entering the following commands:
sudo apt-get update
sudo apt-get upgrade
Or if you want to do them both together:
sudo apt-get update ; sudo apt-get upgrade

First the update:

0_1465939942396_037-aptget-update-sm.png

Followed by the upgrade:

0_1465939959016_039-aptget-update-sm.png

So why two separate commands? The update command will refresh the mirror list and available packages from the distribution mirrors. This sets up the next command, upgrade, with the necessary files to compare against. Then the upgrade command will compare all the packages that are currently installed with the mirror lists and show you all the ones that need to be upgraded. You did say Y(es) to that, right?

Step 4

The last thing we need to do is make sure the firmware on the rpi is current. Performing a sudo apt-get upgrade does not always trigger this (in fact, I have yet to see it do that), so we’ll do it manually. The command for that is:
sudo rpi-update

0_1465940236832_042-rpiupdate-sm.png

Note that it requires a reboot once that’s completed. A sudo reboot will get that done for you.

Now let’s look at the storage usage once more:

0_1465940359726_043-df-final-sm.png

That’s not too shabby at all. 2.3GB out of 7.2GB used … I’m happy with that.

You are now ready to start installing MagicMirror²!

A Life? Cool! Where can I download one of those from?
3
KirAsh4Moderator
about a year ago

Installing MagicMirror²

Thanks to @MichMich and his outstanding installation script, installing MagicMirror² is pretty straight forward.

Step 1

After you’ve configured and updated your Raspberry Pi and rebooted, launch a Terminal window again and type in
bash -c “$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)"

This will start the installation process for you:

0_1466018397542_044-mm-install.sm.png

Step 2

A few configurations still need to be done on the Raspberry Pi, specific for MagicMirror². Let’s start with rotating the display vertically. For this, you’ll need to edit one of the boot configurations. (Please note: If you plan on running MagicMirror² as a landscape (or wide) display, you do not need to do this.)

Type in sudo nano /boot/config.txt and add the following to the file. Where you add it doesn’t really matter:

# Rotate display vertically
display_rotate=1

Press CTRL-X when you’re done, and say Y(es) to saving the changes.

0_1466022914081_047-configure-rpi.sm.png

Step 3

Let’s disable the screen saver and screen blanking as well. This needs to be done in two places. First in the autostart configuration:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

And add the following to the bottom of the file:

@xset s noblank
@xset s off
@xset -dpms

0_1466022921947_049-configure-rpi-sm.png

Next in the X-windows manager configuration:
sudo nano /etc/lightdm/lightdm.conf

Scroll down to the [SeatDefaults] section and look for the xserver-command line below that. Change the line to look like this:
xserver-command=X -s 0 -dpms (so you’re removing the # on the front, and adding the missing bits at the end.) Again, hit CTRL-X and say Y(es) to saving the file.

0_1466023313607_050-configure-rpi.sm.png

Step 4

A Raspberry Pi is configured to automatically shutdown parts of the hardware that aren’t actively in use. This includes the WiFi driver. This will cause MagicMiror² to occasionally fail to fetch updates for things like the newsfeed, weather, and others. You can disable the power saving feature for the WiFi from the interfaces configuration file:
sudo nano /etc/network/interfaces

Find the wlan0 section and add wireless-power off below it:

0_1466023583053_051-configure-rpi.sm.png

Once you’re done with that, reboot the rpi one more time with sudo reboot and when it comes back up again, open a Terminal window and type in iwconfig and you should see that the Power Management is now off:

0_1466024885350_052-iwconfig.sm.png

At this point you have completed the basic install for MagicMirror². The next step is to create a valid configuration file for it so you can test it out. You can do that by going into the MagicMirror’s config folder:

pi@magicpi:~ $ cd MagicMirror/config
pi@magicpi:~/MagicMirror/config $ cp config.js.sample config.js

You can now try to start MagicMirror².

pi@magicpi:~/MagicMirror/config $ cd $HOME/MagicMirror
pi@magicpi:~/MagicMirror $ npm start

If everything went well, your screen should load up the MagicMirror² interface. The weather module will tell you that you don’t have a valid APPID, but once set, your screen should look like this:

0_1466023961725_mm-capture.png

Congratulations!

A Life? Cool! Where can I download one of those from?


文章作者: zsh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zsh !
评论
 上一篇
一文掌握:Matplotlib+Seaborn可视化 一文掌握:Matplotlib+Seaborn可视化
Seaborn和Matplotlib是Python最强大的两个可视化库。Seaborn其默认主题让人惊讶,而Matplotlib可以通过其多个分类为用户打造专属功能。
2020-08-08
下一篇 
微带与共面波导CPWG设计 微带与共面波导CPWG设计
经常有射频同行问到微带线设计的时候,采用哪种微带形式更好?或者说普通微带线和CPW/CPWG共面波导结构各自有那些优点缺点?这个问题看似简单,却很少有资料给出比较肯定的答案,下面将结合Rogers的相关文献,对这个问题进行解答。
2020-08-08
  目录