• [交流分享] Linux内核hello world 驱动发开发(Ubuntu)
     前言linux 内 核 模 块 全 称 为 “ 动 态 可 加 载 内 核 模 块 (Loadable Kernel Module,LKM)”,是系统内核向外部提供的功能插口。作为宏内核结构,Linux 内核具有效率高的特点,但也有可扩展性和可维护性相对较差的不足,Linux 提供模块机制正是弥补这一缺陷。模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。模块在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户控件的进程是不同的。模块通常有一组函数和数据结构组成,用来实现某种文件系统、驱动程序或其它内核上层功能。本文将介绍如何编写一个简单的内核模块以及如何传递参数给此模块。一、      Ubuntu系统安装1.1 安装Ubuntu 18.04系统安装比较简单,该文档不做累述。1.2 网络配置1.       配置IP:执行命令ip address先确认网卡设备名,然后在interfaces文件中添加IP相关属性。2.       添加DNS,因为/etc/resolv.conf文件不可编辑,需要创建/etc/rc.local文件来增加DNS服务器3.       重启系统后可ping通外网。1.3 安装软件如下图所示,在安装软件时发生“Unable to locate package make”报错1.       制作国内源,本次选用清华源1).备份原软件源sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup2).新開一个终端,在终端里输入sudo vim /etc/apt/source.list3).将source.list文件里的内容换成下面的(也可以把原来的注释掉) # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse4).保存后退出,在终端里输入:sudo apt-get update2.       再次安装make3.       Ubuntu系统默认没有安装ssh服务,建议安装。执行命令sudo ps –e|grep ssh没有任何输出说明没有安装执行命令sudo apt-get install openssh-server安装ssh服务如需开启sftp功能,还需要配置sftp权限。4.       安装gcc等。  二、      编写Makefile1  2  2.1 小程序测试创建文件a.c创建文件b.c编译:#gcc –o test a.c b.c(我也不知道implicit declaration of function ‘func_b’报错什么意思)运行./test,结果:2.2 小程序解析.c程序 –> 得到可执行程序要经过四个步骤:1.预处理2.编译3.汇编4.链接我们经常把前三个步骤统称为编译。具体分析这条命令:gcc -o test a.c b.c它们要经过下面几个步骤:1).对于a.c执行:预处理 编译 汇编 的过程,a.c –>xxx.s –>xxx.o 文件。2).对于b.c执行:预处理 编译 汇编 的过程,b.c –>yyy.s –>yyy.o 文件。3).最后:xxx.o和yyy.o链接在一起得到一个test应用程序。提示:gcc -o test a.c b.c -v :加上一个‘-v’选项可以看到它们的处理过程 第一次编译a.c得到xxx.o文件,这合乎情理, 执行完第一次之后,如果修改a.c ,又再次执行:gcc -o test a.c b.c,对于a.c应该重新生成xxx.o,但是对于b.c,又会重新编译一次,这完全没必要:b.c根本没有修改,直接使用第一次生成的yyy.o文件即可。 以上,不用Makefile的缺点:对所有的文件都会再处理一次,即使b.c没有经过修改,b.c也会被重新编译一次, 当文件比较少时,没什么问题,文件非常多的时候,编译的效率会很低。 如果文件非常多的时候,只是修改了一个文件,所有文件都会被重新编译一次,编译的时候就会需要很长时间。 对于这些源文件,我们应该分别处理,执行:预处理 编译 汇编 ,先分别编译它们,最后再把它们链接在一起,比如:编译:gcc -o a.o a.cgcc -o b.o b.c链接:gcc -o test a.o b.o 因此我们可以写出Makefile文件2.3 编写Makefile文件在小程序目录下写一个Makefile文件: 文件名:Makefile内容:  test:a.o b.o      gcc -o test a.o b.o    a.o : a.c     gcc -c -o a.o a.c    b.o : b.c      gcc -c -o b.o b.c         说明:         test :a.o b.o //test是目标,它依赖于a.o b.o文件,一旦a.o或者b.o比test新的时候,需要执行下面的命令,重新生成test可执行程序。gcc -o test a.o b.oa.o : a.c //a.o依赖于a.c,当a.c更加新的话,执行下面的命令来生成a.ogcc -c -o a.o a.cb.o : b.c //b.o依赖于b.c,当b.c更加新的话,执行下面的命令来生成b.ogcc -c -o b.o b.c  2.4 执行make直接执行make命令即可,一执行make命令它会生成第一个目标test可执行程序, 如果发现a.o 或者b.o没有,会先生成a.o或者b.o,发现a.o依赖a.c,有a.c但是没有a.o,它会认为a.c比a.o新,则执行它们下面的命令来生成a.o,同理,b.o和b.c的处理关系也是这样的。 如果修改a.c ,再次执行make,它的本意是想生成第一个目标test应用程序, 它需要先生成a.o, 发现a.o依赖a.c(假设我们修改了a.c),发现a.c比a.o更加新,就会执行gcc -c -o a.o a.c命令生成a.o文件。b.o依赖b.c,发现b.c并没有被修改,则不会执行gcc -c -o b.o b.c来重新生成b.o文件。 现在a.o b.o都有了,其中的a.o比test更加新,就会执行gcc -o test a.o b.o重新链接得到test可执行程序。所以当执行make命令,则会执行下面两条命令: gcc -c -o a.o a.cgcc -o test a.o b.o第一次执行make的时候,会执行下面三条命令(三条命令都执行): gcc -c -o a.o a.cgcc -c -o b.o b.cgcc -o test a.o b.o再次执行make 会有下面的提示: make: `test` is up to date.再次执行make 会判断Makefile文件中的依赖,发现依赖没有更新,所以目标文件就不会重新生成,于是有上面的提示。当我们修改a.c后,重新执行make会执行下面两条指令: gcc -c -o a.o a.cgcc -o test a.o b.o同时修改a.c b.c,执行make则会执行下面三条指令。 gcc -c -o a.o a.cgcc -c -o b.o b.cgcc -o test a.o b.oa.c文件被修改了,重新编译生成a.o, b.c被修改了,重新编译生成b.o, a.o, b.o都更新了,则重新链接生成test可执行程序,makefile的规则其实不难. 结果如下:三、      Makefile进阶3  3.1 通配符  1  创建一个c.c文件:并在a.c文件添加func_c()函数修改Makefile文件:编译make执行./test1 通配符说明:         %.o:表示所有的.o文件         %.c:表示所有的.c文件         $@:表示目标         $<:表示第一个依赖文件         $^:表示所有依赖文件   2  3  3.1  3.2 变量在Makefile中有两种变量:1)  简单变量(即时变量)A := xxx // A的值即可确定,在定义时即确定对于即时变量使用“:=”表示,它的值在定义的时候已被确定。2)  延时变量B = xxx // B的值被使用到时才确定对于延时变量使用“=”表示。它只有在使用到的时候才确定,在定义/等于时并没有确定下来当我们执行make命令的时候,make这个指令本身,会把整个Makefile读进去,进行全部分析,然后解析里面的变量。常用的变量的定义如下::= // 即时变量= // 延时变量?= // 延时变量, 如果是第一次定义才起效, 如果在前面该变量已定义则忽略这句+= // 附加, 它是即时变量还是延时变量取决于前面的定义?=: // 如果这个变量在前面已经被定义,这句话就不会起效果实例:A := $(C)B = $(C)C = abc#D = 100askD ?= weidongshanall:@echo A = $(A)@echo B = $(B)@echo D = $(D)C += 123编译后分析:1)A := $(C):A为即时变量,在定义时即确定,由于刚开始C的值为空,所以A的值也为空。2) B = (C):B为延时变量,只有使用到时它的值才确定,当执行make时,会解析Makefile里面的所用变量,所以先解析C=abc, 然后解析C+=123,此时C=abc123,当执行:@echoB=(C):B为延时变量,只有使用到时它的值才确定,当执行make时,会解析Makefile里面的所用变量,所以先解析C=abc, 然后解析C+=123,此时,C=abc123,当执行:@echoB=(B) B的值为 abc 123。3)D ?= weidongshan:D变量在前面没有定义,所以D的值为weidongshan,如果在前面添加D = 100ask,最后D的值为100ask。 我们还可以通过命令行存入变量的值例如执行:make D=huawei里面的D ?= weidongshan这句话便不再起作用。结果:   四、      编写一个简单的内核模块4  4.1 编写模块程序编写如下简单代码,本示例中代码文件命名“hello_module.c”。 //hello_module.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>static int __init hello_init(void){  //_init初始化编译器相关函数或变量。编译器将标__init的所有代码存在特殊的内存段中,初始化结束后就释放这段内存   printk("This is hello_module, welcome to Linux kernel \n");   return 0;}static void __exit hello_exit(void){   printk("see you next time!\n");}module_init(hello_init);module_exit(hello_exit);MODULE_LICENSE("GPL");MODULE_AUTHOR("Mr Q");MODULE_DESCRIPTION("hello kernel module");MODULE_ALIAS("hello");以上代码解释如下:(1) #include <linux/module.h>:必须。module.h 头文件包含了对模块的结构定义以及模块的版本控制,任何模块程序的编写都要包含这个头文件;(2) #include <linux/kernel.h>:kernel.h 包含了常用的内核函数,如以上程序中的 printk()函数;(3) #include <linux/init.h>:必须。init.h 包含了 module_init()和 module_exit()函数的声明;(4) module_init():必须。模块加载函数,加载模块式该函数自动执行,进行初始化操作;相当于c语言程序中的main()函数,是驱动程序初始化的入口点。对于内置的模块,内核在引导时调用该引导点,对于可加载模块则在模块插入到内核时才调用。(5) module_exit():必须。模块卸载函数,卸载模块时函数自动执行,进行清理操作;(6) MODULE_LICENSE():表示模块代码接受的软件许可协议。Linux 内核是使用 GPL V2 的开源项目,其要求所有使用和修改了 Linux 内核代码的个人或组织都有义务把修改后的源代码公开,这是一个强制的开源协议,所以一般编写驱动代码都需要显示的声明和遵循本协议,否则内核 UI 发出被污染的警告;(7) MODULE_AUTHOR():描述模块的作者信息;(8) MODULE_DESCRIPTION():简单描述模块的用途、功能介绍等;(9) MODULE_ALIAS():为用户控件提供的别名;           (7)-(9) 是模块声明与描述部分。这部分可以有,也可以省略。(10) printk():内核输出函数,模块加载函数和模块卸载函数中都会用到,默认打印系统文件 “ /var/log/kern.log”的内容。 4.2  编译内核模块编写 Makefile 文件,文件名必须为“Makefile”obj-m := hello_module.oKERNELBUILD := /lib/modules/$(shell uname -r)/buildCURRENT_PATH := $(shell pwd)all: make -C $(KERNELBUILD) M=$(CURRENT_PATH) modulesclean:  make -C $(KERNELBUILD) M=$(CURRENT_PATH) clean以上代码解释如下:(1) obj-m := <模块名>.o:定义要生成的模块名称(2) KERNELBUILD := /lib/modules/$(shell uname -r)/build :KERNELBUILD 为自定义名称,用于指向正在运行 Linux 的内核编译目录,其中“uname -r”标识显示对应的内核版本;(3) CURRENT_PATH := $(shell pwd):CURRENT_PATH 为自定义名称,用于指向当前当前目录;(4) all:编译执行的动作(5) clean:zhixing make clean 需要的动作。“make clean”用于清除上次的 make 命令所产生的 object 文件(后缀为“.o”的文件)及可执行文件。4.1 编译将以上两个文件(hello_module.c 和 Makefile)保存于同一目录下,将上文中代码存放在路径为“/code/hellomodule/”,编译需在文件保存目录中进行。编译成功后,可看到生成的 hello_module.ko 目标文件 4.2 检查编译模块可通过 file 命令检查编译的模块是否正确,可以看到 aarch64架构的 elf文件,说明编译成功:也可通过 modinfo 命令进一步检查 : 4.3 插入模块通过 insmod 命令插入模块,完成插入后可通过 lsmod 命令查看当前模块是否已经被加载到系统中:系统加载模块后,也会在“/sys/module”目录下新建以模块名命名的目录 :4.4 查看输出因 本 演示 中 prink()采 用 默认 输出 等级 ,可 通 过“ dmesg” 或“ tail /var/log/kern.log”命令查看输出结果。“ tail /var/log/kern.log”命令查看输出结果:4.5 卸载模块卸载模块,可通过“rmmod 模块名”实现,通 过“ tail /var/log/kern.log”命令查看输出结果。五、      内核模块参数5  5.1 说明Linux 内核提供一个宏来实现模块的参数传递#define module_param(name, type, perm) \module_param_named(name, name, type, perm)#define MODULE_PARM_DESC(_parm, desc) \_MODULE_INFO(parm, _parm, #_parm ":" desc);module_param()宏由 3 个参数组成,name 表示参数名,type 表示参数类型,perm 表示参数读写权限。MODULE_PARM_DESC()宏提供参数的简单说明,参数类型可为 byte、short、int、long、char、bool 等类型;perm 指定在 sysfs 中相应文件的访问权限,如设置为 0 则不会出现在 sysfs 文件系统中,设置为 0644 标识 root 用户可修改本参数。static int debug = 1;module_param(debug, int, 0644);MODULE_PARM_DESC(debug, "enable debugging information");#define dprintk(args...) if(debug){printk(KERN_DEBUG args);}如上述实际代码所示(driver/misc/altera-stap1/altera.c),实际定义模块参数 debug,类型是 int,访问权限是 0644。参数用途是大概调试信息,实际内核编程中常用此方法进行内核调试。5.2 参数实现修改上文中的“hello_module.c”文件,改为以下内容://hello_module.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>static int debug = 1;module_param(debug, int, 0644);MODULE_PARM_DESC(debug, "debugging information");#define dprintk(args...) if(debug){printk(KERN_DEBUG args);}static int myparm = 10;module_param(myparm, int, 0644);MODULE_PARM_DESC(myparm, "kernel module parameter experiment.");static int __init parm_init(void){   dprintk("my linux kernel module init.\n");   dprintk("module parameter = %d\n", myparm);   return 0;}static void __exit parm_exit(void){   printk("see you next time!\n");}module_init(parm_init);module_exit(parm_exit);MODULE_LICENSE("GPL");MODULE_AUTHOR("Mr Q");MODULE_DESCRIPTION("kernel module paramter experiment");MODULE_ALIAS("myparm");make编译,装载模块,并查看输出:通过查看日志信息,可发现输出以上程序中 参数 的默认值。卸载模块,赋值重新加载模块,修改参数 myparm 值为 116:insmod hello_module.ko myparm=116  通过查看日志信息,可发现 参数 值已经改变。 
  • [问题求助] 【Atlas200dk】【制卡问题】提示没有ubuntu*server*arm*.iso
    【功能模块】【操作步骤&问题现象】1、root@chenxh-virtual-machine:/home/chenxh/Ascend# lsA200dk-npu-driver-20.1.0-ubuntu18.04-aarch64-minirc.tar.gzA200dk-npu-firmware-1.75.22.1.220-minirc.runAscend-cann-minirc_20.1.rc1_ubuntu18.04-aarch64.zipAscend-cann-toolkit_20.1.rc1_linux-aarch64.runAscend-cann-toolkit_20.1.rc1_linux-x86_64.runascend-toolkitmake_sd_card.pymake_ubuntu_sd.shMindStudio_2.0.0-beta2_ubuntu18.04-x86_64.tar.gzMindStudio_2.0.0-beta2_ubuntu18.04-x86_64.tar.gz.ascMindStudio-ubuntusd_card_making_logtoolsubuntu-18.04.5-server-amd64.isoubuntu-18.04-server-amd64.iso2、root@chenxh-virtual-machine:/home/chenxh/Ascend# python3.7.5 make_sd_card.py local /dev/sdbBegin to make SD Card...disk /dev/sdb size 30064771072sector num 31016878080sector size 512Please make sure you have installed dependency packages:     apt-get install -y qemu-user-static binfmt-support gcc-aarch64-linux-gnu g++-aarch64-linux-gnuPlease input Y: continue, other to install them:y[ERROR] Can not find ubuntu*server*arm*.iso package in current path【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] MindSpore下载安装 - 简单上手使用 Ubuntu18.04
    MindSpore是华为开发的一款深度学习的开源框架,于2020年3月28号正式亮相,其与TensorFlow、PyTorch、PaddlePaddle 等流行深度学习框架对标,旨在大幅度降低 AI 应用开发门槛。MindSpore介绍 安装 Mindspore官方地址: https://www.mindspore.cn/ 下载地址:https://www.mindspore.cn/install 操作系统是Ubuntu的,使用CPU跑,所以选择这样的安装指令。 如果是Windows系统的话就选择Windows-x64,然后也是使用pip安装。 ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202103/04/090821s2onhhzgxi3i56nq.png) 打开终端复制命令过来: ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202103/04/090857lapmq77uwdflavqa.png) 这里就直接对着安装命令复制下载即可。 好吧,下载时还要注意使用 sudo 给下载权限。。 ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202103/04/090906jnjwpxgt95xevvc2.png) 等待下载完后,会提示一个 Successfully installed . ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202103/04/0909199bxv21fiu0zyp33t.png) 同时可以通过pip freeze 查看安装仓库有没有 Mindspore ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202103/04/090928dal21hocife9s88i.png) 简单使用 这里使用Mindspore简单定义一个三阶张量,这是一个比赛实训的安装任务: ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202103/04/090939rhmko36knttw7wkv.png) 嗯,不明白张量的童鞋需要先去了解一下张量(Tensor) ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/forums/attachment/forum/202103/04/091019fw9yrl2pgyq1qehd.png) ———————————————— 原文链接:https://blog.csdn.net/qq_43332980/article/details/108060458
  • [其他问题] Taishan服务器minspore环境安装问题
    【问题描述】我们的服务器是TaiShan 2280 V2/2Kunpeng 920 (48核)/16G12 /1.2T*8 SN,安装的操作系统是openEuler-20.03-LTS。准备安装minspore的CPU版本,但是在官网发现目前只支持ubuntu和windows。请问ubuntu-aarch64的版本与我们的操作系统兼容吗?【截图信息】
  • [技术干货] 如何监控服务器健康与检查
    作为系统管理员,了解您的基础设施和服务的当前状态是最佳做法。理想情况下,您希望在用户之前注意到磁盘或应用程序停机时间失败。像Checkmk这样的监控工具可以帮助管理员检测这些问题并维护健康的服务器。通常,监控软件可以跟踪服务器的硬件、正常运行时间和服务状态,并在出现问题时提高警报。在一个非常基本的情况下,如果任何服务出现问题,监控系统会提醒您。在更稳健的信号中,通知会在出现任何可疑迹象(如内存使用量增加或 TCP 连接异常数量)后不久发出。有许多监控解决方案提供不同程度的复杂性和功能集,包括免费和商业。在许多情况下,这些工具的安装、配置和管理既困难又耗时。然而,Checkmk是一种既坚固又易于安装的监控解决方案。它是一个自成一体的软件包,将Nagios(一种流行的开源提醒服务)与用于收集、监控和绘制数据的附加组件相结合。它还配备了Checkmk的网络界面-一个全面的工具,解决纳吉奥斯的许多缺点。它提供了一个用户友好的仪表板,一个功能齐全的通知系统,以及一个存储库的易于安装的监控代理为许多Linux分布。如果不是 Checkmk 的 Web 界面,我们将不得不针对不同的任务使用不同的视图,如果不进行广泛的文件修改,就无法配置所有这些功能。在此指南中,我们将在 Ubuntu 18.04 服务器上设置 Checkmk,并监控两个独立的主机。我们将监控 Ubuntu 服务器本身以及单独的 CentOS 7 服务器,但我们可以使用相同的方法将任意数量的附加主机添加到我们的监控配置中。先决条件一个Ubuntu 18.04服务器与一个常规的,非根用户与sudo特权。一个 CentOS 7 服务器,具有常规的非根用户,具有 Sudo 特权。第1步-在乌本图安装支票为了使用我们的监控站点,我们首先必须在 Ubuntu 服务器上安装 Checkmk。这将为我们提供所有我们需要的工具。Checkmk 提供正式的即用 Ubuntu 软件包文件,我们可以用它来安装软件包。首先,让我们更新包列表,以便我们有存储库列表的最新版本:sudo apt update要浏览包裹,我们可以转到包列表网站。Ubuntu 18.04 等,可以在页面菜单中选择。现在下载包:wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb然后安装新下载的包:sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb此命令将安装 Checkmk 包以及所有必要的依赖项,包括用于提供对监控界面的 Web 访问权限的Apache Web 服务器。安装完成后,我们现在可以访问命令。尝试一下:omdsudo omd此命令将输出以下:omdOutputUsage (called as root):  omd help                        Show general help . . . General Options:  -V <version>                    set specific version, useful in combination with update/create  omd COMMAND -h, --help          show available options of COMMAND该命令可以管理我们服务器上的所有检查实例。它可以立即启动和停止所有监控服务,我们将用它来创建我们的 Checkmk 实例。但是,首先,我们必须更新防火墙设置,以便外部访问默认 Web 端口。omd步骤2-调整防火墙设置在我们能够与 Checkmk 合作之前,有必要允许外部访问防火墙配置中的 Web 服务器。假设您遵循了先决条件中的防火墙配置步骤,您将设置 UFW 防火墙来限制对服务器的访问。在安装过程中,Apache 会向 UFW 注册,以提供通过防火墙启用或禁用访问 Apache 的简单方法。要访问阿帕奇,请使用以下命令:sudo ufw allow Apache现在验证更改:sudo ufw status您将看到 Apache 列在允许的服务中:OutputStatus: active To                         Action      From --                         ------      ---- OpenSSH                    ALLOW       Anywhere Apache                     ALLOW       Anywhere OpenSSH (v6)               ALLOW       Anywhere (v6) Apache (v6)                ALLOW       Anywhere (v6)这将允许我们访问 Checkmk 网络界面。在下一步中,我们将创建第一个 Checkmk 监控实例。第3步-创建检查监控实例Checkmk 使用实例或单个安装的概念来隔离服务器上的多个检查副本。在大多数情况下,只有一份 Checkmk 就足够了,这就是我们如何在此指南中配置软件。首先,我们必须给我们的新实例一个名称,我们将在整个文本中使用。要创建实例,键入:monitoringsudo omd create monitoring该工具将自动为我们设置所有内容。命令输出将类似于以下内容:omdOutputAdding /opt/omd/sites/monitoring/tmp to /etc/fstab. Creating temporary filesystem /omd/sites/monitoring/tmp...OK Restarting Apache...OK Created new site monitoring with version 1.6.0p8.cre.   The site can be started with omd start monitoring.   The default web UI is available at http://your_ubuntu_server/monitoring/   The admin user for the web applications is cmkadmin with password: your-default-password   (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.)   Please do a su - monitoring for administration of this site.在此输出中,会突出显示用于访问我们监控界面的 URL 地址、默认用户名和密码。该实例现已创建,但仍需要启动。要启动实例,键入:sudo omd start monitoring现在,所有必要的工具和服务将立即开始。最后,我们将看到一个输出,验证我们所有的服务都已成功启动:OutputStarting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Initializing Crontab...OK实例已启动并运行。要访问 Checkmk 实例,请在 Web 浏览器中打开。您将被提示输入密码。使用事先打印在屏幕上的默认凭据:我们将在以后更改这些默认值。http://your_ubuntu_server_ip/monitoring/Checkmk 屏幕以仪表板打开,该仪表板显示列表中的所有服务和服务器状态,并使用类似于地球的实际图形。安装后,这些是空的,但我们将很快使其显示我们的服务和系统的状态。下一步,我们将更改默认密码,以确保使用此界面保护站点。第 4 步 -更改您的管理密码在安装过程中,Checkmk 为管理用户生成随机密码。此密码打算在安装时更改,因此它通常很短,不太安全。我们可以通过 Web 界面更改此问题。cmkadmin首先,从左侧的WATO - 配置菜单打开"用户"页面。该列表将显示当前有权访问 Checkmk 站点的所有用户。在新的安装中,它只会列出两个用户。第一种是用于自动工具:第二个是我们曾经登录到该网站的用户。单击用户旁边的铅笔图标以更改其详细信息,包括密码。更新密码,添加管理电子邮件,并进行任何其他需要的更改。保存更改后,我们将被要求使用新凭据再次登录。这样做,并返回到仪表板,在那里还有一件事,我们必须做充分应用我们的新配置。再次打开来自WATTO-配置菜单左侧的用户页面。左上角标有"1 Change"的橙色按钮告诉我们,我们对 Checkmk 的配置进行了一些更改,我们需要保存并激活它们。每次我们更改监控系统的配置时,不仅在编辑用户凭据之后,都会发生这种情况。要保存和激活有待更改,我们必须单击此按钮,并同意使用以下屏幕上的"激活受影响"选项激活列出的更改。激活更改后,新用户的数据将写入配置文件,并将被系统的所有组件使用。Checkmk 会自动通知各个监控系统组件,必要时重新加载它们,并管理所有需要的配置文件。检查姆克安装现已准备就绪,可以使用。下一步,我们将在监控系统中添加第一个主机。第5步-监控第一个主机我们现在准备监视第一个主机。为此,我们将首先在 Ubuntu 服务器上安装。然后,我们将限制使用。check-mk-agentxinetd安装 Checkmk 的组件负责接收、存储和显示监控信息。它们不提供信息本身。为了收集实际数据,我们将使用Checkmk 代理。Checkmk 代理专为该工作而设计,能够同时监控所有重要系统组件,并将这些信息报告回 Checkmk 实例。安装代理我们将监控的第一个主机将是——我们安装Checkmk实例本身的服务器。your_ubuntu_server首先,我们必须安装检查代理。所有主要分销的包(包括 Ubuntu)可直接从 Web 界面获得。打开来自WATO 的监控代理页面 - 左侧的配置菜单。您将看到可用的代理下载与最流行的包下的第一部分标记包装代理。该包是适合基于 Debian 的分销,包括乌本图。从 Web 浏览器复制该包的下载链接,并使用该地址下载该包。check-mk-agent_1.6.0p8-1_all.debwget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb下载后,安装包:apt install -y ./check-mk-agent_1.6.0p8-1_all.deb现在验证代理是否已成功安装:check_mk_agent命令将输出一个很长的文本,看起来像胡言乱语,但将有关系统的所有重要信息组合在一个地方。Output<<<check_mk>>> Version: 1.6.0p8 AgentOS: linux . . . ["monitoring"] <<<job>>> <<<local>>>Checkmk 使用此命令的输出从监控主机中收集状态数据。现在,我们将限制访问监控数据。xinetd限制使用新卫星访问监控数据默认情况下,来自的数据使用xinetd送达,这是一种在访问某个网络端口时在某个网络端口上输出数据的机制。这意味着我们可以通过使用 Telnet 从互联网上的任何其他计算机访问端口(Checkmk 的默认端口),除非我们的防火墙配置不允许这样做。check_mk_agentcheck_mk_agent6556向互联网上的任何人发布有关服务器的重要信息不是一个好的安全政策。我们只允许运行 Checkmk 并在我们监督下的主机访问此数据,以便只有我们的监控系统才能收集这些数据。如果您遵循了初始服务器设置教程(包括设置防火墙的步骤),则默认会阻止访问 Checkmk 代理。但是,在服务配置中直接执行这些访问限制是一种好做法,而不是仅仅依靠防火墙来保护它。要限制对代理数据的访问,我们必须编辑配置文件。打开您最喜爱的编辑器中的配置文件。要使用纳米,类型:/etc/xinetd.d/check_mksudo nano /etc/xinetd.d/check_mk找到此部分:/等/新/check_mk. . . # configure the IP address(es) of your Nagios server here: #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2 . . .该设置负责限制对特定 IP 地址的访问。因为我们现在正在监视 Checkmk 运行的同一台服务器,因此只能允许连接。取消承诺并将配置设置更新为:only_fromlocalhost/等/新/check_mk. . . # configure the IP address(es) of your Nagios server here: only_from      = 127.0.0.1. . .保存并退出文件。必须重新启动新戴蒙才能进行更改。现在就这样做:sudo systemctl restart xinetd现在,我们的代理已启动并运行,并仅限于接受本地连接。我们可以继续使用Checkmk为该主机配置监控。在支票网络界面中配置主机首先,要添加一个新的主机来监视,我们必须转到WATTO-配置菜单中的主机菜单。从这里点击创建新的主机。我们将被要求提供一些关于主机的信息。机名称是 Checkmk 用于监控的熟悉名称。它可能是一个完全合格的域名,但没有必要。在此示例中,我们将命名主机,就像 Checkmk 实例本身的名称一样。由于无法解决我们的 IP 地址,我们还必须提供服务器的 IP 地址。由于我们正在监控本地主机,IP将只是。检查IPv4 地址框以启用手动 IP 输入并输入文本字段中的值。monitoringmonitoring127.0.0.1数据源部分的默认配置依赖于 Checkmk 代理来提供监控数据,这很好。网络段设置用于表示远程网络上的主机,其特点是预期延迟较高,而不是故障迹象。由于这是本地主机,默认设置也正常。要保存主机并配置将监控哪些服务,请单击"保存"并转到"服务"按钮。检查将做一个自动库存。这意味着它将收集代理的输出并破译它,以了解它可以监控哪些类型的服务。所有可用于监控的服务都将在列表中,包括 CPU 负载、内存使用和磁盘上的免费空间。为了支持对所有已发现的服务进行监控,我们必须单击尚未决定的服务(当前未监控)部分下的"监视器"按钮。这将刷新页面,但现在所有服务都将列在监控服务部分之下,通知我们它们确实受到监控。与更改用户密码时的情况一样,这些新更改必须在上线前保存并激活。按下 2 个更改按钮,并使用"激活受影响"按钮接受更改。之后,主机监控将启动并运行。现在,您已准备好处理您的服务器数据。使用左侧的概述/主概述菜单项查看主仪表板。使用监控数据现在,让我们使用左侧的概述/主概述菜单项目查看主仪表板:地球球体现在完全绿色,桌子说,一个主机是没有问题的。在主机/所有主机视图中(使用左侧的菜单),我们可以看到完整的主机列表,该列表现在由单个主机组成。在那里,我们将看到有多少服务健康状况良好(以绿色显示),有多少服务失败,有多少服务有待检查。点击主机名后,我们将能够看到所有服务的列表,其完整的状态和他们的Perf-O-米。Perf-O-Meter显示单个服务相对于 Checkmk 认为健康良好的服务的性能。返回可绘制数据的所有服务在其名称旁边显示一个图形图标。我们可以使用该图标访问与服务相关的图形。由于主机监控是新鲜的,图形上几乎没有任何东西,但一段时间后,图表将提供有价值的信息,说明我们的服务性能如何随着时间的推移而变化。第 6 步 - 监控第二个中心主机当您拥有多个主机时,监控变得非常有用。我们现在将添加第二个服务器到我们的Checkmk实例,这一次运行CentOS 7。与我们的Ubuntu服务器一样,安装Checkmk代理对于收集CentOS上的监控数据是必要的。但是,这一次,我们将需要一个来自Web界面中的监视代理页面的包,称为。。rpmcheck-mk-agent-1.6.0p8-1.noarch.rpm但是,首先,我们必须安装,这在默认情况下在CentOS安装中不可用。,我们会记住,是一个护卫,负责使通过网络提供的监测数据可用。xinetdXinetdcheck_mk_agent在CentOS服务器上,首先安装:xinetdsudo yum install -y xinetd现在,我们可以下载并安装 CentOS 服务器所需的监控代理包:sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm就像以前一样,我们可以通过执行来验证代理是否正常工作:check_mk_agentsudo check_mk_agent输出将类似于来自 Ubuntu 服务器的输出。现在我们将限制对代理的访问。限制访问这一次,我们将不会监控本地主机,因此必须允许来自安装 Checkmk 的 Ubuntu 服务器的连接来收集数据。为了实现这一点,请首先打开您的配置文件:xinetdsudo vi /etc/xinetd.d/check_mk在这里,您将看到您的服务的配置,指定如何通过护蒙访问Checkmk代理。查找以下两条评论行:check_mkxinetd/等/新/check_mk. . . # configure the IP address(es) of your Nagios server here: #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2 . . .现在取消处理第二行,并将本地 IP 地址替换为:your_ubuntu_server_ip/等/新/check_mk. . . # configure the IP address(es) of your Nagios server here: only_from      = your_ubuntu_server_ip. . .通过键入然后保存并退出文件。使用::xENTERxinetdsudo systemctl restart xinetd我们现在可以继续配置检查,以监控我们的CentOS 7主机。在检查中配置新主机要向 Checkmk 添加其他主机,我们像以前一样使用主机菜单。这一次,我们将命名主机,配置其 IP 地址,并在网络段选择框下选择WAN(高延迟),因为主机位于另一个网络上。如果我们跳过这个,把它作为本地,Checkmk很快就会提醒我们,主机是下来,因为它会期望它响应代理查询比可能在互联网上快得多。centos单击"保存"并转到"服务",该服务将显示可用于在 CentOS 服务器上监控的服务。列表将非常类似于第一个主机的列表。同样,这一次我们还必须单击监视器,然后使用左上角的橙色按钮激活更改。激活更改后,我们可以验证主机是否在"所有主机"页面上进行监控。去那里两个主机,而且,现在将可见。您现在正在监视Ubuntu服务器和带有Checkmk的CentOS服务器。可以监控更多的主机。事实上,除了服务器性能之外,没有上限,这应该不成问题,直到您的主机数量达到数百个。此外,任何其他主机的程序都是一样的。支票代理和包装工作在乌本图,CentOS,和大多数其他Linux分销。debrpm结论在此指南中,我们设置了两个具有两种不同Linux分布的服务器:乌本图和CentOS。然后,我们安装并配置了 Checkmk 来监视两台服务器,并探索了 Checkmk 强大的 Web 界面。Checkmk 允许轻松设置完整且多功能的监控系统,该系统将手动配置的所有辛勤工作打包到一个易于使用的 Web 界面中,其中包含各种选项和功能。使用这些工具,可以监控多个主机:设置电子邮件、短信或推送问题通知;设置更多服务的额外检查;监控可访问性和性能等。
  • [问题求助] 使用网线直连Ubuntu服务器失败
    配置虚拟网卡ip地址失败。如下图,求解? 463210
  • [问题求助] 通过usb直连ubuntu服务器失败
    usb脚本配置ip地址后如下图: 463205 登陆ssh显示refused。 463207 求解?
  • [问题求助] Atlas200dk ubuntu虚拟机上激活失败(网络连接失败)急急急
    【功能模块】【操作步骤&问题现象】1、是这样的,我先按照https://blog.csdn.net/weixin_45292794/article/details/110866477里面的教程把ubuntu虚拟机,mindstudio,SD卡都配置好了。2、我采用USB连接电脑与开发板,但查看开发版这里,本来应该在输入ssh HwHiAiUser@192.168.1.2之后激活开发板进入密码输入环节,但却遇到了如下情型  connection refused 3.尝试了很久也没有解决问题,求大神协助【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [行业资讯] Ubuntu Core 20 发布,为安全物联网而生
    Canonical 的 Ubuntu Core 20 是面向物联网设备和嵌入式系统的 Ubuntu 20.04 LTS 的最小容器化版本,现已全面上市。官方表示,这个主要版本通过安全启动、全盘加密和安全设备恢复来增强设备安全性。Ubuntu Core 建立在 Ubuntu 应用程序生态系统的基础上,以创建超安全的智能事物。
  • [技术干货] ubuntu16.04做bond
    ubuntu16.04做bond所谓bond,就是把多个物理网卡绑定成一个逻辑上的网卡,使用同一个IP工作,在增加带宽的同时也可以提高冗余性,一般使用较多的就是来提高冗余,分别和不同交换机相连,提高可靠性,但有时服务器带宽不够了也可以用作增加带宽。以下是操作步骤:一、环境准备1、安装fenslave它是一款linux下的网卡绑定所需要的负载均衡工具,可以将数据包有效的分配到bonding驱动。查看软件fenslave是否安装root@B-OPS-75-3:~# dpkg -l | grep fenslaveii   ifenslave    2.7ubuntu1            all          configure network interfaces for parallel routing (bonding)通过上面的信息可以知道软件已经安装如果没安装,可以通过apt源安装root@B-OPS-75-3:~# apt-get install ifenslave -y2、加载绑定内核模块root@B-OPS-75-3:~# modprobe bonding检查 bonding 模块是否正常加载root@B-OPS-75-3:~# lsmod | grep bonding bonding               147456  03、添加bonding模块开机启动root@B-OPS-75-3:~# vi /etc/modules # /etc/modules: kernel modules to load at boot time. ## This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. bonding       #添加的内容,使该模块开机启动二、配置网络接口1、编辑网络配置文件a、使用简单的主备模式设置,将eth1和eth2作为绑定网卡,绑定的接口为bond0,并将作为eth1主接口:root@B-OPS-75-3:~# vi /etc/network/interfacesauto eth1                             #要绑定的主网卡 iface enp4s0f0 inet manual bond-master bond0 bond-primary eth1 auto eth2                             #要绑定的备网卡iface eth2 inet manual bond-master bond0 auto bond0                            #绑定的网卡名 iface bond0 inet static               #静态地址 address xx.xx.xx.xx                   #IPgateway xx.xx.xx.xx                   #网关 netmask xx.xx.xx.xx                   #子网 bond-mode active-backup               #模式主备 bond-miimon 100                       #miimon是100毫秒监测一次网卡状态,如果有一条线路不通就切换另一条线路。 bond-slaves noneb、使用自适应负载均衡模式(模式6)设置,将eth1和eth2作为绑定网卡,绑定的接口为bond0root@B-OPS-75-3:~# vim /etc/modprobe.d/bond.conf       //添加以下内容  alias bond0 bonding options bond0 mode=balance-alb miimon=100root@B-OPS-75-3:~# vim /etc/network/interfacesauto eth1 iface eth1 inet manual bond-master bond0   auto eth2 iface eth2 inet manual bond-master bond0   auto bond0 iface bond0 inet static address xx.xx.xx.xx gateway xx.xx.xx.xx netmask xx.xx.xx.xx bond-mode 6                                          # 绑定模式为6 bond-miimon 100bond-slaves  eth1  eth2               #绑定的从属的网卡重启网卡root@B-OPS-75-3:~# /etc/init.d/networking restart
  • [技术干货] 新手小白也能学会的Ubuntu搭建vsftpd服务器,学起来!
    这两天需要使用ftp服务器进行测试,在网上看了很多关于Ubuntu搭建vsftpd的安装配置教程,经过多次尝试,终于搞定!因此总结了一个Ubuntu搭建vsftpd服务器的设置方法,大家有需要的就赶快学起来吧!新手小白也可以学习哦!№1、安装vsftp,命令如下:sudo apt-get install vsftpd注:在终端输入这句命令,有可能会提示-“无法定位到软件包 vsftpd”,有可能是在局域网内没有配置DNS域名,需自己手动配置DNS。№2、修改配置文件(在修改之前最好做一下备份,命令:sudo cp  /etc/vsftpd.conf /etc/vsftpd.conf.cp)sudo vim /etc/vsftpd.conf就会弹出一个文件编辑界面,这个就是vi编辑界面,此时,我们就能使用vi的基本命令来操作该文件了。(vi的常用命令可以百度自己查查看看哦~)具体的配置文件如下(按红色字体修改配置):# Example config file /etc/vsftpd.conf## The default compiled in settings are fairly paranoid. This sample file# loosens things up a bit, to make the ftp daemon more usable.# Please see vsftpd.conf.5 for all compiled in defaults.## READ THIS: This example file is NOT an exhaustive list of vsftpd options.# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's# capabilities.### Run standalone?  vsftpd can run either from an inetd or as a standalone# daemon started from an initscript.listen=NO## This directive enables listening on IPv6 sockets. By default, listening# on the IPv6 "any" address (::) will accept connections from both IPv6# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6# sockets. If you want that (perhaps because you want to listen on specific# addresses) then you must run two copies of vsftpd with two configuration# files.listen_ipv6=YES## Allow anonymous FTP? (Disabled by default).#这个是设置是否允许匿名登录ftp服务器,不允许。anonymous_enable=NO   ## Uncomment this to allow local users to log in.#是否允许本机用户登录local_enable=YES## Uncomment this to enable any form of FTP write command.#允许上传文件到ftp服务器write_enable=YES## Default umask for local users is 077. You may wish to change this to 022,# if your users expect that (022 is used by most other ftpd's)#local_umask=022## Uncomment this to allow the anonymous FTP user to upload files. This only# has an effect if the above global write enable is activated. Also, you will# obviously need to create a directory writable by the FTP user.#anon_upload_enable=YES## Uncomment this if you want the anonymous FTP user to be able to create# new directories.#anon_mkdir_write_enable=YES## Activate directory messages - messages given to remote users when they# go into a certain directory.dirmessage_enable=YES## If enabled, vsftpd will display directory listings with the time# in  your  local  time  zone.  The default is to display GMT. The# times returned by the MDTM FTP command are also affected by this# option.use_localtime=YES## Activate logging of uploads/downloads.# 一个存有详细的上传和下载信息的日志文件xferlog_enable=YES    ## Make sure PORT transfer connections originate from port 20 (ftp-data)# 在服务器上针对 PORT 类型的连接使用端口 20(FTP 数据).connect_from_port_20=YES   ## If you want, you can arrange for uploaded anonymous files to be owned by# a different user. Note! Using "root" for uploaded files is not# recommended!#chown_uploads=YES#chown_username=whoever## You may override where the log file goes if you like. The default is shown# below.#xferlog_file=/var/log/vsftpd.log## If you want, you can have your log file in standard ftpd xferlog format.# Note that the default log file location is /var/log/xferlog in this case.#xferlog_std_format=YES## You may change the default value for timing out an idle session.#idle_session_timeout=600## You may change the default value for timing out a data connection.#data_connection_timeout=120## It is recommended that you define on your system a unique user which the# ftp server can use as a totally isolated and unprivileged user.#nopriv_user=ftpsecure## Enable this and the server will recognise asynchronous ABOR requests. Not# recommended for security (the code is non-trivial). Not enabling it,# however, may confuse older FTP clients.#async_abor_enable=YES## By default the server will pretend to allow ASCII mode but in fact ignore# the request. Turn on the below options to have the server actually do ASCII# mangling on files when in ASCII mode.# Beware that on some FTP servers, ASCII support allows a denial of service# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd# predicted this attack and has always been safe, reporting the size of the# raw file.# ASCII mangling is a horrible feature of the protocol.#ascii_upload_enable=YES#ascii_download_enable=YES## You may fully customise the login banner string:#ftpd_banner=Welcome to blah FTP service.## You may specify a file of disallowed anonymous e-mail addresses. Apparently# useful for combatting certain DoS attacks.#deny_email_enable=YES# (default follows)#banned_email_file=/etc/vsftpd.banned_emails## You may restrict local users to their home directories.  See the FAQ for# the possible risks in this before using chroot_local_user or# chroot_list_enable below.#chroot_local_user=YES## You may specify an explicit list of local users to chroot() to their home# directory. If chroot_local_user is YES, then this list becomes a list of# users to NOT chroot().# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that# the user does not have write access to the top level directory within the# chroot)chroot_local_user=YESchroot_list_enable=YES# (default follows) 允许chroot_list文件中配置的用户登录此ftp服务器。chroot_list_file=/etc/vsftpd.chroot_list# You may activate the "-R" option to the builtin ls. This is disabled by# default to avoid remote users being able to cause excessive I/O on large# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume# the presence of the "-R" option, so there is a strong case for enabling it.#ls_recurse_enable=YES## Customization## Some of vsftpd's settings don't fit the filesystem layout by# default.## This option should be the name of a directory which is empty.  Also, the# directory should not be writable by the ftp user. This directory is used# as a secure chroot() jail at times vsftpd does not require filesystem# access.secure_chroot_dir=/var/run/vsftpd/empty## This string is the name of the PAM service vsftpd will use.pam_service_name=vsftpd   ## This option specifies the location of the RSA certificate to use for SSL# encrypted connections.rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemrsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.keyssl_enable=NO## Uncomment this to indicate that vsftpd use a utf8 filesystem.#utf8_filesystem=YES#配置ftp服务器的上传下载文件所在的目录。local_root=/home/python/ftpfile#this directory is for ftp server to save  download or upload data№3、创建一个用户名:ftpusersudo useradd -d /home/ftp -s /bin/bash ftpuser№4、给新创建的ftpuser设置密码,需输入两次:sudo passwd ftpuser№5、创建ftpuser的家目录并将其所属用户和所属组改为ftpusersudo mkdir /home/ftpsudo chown ftpuser:ftpuser /home/ftp№6、修改 /home/ftp权限(因为要在里面创建Down和Up目录,且其不能被ftpusers删除,所以应该限制 /home/ftp 写权限)sudo chmod 555  /home/ftp№7、这里在 /home/ftp下创建Down 和Up目录,Down仅可下载,Up可下载、上传、删除。sudo mkdir /home/ftp/Down          sudo chown ftpuser:ftpuser /home/ftp/Down   #同样需要修改其用户组和拥有者为 ftpusersudo mkdir /home/ftp/Upsudo chown ftpuser:ftpuser /home/ftp/Upsudo chmod 555 /home/ftp/Down   #修改 Down 目录下文件仅仅能下载sudo chmod 777 /home/ftp/Up  #修改 Up 目录下能下载、上传、删除№8、创建vsftpd.chroot_list文件并添加可ftp的用户sudo vim /etc/vsftpd.chroot_list这时会出现vi编辑框,就在里面添加可登录ftp的用户,我这边添加的就是ftpuser啦。还可以添加一些本地的其他用户。№9、配置好vsftpd后,我们就可以重新启动它了sudo service vsftpd restart还可以查看ftp的状态,命令如下: sudo service vsftpd status№10、经过上面的步骤,我们就大致完成了有关vsftpd的安装以及配置。接下来,我们就来测试下用户能否连接至vsftpd服务中。首先查看Ubuntu上的ip地址,在终端中输入 sudo ifconfig就可以查看ip地址了(如下红框)根据上面的ip地址,在浏览器内输入ftp://+ip地址就可以访问啦!!按照上述步骤,Ubuntu搭建vsftpd的就成功啦!
  • [Atlas200] 【Altas200产品】【硬件设计】协同处理模式下,数据的流入和流出
    【功能模块】【操作步骤&问题现象】你好,我们在设计使用Altas 200加速卡时遇到了两个问题,请教一下您。首先我们的工作模式是,协处理器模式,我们有自己的主控CPU。问题一:图中所示为《Atlas 200 AI加速模块 硬件开发指南(型号 3000)05.pdf》协处理的连接图,我们把可见光相机数据直连在Altas200模块上可以吗?如果可以,输入的数据需要做什么处理?问题二:当PC-Ubuntu通过USB给Altas200部署好模型后,去掉PC-Ubuntu后,我的上位机怎么通过吊舱_CPU去触发Altas200进行推理和停止推理的信号?Altas200推理后得到的数据(如坐标数据)如何反馈给吊舱_CPU?问题三:请问有相应的可以参考的案例吗?谢谢【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术讨论] 鲲鹏服务器 Ubuntu 18.0 无法安装 Rstudio
    鲲鹏服务器 Ubuntu 18.0 无法安装 Rstudio,报错显示 wrong architecture “amd64”,但是通过dpkg 添加后update时,又出现404错误。求解答,谢谢。
  • [技术干货] 不想装ubuntu双系统?试试s的子系统WSL,ubuntu16/18/20
    微软官方的WSL2实现了在windows系统中嵌入了完整linux API的子系统可以方便不喜欢双系统的同学。如果是一般的ubuntu18.04/ubuntu20.04,通过windows商店可以安装。参考官方文章: 适用于 Linux 的 Windows 子系统安装指南 (Windows 10)   https://docs.microsoft.com/zh-cn/windows/wsl/install-win10   如果是过时的ubuntu16.04,怎么安装呢?通过这个方法手工安装官方指导:   手动下载适用于 Linux 的 Windows 子系统发行版包  https://docs.microsoft.com/zh-cn/windows/wsl/install-manual  祝顺利~
  • [技术干货] 加速ubuntu/python的更新、下载速度
    推荐使用华为提供的下载加速资源https://mirrors.huaweicloud.com/在这里,提供了包括ubuntu/python和其他开源软件的镜像仓,助你开发速度更快一点~将几个配置加速方式贴在这里以下内容摘自上面的网站。ubuntu 加速1、备份配置文件:sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak2、修改sources.list文件,将http://archive.ubuntu.com和http://security.ubuntu.com替换成http://repo.huaweicloud.com,可以参考如下命令:sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.listsudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list3、执行apt-get update更新索引python加速Pip的配置文件为用户根目录下的:~/.pip/pip.conf(Windows路径为:C:\Users\<UserName>\pip\pip.ini), 您可以配置如下内容:[global]index-url = https://repo.huaweicloud.com/repository/pypi/simpletrusted-host = repo.huaweicloud.comtimeout = 120
总条数:344 到第
上滑加载中