Arduino/OpenWRT/树莓派
新:
无。
CPU 指令级别:
/lib64/ld-linux-x86-64.so.2 --help 输出尾部含 supported 字样即为支持(根据 CPUID 扩展指令):
Subdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)
开机启动:
Systemd:
终端文本阶段 - multi-user.target 等同 runlevel 3
图形界面阶段 - graphical.target 等同 runlevel 5
转义 - 字符>必须框在'单引号'内? ExecStart=/bin/sh -c 'echo 9 > /tmp/x'
禁用日志 - Standard...=null
[开机执行] sudo vim.tiny /etc/systemd/system/our-sys-init.service
[Unit]
Description=Our
[Service]
ExecStart=/home/pi/app/bin/app
#ExecStart=java -m jdk.httpserver
[Install]
WantedBy=multi-user.target
[Unit]
Description=Our
[Service]
# 按顺序执行多个 ExecStart
Type=oneshot
ExecStart=/usr/sbin/nft insert rule ip filter INPUT tcp dport { 8000 } accept
ExecStart=/usr/sbin/nft insert rule ip filter INPUT udp dport { 4433 } accept
#StandardOutput=null
#StandardError=null
[Install]
WantedBy=multi-user.target
## 非 Headless 应换为:
#WantedBy=graphical.target
[设为开机启动] sudo systemctl enable our-sys-init.service
sudo systemctl restart our-sys-init.service
sudo systemctl status our-sys-init.service
桌面 GUI 非 Headless 启动:
sudo dd of=/etc/xdg/autostart/demo.desktop << EOF
[Desktop Entry]
Exec=pcmanfm
Type=Application
EOF
树莓派内置命令启动桌面文件(*.desktop 写上 Type=Application) gio launch /usr/share/applications/lxtask.desktop
Java桌面文件写法 Exec=env JAVA_HOME=/home/${USER}/jdk-23.0.2/ JAVA_OPTS=--enable-native-access=ALL-UNNAMED /home/${USER}/app/bin/app
临时测试含桌面程序可加上 env DISPLAY=:0 vlc 或 env DISPLAY=:0 gio launch /etc/xdg/autostart/demo.desktop
查看MIME关联的默认打开方式 gio mime video/mp4 输出 Default application for “video/mp4”: vlc.desktop
gio mime application/x-desktop 输出 geany.desktop 指用 geany 文本编辑器打开,并非直接启动 Exec 指定程序。
首选 gio mime 查询,因 xdg-mime query default application/x-desktop 竟返回空。
设置MIME关联 gio mime video/mp4 vlc.desktop
xdg 命令:
xdg-open /etc/xdg/autostart/demo.desktop
xdg-mime query default inode/directory
xdg-mime query default text/html
显卡:
Debian自带了nouveau驱动用于NVIDIA显卡,只能点亮屏幕而已,如果想安装CUDA或使用大模型,必须先禁掉该驱动再安装NVIDIA官方驱动(约1G大小)。
因Linux内核会小版本自动升级,DKMS 管理的 nvidia 模块需要重新签名,故必须导入 DKMS 公钥,或暂时禁用 UEFI 的 Secure Boot,查看禁用状态 sudo mokutil --sb-state
否则 sudo modprobe nvidia 会报 modprobe: ERROR: could not insert 'nvidia': Key was rejected by service
亲测 Debian 不加 options nouveau modeset=0 选项依然能禁用。
cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
EOF
sudo update-initramfs -u
sudo reboot
lsmod | grep nouveau # 无输出即禁用成功;暂时由集成显卡接管。
sudo apt update 确保 /etc/apt/sources.list 存在 contrib non-free non-free-firmware
[待测] sudo apt install linux-headers-$(uname -r) 似乎 dkms install 依赖内核头
sudo apt install nvidia-kernel-dkms nvidia-driver firmware-misc-nonfree
sudo reboot
nvidia-smi 显存用量在 Memory-Usage 下一格
[输出N则需配置] sudo cat /sys/module/nvidia_drm/parameters/modeset
cat <<EOF | sudo tee /etc/modprobe.d/nvidia-options.conf
options nvidia-drm modeset=1
EOF
[可选] 主流发行版都将nouveau驱动作为内核的builtin模块了,如果 /etc/modprobe.d/*.conf 方式禁不干净,可在较早生效的 GRUB_CMDLINE_LINUX 中禁之。
sudo vim.tiny /etc/default/grub
追加参数值 GRUB_CMDLINE_LINUX="... modprobe.blacklist=nouveau nvidia-drm.modeset=1"
sudo update-grub sudo reboot