树莓派4安装配置manjaro-kde

在众多linux发行版中,个人使用的话,最喜欢manjaro,他不但有archlinux的包管理,又提供了简单易用的多个桌面版本,比如GNOMEKDE Plasma,个人喜好KDE plasma。今天来记录下安装和设置manjaro kde,不需要树莓派连接屏幕输出,包含ssh初始化、中文环境设置、中国源、输入法、rdpsamba、自动挂载硬盘等

下载镜像

打开官网:https://manjaro.org/download/#raspberry-pi-4-kde-plasma

20201116225651

选择Editions->ARM->Raspberry Pi 4 KDE plasma,然后下载就好了。

下载回来的是xz格式的压缩包,需要解压

刷入镜像

1: 从balenaEtcher官网下载并安装balenaEtcher,这个工具用来把镜像写入到sd卡中。

baleanEtcher官网

2: 打开balanaEthcher,插入sd卡,单击Select Image,选择镜像,Select drive选择sd卡

balenaEtcher界面

3:点击Flash即开始刷写镜像

刷入镜像中

初始化manjaro

sd卡插入到树莓派开机后,连接网线,接下来的操作是在同一个局域网的电脑上操作的。

  • 确定树莓派的ip,可以通过路由器后台管理查看到,比我我的192.168.123.121
  • 打开ssh终端,比如xshellgit bash、或者已经开启win10自带ssh的powershell
  • 输入ssh root@192.168.123.121,记得改自己的ip,回车后会弹出设置界面,首先是键盘布局,这里通过上下键选到us,然后回车

image-20200828170952424

  • 接着会自动弹出用户名配置,输入用户名,输入后回车:

    image-20200828171553217

  • 然后是设定group,这里用默认配置,不输入,直接回车:

    image-20200828171747760

  • 然后是输入用户全名

image-20200828171846979

  • 输入密码:

    image-20200828171917800

  • 确认密码:

    image-20200828171949837

  • root密码:

image-20200828172021540

  • 确认root密码:

    image-20200828172045895

  • 选择时区:选择Asia/Shanghai

    image-20200828172225243

  • 接下来设置locale,选择zh_CN.UTF-8

image-20200828172456074

  • 输入主机名:

    image-20200828172602467

  • 最后一步,确认信息:

    image-20200828172646937

  • 配置好后manjaro会自动重启

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ==> Proceeding....
    ==> Setting root password...
    ==> Adding user chenkh...
    ==> Setting full name to chenkh-pi...
    ==> Setting password for chenkh...
    ==> Setting timezone to Asia/Shanghai...
    ==> Generating zh_CN.UTF-8 locale...
    ==> Setting keymap to us...
    ==> Setting hostname to pi...
    ==> Resizing partition...
    ==> Applying system settings...
    ==> Cleaning install for unwanted files...
    ==> Configuration complete. Cleaning up...
    ==> Rebooting in 5 seconds...
    4...
    3...
    2...
    1...
    Connection to 192.168.123.121 closed by remote host.
    Connection to 192.168.123.121 closed.

设置国内源

默认manjaro使用的是官方镜像,在国内访问很慢,需要设置成国内源。

  • 登录树莓派ssh chenkh@192.168.123.121

  • 设置国内源sudo pacman-mirrors -i -c China -m rank,之后会请求列出中国源列表,回车选择当前行,可多选,按tab键到ok

选择中国源

  • 回车后就会提示生成了mirrorlist

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    [chenkh@pi ~]$ sudo pacman-mirrors -i -c China -m rank

    我们信任您已经从系统管理员那里了解了日常注意事项。
    总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

    ::INFO User generated mirror list
    ::------------------------------------------------------------
    ::INFO Custom mirror file saved: /var/lib/pacman-mirrors/custom-mirrors.json
    ::INFO Writing mirror list
    ::China : https://mirrors.ustc.edu.cn/manjaro/arm-stable/$repo/$arch
    ::China : https://mirrors.tuna.tsinghua.edu.cn/manjaro/arm-stable/$repo/$arch
    ::China : https://mirrors.sjtug.sjtu.edu.cn/manjaro/arm-stable/$repo/$arch
    ::INFO Mirror list generated and saved to: /etc/pacman.d/mirrorlist

  • 更新软件包索引

    1
    sudo pacman -Syu

安装配置oh-my-zsh

oh-my-zsh是默认配置好的zsh,有很多插件主题供我们使用

安装zsh

1
sudo pacman -S zsh

安装oh-my-zsh

官网:https://ohmyz.sh/

1
2
# 会提示设置位默认shell,直接回车、根据提示输入密码就行了
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

image-20200829012533624

配置插件等

配置sudoarchlinux等插件,具体插件和主题请参考上面的官网文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 因为要编辑.zshrc文件,这里我用vim来编辑,首先安装vim
sudo pacman -S vim
# 编辑.zshrc
vim ~/.zshrc
# 找到plugins=(git)这行,改成plugins=(git sudo archlinux systemd)
# sudo 插件的作用是命令行下双击Esc键,会在命令前加sudo
# archlinux插件简化了pacman操作,例如 pacin = sudo pacman -S
# 这里可以加其他插件
plugins=(git sudo archlinux systemd)
...
# 最后一行加上,这解决了安装新软件后,没有提示新软件命令的问题
# https://wiki.archlinux.org/index.php/Zsh
zstyle ':completion:*' rehash true //最后一行加上
...


# 保存后,刷新zsh配置
soure ~/.zshrc

安装yay

manjaro基于archlinux,而archlinux有非常丰富的野包/AUR(社区维护的包),yay是目前流行的aur包安装工具。比如接下来要安装的rdp就需要从aur里获取

1
2
3
4
# 安装为使用aur准备环境的一些软件
sudo pacman -S --needed base-devel
# 安装yay
sudo pacman -S yay

中文字体配置

manjaoro arm默认不带中文字体,所以需要我们自己安装,archlinux文档,这些字体安装后,使用中文环境就没问题了

1
sudo pacman -S wqy-microhei wqy-microhei-lite wqy-bitmapfont wqy-zenhei ttf-arphic-ukai ttf-arphic-uming adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts noto-fonts-cjk

配置rdp

为了便于windows远程控制树莓派,需要在树莓派上安装rdp服务,参考自arhlinux-xrdp wiki。由于manjaro官方包没有xrdp,我们需要用aur下的xrdp,在线编译。

安装xrdp

1
2
# 使用yay工具,安装aur下的xrdp
yay xrdp

image-20200829020119819

使用yay时,会列出相关软件,只需要输入对应序号并回车。然后根据提示输入y或者n,一般为y。到最后,yay会下载源码并自动编译打包安装软件。

开机启用xrdp服务

1
2
3
4
# 允许xrdp开机启动
sudo systemctl enable xrdp.service
# 开启xrdp(如果已经开启,则不需要)
sudo systemctl start xrdp.service

配置环境

1
2
3
4
5
6
7
8
9
# 编辑或新建/etc/X11/Xwrapper.config
sudo vim /etc/X11/Xwrapper.config
# 增加内容为:
allowed_users=anybody

# 编辑.xintrc
vim ~/.xinitrc
# 添加一行:
exec startplasma-x11

测试

打开windows的远程桌面连接,输入树莓派ip地址主机名,如图:

image-20200903221517743

弹出警告框,点:

警告框

输入用户名密码后,点OK:

确认框

最终效果如图:

最终效果

安装中文输入法

可以用xrdp远程后,还需要安装中文输入法和配置输入法的包,官方文档:

1
sudo pacman -S   fcitx-googlepinyin fcitx-im kcm-fcitx

然后新建~/.pam_environment,并写入下面配置,这个配置的作用是使命令行终端能使用输入法

1
2
3
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT=@im=fcitx

最后,重启下树莓派用rdp登录就行了,ctrl+shift切换输入法

现在可以输入中文了

开机挂载硬盘

树莓派4自带两个usb3.0接口,可以外接usb接口的移动硬盘。为了方便使用,可以开机挂载硬盘

确定uuid

1
2
3
4
5
sudo blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL_FATBOOT="BOOT_MNJRO" LABEL="BOOT_MNJRO" UUID="41EF-196D" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="39f66fd7-01"
/dev/mmcblk0p2: LABEL="ROOT_MNJRO" UUID="a3786927-124e-48cb-a9fa-aca0a7c067ae" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="39f66fd7-02"
/dev/sda1: LABEL="Seagate Backup Plus Drive" BLOCK_SIZE="512" UUID="D84ECD914ECD68B8" TYPE="ntfs" PTTYPE="atari" PARTUUID="a86675bd-01"
/dev/zram0: LABEL="zram0" UUID="143d1e03-5c83-462e-ad31-fbe874ea9873" TYPE="swap"

这里我硬盘的uuid为D84ECD914ECD68B8

新建挂载目录

我这里新建/mnt/hd-share目录,用来挂载移动硬盘

1
2
sudo mkdir /mnt/hd-share
sudo chmod 777 /mnt/hd-share

开机挂载

开机挂载硬盘需要编辑/etc/fstab文件,把硬盘挂载到/mnt/hd-share目录下,命令:sudo vim /etc/fstab,文件末尾添加一行如下

1
2
3
4
5
6
7
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
LABEL=BOOT_MNJRO /boot vfat defaults 0 0
# 添加一行
UUID=D84ECD914ECD68B8 /mnt/hd-share ntfs-3g defaults,nofail,umask=0000 0 2

这里使用uuid的方式寻找硬盘分区,由于manjaro arm默认自带了挂载ntfs文件系统的ntfs-3g,所以不需要安装。options下的nofail参数,表示这个外部设备在插入时挂载,未插入时忽略,启动时若设备不存在直接忽略它而不会报错。

最后,使配置生效

1
sudo mount -a

硬盘自动休眠

由于树莓派24小时开机使用,如果不配置硬盘自动休眠,那么硬盘也将24小时开着。hd-idle的作用就是管理硬盘的自动休眠,进而提高硬盘的使用寿命。hdparam也有类似的功能,我只用过hd-idle

安装hd-idle

1
sudo pacman -S hd-idle

配置

1
2
3
4
5
6
7
# 编辑 /etc/conf.d/hd-idle配置文件
sudo vim /etc/conf.d/hd-idle
# 将 START_HD_IDLE=false 改为true,自动启动hd-idle
START_HD_IDLE=true
#去掉 #HD_IDLE_OPTS="-i 180 -l /var/log/hd-idle.log"前面的#注释,改为
# 配置为900秒,即硬盘15分钟没有使用就自动休眠
HD_IDLE_OPTS="-i 900 -l /var/log/hd-idle.log"

启动

开机启动

1
sudo systemctl enable hd-idle

单次启动

1
sudo systemctl start hd-idle

配置samba共享

树莓派功率比较小,适合24小时开机,如果挂上usb移动硬盘,就可以改造成一个小型的文件共享系统

安装samba

1
sudo pacman -S samba

配置samba

新建samba配置文件:sudo vim /etc/samba/smb.conf,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[global]
workgroup = WORKGROUP
server string = %h
server role = standalone server
security = user
# samba 4.12.0 版本开始不支持
#write cache size=262144
# 不配置最低协议为NT1导致手机不能使用共享
server min protocol= NT1
[hd-share]
path=/mnt/hd-share
browseable=yes
guest ok = no
writeable=yes

这样就配置了hd-share这个共享文件夹。

需要注意的是:

  • samba 4.11.0版本开始,默认的协议为从之前的NT1改为了SMB2_02,而现在大部分手机自动的文件管理器的smb协议只支持NT1,所以这里为了兼容手机,设置server min protocol= NT1
  • samba 4.12.0版本开始,移除了write cache size这个选项,在这之前,这个选项对于提升访问速度很有效,目前没有找到类似效果的选项替代。

设置密码

samba自带了smbpasswd工具,用来给linux账户添加samba密码:

1
2
3
4
5
sudo smbpasswd -a chenkh
[sudo] chenkh 的密码:
New SMB password:
Retype new SMB password:
Added user chenkh.

这里我的linux账户是chenkh,记住,这个账号一定要是已经添加的linux账户。

启动服务

设置开机启动:

1
2
sudo systemctl enable smb.service
sudo systemctl enable nmb.service

单次启动

1
2
sudo systemctl start smb.service
sudo systemctl start nmb.service

相关问题

win10网络没有出现共享主机

如图,打开win10网络,搜索不到树莓派主机,如果不解决,电脑访问共享会比较麻烦。

找不到树莓派主机

解决方案

wsddwsdd2就是为解决这个问题,wsdd使用python实现,wsdd2使用c语言实现。后者在路由器上用得多。wsdd官网介绍:

wsdd介绍

aur包众多,毫不意外也包含了wsddwsdd2

  • 安装:yay wsdd,根据选项选1就行

    命令执行

  • 启动:sudo systemctl start wsdd,开机启动:sudo systemctl enable wsdd

再次打开win10的网络,发现已经出现了树莓派主机:

终于出现了树莓派主机

双击打开,输入用户名和刚刚配置的密码:

输入用户名和密码

登录后出现了共享文件夹,大功告成!

访问共享

其他配置

frp

个人觉得可以在路由器上安装frpc,然后把数据转发到树莓派上。这样解决了外网访问提问。

当然,树莓派也可以安装frpc,只需要yay frpc就行了

vscode

树莓派下能用的vscodevscodium,官网:https://vscodium.com/,用`yay`安装就行了

1
yay vscodium

2020-11-15更新

官方vscode已经完全支持arm64

1
sudo pacman -S code