• Linux 时区time zone

    一、查看当前时区

    timedatectl

    二、修改时区(立即生效)

    例如:改为中国时间

    sudo timedatectl set-timezone Asia/Shanghai
    无需重启,立刻生效 ✅
    修改后使用 timedatectl 命令确认

    三、没有timedatectl命令时

    直接改 /etc/localtime

    sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  • Docker 技巧

    维持一个长久运行的容器以供调试,加sleep infinity
    容器停止后,自动删除这个容器 –rm

    例子
    docker run -dit – -device=/dev/kfd – -device=/dev/dri – -group-add video – -runtime=runc – -name ubuntu-alwayson qinzhen/comfyui-rocm:0.9.1 sleep infinity

    之后使用 docker exec -it ubuntu-alwayson bash 进入,在宿主机使用docker restart ubuntu-alwayson 重启

    在容器内做了修改之后可以使用一下命令提交变更

    docker commit “运行中的容器ID” “镜像名,如:qinzhen/xxxx”

    做一个正式镜像

    目录里建立Dockerfile文件,里面写上配置

    docker build -t “镜像名” . (不要忘记有.)

    docker push “镜像名”

    改名
    # Tag the existing image with a new name

    docker tag old_image_name:latest new_image_name:latest

    # Optionally, remove the old tag

    docker rmi old_image_name:latest

  • Alma Linux Docker 特例

    dnf remove -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

    dnf install -y moby-engine moby-cli moby-compose

  • 在 PowerShell 中查询 Windows 系统上次重启时间


    查看系统上次启动时间(最常用)

    Get-CimInstance Win32_OperatingSystem | Select-Object LastBootUpTime
    

    返回类似:

    LastBootUpTime
    --------------
    2025-01-12T03:41:22.123456+08:00
    

    查看系统运行时间 / 上次启动点(Uptime 信息)

    (Get-Date) - (gcim Win32_OperatingSystem).LastBootUpTime
    

    返回类似:

    Days              : 2
    Hours             : 5
    Minutes           : 18
    Seconds           : 47
    

    使用事件日志查询上次重启事件

    系统重启事件对应 Event ID 6006(正常关闭)6008(异常关闭)

    Get-EventLog -LogName System -InstanceId 6006 -Newest 1
    或 WMILog:
    Get-WinEvent -FilterHashtable @{LogName='System'; Id=6006} -MaxEvents 1
    
  • JsonNano NVME SSD直接使用SD Card Image安装

    相关网站1,https://www.jetson-ai-lab.com/
    相关网站2,https://developer.nvidia.com/embedded/jetpack/downloads
    Json Nano需要使用6.2.1 https://developer.nvidia.com/embedded/jetpack-sdk-621

    终于可以摆脱使用愚蠢的 NVIDIA SDK Manager将系统安装到SSD了

    推荐使用 Etcher 作为Image的写卡工具 https://etcher.balena.io/
    将SD Card Image写入你的Nvme SSD

    打开任意可以编辑Linux分区文件的工具,比如Disk Genius
    下载/boot/extlinux/extlinux.conf 文件并使用合适工具编辑
    找到以下位置
    APPEND ${cbootargs} root=/dev/nvme1n1p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 firmware_class.path=/etc/firmware fbcon=map:0 video=efifb:off console=tty0

    root=/dev/nvme1n1p1 ,将dev后面的设备从mmcblk0p1改为对应的nvme, 2280 是nvme0n1p1, 2230是nvme1n1p1 保存,上传并覆盖源文件。安装好ssd并开机。

  • JsonNano 编译Opencv CUDA支持

    验证Opencv版本及CUDA支持
    apt install python3 python3-pip
    pip3 install jetson-stats
    jetson_release

    原文链接 https://qengineering.eu/install-opencv-on-jetson-nano.html
    1,确认Swap空间是否足够+增加Swap空间容量
    vi /etc/systemd/nvzramconfig.sh
    找到这一行
    Calculate memory to use for zram (1/2 of ram)
    totalmem=$(LC_ALL=C free | grep -e “^Mem:” | sed -e ‘s/^Mem: *//’ -e ‘s/ *.*//’)
    mem=$(((“${totalmem}” / 2 / “${NRDEVICES}”) * 1024))


    把它改成 去掉 / 2,变成:
    Calculate memory to use for zram (ALL ram for zram, 2x previous)
    totalmem=$(LC_ALL=C free | grep -e “^Mem:” | sed -e ‘s/^Mem: *//’ -e ‘s/ *.*//’)
    mem=$(((“${totalmem}” / “${NRDEVICES}”) * 1024))
    这样每个 zram 分区的大小会变成原来的 2 倍,总 swap 也就是现在的 2 倍左右。reboot
    系统起来后,检查:
    zramctl
    cat /proc/swaps

    2,基于脚本编译Opencv
    为了简化流程,作者提供了一个一键脚本 (≈ 68 行命令),可自动执行包括依赖安装、环境配置、编译、链接、清理的全部步骤。一共大约需要 2 小时。

    以安装 OpenCV 4.11.0 为例,命令如下:
    先检查总内存 (RAM + swap) 是否 >= 8.5 GB
    free -m
    下载脚本
    wget https://github.com/Qengineering/Install-OpenCV-Jetson-Nano/raw/main/OpenCV-4-11-0.sh
    编辑脚本加入cmake版本信息
    在# run cmake下面加入
    -D CMAKE_CXX_STANDARD=17 \

    sudo chmod 755 ./OpenCV-4-11-0.sh
    ./OpenCV-4-11-0.sh
    安装完成后清理
    rm OpenCV-4-11-0.sh
    可选:删除源码文件,节省空间
    sudo rm -rf ~/opencv
    sudo rm -rf ~/opencv_contrib

    如果你想安装其他版本 (4.10, 4.9, 4.8, …),也可以下载对应版本脚本执行。

  • Linux设置开机进入shell或xwindows

    改为进入shell
    systemctl set-default multi-user.target
    
    改为进入xwindows
    systemctl set-default graphical.target
  • Nvidia Jason Nano SNAP bug fix

    由于新版本snap的bug导致firefox等浏览器无法运行,安装旧版本snapd
    snap download snapd –revision=24724
    snap ack snapd_24724.assert
    snap install snapd_24724.snap
    snap refresh –hold snapd
    snap install firefox

  • Linux中使用cat EOF 将文本写入文件

    cat << EOF > 文件名
    内容行1
    内容行2
    内容行3
    EOF

  • 让Linux用户sudo操作免密码

    # vi  /etc/sudoers 

    在最后面加一行
    gex ALL=(ALL) NOPASSWD: NOPASSWD: ALL