ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

NUC 折腾笔记 - Linux 系统篇

2021-02-07 08:54:54  阅读:320  来源: 互联网

标签:bytes 笔记 网卡 apt Linux 512 安装 NUC


NUC 折腾笔记 - Linux 系统篇
写一篇迟到的折腾笔记:NUC8 8i5beh 。原本计划折腾 Hackintosh ,最后折腾了一台 Linux Homelab 设备。

本篇记录 NUC 基础系统配置中的一些细节。

写在前面

2021 年的第一个月,因为众所周知的原因,NUC 11 的到货迟到成为了现实,10 代产品的本地货源在两周前也比较捉急,好在口碑爆表的 8 代 NUC 的货源还是非常充足的,性价比也同样占优。

加上正巧最近在折腾 MacOS 客户端,心说如果 NUC 8 代产品靠谱的话,相比较笔记本来说无屏幕、功耗更低来说持续跑一些程序的话,优势还是不小的。(便宜大碗、坏了不心疼呀)

于是在网上找了一家“出售成套方案、到手即用”的店铺,入手了一台经典神机 NUC8(8i5beh),在 NUC 到手后通电后,产生了三个想法:

NUC 8 性能真不错,系统运行顺滑,但是在运行 Mac OS 时,风扇瞬间起飞(比MacBook 编译程序还要暴躁),散热是真的有压力,还好没有入手 NUC8 i7 版本以及 NUC 10 跑这个场景。
NUC 11 应该值得等待,制程优化带来的散热问题应该有好转(已在 M1 Mac 上验证),加上性能也有质变,希望年后物流速度尽快恢复吧。
虽然网上资料更多的是用 NUC 8 做 Hackintosh,但或许 Linux 或许更适合它,对核显需求更低、发热更低,加上本身不错的计算能力和扩展能力。
为了验证第三个想法,开始了折腾之旅。

Ubuntu 20.04 安装
考虑偶尔可以使用 HDMI 接显示器使用,并且想更省事的使用“官方默认”的 VNC 功能,所以这次的安装采用 Desktop 版本。

如果你不需要 VNC 和 Wi-Fi 功能,完全可以使用 Server 版镜像,毕竟复杂性更低,相对可靠性更高嘛。

启动盘制作
Mac 下的启动盘制作方案非常多,这里推荐一个“跨端”方案:balenaEtcher,一款高颜值的引导盘刷写工具,命令行过程中索然无味的等待将被配色清新的界面所取代。

使用方法很简单,只需要下载好镜像,然后戳戳戳,一路下一步就可以了。

进入U盘引导
NUC 默认启动速度很快,想要使用 U 盘引导安装系统,需要在启动过程中“疯狂”按 F10 ,进入启动菜单选择。

提升系统安装速度
在使用启动盘安装的过程中推荐断开网络(别插网线、别连无线),可以解决默认软件源下载更新缓慢的问题,从而大幅提升安装速度。

选择系统安装类型
安装模式选择正常安装(Normal installtion)和最小化安装(Minimal installtion)都可以,两者差别在于默认安装软件包的多寡。如果你希望保留默认的 VNC 工具、桌面的话可以考虑使用正常安装偷个懒。

如果你的 NUC 使用的是非 Intel 网卡,在安装的时候选择安装三方驱动(Install third-party software for graphics and Wi-Fi hardware...)可以在第一次正式系统的时候正常使用 Wi-Fi 网卡。

但是需要注意,不要着急更新系统,会出现网卡无法工作的情况。

拔掉引导盘
如果你习惯了服务器版在安装完毕后提示你“拔掉U盘”,那么在安装桌面版的时候要注意一下,桌面版并不会提示你安装完毕,请弹出可移动设备。

安装完毕需要自行拔掉 U 盘,避免循环启动安装镜像。

重复安装无法启动系统
如果你选择重复安装 Ubuntu,那么可能会因为 UEFI “残留数据” 导致需要进入 Grub 恢复模式重新初始化引导。

这里可能是 grub 在 nvme 设备下处理 EFI 分区有问题,虽然使用下面的命令可以修复卡在启动界面的系统:


grub rescue>set root=hd0,msdos5
​grub rescue>set prefix=(hd0,msdos5)/boot/grub
​grub rescue>insmod normal
​grub rescue>normal

但是在“完整系统”中执行恢复“三招”会发现系统并不能被修复:


update-grub
grub-install /dev/nvme0n1
reboot

这时建议重新初始化硬盘,删除 NVME 磁盘前的引导记录。我这里使用 Mac 磁盘工具对 NUC 磁盘进行了初始化。

系统基础配置
在安装完毕之后,就是进行系统的基础配置了。

更换软件源
进入系统之后,使用默认的 vi 软件编辑软件源列表:


vim /etc/apt/sources.list

http://cn.archive.ubuntu.comhttp://security.ubuntu.com 替换为国内速度更快的清华源:


:0,$ s/cn.archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn\/ubuntu/
:0,$ s/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn\/ubuntu/

然后保存文件,并执行 apt update 获取新的软件列表。但如果你是苹果网卡用户,请先不要更新系统。

配置 SSH 终端连接
还是老方法,安装 openssh-server 软件包即可:


apt install -y openssh-server

如果需要修改链接端口或者其他配置,可以修改 /etc/ssh/sshd_config 中的端口。

这个配置适用于你使用“网线”、“无线”以及“雷电3”组网连接设备。有了 SSH ,接下来的配置会方便非常多,因为你可以复制下面的各种“现成的命令”啦。

Ubuntu 系统 BCM94360CS2 网卡驱动问题
NUC 是“原生”被 Ubuntu 支持的,但是我前文提过,我有购买“整套”的方案,卖家已经帮我处理掉了运行 MacOS 的网卡等硬件问题,将原始的网卡去掉,硬件改造几乎用不到的读卡器线路,换上 BCM94360CS2 。

这样做对于运行 MacOS 的好处是:让 DIY 爱好者头疼的蓝牙和无线功能会一切正常。并且在保证功能正常的前提下,可以以节约一个 M2 接口,来安装我的 Nvme 硬盘。

但是使用 Ubuntu 的话,这个网卡则会带来一个小问题:驱动与内核不兼容、只要升级 Ubuntu 软件包,功能必定 Crash 掉。

修复 BCM94360CS2 网卡驱动问题
如果你在安装过程中没有勾选“三方驱动”选项,那么在安装完毕之后,我们默认是不会有网卡无线驱动的,需要自行安装。网上给出的方案是手动执行(也是 Ubuntu 镜像中的默认三方驱动包):


apt-get install bcmwl-kernel-source

在不更新系统内核的情况下,你会发现网卡顺利的工作了,你可以使用网卡搜索到身边的信号,并且进行链接,但是一旦你执行系统升级命令,在过程中你将会看到类似这样的报错信息:


Building module:
cleaning build area...
make -j8 KERNELRELEASE=5.8.0-40-generic -C /lib/modules/5.8.0-40-generic/build M=/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build...(bad exit status: 2)
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/bcmwl-kernel-source.0.crash'
Error! Bad return status for module build on kernel: 5.8.0-40-generic (x86_64)
Consult /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/make.log for more information.
   ...done.
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-5.8.0-40-generic

倘若你勾选了“安装三方驱动”,那么得到的也仅仅是在首次系统安装完毕之后,无线能够使用而已,一旦你执行了系统升级命令,还是会得到和上面一样的错误信息。

这个问题在 launchpad 社区有人已经报过:


https://bugs.launchpad.net/bugs/1878045
https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1878045

解决方案是彻底卸载掉“默认驱动包”,重新安装适合的软件包:


apt purge bcmwl-kernel-source
apt-get install broadcom-sta-source
apt-get install broadcom-sta-dkms
apt-get install broadcom-sta-common

执行完毕上述命令后,重新启动,系统便会一切正常。

系统进阶配置
NUC 默认支持使用两个盘位,建议使用 NVME 做为系统盘,我这里使用了新版国货之光:致钛PC005;而另外一个盘位支持的是 SATA 协议,我使用了另外一款口碑很棒的硬盘致钛 SC001。

配置数据盘

使用 fdisk 查看当前磁盘列表:


fdisk -l

Disk /dev/nvme0n1: 953.89 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: ZHITAI PC005 Active 1TB                 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 9D048B5E-4CXX-41XX-A8XX-0F9AXXXXXXXX

Device           Start        End    Sectors   Size Type
/dev/nvme0n1p1    2048    1050623    1048576   512M EFI System
/dev/nvme0n1p2 1050624 2000408575 1999357952 953.4G Linux filesystem

Disk /dev/sda: 953.89 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: ZHITAI SC001 Act
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
可以看到 /dev/sda 并未初始化,使用 fdisk 的交互模式来进行磁盘初始化。

fdisk -u /dev/vdb

# 交互式输入:p->n->p->enter->enter->enter->w

mkfs.ext4 /dev/sda
echo /dev/sda /data ext4 defaults 0 0 >> /etc/fstab
reboot

重启之后,再次使用 fdisk 查看:


Disk /dev/sda: 953.89 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: ZHITAI SC001 Act
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

可以看到磁盘已经就绪。

安装容器环境
安装容器的方法还是一如既往的简单,这里给出全部使用镜像来安装的命令:


apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

apt update && apt install -y docker-ce

为了方便使用,这里我写了一个更简单的脚本来进行安装:

curl -o- https://raw.githubusercontent.com/soulteary/linux-scripts/main/docker.sh | bash

安装 compose 也比较简单,我这里也写了一套简单的脚本:

#!/bin/bash

FILENAME="docker-compose-`uname -s`-`uname -m`"
VERSION=1.28.2

if [ -f "$FILENAME" ]; then
    echo "$FILENAME exists.";
else
    curl -L https://github.com/docker/compose/releases/download/${VERSION}/${FILENAME} -o ${FILENAME}
fi

curl -L https://github.com/docker/compose/releases/download/${VERSION}/${FILENAME}.sha256 -o ${FILENAME}.sha256

CHECK=$(shasum -c ${FILENAME}.sha256)

if [ $? != 0 ]; then
    echo "${FILENAME} checksum is not valid";
    exit 1;
fi

mv ${FILENAME} /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
rm ${FILENAME}.sha256
echo "done";
docker-compose -v

同样,有更简单的安装方式:


curl -o- https://raw.githubusercontent.com/soulteary/linux-scripts/main/docker-compose.sh | bash

安装常用软件
为了方便管理和监控系统运行状态,可以安装一些常用运维软件。


apt install net-tools htop iftop iotop -y

最后
下一篇内容,我们聊聊雷电接口加持下的性能小钢炮 NUC8 如何在日常中发挥威力。

--EOF

标签:bytes,笔记,网卡,apt,Linux,512,安装,NUC
来源: https://blog.51cto.com/15054039/2621146

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有