嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM平台编程第五天-kernel配置(物联技术666)
链接:https://pan.baidu.com/s/1eb94AaDM-cIZsbr929Isbw?pwd=1688
提取码:1688
上午:linux内核介绍 徐登伟老师
下午:linux的配置
教学内容:
一、基本kernel的制作:
1、去开源社区下载原版kernel,linux-2.6.34.tar.bz2
2. 解压linux-2.6.34.tar.bz2源码包
tar jxvf linux-2.6.34.tar.bz2 -C /home/
3. 修改linux-2.6.34/Makefile文件,在makefile中找到以下两条信息并做修改
ARCH ? =arm //指定是arch/arm
CROSS_COMPILE ?=/usr/local/arm/4.3.2/bin/arm-linux- //指定编译器是目录下的交叉编译
注意:交叉编译器的环境变量也需要改为arm-linux-gcc-4.3.2
#export PATH=/usr/local/arm/4.3.2/bin/:$PATH //加入临时环境变量
4. 修改平台输入时钟
修改平台的时钟频率,修改内核源码“arch/arm/mach-s3c2440/mach-smdk2440.c”
把时钟初始化中(S3C24XX_init_clocks(16934400 ))的16934400 改为12000000,因为我们的开发板上为12M
5. 修改机器类型ID号(一般可以不修改,主要是要在vivi分表的时候和这里保持一致)
bootloader启动内核时,会传递机器类型ID进来,这里需根据bootloadr传进的ID修改内核ID号
在内核源码的“arch/arm/tools/mach-types”文件查找S3C2440,这里刚好与我们的bootloader相同,所以不用做修改,直接保存退出即可,如果不同则根据bootloader的内容修改此文件,或根据此文件修改boorloader的内容(在vivi中可通过param show查看)。
6. 解压yaffs_patch.tar.bz2源码包,进入yaffs2文件夹,给内核打上补丁使内核支持yaffs2
# ./ patch-ker.sh c /home/linux-2.6.34
7. 修改内核mtd分区和bootloader(vivi)使其一致(这步主要是为vivi服务)
编辑文件arch/arm/plat-s3c24xx/common-smdk.c(同样和vivi分表一致)
static struct mtd_partition smdk_default_nand_part[] =
{
[0] = {
.name = "vivi", //命令名字
.size = 0x00030000, //大小
.offset = 0, //开始位置
},
[1] = {
.name = "kernel",
.offset = 0x00050000,
.size = 0x00300000,
},
[2] = {
.name = "rootfs",
.offset = 0x00350000,
.size = 0x03cac000,
}
};
8. 修改文件drivers/mtd/nand/s3c2410.c
将s3c2410_nand_init_chip函数里的NAND_ECC_SOFT(switch case后面的不用改)改为NAND_ECC_NONE(因为在内核中默认配置不支持ECC校验,当然也可以在内核配置时选中ECC选项)
9. 到llinux-2.6.30目录下执行命令
#cp arch/arm/configs/s3c2410_defconfig .config
10. 执行make menuconfig,并对选项进行配置
1)System Type --->
S3C2440 and S3C2442 machines --->
仅保留SMDK2440 与SMDK2440 whith S3C2440 CPU module两个选项,将其他的选项全部勾掉
2)Kernel Features --->
[*]Use the arm EABI to compile the kernel(选中该选项)
3)File systems --->
a、把与ext2 ext3 ext4相关的所有选项全部去掉
b、Miscellaneous filesystems --->
<*>YAFFS2 file system support(选中此选项)
去除所有与jffs2相关的选项
保存退出
11、make zImage,在arch/arm/boot下生成编译好的可执行程序
或make uImage,在arch/arm/boot下生成编译好的可执行程序
二、带设备驱动的kernel
开始先重复上面的1-10步:
1、dm9000网卡驱动的移植:
1)修改arch/arm/plat-s3c24xx/devs.c 文件,增加以下代码:
/****add by dengwei*********************************/
#include <linux/dm9000.h>
static struct resource s3c_dm9k_resource[] =
{
[0] =
{
.start = S3C2410_CS3, //网卡连接在CS3总线上
.end = S3C2410_CS3 + 3,
.flags = IORESOURCE_MEM,
},
[1] =
{
.start = S3C2410_CS3 + 4,
.end = S3C2410_CS3 + 4 + 3,
.flags = IORESOURCE_MEM,
},
[2] = {
.start = IRQ_EINT7,
.end = IRQ_EINT7,
.flags = IORESOURCE_IRQ | IRQF_TRIGGER_RISING,
}
};
static struct dm9000_plat_data s3c_dm9k_platdata =
{
.flags = DM9000_PLATF_16BITONLY,
};
struct platform_device s3c_device_dm9k =
{
.name = "dm9000",
.id = 0,
.num_resources = ARRAY_SIZE(s3c_dm9k_resource),
.resource = s3c_dm9k_resource,
.dev =
{
.platform_data = &s3c_dm9k_platdata,
}
};
EXPORT_SYMBOL(s3c_device_dm9k);
/*************************add bu dengwei***************************/
2)修改 arch/arm/mach-s3c2440/mach-smdk2440.c文件
修改struct platform_device *smdk2440_devices[] __initdata结构体增加以下代码:
static struct platform_device *smdk2440_devices[] __initdata =
{
&s3c_device_ohci,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_dm9k, //for dm9000 add by dengwei
};
3)修改以下文件 arch/arm/plat-s3c24xx/include/plat/s3c244x.h
extern struct platform_device s3c_device_dm9k; // add by dengwei
4)修改drivers/net/dm9000.c源码:
在头文件区增加头文件:
#include <mach/regs-mem.h>
大约1365行左右增加以下代码:
static int __devinit dm9000_probe(struct platform_device *pdev)
{
//add here
}
注意:添加在dm9000_probe函数的开头
/**********add by dengwei******************************************/
#if defined(CONFIG_ARCH_S3C2440)
int oldval_bwscon = *((volatile unsigned int *)S3C2410_BWSCON);
*((volatile unsigned int *)S3C2410_BWSCON)=(oldval_bwscon&~(3<<16))| S3C2410_BWSCON_DW3_16|S3C2410_BWSCON_WS3|S3C2410_BWSCON_ST3; //设置BANK3:总线宽度为16,使能nWAIT
*((volatile unsigned int *)S3C2410_BANKCON3) = 0x1f7c; //设置BANK3的时间参数
#endif
/**********add by dengwei*************************************************/
5)修改make menuconfig配置选项:
Devices Drivers --->
Network device support --->
Ethernet (10 or 100) --->
[*]DM9000 support
(4)DM9000 maxinum debug level
//仅保留这两个选项,其余的全部去掉
6)重新编译内核,烧入开发板中即可
7)第一次使用的开发板需使用 ifconfig eth0 hw ether 12:34:56:78:32:65 设置mac地址
(MAC地址可以随便设置)
使用ifconfig eth0 192.168.220.*设置开发板IP
使用ping命令ping主机即可
2、USB驱动(U盘支持)
配置内核对USB设备的支持,2.6.34内核中对USB设备的支持已经非常全面了
这里只需要按照以下配置 就可以了,配置完后重新编译内核烧到开发板上
1)、修改make menuconfig
SCSI device support --->
< > RAID Transport Class
<*> SCSI device support
< > SCSI target support
[*] legacy /proc/scsi/ support
*** SCSI support type (disk, tape, CD-ROM) ***
<*> SCSI disk support
< > SCSI tape support
< > SCSI OnStream SC-x0 tape support
< > SCSI CDROM support
<*> SCSI generic support
< > SCSI media changer support
[*] HID Devices --->
--- HID Devices
-*- Generic HID support
[ ] /dev/hidraw raw HID device support
*** USB Input Devices ***
<*> USB Human Interface Device (full HID) support
[ ] PID device support
[*] /dev/hiddev raw HID device support
[*] USB support --->
{*} Support for Host-side USB
[ ] USB verbose debug messages
[ ] USB announce new devices
*** Miscellaneous USB options ***
[*] USB device filesystem
[*] USB device class-devices (DEPRECATED)
<*> OHCI HCD support
<*> USB Mass Storage support
2)、插入U盘。
当系统启动后插入U盘就会出现一些信息,可以看到sda就是U盘设备了,sda1是U盘的一个分区。
mount /dev/sda1 /mnt/ -o utf8
utf8 参数可以识别中文
3、LCD
1)、修改 arch/arm/mach-s3c2440/mach-smdk2440.c 如下:
/* LCD driver info */
static struct s3c2410fb_display smdk2440_lcd_cfg __initdata = {
.lcdcon5 = S3C2410_LCDCON5_FRM565 |
// S3C2410_LCDCON5_INVVLINE |
// S3C2410_LCDCON5_INVVFRAME |
S3C2410_LCDCON5_PWREN |
S3C2410_LCDCON5_HWSWP,
.type = S3C2410_LCDCON1_TFT,
.width = 320,
.height = 240,
.pixclock = 64000, /* HCLK 60 MHz, divisor 10 */
.xres = 320,
.yres = 240,
.bpp = 16,
.left_margin = 18,
.right_margin = 38,
.hsync_len = 30,
.upper_margin = 18,
.lower_margin = 18,
.vsync_len = 3,
};
static struct s3c2410fb_mach_info smdk2440_fb_info __initdata = {
.displays = &smdk2440_lcd_cfg,
.num_displays = 1,
.default_display = 0,
#if 0
/* currently setup by downloader */
.gpccon = 0xaa940659,
.gpccon_mask = 0xffffffff,
.gpcup = 0x0000ffff,
.gpcup_mask = 0xffffffff,
.gpdcon = 0xaa84aaa0,
.gpdcon_mask = 0xffffffff,
.gpdup = 0x0000faff,
.gpdup_mask = 0xffffffff,
#endif
.gpccon = 0xaa955699, //这是将GPC和GPD设置成功能引脚,也可以不设置
.gpccon_mask = 0xffc003cc,
.gpcup = 0x0000ffff,
.gpcup_mask = 0xffffffff,
.gpdcon = 0xaa95aaa1,
.gpdcon_mask = 0xffc0fff0,
.gpdup = 0x0000faff,
.gpdup_mask = 0xffffffff,
//.lpcsel = ((0xCE6) & ~7) | 1<<4,
.lpcsel = 0xf82, //设置TCONSEL寄存器选择三星240x320
};
static struct platform_device *smdk2440_devices[] __initdata = {
&s3c_device_ohci,
&s3c_device_lcd, //检查这里有没有加上
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_dm9k, //for dm9000 add by xiuhai.deng
};
a、如果要让系统启动起来看到 bootlogo 小企鹅,必须得在 make menuconfig 中进行配置添加
在 Device Drivers ---> Graphics support ---> Bootup logo下面可以全部选中支持
b、打开gimp号称 linux 下的 photoshop ,安装windows版(gimp-2.6.9-i686-setup.exe)
打开任何格式的一张将要转换的图片
选择:图像--->模式--->索引颜色转换--->最大颜色数量设置为(244)--->转换
还可以通过:图像--->缩放图像--->设置想要的图像大小
最后:文件--->另存为--->选择ppm格式--->保存格式为 ASCII
c、将转换好的图片拷贝到 drivers\video\logo 替换 logo_linux_clut224.ppm
并删除 logo_linux_clut224.c和logo_linux_clut224.o重新make zImage
d、且对于大多系统bootlogo图片的大小可以随便,且无需改动源码就可以显示
e、去掉10分钟后自动关屏问题:
在有一个 drivers/char/vt.c 文件其中有一个变量(blankinterval)可以设置它
来修改自动关屏的时间,也可以在函数(blank_screen_t)开头直接返回,这
样就永远不会关屏了
4、触模屏
1)、将 drivers/input/touchscreen/s3c2410_ts.c 换掉(在课件文件夹内)
2)、make menuconfig
Device Driver -->
Input device support -->
Touchscreens -->
[*]Samsung S3C2410 touchscreen input driver (它对应s3c2410_ts.c驱动)
5、UDA1341声卡驱动
1)、make menuconfig 声卡的配置是:
Device Drivers
<*>Sound card support
<*>Advanced Linux Sound Architecture --->(除这项外,其它全部不选中)
<*>Advanced Linux Sound Architecture (除了以下选项,其它均不选中)
<*> OSS Mixer API
<*> OSS PCM (digital audio) API
[*] OSS PCM (digital audio) API - Include plugin system
[*] Verbose procfs contents
<*>ALSA for Soc audio support(只选择下面两项)
<*>SoC Audio for the Samsung S3C24XX chips
<*>SoC I2S Audio support UDA134X wired to a S3C24XX
2)、配置声卡驱动
下面是我在mach-smdk2440.c上修改的地方:
…
#include <sound/s3c24xx_uda134x.h>
…
static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data =
{
.l3_clk = S3C2410_GPG(10), //这三个引脚是跟据自己开发板的硬件连接决定的
.l3_data = S3C2410_GPG(9),
.l3_mode = S3C2410_GPG(11),
.model = UDA134X_UDA1341,
};
static struct platform_device s3c24xx_uda134x =
{
.name = "s3c24xx_uda134x",
.dev =
{
.platform_data = &s3c24xx_uda134x_data,
}
};
static struct platform_device *smdk2440_devices[] __initdata =
{
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_rtc,
&s3c24xx_uda134x,
};
…
3)、编译、下载
在内核目录下make zImage后将生成的内核文件烧写到开发板。
4)、测试
启动开发板后将已经拷贝歌曲的U盘插入到开发板的USB接口,挂载U盘后,运行”cat 01.mp3 > /dev/dsp”命令后听到音频耳机输出哧哧的声音,证明声卡驱动配置成功。
6、mmc/SD card driver
1)、arch/arm/mach-s3c2440/mach-smdk2440.c platform结构中增加&s3c_device_sdi语句。
static struct platform_device *smdk2440_devices[] __initdata =
{
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_iis,
&s3c_device_nand,
&s3c_device_sdi, //add here
};
在make menuconfig时选上所有关于sd卡的信息,要想支持中文还得选上:
Device Drivers --->
<*> MMC/SD/SDIO card support --->
--- MMC/SD/SDIO card support
[ ] MMC debugging
[ ] Allow unsafe resume (DANGEROUS)
*** MMC/SD/SDIO Card Drivers ***
<*> MMC block device driver
[*] Use bounce buffer for simple hosts
< > SDIO UART/GPS class support
< > MMC host test driver
*** MMC/SD/SDIO Host Controller Drivers ***
< > Secure Digital Host Controller Interface support
< > MMC/SD/SDIO over SPI
<*> Samsung S3C SD/MMC Card Interface support
File system--》
DOS/FAT/NT Filesystems--》
VFAT(Windows-95)fs support
(437)Default codepage for FAT
**把437改为936
Native language support -->
[*]Simplified Chinese charset
[*]NLS UTF-8
这样就可直接挂载了 mount -t vfat /dev/mmcblk0 /mnt
如果sd卡分区了 mount -t vfat /dev/mmcblk0p1 /mnt
直接读写sd就可以了
2)、爱普板子SD卡少接两根引脚,分别是检测SD卡插拔的中断引脚和SD卡写保护的引脚
所以插上SD卡后要重启才能起作用
相关文章:
嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM平台编程第五天-kernel配置(物联技术666)
链接:https://pan.baidu.com/s/1eb94AaDM-cIZsbr929Isbw?pwd1688 提取码:1688 上午:linux内核介绍 徐登伟老师 下午:linux的配置 教学内容: 一、基本kernel的制作: 1、去开源社区下载原…...
Java笔记(死锁、线程通信、单例模式)
一、死锁 1.概述 死锁 : 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法往下执行。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进…...
DAY11_(简易版)VUEElement综合案例
目录 1 VUE1.1 概述1.1.1 Vue js文件下载 1.2 快速入门1.3 Vue 指令1.3.1 v-bind & v-model 指令1.3.2 v-on 指令1.3.3 条件判断指令1.3.4 v-for 指令 1.4 生命周期1.5 案例1.5.1 需求1.5.2 查询所有功能1.5.3 添加功能 2 Element2.0 element-ui js和css和字体图标下载2.1 …...
【Kafka】开发实战和Springboot集成kafka
目录 消息的发送与接收生产者消费者 SpringBoot 集成kafka服务端参数配置 消息的发送与接收 生产者 生产者主要的对象有: KafkaProducer , ProducerRecord 。 其中 KafkaProducer 是用于发送消息的类, ProducerRecord 类用于封装Kafka的消息…...
【C语言】(1)初识C语言
什么是C语言 C语言是一种广泛应用的计算机编程语言,它具有强大的功能和灵活性,使其成为系统编程和底层开发的首选语言。C语言的设计简洁、高效,且不依赖于特定的硬件或系统,因此在各种计算平台上都能稳定运行。 C语言的特点 高…...
SpringCloudStream整合MQ(待完善)
概念 Spring Cloud Stream 的主要目标是各种各样MQ的学习成本,提供一致性的编程模型,使得开发者能够更容易地集成消息组件(如 Apache Kafka、RabbitMQ、RocketMQ) 官网地址:Spring Cloud Stream 组件 1. Binder 2…...
【Java 数据结构】包装类简单认识泛型
包装类&简单认识泛型 1 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱 2 什么是泛型3 引出泛型3.1 语法 4 泛型类的使用4.1 语法4.2 示例4.3 类型推导(Type Inference) 5 泛型如何编译的5.1 擦除机制5.2 为什么不能实例化泛型类型数组 6 泛型…...
第139期 做大还是做小-Oracle名称哪些事(20240125)
数据库管理139期 2024-01-25 第139期 做大还是做小-Oracle名称哪些事(20240125)1 问题2 排查3 扩展总结 第139期 做大还是做小-Oracle名称哪些事(20240125) 作者:胖头鱼的鱼缸(尹海文) Oracle A…...
驱动开发--多路复用-信号
一、多路复用 每个进程都有一个描述符数组,这个数组的下标为描述符, 描述符的分类: 文件描述符:设备文件、管道文件 socket描述符 1.1 应用层:三套接口select、poll、epoll select:位运算实现 监控的描…...
LeetCode 2859. 计算 K 置位下标对应元素的和【位操作】1000
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
composer安装hyperf后,nginx配置hyperf
背景 引入hyperf项目用作微服务,使用composer 安装hyperf后,对hyperf进行nginx配置。 配置步骤 因为hyperf监听的是端口,不像其他laravel、lumen直接指向文件即可。所有要监听端口号。 1 配置nginx server {listen 80;//http:…...
Flink对接Kafka的topic数据消费offset设置参数
scan.startup.mode 是 Flink 中用于设置消费 Kafka topic 数据的起始 offset 的配置参数之一。 scan.startup.mode 可以设置为以下几种模式: earliest-offset:从最早的 offset 开始消费数据。latest-offset:从最新的 offset 开始消费数据。…...
TryHackMe-Umbrella
靶场介绍 Breach Umbrella Corp’s time-tracking server by exploiting misconfigurations around containerisation. 利用集装箱化的错误配置,破坏Umbrella公司的时间跟踪服务器。 Task 1 What is the DB password? 数据库的密码是多少? 端口扫描&am…...
Excel导出警告:文件格式和拓展名不匹配
原因描述: Content-Type 原因:Content-Type,即内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件,这就是经常…...
kafka集群和Filebeat+Kafka+ELK
一、Kafka 概述 1.1 为什么需要消息队列(MQ) 主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从…...
golang map真有那么随机吗?——map遍历研究
在随机选取map中元素时,本想用map遍历的方式来返回,但是却并没有通过测试。 那么难道map的遍历并不是那么的随机吗? 以下代码参考go1.18 hiter是map遍历的结构,主要记录了当前遍历的元素、开始位置等来完成整个遍历过程 // A ha…...
详细分析对比copliot和ChatGPT的差异
Copilot 和 ChatGPT 是两种不同的AI工具,分别在不同领域展现出了强大的功能和潜力: GitHub Copilot 定位与用途:GitHub Copilot 是由GitHub(现为微软子公司)和OpenAI合作开发的一款智能代码辅助工具。它主要集成于Visu…...
TENT:熵最小化的Fully Test-Time Adaption
摘要 在测试期间,模型必须自我调整以适应新的和不同的数据。在这种完全自适应测试时间的设置中,模型只有测试数据和它自己的参数。我们建议通过test entropy minimization (tent[1])来适应:我们通过其预测的熵来优化模型的置信度。我们的方法估计归一化…...
研发日记,Matlab/Simulink避坑指南(五)——CAN解包 DLC Bug
文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结 前言 见《研发日记,Matlab/Simulink避坑指南(一)——Data Store Memory模块执行时序Bug》 见《研发日记,Matlab/Simulink避坑指南(二)——非对称数据溢出Bug》 见《…...
机器人3D视觉引导半导体塑封上下料
半导体塑封上下料是封装工艺中的重要环节,直接影响到产品的质量和性能。而3D视觉引导技术的引入,使得这一过程更加高效、精准。它不仅提升了生产效率,减少了人工操作的误差,还为半导体封装技术的智能化升级奠定了坚实的基础。 传统…...
(十二)Head first design patterns代理模式(c++)
代理模式 代理模式:创建一个proxy对象,并为这个对象提供替身或者占位符以对这个对象进行控制。 典型例子:智能指针... 例子:比如说有一个talk接口,所有的people需要实现talk接口。但有些人有唱歌技能。不能在talk接…...
C++从零开始的打怪升级之路(day21)
这是关于一个普通双非本科大一学生的C的学习记录贴 在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料 那么开启正题 今天分享的是关于vector的题目 1.删除有序数组中的重复项 26. …...
《设计模式的艺术》笔记 - 观察者模式
介绍 观察者模式定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。 实现 myclass.h // // Created by yuwp on 2024/1/12. //#ifndef DESIGNPATTERNS_MYCLASS_H #define DESIGNPATTERNS_MYCLA…...
Java如何对OSS存储引擎的Bucket进行创建【OSS学习】
在前面学会了如何开通OSS,对OSS的一些基本操作,接下来记录一下如何通过Java代码通过SDK对OSS存储引擎里面的Bucket存储空间进行创建。 目录 1、先看看OSS: 2、代码编写: 3、运行效果: 1、先看看OSS: 此…...
ModuleNotFoundError: No module named ‘half_json‘
问题: ModuleNotFoundError: No module named ‘half_json’ 原因: 缺少jsonfixer包 解决方法: pip install jsonfixerjson修正包地址: https://github.com/half-pie/half-json...
深入探究 Android 内存泄漏检测原理及 LeakCanary 源码分析
深入探究 Android 内存泄漏检测原理及 LeakCanary 源码分析 一、什么是内存泄漏二、内存泄漏的常见原因三、我为什么要使用 LeakCanary四、LeakCanary介绍五、LeakCanary 的源码分析及其核心代码六、LeakCanary 使用示例 一、什么是内存泄漏 在基于 Java 的运行时中࿰…...
Linux CentOS使用Docker搭建laravel项目环境(实践案例详细说明)
一、安装docker # 1、更新系统软件包: sudo yum update# 2、安装Docker依赖包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 3、添加Docker的yum源: sudo yum-config-manager --add-repo https://download.docker.com/linux/cen…...
第六课:Prompt
文章目录 第六课:Prompt1、学习总结:Prompt介绍预训练和微调模型回顾挑战 Pre-train, Prompt, PredictPrompting是什么?prompting流程prompt设计 课程ppt及代码地址 2、学习心得:3、经验分享:4、课程反馈:5、使用Mind…...
网络安全(初版,以后会不断更新)
1.网络安全常识及术语 资产 任何对组织业务具有价值的信息资产,包括计算机硬件、通信设施、IT 环境、数据库、软件、文档 资料、信息服务和人员等。 漏洞 上边提到的“永恒之蓝”就是windows系统的漏洞 漏洞又被称为脆弱性或弱点(Weakness)&a…...
开始学习Vue2(脚手架,组件化开发)
一、单页面应用程序 单页面应用程序(英文名:Single Page Application)简 称 SPA,顾名思义,指的是一个 Web 网站中只有唯一的 一个 HTML 页面,所有的功能与交互都在这唯一的一个页面内完成。 二、vue-cli …...
雄安移动网上营业厅/昆明优化网站公司
keys * 查看当前库所有的keyexists key 判断某个key是否存在move key db 当前库就没有了,被移除了expire key 秒钟:为给定的key设置过期时间ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期type key 查看你的key是什么…...
建站科技公司/如何做网络推广外包
今天在处理客户反馈的时候,客户发现了一个严重性的问题,发现在el-dialog中嵌套el-form,在el-from中有个邮单编码是用扫码枪录入的,需求明确指出可以录入多条邮单号。但是由于我们开发时没有用扫码枪测试该功能,后来客户发现&#…...
wordpress站点标题字体/巨量算数数据分析入口
公司环境:略 二面面试时长:28分钟 如何实现分布式接口幂等性?如何保证数据一致性MySQL的间隙锁是什么?Redis的setNx锁有什么问题?HashMap数据结构?触发链表切换红黑树的条件是什么?Concurrnth…...
服装市场调网站建设的目的/网络营销网站推广方法
第一题 Q:在server1、server2和server3中选一个Master。 已知: Proposer1的编号为2;Proposer2的编号为1;Proposer3的编号为3. Proposer向Acceptor提交决议的顺序为Proposer1、Proposer3、Proposer2. 试分析:最终选…...
美国黄网站色网址/百度指数怎么提升
https://blog.csdn.net/weixin_40011728/article/details/77924614...
php网站开发流程/国内哪个搜索引擎最好用
1.什么是包 包本质上就是一大堆模块的集合,把解决一类问题的所有模块都放在一个文件夹里,这个文件夹就可称为一个包。 在python中,使用 包名.模块名来调用包中的具体模块,需要注意的有以下几点: 无论是以 import 形…...