raspberry pi init

 ̄綄美尐妖づ 提交于 2019-12-04 21:13:45

1:wifi
2:sudo apt-get update
3:sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin
5:sudo raspi-config进行中文设置
    ->Localisation Options
    ->Tab键切换到Select,回车,然后选择change_locale
    ->Configuring locales窗口中,找到zh_CN.UTF-8 UTF-8,通过空格选中,确认后再次选择zh_CN.UTF-8,然后重启机器,完成Raspbian中文环境配置
6:sudo apt-get install qt5-default pyqt5-dev pyqt5-dev-tools

7:https://wiki.openlp.org/Development:Linux_Development_Environment

8:https://packages.debian.org/sid/arm64/python3-pyqt5.qtwebengine/download

dpkg -i xx.deb

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

mkdir -p /usr/local/python3

 tar -zxvf Python-3.6.1.tgz

./configure --prefix=/usr/local/python3

./configure --with-ssl

 

先把整个raspbian系统升级到最新。

这一步不是必须的,可能用时较长,完成后可能需要重启。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

 

我们就在当前用户的home目录下进行吧,进到此目录

cd ~

 

安装python 3.4需要的依赖。有些东西可能已经存在了,会自动忽略。

sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev libssl-dev openssl libgdbm-dev liblzma-dev libreadline-dev libncursesw5-dev

这样编译出来的Python 3.4仍会缺少tkinter模块(用于GUI图形用户界面编程),在树莓派上可能用不到这个模块,所以刻意不编译它。

如果想使用tkinter,或想编译一个完整的Python,在这里加上tk tk-dev tcl tcl-dev这几个依赖包即可。

 

下载Python源码、解压。

第1行的命令,从Python官网下载3.4.3版的源码。

第2行的命令,把源码解压到当前目录下的Python-3.4.3目录里。

wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz
tar zxvf Python-3.4.3.tgz

 

配置、编译、安装。如果顺利的话,在树莓派B+用时1小时20分钟左右,编译后源码的目录会膨胀到130 MB。

第2行后面的参数表示,我们要把新版Python安装到/opt/python3.4目录下。

在make命令后再执行一次make命令(会运行极短时间),既可看到仍有哪些Python模块无法编译,然后排查原因(通常是没安装相应的依赖包)。

cd ./Python-3.4.3
./configure --prefix=/opt/python3.4
make
make
sudo make install

可以给./configure后面加上优化选项,如下是打开LTO优化:

./configure --prefix=/opt/python3.5 --with-lto

推荐打开这个选项,这个选项在Python 3.5及以上版本才有。

(还有关于GPO的优化选项,一般在树莓派上用不到GPO优化,这里就不说了,需要请查阅文档。)

 

创建软链接。创建之后,打python3就能启动Python 3.4.3了。

第一行删除已有的指向Python 3.2.3的软链接。

第二行创建/usr/bin/python3这个软链接指向Python 3.4.3。

第三行创建一个pip的软链接。pip已经被官方集成到Python 3.4里,用它安装pypi上的第三方模块很方便。

sudo rm /usr/bin/python3
sudo ln -s /opt/python3.4/bin/python3.4   /usr/bin/python3
sudo ln -s /opt/python3.4/bin/pip3.4         /usr/bin/pip3.4

 

 

The following packages were automatically installed and are no longer required:
  erlang-base erlang-crypto erlang-syntax-tools fonts-lato jackd libboost-thread1.62.0 libdc1394-22
  libdca0 libde265-0 libdvdnav4 libdvdread4 libfaad2 libilmbase12 libkate1 liblilv-0-0
  libmjpegutils-2.1-0 libmms0 libmodplug1 libmpcdec6 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libofa0
  libopencv-calib3d2.4v5 libopencv-features2d2.4v5 libopencv-flann2.4v5 libopencv-highgui2.4-deb0
  libopencv-objdetect2.4v5 libopencv-video2.4v5 libopenexr22 libpcre16-3 libqt5concurrent5
  libqt5scintilla2-l10n libruby2.3 libscsynth1 libsctp1 libserd-0-0 libsord-0-0 libsoundtouch1
  libspandsp2 libsratom-0-0 libsrtp0 libvo-aacenc0 libvo-amrwbenc0 libwebrtc-audio-processing1
  libwildmidi-config libwildmidi2 libxcb-icccm4 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0
  libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0 libyaml-0-2 libzbar0 rake ruby ruby-did-you-mean
  ruby-minitest ruby-net-telnet ruby-power-assert ruby-test-unit ruby2.3 rubygems-integration
  supercollider-server
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  fcitx-frontend-qt5 gstreamer1.0-plugins-bad libegl1-glvnd-nvidia libegl1-mesa-dev libfcitx-qt5-1
  libglvnd-dev libgstreamer-plugins-bad1.0-0 libqt5dbus5 libqt5designer5 libqt5gui5 libqt5help5
  libqt5network5 libqt5opengl5 libqt5printsupport5 libqt5scintilla2-12v5 libqt5svg5 libqt5widgets5
  libqt5x11extras5 libqt5xml5 libqwt-qt5-6 libwayland-egl1-mesa python3-pyqt5 qjackctl
  qt5-gtk-platformtheme sonic-pi
0 upgraded, 0 newly installed, 25 to remove and 111 not upgraded.
10 not fully installed or removed.
After this operation, 57.5 MB disk space will be freed.
Do you want to continue? [Y/n] 
 

sudo apt-get install libegl1-glvnd-nvidia

sudo apt --fix-broken install
 

 

ls -al /dev/ttyS0

sudo gpasswd --add pi dialout

groups pi

 

总结了一下RPi3中串口的状态和设置方法。分享一下。附件  Rpi3调试笔记.zip (3.69 KB, 下载次数: 18) 为格式化文字,更可读。
前面部分是讲解,不想看的直接跳到最后两节照着做就行。

1. 串口
1.1. Rpi3中串口的用途
在RPi3中,有两个串口:
从RPi2继承过来的高性能串口是ttyAMA0,在RPi3中默认分配给蓝牙模块;

另一个是外接的低性能串口,ttyS0,默认情况下,ttyS0给Linux调用,用来串口登录设备。

两个串口的用途、名称及映射关系总结如下:
/dev/ttyAMA0 -> Bluetooth
/dev/ttyS0 -> GPIO serial port



基于以上,两个串口在默认情况下都不能用于设备控制。

1.2. Rpi3中串口的初始状态
ttyAMA0是分配给蓝牙模块使用的,也是默认开启的。如果想让蓝牙正常工作,这个串口不要动,使用ttyS0来进行设备控制就可以。如果不使用蓝牙模块,想使用高性能串口进行设备控制,也有办法,放在最后。
ttyS0的开启/关闭状态,可以通过
sudo raspi-config ->Advanced Options ->Serial
来设置,对应的配置文件内容是:
cat /boot/config.txt | grep uart
enable_uart=1
图形和命令两种方式是等效的。如果想使用ttyS0进行设备控制,必须先开启它。重启系统生效。

1.3. 设置ttyS0
默认ttyS0是分配给Linux做console的。要改为设备控制,就要先改掉原来的用途。
Linux Console是通过getty进程与ttyS0关联的,所以先停掉getyy,解除系统占用:
sudo systemctl stop getty@...service
sudo systemctl disable getty@...service
再把内容定位关掉:
sudo vi /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
其中的console=serial0,115200,就是内容定位,删掉剩下:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
重启之后,ttyS0就被彻底释放了。此时可以通过python或串口调试工具对ttyS0进行测试。
1.1节中介绍了在RPi3中,ttyS0有个alias name叫serial0,所以在代码中,一律使用serial0更好。

1.4. 总结一下
想用ttyS0做设备控制,只需如下三步:
开启ttyS0:raspi-config或config.txt中enable_uart=1均可;
释放ttyS0:停掉getty服务systemctl disable getty@...service,然后从/boot/cmdline.txt中删掉console=serial0,115200;
代码中统一使用名称为serial0。



1.5. 串口调换
如果想用高性能串口做设备控制,把低性能串口留给蓝牙或干脆不用,可以这样做:
sudo vi /boot/config.txt
增加一行:
dtoverlay=pi3-disable-bt
重启生效。此时:


与1.1节中命名已经对调,在代码中使用serial0则为高性能串口ttyAMA0。

注意将串口改作他用,首先要先从系统中把串口释放出来,例如停掉蓝牙、getty。

 

 

echo "测试" | iconv -f UTF-8 -t GB2312 > /dev/usb/lp0

 

 

选择configure_keyboard前面的屏幕选默认值:Generic 105-key (Intl) PC,但在Keyboard layout:时,显示出来的都是English(UK)的,要选择Other,然后在里面选择English(US),否则会出现键盘的一些符号不对或者对调,比如引号”和@符号对调,#号变成英镑符号等等。之后的两个屏幕都选择默认值就可以了,到了:Use Control+Alt+Backspace to terminate the X server? 时,选择Yes,表示用这个可以终止X Server,当整个X-Window死掉的时候可以用。

 

usb.text(u"终于可以愉快的打印啦\n\n\n\n\n\n\n\n".encode('gbk'))

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!