Linux / 嵌入式 · 2021-11-13

树莓派装系统历程

修改wifi

/boot/network-config


wifis:
  wlan0:
    dhcp4: true
    optional: true
    access-points:
      "home network":
        password: "123456789"

 

加多一张网卡优先级和自动启用设置, 200为低优先级, 默认为100

eth1:
dhcp4: true
dhcp4-overrides:
route-metric: 200

 

修改分辨率
7寸hdmi显示器插电脑上直接能用~如果接树莓派的话就得先在电脑上修改一下配置文件了。没修改配置文件前,直接接显示器会出现不满屏现象

打开摄像头,I2C和SPI,关闭低电压报警

在树莓派官网下载Raspbian 镜像,将镜像烧到TF卡中,打开TF卡根目录下的config.txt文件,在文件最后加入以下代码:

  • max_usb_current=1
  • hdmi_group=2
  • hdmi_mode=1
  • hdmi_mode=87
  • hdmi_cvt 800 480 60 6 0 0 0
    config_hdmi_boost=4
    avoid_warnings=1
    dtparam=i2c_arm=on
    camera_auto_detect=1
    dtparam=spi=on
    start_x=1 # essential
    gpu_mem=128 # at least, or maybe more if you wish
    disable_camera_led=1 # optional, if you don’t want the led to glow

     

就是这样,就可以正常使用。

dtparam工具安装,编译下面源码后,执行

echo “/opt/vc/lib” >> /etc/ld.so.conf.d/libc.conf

sudo ln -s /boot/firmware/overlays /boot/overlays

https://github.com/raspberrypi/userland … ers/libfdt
https://github.com/raspberrypi/userland … /dtoverlay
Clone the repo and run ./buildme is the easiest way to build everything there.

 

 

删除没用的服务
systemctl disable cloud-init-local cloud-init cloud-config cloud-final ufw unattended-upgrades rsync multipath-tools
systemctl stop cloud-init-local cloud-init cloud-config cloud-final ufw unattended-upgrades rsync multipath-tools

 

sudo apt-get install -y tmux software-properties-common autossh build-essential yasm libtool automake gettext libz3-dev libbz2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev cmake-curses-gui ca-certificates libmp3lame-dev libv4l-dev libsoup2.4-dev 

sudo UPDATE_SELF=0 rpi-update

【究极方法】本地更新

即使跳过自更新,下载速度也太慢,还经常断流。可以考虑本地更新:

先在PC上下载固件(可以用一下魔法上网):

curl -L https://github.com/Hexxeh/rpi-firmware/archive/master.tar.gz -o master.tar.gz

然后用scp传到树莓派上的/root目录下,之后ssh连上树莓派:

# 切换到root用户(第一次切到root记得用sudo passwd root激活)
su

# 进入.rpi-firmware目录并解压(如果没有该目录,就创建一个)
mkdir /root/.rpi-firmware
cd /root/.rpi-firmware && tar -xvzf /root/master.tar.gz

# 【注】这一步是我自己加的,可能是遇到了特殊情况。
# 检查一下当前目录中是否有*.elf文件,如果没有,就说明那些文件
# 在当前目录下的一个叫rpi-firmware-master的子目录下
# 把里面的文件全拷贝到当前目录中(/root/.rpi-firmware)
cp -r ./rpi-firmware-master/* ./

# 执行本地更新
UPDATE_SELF=0 SKIP_DOWNLOAD=1 rpi-update

# 重启
reboot

4 检查

对于树莓派4的一个检查方法:

ls -la /opt/vc/lib

看该目录下是否有libEGL.solibGLESv2.so这两个库,更新前这两个库都是没有的。

如果这两个库出现了,并且是真正的库而不是软链接,就说明更新大概可能也许成功了吧。