2022-01-17

  • 版权声明:原创文章,未经博主允许不得转载

3A5000 开始,龙芯转向 loongarch ,新的架构虽然甩掉了历史包袱,但也需要一段时间来积累生态。在这半年多的时间里, loongnix20 loongarch64 进展飞速。如今龙芯的二进制翻译已经可以运行愤怒的小鸟等耳熟能详的游戏、PhotoShop CS6 等常用的 Windows 软件,而原生的(网页)微信和(第三方)qq 也为 loongarch 的日常使用加了一把劲。而 loongnix20 mips64el 这边则略显惨淡,已经有好几个月没有收到更新了,于是我不得不转向对龙芯 3A4000 及其之前的 cpu 支持改观巨大的 Debian 。

上次提到,我们可以使用 debootstrap 获得一个根文件系统并以此为基础安装我们最终的 Debian 系统。由于内核不兼容,我们还可以通过替换内核包来解决这一问题。但是当时是从 Fedora28 上开始,如今 Fedora28 已经退出历史舞台,我们可以从 Loongnix20 mips64el 开始。

由于 Loongnix20 本身是基于 Debian10 ,所以从 Loongnix20 开始还是有一些好处的。我本来想用 netboot ,这个据说是可以正常使用的,但是在我这里一直卡载入内核,所以还是简单直观 debootstrap 吧。

关于 debootstrap 的具体情况参见 Debian Wiki

准备安装环境

准备 LiveCD

Loongnix20 的镜像可以从这里,直接下载,当前最新依然是 rc2 ,使用 Win32 Disk Imager 或者 dd 命令 写入你喜欢的U盘即可。

如果是 3A4000 之前的机器可能需要考虑一下U盘的兼容性问题。另外 3A3000 之前的机器似乎并不被 Loongnix20 支持,此时我们需要重新考虑使用 Fedora28 ,推荐 mate live 7.2 ,制作方法是一样的。

引导并安装 debootstrap

首先引导 LiveCD 进入桌面。

Loongnix20

Loongnix20 rc2 的镜像站地址是错误的,需要手动更改配置。

首先切换到 root 用户,密码为 loongnix

$ su

然后编辑 sources.list

# vim /etc/apt/sources.list

同步镜像并安装 debootstrap :

# apt-get update
# apt-get upgrade
# apt-get install debootstrap

如果没有磁盘分区工具可以安装一个:

# apt-get install gparted

Fedora28

更改 root 密码,后面可能会用到:

$ sudo passwd

直接同步镜像并安装 debootstrap :

$ sudo dnf upgrade
$ sudo dnf install debootstrap

如果没有磁盘分区工具可以安装一个:

$ sudo dnf install gparted

准备磁盘分区

分区请提前用 gparted 等图形化工具或更高级和灵活的命令行工具完成,下面所示是一个相对通用的分区示例,其中 /dev/sda1 为 boot 分区, /dev/sda2 为根目录, /dev/sda3 为 home 目录, /dev/sda4 作为交换分区:

# fdisk -l

Disk /dev/sda: 447.13 GiB, 480103981056 bytes, 937703088 sectors
Disk model: UNIC2 S100-480
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: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX Device Start End Sectors Size Type
/dev/sda1 34 2099199 2099166 1G EFI System
/dev/sda2 2099200 211814399 209715200 100G Linux filesystem
/dev/sda3 211814400 903874559 692060160 330G Linux filesystem
/dev/sda4 903874560 937703054 33828495 16.1G Linux swap

后面的操作提权到 root 进行:

$ su

LiveCD 的默认密码通常是 loongsonloongnix ,如果更改过 root 密码则使用修改后的密码。

挂载磁盘分区:

# mkdir /mnt/debian-stable
# mount /dev/sda2 /mnt/debian-stable # mkdir /mnt/debian-stable/boot
# mkdir /mnt/debian-stable/home
# mount /dev/sda3 /mnt/debian-stable/home
# mount /dev/sda1 /mnt/debian-stable/boot

安装基本的操作系统

debootstrap

# debootstrap --arch mips64el stable /mnt/debian-stable http://ftp2.cn.debian.org/debian

挂载额外需要的目录

# mount --bind /sys /mnt/debian-stable/sys
# mount --bind /proc /mnt/debian-stable/proc
# mount --bind /dev /mnt/debian-stable/dev

拷贝 efi 引导

由于没有找到龙芯 mips64el 的 efi 属于哪个软件包(loongarch64 属于 grub-efi-loongarch64),所以我们直接拷贝 LiveCD 启动后 /boot 目录下的二进制到欲安装系统的 /boot 目录。

拷贝 /boot 中除 vmlinuz* 、 initrid.ima* 、 System.map* 、 config-* 外的文件:

# cp -r /boot/boot /mnt/debian-stable/boot/
# cp -r /boot/grub /mnt/debian-stable/boot/
# cp -r /boot/EFI /mnt/debian-stable/boot/
# cp /boot/boot.cfg /mnt/debian-stable/boot/
# cp /boot/grub.cfg /mnt/debian-stable/boot/
# cp /boot/grub.efi /mnt/debian-stable/boot/

chroot 到新的根目录

# chroot /mnt/debian-stable /bin/bash

设置 root 密码

# passwd root

加入 non-free 源

更改 /etc/apt/sources.list ,这里给出一个示例:

deb http://ftp2.cn.debian.org/debian stable main non-free

默认安装了 nano 和 vi 文本编辑器。

另外这里复制粘贴了 tuna 源对 bullseye 的完整配置

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

验证网络并刷新软件包缓存

# ping debian.com
# apt-get update

安装 grub2

# apt-get install grub-common

安装内核

Debian 的内核理论上是可以直接用的,但是由于内核模块全部安装后 initrd.img 过大,启动时会出现 out of memory 或者直接卡死的情况。按后面的方法安装,默认情况下,不安装图形界面时 initrd.img 大概有 25M (此时可以正常引导),安装图形界面后为 52M 。所以这里我们同时安装 Loongnix20 的内核,作为默认内核不能启动时的备份。

从 Loongnix20 的镜像下载 Loongnix20 的内核软件包并安装,如果有更新的请使用更新的:

# apt-get install wget
# mkdir /home/tmp
# cd /home/tmp
# wget <loongnix kernel package link>
# apt-get install ./<loongnix kernel package name>

安装 Debian 的默认内核:

# apt-get install linux-image-loongson-3

安装驱动。如果是 amd 独显,这步安装包含独显驱动:

# apt-get install firmware-linux-free firmware-linux-nonfree

手动更新 grub 配置,安装内核的时候其实会自动更新一次:

# grub-mkconfig -o /boot/EFI/BOOT/grub.cfg

配置 fstab

通过 blkid 查看 uuid :

# blkid
/dev/sda1: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" BLOCK_SIZE="4096" TYPE="ext3" PARTUUID="00000000-0000-0000-0000-000000000000"
/dev/sda2: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00000000-0000-0000-0000-000000000000"
/dev/sda3: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00000000-0000-0000-0000-000000000000"
/dev/sda4: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="swap" PARTUUID="00000000-0000-0000-0000-000000000000"

配置 fstab ,这里给出一个示例:

# UNCONFIGURED FSTAB FOR BASE SYSTEM
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX / ext4 defaults,noatime 0 1
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /boot ext3 defaults,noatime 0 2
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /home ext4 defaults,noatime 0 2
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none swap defaults 0 0

安装和配置 locale

# apt-get install locales
# nano /etc/locale.gen

取消注释 /etc/locale.gen 中需要的 locale ,这里提供一个示例:

en_US.UTF-8 UTF-8
zh_CN GB2312
zh_CN.GB18030 GB18030
zh_CN.UTF-8 UTF-8

应用之:

# locale-gen

配置默认 locale :

# nano /etc/locale.conf

这里给出 /etc/locale.conf 的中文配置:

LANG=zh_CN.UTF-8

配置 hosts

查看你的 hostname :

# cat /etc/hostname

如果为空,则默认 hostname 为 localhost ,这里设 hostname 为 loongson-pc , 在 /etc/hosts 中添加一条配置:

127.0.1.1       loongnix-pc.localdomain loongnix-pc

建立新用户

添加一个喜欢的用户, -m 选项为这个用户建立默认的用户目录:

# useradd -m myuser

我们默认这个新建立的用户名为 myuser

设置新用户的默认 shell :

# usermod -s /bin/bash myuser

设置密码:

# passwd myuser

安装 sudo

# apt-get install sudo

将前面建立的新用户加入 sudo 用户组:

# usermod -a -G sudo myuser

运行 visudo 可以看到默认的配置,其中部分摘录如下:

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

可以看到 sudo 用户组是被允许运行 sudo 命令的。

重启系统

此时对基本操作系统的安装已经完成,可以重启进入新的 Debian 系统了。

其实也可以不重启,在 chroot 的环境里装,特别是使用 wifi 的情况下,在命令行界面配置相对复杂。如果不重启,直接跳到“安装图形界面”部分即可。

退出 chroot :

# exit

重启:

# reboot

重启后将进入到文本命令行的登陆界面,此时可以继续用 root 登陆,也可以用普通用户登陆。

登陆后检查网络。

有线联网

需要手动运行 dhcp :

# dhclient

Wifi

可以使用配置比较简单的 iwd ,注意它依赖 4.20+ 的内核,也就是说 Loongnix20 的内核(4.19)用不了。

# apt-get install iwd
# systemctl start iwd.service
# iwctl

安装图形界面

后面依然默认为 root 用户。

开箱即用的 KDE Plasma

# apt-get install task-kde-desktop

将安装包括 sddm 、 liberoffice 等配套的软件。

开箱即用的 MATE desktop environment

# apt-get install task-mate-desktop

将安装包括 lightdm 、 liberoffice 等配套的软件。

简洁的 KDE Plasma

如果不想装太多多余的自带软件,可以部分安装。

plasma-desktop 和 sddm 是基本的两个包, plasma-nm 则是网络管理:

# apt-get install plasma-desktop sddm plasma-nm

下面列举一些 plasma 上的必备软件:

  • dolphin 默认的文件管理器
  • konsole 默认的终端模拟器
  • okular 默认的文档查看器
  • ark 默认的压缩软件
  • kde-spectacle 默认的截图工具(当然 flameshot 也很棒)
  • kate 默认的文本编辑器(虽然通常是 kwrite)
  • kcalc 默认的小计算器
  • plasma-browser-integration 浏览器集成(需要浏览器安装同名插件)
  • phonon 媒体控制

安装所有:

# apt-get install dolphin konsole ark kde-spectacle kate kcalc plasma-browser-integration

phonon 是默认安装了的,它有两个后端,分别为 vlc 和 gstreamer 。默认安装的是 phonon4qt5-backend-vlc ,如果需要可以换成 phonon4qt5-backend-gstreamer :

# apt-get install phonon4qt5-backend-gstreamer
# apt-get remove phonon4qt5-backend-vlc

注意两者至少存在一个,所以先 install 后 remove 。

重启

如果你在前面重启过一次了,可以通过 systemctl 启动相应的登陆管理器来登陆图形界面。

如果你能现在还在 chroot 环境,可以按照前面提到的方法退出 chroot 环境并重启进入到新安装的 Debian 上,顺利的话你应该能直接进入到图形界面并使用普通用户(而不是 root 用户)登陆了。如果默认内核无法启动请在 grub 界面选择 Loongnix20 的内核。

后面的内容请在图形界面下完成。

输入法

这里推荐 fcitx5 并以 KDE Plasma 为例,其他桌面可以参考 Wiki

安装 fcitx5

$ sudo apt-get fcitx5 fcitx5-pinyin kde-config-fcitx5 fcitx5-frontend-gtk2

kde-config-fcitx5 是和 KDE Plasma 配套的配置程序。

除了 fcitx5-frontend-gtk2 ,其他依赖的包应该都默认安装了。

设置默认输入法

Debian 使用 im-config 来配置默认输入法, im-config 依赖 zenity 并没有被默认安装,在终端运行 im-config 应该可以看到相关报错。

安装 zenity :

$ sudo apt-get install zenity

使用 im-config 配置:

$ im-config

选择 fcitx5 即可。

其他主题

Debian 还打包了一款主题:

$ sudo apt-get install fcitx5-material-color

可以从上游页面了解相关的信息。

如果有程序用不了输入法

可以运行下面的命令辅助查找问题所在:

$ fcitx5-diagnose

浏览器

龙芯浏览器

可以安装 lbrowser v3 ,无法安装 v2 (依赖关系不满足)。

这里下载最新 for mips 的 deb 包并手动安装即可。

Firefox

可以正常使用,性能不及 lbrowser 。

$ sudo apt-get install firefox-esr

如果有 amd 独显,可以强制打开硬件加速,不然比较难用。

强制使用硬件加速

打开 Firefox ,地址栏键入 about:config ,有警告接受即可。

根据 Mozilla Wiki ,搜索并修改下面几条设置,将其设为 true :

  • webgl.force-enabled
  • webgl.msaa-force
  • layers.acceleration.force-enabled

作用分别为:强制启用 WebGL 、强制启用 WebGL 抗锯齿、强制启用硬件渲染(无视黑名单/白名单)。由于黑名单/白名单的存在,即使在设置中启用了硬件加速, Firefox 也会在大部分情况用软件渲染。

设置完成后请重启 Firefox 。

WebGL Aquarium 是一个小测试,可以用来对比强制打开硬件加速前后的性能变化。

硬件解码

注意这里的硬件解码主要依赖的是 amd 的独显,硬解依赖的驱动 mesa-vdpau-drivers 通常已经默认安装了。

古老的 loongnix 显卡支持列表 附在这里(应该已经没啥参考价值了)。

如果没有默认安装:

$ sudo apt-get install mesa-vdpau-drivers

安装 vdpauinfo 和 vainfo 查看硬件编解码信息:

$ sudo apt-get install vdpauinfo vainfo
$ vdpauinfo
$ vainfo

安装 radeontop 查看显卡的使用情况:

$ sudo apt-get install radeontop
$ sudo radeontop

视频播放

vlc

$ sudo apt-get install vlc

smplayer

$ sudo apt-get install smplayer

设置硬解

找到设置中的 General 选项卡,在 General 中选择 Multimedia engine 为 mplayer ,在 Video 中选择 Output driver 为 vdpau 。

mpv

$ sudo apt-get install mpv

音乐播放

audacious

$ sudo apt-get install audacious

网易云音乐

可以使用 netease-cloud-music-gtk ,根据其 readme 自行编译即可,也可以下载我编译好的deb 包

这个包不能在 loongnix20 上使用,如果需要在 loongnix20 上使用可以下载这个

Debian 安装:

$ sudo apt-get install ./netease-cloud-music-gtk_1.2.2_mips64el.deb

Loongnix20 安装:

$ sudo apt-get install ./netease-cloud-music-gtk_1.2.2_lnd_mips64el.deb

安装 osdlyrics 支持桌面歌词:

$ sudo apt-get install osdlyrics

由于缺少依赖包(好奇为啥会缺), osdlyrics 会无法启动,安装缺少的依赖包:

$ sudo apt-get install python3-chardet

启动 netease-cloud-music-gtk ,设置打开桌面歌词,播放音乐时再启动 osdlyrics 即可显示歌词。

即时通讯

icalingua

icalingua 是一个基于 Electron 的超棒的第三方 QQ ,现在支持 loongnix20,它在 Debian 也能很好地运行。

本项目希望为 Linux 打造一个会话前端框架,通过实现 Adapter 后端接口来适配各种聊天平台。目前已经拥有基于 oicq 以及 Icalingua 自有协议的后端

项目 release 下载 mips64el 架构的包,当前最新是 2.4.5 ,则选择 icalingua-2.4.5-mips64el.tar.xz 。

下面解压并安装之,后面提供一段示例,请根据实际情况具体修改。

解压并移动到自定义的位置:

$ tar xvf ./icalingua-2.4.5-mips64el.tar.xz
$ sudo mv ./icalingua-2.4.5-mips64el /opt/icalingua

在 2.4.5 版本中,此时二进制位置为 /opt/icalingua/electron ,图标位置为 /opt/icalingua/resources/app/dist/electron/static/icons/512x512.png

桌面图标将建立在 /usr/local/share/applications/ ,如果没有该目录需要创建该目录:

$ sudo mkdir /usr/local/share/applications
$ sudo touch /usr/local/share/applications/icalingua.desktop

根据作者的指导,可以得到 calingua.desktop 的内容如下:

[Desktop Entry]
Categories=chat;Network;
Exec=/opt/icalingua/electron %u
Icon=/opt/icalingua/resources/app/dist/electron/static/icons/512x512.png
Name=Icalingua
Comment=A Linux client for QQ and more
StartupNotify=true
Terminal=false
Type=Application

至此安装完成,可以点击图标使用了。

如果需要卸载,运行以下命令:

$ sudo rm /usr/local/share/applications/icalingua.desktop
$ sudo rm -r /opt/icalingua

telegram

安装 telegram-desktop 一定到在 sources.list 里放上 backports 源,参考 tuna 源的完整配置,因为 main 里的版本实在太低了,是不能登陆的,你需要安装 backports 的版本。直接 apt-get install telegram-desktop 不知道为啥给我装了 main 里低版本的。

查看所有可用的版本:

$ apt-cache search telegram-desktop

Package: telegram-desktop
Version: 3.1.1+ds-1~bpo11+1
Installed-Size: 94864
Maintainer: Nicholas Guriev <guriev-ns@ya.ru>
Architecture: mips64el
...省略 Package: telegram-desktop
Version: 2.6.1+ds-1+deb11u1
Installed-Size: 86397
Maintainer: Nicholas Guriev <guriev-ns@ya.ru>
Architecture: mips64el
...省略

查看上面假设的输出,请安装版本高的,比如 3.1.1+ds-1~bpo11+1

$ sudo apt-get install telegram-desktop=3.1.1+ds-1~bpo11+1

QQ for linux

linuxqq,你用不用吧。

办公套件

这部分就不多说了,直接 wps 。

直接从官网下载安装即可。

假设下载的安装包为 wps-office_11.1.0.10702_mips64el.deb :

$ sudo apt-get install ./wps-office_11.1.0.10702_mips64el.deb

还需要安装缺少的字体,字体从这里下载,双击每个文件安装即可。

分区工具

KDE Partition Manager

KDE Partition Manager 是 KDE Plasma 默认的分区工具。

$ sudo apt-get install partitionmanager

GNOME Partition Editor

GParted 其实没啥好说的,应该是好多人在 Linux 上接触的第一个图形化分区工具。

$ sudo apt-get install gparted

Markdown 编辑器

不知道为啥 ghostwriter 没有,所以这里只能介绍 retext 。一个简洁的编辑器吧,反正就图个预览。本来 kate 也可以有预览,但是这个特性似乎没有打开。

$ sudo apt-get install retext

OBS Studio

可以正常使用,直接安装即可。偶现音频采集的故障,具体不知道如何解决。

$ sudo apt-get install obs-studio

JetBrains 全家桶

参见狗剩百科 ,这里就不再赘述了。

by SDUST weilinfox

龙芯 3A4000 安装 Debian stable的更多相关文章

  1. 龙芯 3A4000 安装 Debian10 (via debootstrap)

    由于一些原因,Debian 的内核不能直接在龙芯的 cpu 上使用.据悉 Linux 5.7 kernel 改进了对龙芯的支持,不久的将来我们应该就能更愉快地在龙芯上运行 Debian 了. 感谢龙芯 ...

  2. 龙芯8089_D安装debian 8 iessie

    参考官方文档:https://wiki.debian.org/DebianYeeloong/HowTo/Install 下载网络引导文件后使用tftpd建立ftfp服务器,然后使用PMON tftp来 ...

  3. 龙芯3a4000办公机安装软件及美化记录

    1.硬件平台: CPU:龙芯3a4000 Linux内核版本:4.19.90-1.lns7.2.mips64el 操作系统:Debian 10(buster) 使用过龙芯3a3000和3a4000两款 ...

  4. 使用U盘为龙芯笔记本安装操作系统

    摘要:在没有光驱的情况下,可以使用dd命令或者ultraISO软件制作Linux安装U盘,方法适合龙芯和X86.AMD64的设备. 前段时间,由于开发需要,拿到了一部龙芯3A3000的笔记本.出厂的安 ...

  5. [转帖]龙芯3A4000处理器实测:28nm工艺不变 性能仍可提升100%以上

    龙芯3A4000处理器实测:28nm工艺不变 性能仍可提升100%以上 http://news.mydrivers.com/1/663/663122.htm 龙芯是中科院下属的计算机所研发的自主产权国 ...

  6. 龙芯PG10 安装uuid-ossp 的方法 复用瀚高数据库的 so文件

    接着上一篇blog  当时在中标麒麟 龙芯上面安装了postgresql10.10 的版本 但是没搞定 uuid 当时遇到的问题: 0. 只安装postgresql数据库会报错如图示: 我验证了下 安 ...

  7. Ubuntu和UOS+mips64l龙芯处理器安装编译Openssl

    1.下载openssl开发包文件,我这里下载的是openssl-1.1.1f.tar.gz:并放在/data/home/dengchaoqun/openssl1.1.1目录下 2.终端切换到当前目录下 ...

  8. 龙芯 3A4000 Fedora28 安装笔记

    版权声明:原创文章,未经博主允许不得转载 3A4000用起来性能显然已经非常优秀,和朋友手上的3A3000相比有很大的提升(果然网上水分超多的什么测评看看呵呵就好).从零开始却用一半的核数和更低的制程 ...

  9. 在龙芯小本上安装Debain8.10

    (图片是LEMOTE8089D笔记本,来自互联网) YX原来送了一个LEMOTE笔记本给我.CPU是首款真正的国产,龙芯2F,兼容mips的指令集. 笔记本原来的操作系统是Debian6,后来升级到了 ...

随机推荐

  1. 其他(Excel函数集团)

    此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业!谢谢 下载地址:https://officecommunity-m ...

  2. vscode提示提示安装似乎损坏,请重新安装

    安装 Fix VSCode Checksums 插件 Ctrl+Shift+P , 输入Fix Checksums : Apply, 点击,重启即可

  3. 对ORM的理解

    1. 在面试中可能会问到这个问题,什么是ORM? ORM是对象关系映射(Object Relational Mapping),简称ORM,或O/RM,或O/R mapping,是一种程序技术. 白话理 ...

  4. CF132A Turing Tape 题解

    Content 读入一个字符串 \(s\),让你用以下规则将字符串中的所有字符转换成数字: 先将这个字符的 \(\texttt{ASCII}\) 码的 \(8\) 位 \(2\) 进制数反转,再将这个 ...

  5. CF1104A Splitting into digits 题解

    Content 给定一个数字 \(n\),试将这个数分成若干个数,使得这些数都相等,输出任意一个方案均可. 数据范围:\(1\leqslant n\leqslant 1000\). Solution ...

  6. CF1437A Marketing Scheme 题解

    Content 有 \(t\) 组询问,每组询问给定两个整数 \(l,r\),问是否存在一个 \(a\),使得 \(\forall x\in[l,r]\),都有 \(x\mod a\geqslant\ ...

  7. 20款GitHub上优秀的Go开源项目

    docker 无人不知的虚拟华平台,开源的应用容器引擎,借助该引擎,开发者可以打包他们的应用,移植到任何平台上. https://github.com/docker/docker 38154 star ...

  8. react Input 表单

    ​ input react 表单 input 密码框在谷歌浏览器下 会有黄色填充 官网的不太用,这个比较好用 type="password" autoComplete=" ...

  9. 7、滑动窗口套路算法框架——Go语言版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  10. _MSC_VER值对应的Visual Studio版本

    移步官网查看更多定义 1. 关于 今天使用cmake需要判断_MSC_VER的值是多少,额,官网查了下,还真不少 2. 查看 用下面的代码可以输出宏_MSC_VER的值 #pragma once #i ...