树莓派刷机及库制作使用

294 阅读3分钟

4月「掘金·日新计划」第16天

一、常用指令

  1. 重启:sudo reboot
  2. 关机:sudo shutdown -h now
  3. 查看CPU温度:vcgencmd measure_temp
  4. 查看有无WiringPi库:gpio -v
  5. 查看树莓派io口:gpio readall
  6. 查看Linux版本:uname -r
  7. 查看某个指令在哪里:which

二、刷机及备份

1.1、刷机

账号:pi 密码:raspberry

  1. Win32 Disk lmager软件,写入镜像

    直接HDMI连接,可以登录

  2. 登录启动

    1. 直接HDMI连接,可以登录

    2. 串口登录

      1. 解除蓝牙绑定,config.txt文件

        dtoverlay=pi3-miniuart-bt
        
      2. 配置串口,cmdline.txt文件

        dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
        
    3. 网络登录

      1. 连接网络,添加账号密码,重启

        1. 添加账号密码

          sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
          sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
          // nano ctrl+o保存,ctrl+x退出
          把下面添加进去
          network={
                  ssid="无线名"
                  psk="密码"
          }
          
        2. 固定ip(最好不要固定)

          sudo vi /etc/rc.local
          把下面添加进去,IP地址用指令ifconfig出来
          ifconfig wlan0 IP地址
          
        3. 连不上怎么办

          ls /sys/class/net //查看是否有wlan0,判断驱动是否加载
          sudo  iw dev wlan0 scan |grep  SSID //查看能否搜索到你wifi
          //搜不到解决方法
          输入:sudo raspi-config
          选择第二个:Network 0ptions
          选择:N2 Wi-fi
          向下找到选择:CN China
          回车
          输入WiFi名
          输入密码
          重启树莓派,查看是否连接wifi
          
      2. 打开HHS

        输入:sudo raspi-config
        选择第五个:Interfacing Options
        选择hhs
        
      3. 登录,使用SecureCRT或MobaXterm

    4. xrdp登录,图形方式

      1. 下载安装xrdp

        sudo apt-get install xrdp
        
      2. 打开远程桌面,输入ip连接

  3. 换源

    1. 更新源

      打开文件:sudo vi /etc/apt/sources.list
      添加源地址
      deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
      
    2. 更新vi

      更新源:sudo apt-get update
      更新vim:sudo apt-get install vim
      

1.2、备份系统

微信公众号:编程那些事

  1. Win32 Disk lmager备份

  2. Linux dd命令

    1. 查看SD卡实际设备,lsblk

    2. 备份

      sudo dd bs=4M if=/dev/sdc | gzip>/home/..../raspberry.gz
      
    3. 还原

      sudo gzip -dc /home/..../raspberry.gz | sudo dd bs=4M of=/dev/sdc
      

三、文件共享

  1. 使用FileZilla软件
  2. sftp://ip地址,用户名,密码,连接

四、库

4.1、静态库制作及使用

静态库的格式xxx.a

  1. 生成xxx.o文件

    1. gcc 文件名 -c,-c生成.o,-s生成汇编.s 例:gcc ser.c -c
  2. 生成静态库文件

    1. ar rcs lib库名.a xxx.o
    2. 例:ar rcs libser.a ser.o
    3. ar是指令,rcs是指令参数,可以ar --help查看ar的参数说明
  3. 使用

    1. gcc server.c -lser -L ./ -o ser
    2. gcc 编译的文件 -l库名 库查找路径(默认查找/usr/lib /usr//local/lib),-L当前路径

4.2、动态库制作及使用

动态库格式xxx.so

  1. 生成动态库文件

    1. gcc -shared -fpic 文件名 -o lib库名.so
    2. -shared:指定生成动态库
    3. -fpic:fpic选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码。
    4. 例:gcc -shared -fpic ser.c -o libser.so
  2. 使用

    1. 编译和静态库一样,gcc server.c -lser -L ./ -o ser

    2. 运行

      1. 动态库放入/lib,/usr/lib,/usr/local/lib文件下

      2. 添加环境变量

        1. export LD_LIBRARY_PATH="动态库位置pwd命令出来"
        2. 可以写个.sh,因为这个环境变量是临时的
        3. 也可以修改终端.bashrc文件 source .bashrc生效