克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MulanPSL-2.0

Fine3399

介绍

一个基于SW799核心板的底板,更多介绍见https://github.com/asdawn/fine3399

SW799核心板系统下载

原底版支持镜像和刷机入门教程见:https://gitee.com/xiayang0521/rk3399/tree/sw799/

其中

android和batocera可用于亮机,hdmi显示正常,网口识别不全,其他硬件接口自测

Armbian、CentOS和openwrt都可以识别到双网口,固件问题hdmi显示不正常

Ubuntu_SW799_Rk3399_v2.5.1d_230721_update.7z 双网口、PCIE、GPU均可驱动 比较完美固件

Ubuntu下

firefly 密码 firefly

查看CPU温度 cat /sys/class/thermal/thermal_zone0/temp

另外,可以使用am40的镜像试机:

https://lajilao.top/thread-63-1-1.html

大概率hdmi正常,网口识别到一个,pcie未测

规格参数

1. SW799核心板(笔者手头拿到两种)

部件名称 芯片型号 备注说明
CPU RK3399 Dual-core A72+Quad-core A53, 64 bits, 2GHz;Mali-T864 GPU
RAM 4 GB DDR3L SDRAM
Flash 8G/16G
WIFI+BT AP6236/AP6181 WIFI WITH BLUETOOTH
金手指 用于接底板

核心板改装教程(群友提供)

为了支持底板的nvme,核心板需要加两个电阻和六个电容,另外需要去掉两个排阻:

输入图片说明

输入图片说明

电容型号:大小 0201 规格 CL03A104KP3NNNC陶瓷固定贴片电容器 104KPX5R 10V 100NF0.1u

电阻型号:大小 0201 规格 22 33 50 欧姆都可以

如图为焊好后的样子,对照自己的核心板八个空焊的位置,从2颗大电阻开始从右到左依次为

电容 电容 电容 电容 电阻 电阻 电容 电容 以上方案依据为原理图和莓的成品焊接图

null&Jack第二批fine3399 采用如下方案: 从左到右:电容 电容 电阻 电阻 电容 电容 电阻 电阻

焊盘最好用低温锡拖一遍 较低温焊接以防用高温把核心板和cpu吹坏

去掉排阻 如下图红圈所示

输入图片说明

2. Fine3399底板

部件名称 芯片型号 备注说明
USB type A 3.0 USB 3.0 * 1
USB type C USB type C * 1
TF port TF-card port * 1
HDMI HDMI 2.0 * 1
NVME NVME * 1
power 12V DC 5.5 * 2.1
Ethernet RTL8211F + RTL8153 RJ45 Gigabit Ethernet * 2
金手指接口 用于接sw799核心

输入图片说明 输入图片说明

外壳打板PCB https://gitee.com/xiayang0521/berrybaseboard-test/releases/tag/sw799外壳简易版0.1beta

卡刷教程

新手请使用我教程里的所用的镜像。

1. Linux镜像烧录

将Armbian_23.02.0-trunk_Bozz-rk3399_bullseye_current_5.15.89.img.xz或者openwrt_R23.01.01_bozz-fine3399-sw799a_k6.1.2-flippy-80+.img.xz烧录到tf卡

Windows下TF烧写

使用rufus烧写工具 https://rufus.ie/zh/

直接烧录img/img.xz/img.gz格式的镜像文件或者镜像压缩文件

依次选择tf卡设备和镜像文件,点击开始,等待烧录完成即可。

插到机子上,开机,即可启动tf外置系统 。

Armbian下,Armbian初始账号root 密码1234 (属于官方默认设置,以后刷任何机子的armbian先尝试这个) openwrt下,初始账号root 密码password(属于官方默认设置,以后刷任何机子的openwrt先尝试这个)

2. 如果需要备份EMMC里的系统

要使用 dd 和 gzip 备份,可以执行命令:

dd if=/dev/mmcblk2 | gzip > backup_mmcblk2.img.gz

在还原时,可以执行下列命令:

gzip -dc backup_mmcblk2.img.gz | dd of=/dev/mmcblk2

如需把Armbian或者openwrt装进emmc,ssh登陆后,将Armbian.img或者openwrt.img上传到/root/,执行

dd if=Armbian.img of=/dev/mmcblk2 bs=1M
# 如果是openwrt则执行
dd if=openwrt.img of=/dev/mmcblk2 bs=1M

armbian还可以执行

armbian-install # 选择 Boot from emmc - System on eMMC,安装完成后,选择 install/update bootloader on sd/emmc

3. 完成后,关机拔掉tf卡,重新启动即可,请耐心等待1分钟,如果超过1分钟不启动,再考虑是哪里出了问题。

Windows线刷教程

一、常规办法

1.下载DriverAssitant_v5.1.1,AndroidTool,rk3399_loader_v1.24.126.bin

https://gitee.com/xiayang0521/rk3399/releases/tag/rk3399刷机工具和驱动

安装DriverAssitant_v5.1.1,打开AndroidTool

2. typec线的typec一端连机子,另一端接电脑

3. 进入maskrom模式

a 按住recovery键或者短接sw799的maskrom短接点

输入图片说明

打开瑞芯微开发工具,按住recovery键或者如图短接箭头两点所指,插电开机,等待5s以内,发现一个maskrom设备,松开recovery键或者结束短接

b 不短接也行,清空bl

启动了linux系统(外置内置均可),进入系统后执行

dd if=/dev/zero of=/dev/mmcblk2 bs=1M count=300

关机(如果有tf卡,关机后,拔掉tf卡),重新开机后可以自动进入maskrom模式

c 进行串口调试

接TTL,连接串口并打开串口调试软件,开机后迅速在调试窗口按任意键,打断 u-boot 启动,执行如下命令

reboot bootloader

重启后会自动进入maskrom模式。

5.发现一个maskrom设备后,

a 刷linux

如图选择rk3399_loader_v1.24.126.bin 作为 Loader, img结尾的armbian/openwrt镜像作为 System(注意地址为0x00000000)

点击下载镜像标签,点击执行

b 刷android或者厂家ubuntu镜像

rkdevtool下,

1 点击 升级固件

2 点击 固件 选择android.img或者Ubuntu_SW799_Rk3399_v2.5.1d_230721.img

3 点击 擦除flash

4 点击 升级

5.插上HDMI显示器,出现logo之后,多等待一会(几分钟到10分钟)

二、将emmc当作usb磁盘在windows下进行直接管理

下载 https://gitee.com/xiayang0521/berrybaseboard-test/releases/download/u-boot-tf-for-burningemmc/helios64_sdcard_u-boot-only.img

将其烧录到tf卡,插到fine3399,typec线的typec一端连机子,另一端连接电脑,开机,查看电脑有没有识别到新存储设备, 如果没有则在设备管理器查看能否识别到rockchip未识别的设备,点击更新驱动,选择为大容量存储设备, 插拔电源重启fine3399,电脑即可识别到新存储设备,然后就可以将其用普通的usb烧录工具比如rufus等烧录linux或者安卓的emmc备份系统了。

Linux线刷教程

  1. 进入烧写模式

    同上进入 MaskRom 模式

    # 查看连接的设备
    ./rkbin/tools/upgrade_tool ld
    # 或使用 rkdeveloptool
    # 因 ./rkbin/tools/rkdeveloptool 这个不支持 ld 命令故需要重新编译 rkdeveloptool
    git clone https://github.com/rockchip-linux/rkdeveloptool.git
    sudo apt install -y libudev-dev libusb-dev dh-autoreconf libglib2.0-dev
    cd rkdeveloptool && autoreconf -i && ./configure && make
    sudo mv rkdeveloptool /usr/local/bin/
    rkdeveloptool ld
    
    # 应会有如下设备信息
    DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=301    Loader
    #
    DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=301    MaskRom
    
    # Loader 模式进入 MaskRom 模式方法
    ./rkbin/tools/upgrade_tool rd 3
    #
    rkdeveloptool rd 3
    
  2. 初始化 DRAM

    需要在 MaskRom 模式下才下载,否则报错 “The device does not support this operation!”。

    # 初始化 DRAM
    ./rkbin/tools/upgrade_tool db ./rk3399_loader_v1.22.119.bin
    #
    rkdeveloptool db ./rk3399_loader_v1.22.119.bin
    
    # 下载镜像
    ./rkbin/tools/upgrade_tool wl 0x0 ./system.img
    #
    rkdeveloptool wl 0x0 ./system.img
    
    

Linux下TF烧写

也可以使用图形化烧写工具 balena-etcher-electron

https://github.com/balena-io/etcher/releases

# sdX 为 sdcard 对应的块设备文件
sudo dd if=system.img of=/dev/sdX bs=4M oflag=sync status=progress

串口调试

串口选择

测试了市面上常见的几款 CH340G、PL2303HX 方案的串口,均存在只能读不能写问题,这将无法从串口打断 u-boot 启动和进行 shell 操作,建议使用 CP2104 方案的串口代替。

通信软件

也可以使用 minicom 、putty、SecureCRT 等工具。

# 解决串口权限问题
sudo usermod -a -G dialout $USER
# 重新登录后生效
reboot

# 安装串口通信软件
sudo apt install -y python3-serial

# 打开串口
miniterm /dev/ttyUSB0 1500000

# 退出 miniterm 快捷键为 Ctrl + ]

系统配置

网络

有线

# 使用 netplan 配置以太网络
sudo nano /etc/netplan/01-netcfg.yaml

# 配置为动态获取 IP
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes

# 或静态 IP
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
     dhcp4: no
     addresses: [10.0.0.10/24]
     gateway4: 10.0.0.1
     nameservers:
       addresses: [223.5.5.5,223.6.6.6]

# 应用配置
sudo netplan --debug apply

无线

# WiFi 配置
nmcli dev wifi connect "hotspot-name" password "password"

# 或使用 nmtui 命令图形化修改

热点

使用 hostapd + isc-dhcp-server

sudo apt install -y hostapd isc-dhcp-server

# 配置 hostapd
sudo nano /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=hostspot-name
macaddr_acl=0
auth_algs=1
#auth_algs=3
ignore_broadcast_ssid=0
hw_mode=g
channel=6
wpa=2
wpa_passphrase=password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
#wpa_pairwise=TKIP
#rsn_pairwise=CCMP

# 修改 hostapd 默认配置文件路径
sudo nano /etc/default/hostapd
DAEMON_CONF=/etc/hostapd/hostapd.conf

# 重启 hostapd
sudo service hostapd restart
sudo service hostapd status

# dhcp 配置
sudo nano /etc/dhcp/dhcpd.conf
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
authoritative;
subnet 10.0.0.0 netmask 255.255.255.0 {
    range 10.0.0.10 10.0.0.200;
    option broadcast-address 10.0.0.255;
    option routers 10.0.0.1;
    default-lease-time 600;
    max-lease-time 7200;
    option domain-name "local";
    option domain-name-servers 223.5.5.5, 8.8.4.4;
}

# 设置 dhcp 网口
# 不进行操作会出现错误:Not configured to listen on any interfaces!
sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="wlan0"
INTERFACESv6="wlan0"

# 设置 wlan0 地址
# 不进行操作会出现错误:Not configured to listen on any interfaces!
sudo ip addr add 10.0.0.1/24 dev wlan0

# 开启转发
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE

# 启动 dhcp 服务
sudo service isc-dhcp-server restart
sudo service isc-dhcp-server status

使用 network-manager + dnsmasq

# 此方按创建的 2.4G 热点会出现部分旧设备连接不上
sudo apt install -y dnsmasq
#nmcli dev wifi hotspot ifname wlan0 ssid "hotspot-name" password "password"
nmcli connection add type wifi ifname wlan0 con-name "Hostspot" autoconnect no ssid "hotspot-name"
nmcli connection modify "Hostspot" 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared
nmcli connection modify "Hostspot" wifi-sec.key-mgmt wpa-psk
nmcli connection modify "Hostspot" wifi-sec.psk "password"
nmcli connection up "Hostspot"

# 或使用 nmtui 命令图形化修改

镜像源

sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i "s@http://ports.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list

本地化

# 安装英文与简体中文语言包
sudo apt install -y language-pack-en language-pack-zh-hans
# 设置本地化
sudo dpkg-reconfigure locales

# 配置时区
sudo apt install -y tzdata
sudo dpkg-reconfigure tzdata
# 同步硬件时间
sudo hwclock -s

分区扩容

sudo apt install -y parted
sudo parted /dev/mmcblk2
unit s
print
resizepart 5 100%
print
Q

sudo resize2fs /dev/mmcblk2p5

Docker

sudo apt install gnupg2 -y

# 添加 apt 公钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

# 添加软件源
echo "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

# 安装 docker
sudo apt update && sudo apt install docker-ce -y

# 非 root 用户免 sudo 操作 docker
sudo usermod -aG docker $USER

常见问题

Q:能进 MaskRom 模式,但下载 Loader 初始化 DRAM 总是失败。或 u-boot 无等待时间不能按 RECOVERY 键进入 MaskRom 模式。

A:插上带有系统的 tf卡,默认会从tf卡,连接串口并打开串口调试软件,开机后迅速在调试窗口按任意键,打断 u-boot 启动,执行如下命令破坏 u-boot,重启后会自动进入 MaskRom 模式。

mmc dev 0
mmc erase 0 2000
reset

或者进入系统后

dd if=/dev/zero of=/dev/mmcblk2 bs=1M count=300

Q:使用 apt 安装软件包时出现如下警告:

perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "zh_CN.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").

A:参考 系统配置-本地化 一节安装相应语言包即可解决。


Q:以太网卡因未被 network-manager 托管不能启用。

# 网卡未启用
ip addr show eth0
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 16:a6:4c:50:54:44 brd ff:ff:ff:ff:ff:ff

# 网卡未被 network-manager
nmcli device
DEVICE  TYPE      STATE      CONNECTION
eth0    ethernet  unmanaged  --
lo      loopback  unmanaged  --

# 使用该命令启用网卡无效
nmcli dev set eth0 managed yes

A:原因在于 Ubuntu 更推荐使用 netplan 配置以太网络,默认的 network-manager 配置 /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf 不会托管以太网卡[^7]。若要使用 network-manager 托管所有网络设备操作如下:

# 覆盖默认配置
sudo touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf

Q:如何获取当前系统的设备树和内核编译选项?

A:使用如下命令获取:

# 设备树
cat /sys/firmware/fdt > raw.dtb

# 内核编译选项
zcat /proc/config.gz > kernel.config

Q:如何连接蓝牙音箱?

A:使用如下命令连接:

sudo apt install -y bluez bluez-tools pulseaudio pulseaudio-module-bluetooth

# 查看蓝牙信息
hciconfig

# 使用 bluetoothctl 命令操作蓝牙
# 上电
power on
# 扫描
scan on
# 配对
pair MAC
# 信任
trust MAC
# 连接
connect MAC

# 如果连接时出现 Failed to connect: org.bluez.Error.Failed 可以通过重启 pulseaudio 解决
pulseaudio -k
pulseaudio --start

# 声道测试
speaker-test -c2 -twav

# 查看 PulseAudio 信息
pactl info

# 查看音频输出通道
pactl list sinks

# 设置为默认音频输出通道,通过 TAB 补全后面的名称
pactl set-default-sink bluez_sink.MAC.a2dp_sink

参考资料

[^1]: Boot option - Rockchip open source Document

[^2]: U-Boot v2020.01 和 Linux 5.4 在 RK3399 上部署

[^3]: ATF - Rockchip open source Document

[^4]: U-Boot - Rockchip open source Document

[^5]: Rockchip Kernel - Rockchip open source Document

[^6]: Rkdeveloptool - Rockchip open source Document

[^7]: network-manager does not manage ethernet and bluetooth interfaces

木兰宽松许可证, 第2版 木兰宽松许可证, 第2版 2020年1月 http://license.coscl.org.cn/MulanPSL2 您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束: 0. 定义 “软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。 “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。 “贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。 “法人实体”是指提交贡献的机构及其“关联实体”。 “关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 1. 授予版权许可 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。 2. 授予专利许可 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。 3. 无商标许可 “本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。 4. 分发限制 您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。 5. 免责声明与责任限制 “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 6. 语言 “本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。 条款结束 如何将木兰宽松许可证,第2版,应用到您的软件 如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步: 1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字; 2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中; 3, 请将如下声明文本放入每个源文件的头部注释中。 Copyright (c) [Year] [name of copyright holder] [Software Name] is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details. Mulan Permissive Software License,Version 2 Mulan Permissive Software License,Version 2 (Mulan PSL v2) January 2020 http://license.coscl.org.cn/MulanPSL2 Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions: 0. Definition Software means the program and related documents which are licensed under this License and comprise all Contribution(s). Contribution means the copyrightable work licensed by a particular Contributor under this License. Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License. Legal Entity means the entity making a Contribution and all its Affiliates. Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. 1. Grant of Copyright License Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not. 2. Grant of Patent License Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken. 3. No Trademark License No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4. 4. Distribution Restriction You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software. 5. Disclaimer of Warranty and Limitation of Liability THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 6. Language THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL. END OF THE TERMS AND CONDITIONS How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps: i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; iii Attach the statement to the appropriate annotated syntax at the beginning of each source file. Copyright (c) [Year] [name of copyright holder] [Software Name] is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details.

简介

rk3399的相关资料 展开 收起
Shell 等 2 种语言
MulanPSL-2.0
取消

发行版 (3)

全部

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化