• 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后面的设备从mmcxxxx改为对应的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

  • 使用Dockerfile 创建自己的Docker镜像

    1,一样是需要在 https://www.docker.com/ 上有自己的账号。

    2,vi Dockerfile 里面如下写
    FROM ubuntu:latest

    RUN apt update -y \
    && apt-get update \
    && apt install -y curl wget unzip jq \
    && curl -sL https://aka.ms/InstallAzureCLIDeb | bash \
    && wget -O – https://apt.releases.hashicorp.com/gpg | gpg –dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg \
    && echo “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main” | tee /etc/apt/sources.list.d/hashicorp.list \
    && apt update \
    && apt install terraform -y \
    && curl “https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip” -o “awscliv2.zip” \
    && unzip awscliv2.zip \
    && ./aws/install \
    && rm -rf awscliv2.zip \
    && apt upgrade -y

    3,在存在Dockerfile的目录下执行
    docker build -t qinzhen/ubuntu-az-tf:latest . (注意,末尾的 . 非常重要不可或缺)
    在过程中可以看到进度,比如apt的安装过程或者报错等

    4,之后就是docker push环节

  • 自己构建一个Docker镜像

    1,一样是需要在 https://www.docker.com/ 上有自己的账号

    2,docker run -it ubuntu:latest 运行一个你需要的环境,也可以先pull下来再run

    3,在环境里安装自己需要的组件,下面的例子是我安装了azure cli和terraform
    docker run -it ubuntu:latest
    apt update -y
    apt upgrade -y
    apt install -y curl wget sudo vim unzip


    curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash


    wget -O – https://apt.releases.hashicorp.com/gpg | sudo gpg –dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
    echo “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/hashicorp.list
    sudo apt update && sudo apt install terraform -y

    curl “https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip” -o “awscliv2.zip”
    unzip awscliv2.zip
    sudo ./aws/install

    3,创建image:不要退出刚才的容器新连接一个ssh
    docker commit -m “description” -a “author” <容器id> repository:tag

    “description”:描述信息。
    “author”:作者名。
    <容器id>:可以在就终端那里看到,形如root@2ce6712ef339:/#。可以看到<容器id>是2ce6712ef339。
    reposiory:镜像仓库名,任取即可。
    tag:镜像标签名,任取即可。
    在本例中,生成镜像使用如下命令

    docker commit -m “ubuntu-az-terrafrom” -a “Zhen Qin” 6d726081f0fa qinzhen/ubuntu-az-tf:latest

    4,将自建的Docker镜像推送至Docker Hub
    docker push qinzhen/ubuntu-az-tf:latest

  • Dockerhub上的镜像迁移到Harbor镜像仓库

    1,到docker.io上注册账号。

    2,找一台装了docker的linux机器执行docker login登录docker hub

    下载镜像

    docker pull teddysun/kms

    打标签

    docker tag teddysun/kms:latest qinzhen/kms:latest

    推送

    docker push qinzhen/kms:latest

    之后Docker Hub里就可以看到

    3,在harbor中创建–仓库管理

    4,在harbor中创建–复制管理 (成功后点复制就可以下载所有之前打过标签的镜像)

  • Docker 中安装WordPress

    由于Wordpress的关联比较多所以需要使用Docker-compose

    1,选定一个工作目录(wordpress),目录中新建两个相关的映射目录,比如(wp-content,db_data)

    2,创建compose.yml

    3,执行docker-compose up -d (停止和删除使用docker-compose down)