內容目錄

cyue 2022-11-26

前言

树莓派4B 可以当什么? 一个4核 A72/4GB或8GB RAM 的 Linux 小主机? 除了四个USB、网线外、树莓派4B和PC最主要的是提供了40pin的连接端子,可以做很多控制应用。很适合当IOT的网关,或?

配上妙控键盘后,iPadPro虽然长得很像电脑,性能甚至超越一般电脑,但由于Apple对iPadPro的封印,不能像电脑愉快的使用软件,愉快的做周边控制或相关的开发。这时多用途的树莓派就派上用场了。虽然性能不怎样,只要一条typeC连接线,就能提供完整的Linux+开发工具+充足的周边。。。,iPadPro瞬间像是吃了大力丸(接下来就看电源能撑多久了)。。。

~~好想要一台M1带触屏,可以想像Linux一样自由(瞎搞)的Linux笔记本电脑啊。。。。【1】~~

之前尝试了服务器版的Ubuntu22.04 当iPad开发工具,总是有这个那个的功能要设定,又不好设定,浪费我的青春。这回我直接安装桌面版的Ubuntu22.04。。。。吵杂的世界瞬间安静了,除了设定时要自备键盘鼠标屏幕这点不友善。。。。

我们看看怎么做吧。。。

注【1】:m1 macBookAir除了没有iPad顺滑的触屏操作,没有 Apple Pencil 与应用,已经很接近理想了,但multipass下的ubuntu和周边控制的能力还是差了点意思。。。

Part 1 U盘镜像烧录、与开机前的手动设定

烧录需要另一台PC,Windows/macOS/Linux都可以,安装 Raspberry Pi Imager 工具烧录。可直接用工具下载烧录,也可先下载镜像,在用工具挑选烧录。

烧录完成后,我们在修改 boot分区内的文件内容,做一些最初的设定。。。

1.1 使用 Raspberry Pi Imager 制作开机盘

我的树莓派 boot eeprom 已升级成可以使用 USB3.0 速启动。所以我使用 SAMSUNG FIT+ 当高速开几盘,比牛步的SD卡香多了。

  • 使用 Raspberry Pi Imager 来下载安装树莓派可用的镜像、设定开机模式。 这里提供PC端( Ubuntu/DebianWindows、和 macOS)的 Raspberry Pi Imager 工具,将上面的 img.xz 文件 烧录到 U盘/SD卡中。
  • 选用的是 Ubuntu Desktop 22.04 64bit版。

1.2 一些手动预设定:

可以在 PC/Mac/Linux下 挂载U盘的 boot image 分区(FAT格式),这个分区在执行后会被挂载到 /boot/firmware

编辑以下文件,添加 usb typeC 网路,这样未来MacBookPro主机或iPadPro 可以直接usb端口连接树莓派,即对树莓派供电,也可通过连线通讯控制树莓派,不受外在Wifi/Lan网路环境影响,在移动的环境下对树莓派编程控制。

1.2.1 将 typeC 设成周边装置 config.txt

编辑 config.txt 并添加一行:

dtoverlay=dwc2,dr_mode=peripheral

1.2.2 为type C添加 ethernet gadget 模块 cmdline.txt

编辑在 cmdline.txt 在 rootwait 之后添加项:

modules-load=dwc2,g_ether

如前所述,添加在 rootwait 之后,与前后项间隔各只有一个空格。

1.2.3 基础已知的网路设定network-config

(桌面版有自己的设定方式不必做此设定)

不同于ubuntu server 版的开机就使用 netplan,会根据 network-config 文件设置网路,Ubuntu desktop 开机时会使用GUI询问用户账户与网路,不会使用这里的 network-config 和 user-data。

所以Ubuntu桌面版 /etc/netplan 下的 yaml 文件只会有最简单的设定。在3.1节,我们在启动 ssh 成功后,再去把 netplan的 usb0 网路设定完整。

直接上电开机?除了U盘你还要人机界面的硬件。。。。😱😱😱

Part 2 需要连接键鼠与屏幕的系统设置

树莓派可用的 UbuntuDesktop 22 的镜像,目前是不能用 Raspberry Pi Imager 的高级设置功能来设置 UbuntuDesktop 22.04 的参数的,设置无效,必须接上屏幕、键盘、鼠标,一步一步的做设定。。。。

  • 屏幕:若家里都使用笔记本电脑,手边没有外接屏幕和键盘鼠标,可考虑采购一个视频采集卡,可模拟无驱UVC摄像头将HDMI影像,透过USB传到笔记本电脑安装的影像软件里(macOS可用Quicktime看)。 当然还需要配一条 microHDMI转HDMI的线来连接树莓派。
    image-20221126141725588image-20221126142453905

  • 键鼠:另外需要USB键鼠,若手边没有的话,可考虑一套(简陋小型不占空间的)USB协议的无线键鼠,蓝牙协议在OS初始化时不能使用。简单的设置后就可以用iPad或PC远端连接了,不需要太好的键盘。

2.1 GUI启动设置

  • 将烧录好的U盘或SD卡插入树莓派,接上键盘、鼠标、与HDMI(DVI)屏幕线后,开机并开始ubuntu的安装。
  • 依据安装导引设定选项、好时区、网卡、账户等功能后,完成安装。注意若要使用RDP,在设定默认用户时,不要选自动登录。

2.2 尽快可以ssh从PC做后安装

2.2.1 更换成国内源、安装ssh和net-tools

由于喜大普奔的原因,在中国连外网速很慢,可以使用学术单位的ubuntu镜像来加速线上应用的安装:

sudo -s 

# 备份现有源信息
cd /etc/apt
sudo cp sources.list sources.list.org
# 更换成中科大源
sudo sed -i 's/ports.ubuntu.com/mirrors.ustc.edu.cn/g' sources.list
# 更新 apt资料库
sudo apt update
# apt升级,很花时间,我们晚一点再做。。。
# apt upgrade -y

# 安装ssh和net-tools
sudo apt install ssh net-tools -y

#禁止root远程登录
sudo sed -i 's/#PermitRootLogin/PermitRootLogin/g' /etc/ssh/sshd_config
sudo service ssh restart
# 为当前用户添加ssh key,询问问题时可以直接 Enter 跳过。。。
ssh-keygen

2.2.2 检查 ssh是否合格。

此时已经可以从 PC/Mac/Linux 主机远端ssh登入了,使用 ifconfig 查看IP,或使用 ssh 账号@主机名.local 登入:

# ssh cyue@IP_ADDRESS
ssh cyue@rpi4.local

键盘、鼠标、屏幕占地方,可以不需要了,直接用ssh远端设置。。。设定好RDP后,可以远端GUI桌面了。。。

Part 3 可以远端ssh的设置

远端ssh的好处是一些命令可以从PC的文件复制到 terminal执行,不必自己(用简陋的周边)敲命令。

3.1 用 netplan 添加 usb-typeC网路?

树莓派的type C接口除了可当树莓派的电源接口,还可以当USB host 或 USB peripheral。

1.2 节 的设定安装桌面版的ubuntu后,如何当 iPad的编程套件?

3.1.1 在netplan的 yaml script 添加 usb0:

查找并编辑netplan的 yaml文件:

$ ls /etc/netplan/
01-network-manager-all.yaml

$ sudo pico /etc/netplan/01-network-manager-all.yaml

添加 ethernets 类的两张有线网卡eth0usb0,并提供网路参数:

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eth0:
      dhcp4: true
      optional: true
    usb0:
      dhcp4: false
      optional: true
      addresses: [10.55.0.1/29]
  wifis:
    wlan0:
      dhcp4: true
      dhcp6: false
      optional: true
      access-points:
        "cyueXsMax":
          password: "PASSWORD0"
        "AsusCyue_2G4":
          password: "PASSWORD1"

已知常用的wifi也可以在此设置,以后不必一个一个的添加。

编写好后应用设置

sudo netplan apply

3.1.2 为 usb0网卡添加 dnsmasq 服务

这样 PC/Mac/Linux/iPadPro等装置直连树莓派时,树莓派就能自动提供IP地址,不必手动设定IP。

# 安装dnsmasq
sudo apt install dnsmasq -y
mkdir -p /etc/dnsmasq.d

# 设定usb0连线上的dhcp服务内容
echo "interface=usb0
dhcp-range=10.55.0.3,10.55.0.6,255.255.255.248,1h
dhcp-option=3
leasefile-ro
port=0" |sudo tee /etc/dnsmasq.d/usb

# 刚安装 dnsmasq 会冲突,取消注释 /etc/default/dnsmasq 的 `DNSMASQ_EXCEPT`
sudo sed -i 's/#DNSMASQ_EXCEPT="lo"/DNSMASQ_EXCEPT="lo"/g' /etc/default/dnsmasq

# 再重启 dnsmasq服务,并查看服务,没有奇怪颜色就成功了。。。
sudo  service dnsmasq restart
sudo  service dnsmasq status

查看 macOS的RNDIS/Ethernet Gadget 网路设置,已经被提供了正确的IP地址了,真香。

3.2 安装 XRDP

  • Xrdp 被包含在默认的 Ubuntu 软件源中。想要安装它,运行:
# 0. XRDP最好用较新的,更新一下系统吧。。。
sudo apt upgrade -y

# 1. 安装xrdp
sudo apt install -y xrdp

# 2. 解决RDP登录时反复验证问题
echo "[Allow Wifi Scan]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.wifi.scan;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.network-control
ResultAny=yes
ResultInactive=yes
ResultActive=yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/47-allow-wifiscan.pkla

# 3. 解决“色彩管理设备” / “color managed device” 弹窗
echo "[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla

# 4. 解决“刷新系统软件源需要认证” / “refresh the system repositories” 弹窗
echo "[Allow Refresh Repository all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=no
ResultInactive=no
ResultActive=yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/46-allow-packagekit.pkla

# 5. 注释掉 `AutomaticLoginEnable` 和 `AutomaticLogin` 变量:
sudo sed -i 's/AutomaticLoginEnable/#AutomaticLoginEnable' /etc/gdm3/custom.conf
sudo sed -i 's/AutomaticLogin/#AutomaticLogin' /etc/gdm3/custom.conf

# 重启RDP服务
sudo systemctl restart xrdp
# 查看 XRDP服务
sudo systemctl status xrdp

usb0网卡设置好,RDP安装好,就可以无视环境Wifi,通过 usb网路,把树莓派当私人的桌面版Linux开发工具用了。

—————————————————-

Part 4 可选择在RDP远端桌面GUI下的设置

4.1 设定 OpenVPN 服务

有许多工具要透过VPN才能取得。。。。我用OpenVPN服务。

  • 从主机取得给树莓派的 tw-rpi4.ovpn 设定文件:scp cyue@cyuembp.local:~/Downloads/tw-rpi4.ovpn .
  • 从桌面右上方的菜单选:设定(Settings), 弹窗后选:网路(Network),然后按 VPN右方的 ‘+’ 号添加 VPN。
  • 添加VPN方式选择 “import from file。。。”, 将服务器提供(被更名过)的 “tw-rpi4.ovpn” 提交上去。
  • 桌面GUI的右上角就会有 VPN 选项了。
  • Ubuntu 22.04: 老路由OpenVPN 不能work,需要设定。 比如 tw-rpi4.ovpn 指定的OpenVPN服务器是一台老路由,设定文件安装后打不开VPN服务,此时编辑:
sudo pico /etc/NetworkManager/system-connections/tw-rpi4.nmconnection

[vpn] 段的 ca=…. 下添加一行 tls-cipher 设置,设定可接受的安全等级(SECLEVEL)值为 0~5:

tls-cipher=DEFAULT:@SECLEVEL=0

很老的路由设成0级就好,然后重启网路连接:

sudo systemctl restart NetworkManager

此时 就能连接远端老路由的OpenVPN服务工作了。

  • tw-rpi4.nmconnection 对应 tw-rpi4.ovpn 文件。

4.2 安装 Chromium 换掉 Firefox

可以使用文字模式,也可以用GUI的应用市场管理应用。

文字模式:

sudo snap install chromium
sudo snap remove firefox

GUI模式:

Ubuntu 桌面版的环境有 snapstore 市场,可以直接查找想安装的/卸载已安装的应用。。。。

4.3 安装通用编译环境

4.3.1 一般的编程语言、Python IDE

sudo apt install clang gcc cmake python3 python3-tk python3-pip thonny

clang、gcc、python、以及python学习很好用的IDE: Thonny。

4.3.2 安装 VSCode

各个版本的 VSCode 的安装包位置: https://code.visualstudio.com/Download

# 目前是 1.73.1 版
wget https://az764295.vo.msecnd.net/stable/6261075646f055b99068d3688932416f2346dd3b/code_1.73.1-1667966450_arm64.deb
# 安装
sudo dpkg -i code_1.73.1-1667966450_arm64.deb

曾遇到VSCode安装失败

在安装 1.69.2版时曾遇到了部分需要 libxssl 的问题,解法:

#必要时修复 apt和 dpkg 库。
apt --fix-broken install
sudo dpkg --configure -a
#用 apt 安装 libxssl 后,再安装 vscode。
sudo apt install libxssl
sudo dpkg -i code_1.69.2-1658161440_arm64.deb

4.4 执行 VSCode,安装 C/C++、Rust 的扩充包:

  • 点击扩充 icon,寻找 C++,安装 C/C++ Exrension Pack:
  • 安装 Rust Development Extension Pack:

4.5 语言与输入法安装

~~~若需在要编辑中文字,可以安装语言和输入法~~~

这里介绍安裝简中、繁中。

建議使用方式:

  • 简体输入用户:安装智能拼音输入法。
  • 繁體输入用户:安装新酷音輸入法,可以選擇漢語拼音鍵盤,這樣鍵盤就不必用ㄅㄆㄇㄈ(bpmf)顺序排列的注音符號鍵盤。注意新酷音每個字要加上音調輸出(2~5,空白可当一声)。
  • 输入法内的中英切换是类似Windows的【Shift】,不是macOS和iOS常用的【Caps Lock】。
  • 建议安装中文输入法后,以新的输入法为首選输入法排列;並在輸入法的輸入設定中,缺省使用英文输入。这样在需要中文时,只要按【shift】就能中英切换了。

语言安装:

  • 系统设定 app (可以从右上角icon点右键目录,选“Settings”或“设定”菜单)
    1. 选 “Region & Language”。
    2. 选 “Manage Installed Languages” 。
    3. 选“Install/Remove Languages”。
    4. 勾选添加 简中Chinese(simplified)繁中Chinese(tranditional)
    5. 点击“Apply”确认。
  • 若显示 “支持的语言没安装完整”,根据提示继续安装语言。
  • 点击“添加或删除语言”确认中文(简体)、或 中文(繁体)安装好了。
  • 会需要重新登录,来完成语言添加,之后才能再修改输入法

鍵盤(输入法)的安装:

  • 系统设定 app 选 keyboard — “input source”的 “+” 号添加新的输入法。

1.大陆中文 Chinese(China) 选择添加智能拼音 (Intelligent Pinyin)输入法。

2. 台湾中文Chinese(Taiwan) 选择添加新酷音(Chewing) 输入法。

  • 对每个输入法可以在右方选择:
    1. 上下移动(输入法优先顺序调整)
    2. Preference(输入法设置)
  • 简中(Intelligent Pinin/智能拼音)输入法设置

一般设置就可以了。

  1. 初始设置可以选英文。
  2. 选字顺序可以改成使用频率。
  3. 可以添加常用的字典库。
  • 繁中(Chewing/新酷音)输入法的设置 不是台灣的購買的鍵盤通常沒標註ㄅㄆㄇㄈ(bpmf)的排列,可以改用(Hanyu/漢語拼音)方式的輸入,和大陸的拼音類似輸出繁體字,但注意新酷音每個字要加上語調(數字1~5)輸入法會智能選詞。image-20221127144951394

使用

在执行需要输入的应用时,桌面右上角会弹出现在的输入法状态,点击可以挑选使用不同的输入法。

智能拼音和新酷音都可以用【shift】切换中英文输入模式。

4.6 Add Users

我为家人设定好了账户密码,可以用PC或iPad 连接树莓派工作。 (先使用6码生日当密码,请自己在终端app使用 passwd 命令更改。)

# 添加新用户,会询问 密码、全名、。。。。
sudo adduser tony

sudo adduser johnny

sudo adduser shari


# 把现有的用户,添加到现有的群组中。。。。
sudo adduser tony sudo
sudo adduser tony adm
sudo adduser tony cdrom
sudo adduser tony dip
sudo adduser tony plugdev
sudo adduser tony lpadmin
sudo adduser tony lxd
sudo adduser tony sambashare

sudo adduser johnny sudo
sudo adduser johnny adm
sudo adduser johnny cdrom
sudo adduser johnny dip
sudo adduser johnny plugdev
sudo adduser johnny lpadmin
sudo adduser johnny lxd
sudo adduser johnny sambashare

sudo adduser shari sudo
sudo adduser shari adm
sudo adduser shari cdrom
sudo adduser shari dip
sudo adduser shari plugdev
sudo adduser shari lpadmin
sudo adduser shari lxd
sudo adduser shari sambashare

。。。。再继续?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *