Day6: platformDriver-2

文章详细阐述了Linux内核中I2C驱动的工作原理,包括I2C控制器驱动如何基于平台驱动展开,I2CAdapter的作用以及I2CSlaveDriver的实现方式。I2CControllerDriver通过platform_driver接口与设备树匹配,probe函数用于初始化控制器。I2CAdapter提供与I2C总线交互的算法,而I2CSlaveDriver则抽象了I2C从设备的驱动功能。

Platform Driver (2) – I2C Driver

在上文中说到,Linux kernel中大部分设备可以归结为平台设备,因此大部分的驱动是平台驱动(patform driver)

而对于I2C控制器, 其挂载在platform Bus上,因此我们在linux kernel中常说的I2C driver,都是指I2C controller driver,都是以platform driver的形式存在,当然,对应的控制器是platform device。

与此同时,kernel抽象出I2C bus(/sys/bus/i2c),用于挂载和I2C controller通过I2C总线连接的各个I2C slave device。

本篇从窝窝科技很好的剖析i2c驱动的帖子入手学习i2c驱动架构。并理解和回答如下问题

  • I2C Controller Driver是如何基于platform driver展开的
  • 为什么需要I2C Adapter, I2C Adapter提供了什么?
  • I2C Slave Driver是如何实现的?

I2C 硬件总线拓扑

设想一个智能家居中控屏带有LCD大屏和电容触摸屏。其电容触摸屏,加速度传感器(横竖屏)等有可能即是i2C接口。
上文中,我们将SOC外设抽象为platform bus上的platform 设备。处理器i2c controller作为master,i2c总线上的触摸屏和传感器为从设备(i2C slaves)。 则进一步抽象为下图

请添加图片描述

note: 在参考的窝窝科技的文档里面也提到了,linux不支持I2C外设作为i2c slave设备。但是绝大数的跑linux系统的处理器应该都是作为主设备的。

linux kernel I2C framework

上图的硬件拓扑在i2c framework中又是如何抽象的呢?
请添加图片描述

/sys/bus/i2c/devices/<0>-<1>/

where <0> is the bus the chip is connected to (e. g. i2c-0)

and <1> the chip address

例子:

pi@raspberrypi:/sys/bus/platform/devices/3f804000.i2c $ ls
driver  driver_override  i2c-1  modalias  of_node  power  subsystem  uevent

i2c Framework 框架图

代码位于路径drivers\i2c\

请添加图片描述

  • I2C core使用I2C adapter和I2C algorithm两个子模块抽象I2C controller的功能,使用I2C client和I2C driver抽象I2C slave device的功能(对应设备模型中的device和device driver)。另外,基于I2C协议,通过smbus模块实现SMBus(System Management Bus,系统管理总线)的功能。

  • I2C busses是各个I2C controller drivers的集合,位于drivers/i2c/busses/目录下,驱动工程师常说的“I2C driver”就是指它们。比如树莓派的i2C驱动:busses\i2c-bcm2835.c

I2C Controller Driver

上节中提到了,I2C busses是各个I2C controller drivers的集合,位于drivers/i2c/busses/目录下,驱动工程师常说的“I2C driver”就是指它们。比如树莓派的i2C驱动:busses\i2c-bcm2835.c。
注意这里的driver 和i2C core 框图里面的driver的区别。

请添加图片描述

参照上文中的platform驱动开发框架,

  1. 模块的入口和出口
  2. platform driver三要素
    • struct platform_driver变量
    • probe/remove函数
    • 用于和device tree匹配的match table

其中“模块的入口和出口”, 由宏 module_platform_driver(bcm2835_i2c_driver);定义。

三要素中的“match table"函数

//driver中match table
static const struct of_device_id bcm2835_i2c_of_match[] = {
	{ .compatible = "brcm,bcm2835-i2c" },
	{},
};

//dts 中 i2c0 controller资源
		i2c0: i2c@20205000 {
			compatible = "brcm,bcm2835-i2c";
			reg = <0x7e205000 0x1000>;
			interrupts = <2 21>;
			clocks = <&clk_i2c>;
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

三要素中的“probe"函数

bcm2835_i2c_probe
 
static int bcm2835_i2c_probe(struct platform_device *pdev)
{
	struct bcm2835_i2c_dev *i2c_dev;
	struct resource *mem, *irq;
	u32 bus_clk_rate, divider;
	int ret;
	struct i2c_adapter *adap;
	i2c_dev = devm_kzalloc(&pdev->dev, sizeof(*i2c_dev), GFP_KERNEL);
	if (!i2c_dev)
		return -ENOMEM;
	platform_set_drvdata(pdev, i2c_dev);
	i2c_dev->dev = &pdev->dev;
	init_completion(&i2c_dev->completion);
	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	i2c_dev->regs = devm_ioremap_resource(&pdev->dev, mem);
	if (IS_ERR(i2c_dev->regs))
		return PTR_ERR(i2c_dev->regs);
	i2c_dev->clk = devm_clk_get(&pdev->dev, NULL);
	if (IS_ERR(i2c_dev->clk)) {
		dev_err(&pdev->dev, "Could not get clock\n");
		return PTR_ERR(i2c_dev->clk);
	}
	ret = of_property_read_u32(pdev->dev.of_node, "clock-frequency",
				   &bus_clk_rate);
	if (ret < 0) {
		dev_warn(&pdev->dev,
			 "Could not read clock-frequency property\n");
		bus_clk_rate = 100000;
	}
	divider = DIV_ROUND_UP(clk_get_rate(i2c_dev->clk), bus_clk_rate);
	/*
	 * Per the datasheet, the register is always interpreted as an even
	 * number, by rounding down. In other words, the LSB is ignored. So,
	 * if the LSB is set, increment the divider to avoid any issue.
	 */
	if (divider & 1)
		divider++;
	bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DIV, divider);
	irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
	if (!irq) {
		dev_err(&pdev->dev, "No IRQ resource\n");
		return -ENODEV;
	}
	i2c_dev->irq = irq->start;
	ret = request_irq(i2c_dev->irq, bcm2835_i2c_isr, IRQF_SHARED,
			  dev_name(&pdev->dev), i2c_dev);
	if (ret) {
		dev_err(&pdev->dev, "Could not request IRQ\n");
		return -ENODEV;
	}
	adap = &i2c_dev->adapter;
	i2c_set_adapdata(adap, i2c_dev);
	adap->owner = THIS_MODULE;
	adap->class = I2C_CLASS_DEPRECATED;
	strlcpy(adap->name, "bcm2835 I2C adapter", sizeof(adap->name));
	adap->algo = &bcm2835_i2c_algo;
	adap->dev.parent = &pdev->dev;
	adap->dev.of_node = pdev->dev.of_node;
	bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, 0);
	ret = i2c_add_adapter(adap);
	if (ret)
		free_irq(i2c_dev->irq, i2c_dev);
	return ret;
}

我们发现其实和上文中的serial driver干了类似的事情
请添加图片描述

回忆一下上文中的serial driver:

  • 定义并注册uart driver
  • 注册uart port
  • 定义并实现uart ops
    这里的i2C driver(注意是图中的i2c buses)应该也是完成的类似的实现,只是不同于serial driver,这里又封装了个"adapter". 在上面的probe函数中,最终是添加了一个"adapter"
	adap = &i2c_dev->adapter;
	i2c_set_adapdata(adap, i2c_dev);
	adap->owner = THIS_MODULE;
	adap->class = I2C_CLASS_DEPRECATED;
	strlcpy(adap->name, "bcm2835 I2C adapter", sizeof(adap->name));
	adap->algo = &bcm2835_i2c_algo;
	adap->dev.parent = &pdev->dev;
	adap->dev.of_node = pdev->dev.of_node;

	bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, 0);

	ret = i2c_add_adapter(adap);

这个adapter最终实现了底层的驱动

static const struct i2c_algorithm bcm2835_i2c_algo = {
	.master_xfer	= bcm2835_i2c_xfer,
	.functionality	= bcm2835_i2c_func,
};

//probe函数中:
    //注册收发中断
	ret = request_irq(i2c_dev->irq, bcm2835_i2c_isr, IRQF_SHARED,
			  dev_name(&pdev->dev), i2c_dev);
    //给adapter的algo赋值
	adap->algo = &bcm2835_i2c_algo;

i2c core

上节中提到,I2C core使用I2C adapter和I2C algorithm两个子模块抽象I2C controller的功能,使用I2C client和I2C driver抽象I2C slave device的功能(对应设备模型中的device和device driver)。
这里的driver是i2c设备driver。

i2c driver
/**
 * struct i2c_driver - represent an I2C device driver
 * @class: What kind of i2c device we instantiate (for detect)
 * @attach_adapter: Callback for bus addition (deprecated)
 * @probe: Callback for device binding
 * @remove: Callback for device unbinding
 * @shutdown: Callback for device shutdown
 * @alert: Alert callback, for example for the SMBus alert protocol
 * @command: Callback for bus-wide signaling (optional)
 * @driver: Device driver model driver
 * @id_table: List of I2C devices supported by this driver
 * @detect: Callback for device detection
 * @address_list: The I2C addresses to probe (for detect)
 * @clients: List of detected clients we created (for i2c-core use only)
 *
 * The driver.owner field should be set to the module owner of this driver.
 * The driver.name field should be set to the name of this driver.
 *
 * For automatic device detection, both @detect and @address_list must
 * be defined. @class should also be set, otherwise only devices forced
 * with module parameters will be created. The detect function must
 * fill at least the name field of the i2c_board_info structure it is
 * handed upon successful detection, and possibly also the flags field.
 *
 * If @detect is missing, the driver will still work fine for enumerated
 * devices. Detected devices simply won't be supported. This is expected
 * for the many I2C/SMBus devices which can't be detected reliably, and
 * the ones which can always be enumerated in practice.
 *
 * The i2c_client structure which is handed to the @detect callback is
 * not a real i2c_client. It is initialized just enough so that you can
 * call i2c_smbus_read_byte_data and friends on it. Don't do anything
 * else with it. In particular, calling dev_dbg and friends on it is
 * not allowed.
 */
struct i2c_driver {
	unsigned int class;

	/* Notifies the driver that a new bus has appeared. You should avoid
	 * using this, it will be removed in a near future.
	 */
	int (*attach_adapter)(struct i2c_adapter *) __deprecated;

	/* Standard driver model interfaces */
	int (*probe)(struct i2c_client *, const struct i2c_device_id *);
	int (*remove)(struct i2c_client *);

	/* driver model interfaces that don't relate to enumeration  */
	void (*shutdown)(struct i2c_client *);

	/* Alert callback, for example for the SMBus alert protocol.
	 * The format and meaning of the data value depends on the protocol.
	 * For the SMBus alert protocol, there is a single bit of data passed
	 * as the alert response's low bit ("event flag").
	 */
	void (*alert)(struct i2c_client *, unsigned int data);

	/* a ioctl like command that can be used to perform specific functions
	 * with the device.
	 */
	int (*command)(struct i2c_client *client, unsigned int cmd, void *arg);

	struct device_driver driver;
	const struct i2c_device_id *id_table;

	/* Device detection callback for automatic device creation */
	int (*detect)(struct i2c_client *, struct i2c_board_info *);
	const unsigned short *address_list;
	struct list_head clients;
};
I2C adapter
/*
 * i2c_adapter is the structure used to identify a physical i2c bus along
 * with the access algorithms necessary to access it.
 */
struct i2c_adapter {
	struct module *owner;
	unsigned int class;		  /* classes to allow probing for */
	const struct i2c_algorithm *algo; /* the algorithm to access the bus */
	void *algo_data;

	/* data fields that are valid for all devices	*/
	struct rt_mutex bus_lock;

	int timeout;			/* in jiffies */
	int retries;
	struct device dev;		/* the adapter device */

	int nr;
	char name[48];
	struct completion dev_released;

	struct mutex userspace_clients_lock;
	struct list_head userspace_clients;

	struct i2c_bus_recovery_info *bus_recovery_info;
	const struct i2c_adapter_quirks *quirks;
};
I2C Client
/**
 * struct i2c_client - represent an I2C slave device
 * @flags: I2C_CLIENT_TEN indicates the device uses a ten bit chip address;
 *	I2C_CLIENT_PEC indicates it uses SMBus Packet Error Checking
 * @addr: Address used on the I2C bus connected to the parent adapter.
 * @name: Indicates the type of the device, usually a chip name that's
 *	generic enough to hide second-sourcing and compatible revisions.
 * @adapter: manages the bus segment hosting this I2C device
 * @dev: Driver model device node for the slave.
 * @irq: indicates the IRQ generated by this device (if any)
 * @detected: member of an i2c_driver.clients list or i2c-core's
 *	userspace_devices list
 * @slave_cb: Callback when I2C slave mode of an adapter is used. The adapter
 *	calls it to pass on slave events to the slave driver.
 *
 * An i2c_client identifies a single device (i.e. chip) connected to an
 * i2c bus. The behaviour exposed to Linux is defined by the driver
 * managing the device.
 */
struct i2c_client {
	unsigned short flags;		/* div., see below		*/
	unsigned short addr;		/* chip address - NOTE: 7bit	*/
					/* addresses are stored in the	*/
					/* _LOWER_ 7 bits		*/
	char name[I2C_NAME_SIZE];
	struct i2c_adapter *adapter;	/* the adapter we sit on	*/
	struct device dev;		/* the device structure		*/
	int irq;			/* irq issued by device		*/
	struct list_head detected;
#if IS_ENABLED(CONFIG_I2C_SLAVE)
	i2c_slave_cb_t slave_cb;	/* callback for slave mode	*/
#endif
};

下文再接着看如何基于kernel提供的i2c framework,在内核空间或者用户空间开发i2c 设备驱动(device driver)

请添加图片描述

#参考
http://www.wowotech.net/comm/i2c_overview.html
http://www.wowotech.net/comm/i2c_provider.html
http://www.wowotech.net/comm/i2c_consumer.html

https://www.kernel.org/doc/Documentation/hwmon/pcf8591
https://blog.youkuaiyun.com/feiwatson/article/details/81048616?spm=1001.2014.3001.5501
空间或者用户空间开发i2c 设备驱动(device driver)

[外链图片转存中…(img-0pSbOJa4-1678606364666)]

#参考
http://www.wowotech.net/comm/i2c_overview.html
http://www.wowotech.net/comm/i2c_provider.html
http://www.wowotech.net/comm/i2c_consumer.html

https://www.kernel.org/doc/Documentation/hwmon/pcf8591
https://blog.youkuaiyun.com/feiwatson/article/details/81048616?spm=1001.2014.3001.5501

[107]HELLO! BOOT0 is starting! [110]BOOT0 commit : 4f5e01ed0b [113]set pll start [115]fix vccio detect value:0xc0 [122]periph0 has been enabled [125]set pll end [127][pmu]: bus read error [129]board init ok [131]get_pmu_exist() = -1 [134]DRAM BOOT DRIVE INFO: V0.33 [137]DRAM CLK = 792 MHz [139]DRAM Type = 3 (2:DDR2,3:DDR3) [143]DRAMC ZQ value: 0x7b7bfb [145]DRAM ODT value: 0x42. [148]ddr_efuse_type: 0x0 [151]DRAM SIZE =512 M [153]dram_tpr4:0x0 [155]PLL_DDR_CTRL_REG:0xf8004100 [158]DRAM_CLK_REG:0xc0000000 [161][TIMING DEBUG] MR2= 0x18 [168]DRAM simple test OK. [171]rtc standby flag is 0x0, super standby flag is 0x0 [176]dram size =512 [179]card no is 2 [180]sdcard 2 line count 4 [183][mmc]: mmc driver ver 2021-05-21 14:47 [192][mmc]: Wrong media type 0x0, but host sdc2, try mmc first [198][mmc]: ***Try MMC card 2*** [222][mmc]: RMCA OK! [224][mmc]: mmc 2 bias 0 [227][mmc]: MMC 5.1 [229][mmc]: HSSDR52/SDR25 4 bit [232][mmc]: 50000000 Hz [234][mmc]: 7456 MB [236][mmc]: ***SD/MMC 2 init OK!!!*** [332]Loading boot-pkg Succeed(index=0). [335]Entry_name = u-boot [342]Entry_name = optee [347]Entry_name = dtb [349]tunning data addr:0x430003e8 [353]Jump to second Boot. M/TC: OP-TEE version: e9372c9c-dirty (gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05)) #2 Sat Mar 19 11:09:45 UTC 2022 arm U-Boot 2018.05-gaf00d2d (Feb 16 2023 - 11:35:33 +0000) Allwinner Technology [00.409]CPU: Allwinner Family [00.412]Model: sun8iw20 [00.414]DRAM: 512 MiB [00.417]Relocation Offset is: 1cec0000 [00.445]secure enable bit: 0 E/TC:0 tee_read_fdt:433 fine node /firmware/optee failed with FDT_ERR_NOTFOUND [00.457]smc_tee_inform_fdt failed with: -65536[00.461]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz MBus=300Mhz [00.467]gic: sec monitor mode [00.470]flash init start [00.472]workmode = 0,storage type = 2 [00.476][mmc]: mmc driver ver uboot2018:2021-08-26 16:30:00 [00.482][mmc]: SUNXI SDMMC Controller Version:0x50310 [00.507][mmc]: Best spd md: 2-HSDDR52/DDR50, freq: 2-50000000, Bus width: 4 [00.514]sunxi flash init ok [00.516]line:714 init_clocks __clk_init: clk pll_periph0x2 already initialized register fix_factor clk error [00.526]drv_disp_init request pwm success, pwm7:pwm7:0x2000c00. [00.541]drv_disp_init finish [00.543]boot_gui_init:start partno erro : can't find partition Reserve0 [00.552]Get Reserve0 partition number fail! [00.556]set disp.dev2_output_type fail. using defval=0 hdmi hpd out, force open? [00.564]boot_gui_init:finish partno erro : can't find partition bootloader 54 bytes read in 1 ms (52.7 KiB/s) [00.577]bmp_name=bootlogo.bmp size 38454 38454 bytes read in 1 ms (36.7 MiB/s) [00.593]Loading Environment from SUNXI_FLASH... OK [00.617]Item0 (Map) magic is bad [00.620]the secure storage item0 copy0 magic is bad [00.636]Item0 (Map) magic is bad [00.639]the secure storage item0 copy1 magic is bad [00.643]Item0 (Map) magic is bad [00.646]usb burn from boot delay time 0 weak:otg_phy_config [00.658]usb prepare ok [01.461]overtime [01.464]do_burn_from_boot usb : no usb exist List file under ULI/factory ** Unrecognized filesystem type ** root_partition is rootfs set root to /dev/mmcblk0p5 [01.479]update part info [01.481]update bootcmd [01.484]change working_fdt 0x5be7fe70 to 0x5be5fe70 [01.489][mmc]: no mmc-hs400-1_8v! [01.492][mmc]: delete mmc-hs200-1_8v from dtb [01.496][mmc]: get max-frequency ok 50000000 Hz [01.516]update dts Hit any key to stop autoboot: 0 [01.628]no vendor_boot partition is found Android's image name: h133-p1 [01.640]Starting kernel ... [01.643][mmc]: mmc exit start [01.662][mmc]: mmc 2 exit ok [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.4.61 (liuzhi@server-compile) (arm-openwrt-linux-muslgnueabi-gcc.bin (OpenWrt/Linaro GCC 6.4-2017.11 2017-11) 6.4.1, GNU ld (GNU Binutils) 2.27) #3 SMP PREEMPT Tue Oct 21 02:01:56 UTC 2025 [ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: sun8iw20 [ 0.000000] printk: bootconsole [earlycon0] enabled [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] cma: Reserved 8 MiB at 0x5f800000 [ 0.000000] On node 0 totalpages: 131072 [ 0.000000] Normal zone: 1024 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 131072 pages, LIFO batch:31 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.0 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.0 [ 0.000000] percpu: Embedded 15 pages/cpu s30796 r8192 d22452 u61440 [ 0.000000] pcpu-alloc: s30796 r8192 d22452 u61440 alloc=15*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 130048 [ 0.000000] Kernel command line: earlyprintk=sunxi-uart,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyS0,115200 loglevel=8 root=/dev/mmcblk0p5 init=/sbin/init partitions=boot-resource@mmcblk0p1:env@mmcblk0p2:env-redund@mmcblk0p3:boot@mmcblk0p4:rootfs@mmcblk0p5:private@mmcblk0p6:recovery@mmcblk0p7:UDISK@mmcblk0p8 cma=8M snum= mac_addr= wifi_mac= bt_mac= specialstr= gpt=1 androidboot.mode=normal androidboot.hardware=sun8iw20p1 boot_type=2 androidboot.boot_type=2 gpt=1 uboot_message=2018.05-gaf00d2d(02/16/2023-11:35:33) mbr_offset=1032192 disp_reserve=8294400,0x5bee8d40 androidboot.dramsize=512 [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 490144K/524288K available (7168K kernel code, 386K rwdata, 1900K rodata, 1024K init, 174K bss, 25952K reserved, 8192K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] random: get_random_bytes called from start_kernel+0x338/0x554 with crng_init=0 [ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns [ 0.000006] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns [ 0.008019] Switching to timer-based delay loop, resolution 41ns [ 0.014194] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns [ 0.023949] Console: colour dummy device 80x30 [ 0.028432] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000) [ 0.038804] pid_max: default: 32768 minimum: 301 [ 0.043594] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.050930] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [ 0.059338] CPU: Testing write buffer coherency: ok [ 0.064599] /cpus/cpu@0 missing clock-frequency property [ 0.069937] /cpus/cpu@1 missing clock-frequency property [ 0.075283] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.081572] Setting up static identity map for 0x40100000 - 0x40100060 [ 0.088263] rcu: Hierarchical SRCU implementation. [ 0.093599] smp: Bringing up secondary CPUs ... [ 0.099407] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.099565] smp: Brought up 1 node, 2 CPUs [ 0.109377] SMP: Total of 2 processors activated (96.00 BogoMIPS). [ 0.115557] CPU: All CPU(s) started in SVC mode. [ 0.120753] devtmpfs: initialized [ 0.136209] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5 [ 0.144434] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.154309] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [ 0.161629] pinctrl core: initialized pinctrl subsystem [ 0.168285] NET: Registered protocol family 16 [ 0.174504] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.219593] rtc_ccu: sunxi ccu init OK [ 0.225744] ccu: sunxi ccu init OK [ 0.229572] r_ccu: sunxi ccu init OK [ 0.280133] iommu: Default domain type: Translated [ 0.285257] sunxi iommu: irq = 24 [ 0.289741] SCSI subsystem initialized [ 0.293934] usbcore: registered new interface driver usbfs [ 0.300010] usbcore: registered new interface driver hub [ 0.305466] usbcore: registered new device driver usb [ 0.311043] mc: Linux media interface: v0.10 [ 0.315443] videodev: Linux video capture interface: v2.00 [ 0.322270] Advanced Linux Sound Architecture Driver Initialized. [ 0.329147] Bluetooth: Core ver 2.22 [ 0.332883] NET: Registered protocol family 31 [ 0.337341] Bluetooth: HCI device and connection manager initialized [ 0.343745] Bluetooth: HCI socket layer initialized [ 0.348632] Bluetooth: L2CAP socket layer initialized [ 0.353719] Bluetooth: SCO socket layer initialized [ 0.358955] pwm module init! [ 0.363280] g2d 5410000.g2d: Adding to iommu group 0 [ 0.368805] G2D: rcq version initialized.major:250 [ 0.374297] input: sunxi-keyboard as /devices/virtual/input/input0 [ 0.381991] clocksource: Switched to clocksource arch_sys_counter [ 0.397314] sun8iw20-pinctrl 2000000.pinctrl: initialized sunXi PIO driver [ 0.418941] NET: Registered protocol family 2 [ 0.424293] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear) [ 0.432921] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear) [ 0.440708] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear) [ 0.447973] TCP: Hash tables configured (established 4096 bind 4096) [ 0.454516] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.461071] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) [ 0.468320] NET: Registered protocol family 1 [ 0.475345] Initialise system trusted keyrings [ 0.480008] workingset: timestamp_bits=30 max_order=17 bucket_order=0 [ 0.495599] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.501649] ntfs: driver 2.1.32 [Flags: R/W]. [ 0.536001] Key type asymmetric registered [ 0.540120] Asymmetric key parser 'x509' registered [ 0.545466] io scheduler mq-deadline registered [ 0.549998] io scheduler kyber registered [ 0.554148] atomic64_test: passed [ 0.559190] [DISP]disp_module_init [ 0.563186] disp 5000000.disp: Adding to iommu group 0 [ 0.569588] display_fb_request,fb_id:0 [ 0.591601] [DISP]disp_module_init finish [ 0.596426] sunxi_sid_init()551 - insmod ok [ 0.601062] pwm-regulator: supplied by regulator-dummy [ 0.607802] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pb not found, using dummy regulator [ 0.618174] uart uart0: get regulator failed [ 0.622514] uart uart0: uart0 supply uart not found, using dummy regulator [ 0.629722] uart0: ttyS0 at MMIO 0x2500000 (irq = 34, base_baud = 1500000) is a SUNXI [ 0.637600] sw_console_setup()1808 - console setup baud 115200 parity n bits 8, flow n [ 0.645591] printk: console [ttyS0] enabled [ 0.645591] printk: console [ttyS0] enabled [ 0.654482] printk: bootconsole [earlycon0] disabled [ 0.654482] printk: bootconsole [earlycon0] disabled [ 0.666177] uart uart1: get regulator failed [ 0.670974] uart uart1: uart1 supply uart not found, using dummy regulator [ 0.679005] uart1: ttyS1 at MMIO 0x2500400 (irq = 35, base_baud = 1500000) is a SUNXI [ 0.688855] misc dump reg init [ 0.693755] sunxi-rfkill soc@3000000:rfkill@0: module version: v1.0.9 [ 0.700974] sunxi-rfkill soc@3000000:rfkill@0: devm_pinctrl_get() failed! [ 0.708615] sunxi-rfkill soc@3000000:rfkill@0: get gpio chip_en failed [ 0.715942] sunxi-rfkill soc@3000000:rfkill@0: get gpio power_en failed [ 0.723365] sunxi-rfkill soc@3000000:rfkill@0: wlan_busnum (1) [ 0.729893] sunxi-rfkill soc@3000000:rfkill@0: Missing wlan_power. [ 0.736828] sunxi-rfkill soc@3000000:rfkill@0: wlan clock[0] (32k-fanout1) [ 0.744565] sunxi-rfkill soc@3000000:rfkill@0: wlan_regon gpio=209 assert=1 [ 0.752416] sunxi-rfkill soc@3000000:rfkill@0: wlan_hostwake gpio=202 assert=1 [ 0.760513] sunxi-rfkill soc@3000000:rfkill@0: wakeup source is enabled [ 0.768198] sunxi-rfkill soc@3000000:rfkill@0: Missing bt_power. [ 0.774967] sunxi-rfkill soc@3000000:rfkill@0: bt clock[0] (32k-fanout1) [ 0.782494] sunxi-rfkill soc@3000000:rfkill@0: get gpio bt_rst failed [ 0.790533] [ADDR_MGT] addr_mgt_probe: module version: v1.0.9 [ 0.797688] [ADDR_MGT] addr_mgt_probe: success. [ 0.804256] libphy: Fixed MDIO Bus: probed [ 0.808851] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 0.816192] sunxi-ehci: EHCI SUNXI driver [ 0.821105] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 0.828111] sunxi-ohci: OHCI SUNXI driver [ 0.833247] usbcore: registered new interface driver uas [ 0.839279] usbcore: registered new interface driver usb-storage [ 0.846105] usbcore: registered new interface driver ums-alauda [ 0.852817] usbcore: registered new interface driver ums-cypress [ 0.859594] usbcore: registered new interface driver ums-datafab [ 0.866390] usbcore: registered new interface driver ums_eneub6250 [ 0.873390] usbcore: registered new interface driver ums-freecom [ 0.880163] usbcore: registered new interface driver ums-isd200 [ 0.886858] usbcore: registered new interface driver ums-jumpshot [ 0.893744] usbcore: registered new interface driver ums-karma [ 0.900322] usbcore: registered new interface driver ums-onetouch [ 0.907232] usbcore: registered new interface driver ums-realtek [ 0.914025] usbcore: registered new interface driver ums-sddr09 [ 0.920699] usbcore: registered new interface driver ums-sddr55 [ 0.927394] usbcore: registered new interface driver ums-usbat [ 0.934010] usbcore: registered new interface driver idmouse [ 0.941188] sunxi_gpadc_init,2145, success [ 0.946136] sunxi_gpadc_setup: get channel scan data failed [ 0.952672] input: sunxi-gpadc0 as /devices/virtual/input/input1 [ 0.960626] sunxi-rtc 7090000.rtc: errata__fix_alarm_day_reg_default_value(): ALARM0_DAY_REG=0, set it to 1 [ 0.972810] sunxi-rtc 7090000.rtc: registered as rtc0 [ 0.978588] sunxi-rtc 7090000.rtc: setting system clock to 1970-01-01T00:00:03 UTC (3) [ 0.987509] sunxi-rtc 7090000.rtc: sunxi rtc probed [ 0.993401] i2c /dev entries driver [ 0.997746] IR NEC protocol handler initialized [ 1.003357] sunxi cedar version 1.1 [ 1.007445] sunxi-cedar 1c0e000.ve: Adding to iommu group 0 [ 1.013728] VE: install start!!! [ 1.013728] [ 1.019293] VE: cedar-ve the get irq is 41 [ 1.019293] [ 1.025794] VE: ve_debug_proc_info:(ptrval), data:(ptrval), lock:(ptrval) [ 1.025794] [ 1.035068] VE: install end!!! [ 1.035068] [ 1.041073] sunxi-wdt 20500a0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0) [ 1.050330] usbcore: registered new interface driver btusb [ 1.056504] Bluetooth: XRadio Bluetooth LPM Mode Driver Ver 1.0.10 [ 1.063734] [XR_BT_LPM] bluesleep_probe: bt_wake polarity: 1 [ 1.070114] [XR_BT_LPM] bluesleep_probe: host_wake polarity: 1 [ 1.076675] [XR_BT_LPM] bluesleep_probe: wakeup source is disabled! [ 1.076675] [ 1.085353] [XR_BT_LPM] bluesleep_probe: uart_index(1) [ 1.093399] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pc not found, using dummy regulator [ 1.104667] sunxi-mmc 4022000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.23 2021-06-16 10:10) [ 1.114620] sunxi-mmc 4022000.sdmmc: ***ctl-spec-caps*** 308 [ 1.121009] sunxi-mmc 4022000.sdmmc: No vmmc regulator found [ 1.127359] sunxi-mmc 4022000.sdmmc: No vqmmc regulator found [ 1.133801] sunxi-mmc 4022000.sdmmc: No vdmmc regulator found [ 1.140231] sunxi-mmc 4022000.sdmmc: No vd33sw regulator found [ 1.146776] sunxi-mmc 4022000.sdmmc: No vd18sw regulator found [ 1.153313] sunxi-mmc 4022000.sdmmc: No vq33sw regulator found [ 1.159839] sunxi-mmc 4022000.sdmmc: No vq18sw regulator found [ 1.166421] sunxi-mmc 4022000.sdmmc: Cann't get pin bias hs pinstate,check if needed [ 1.176013] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.199721] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.210477] random: fast init done [ 1.222019] sunxi-mmc 4022000.sdmmc: detmode:alway in(non removable) [ 1.229152] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.233385] sunxi-mmc 4020000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.23 2021-06-16 10:10) [ 1.250799] sunxi-mmc 4020000.sdmmc: ***ctl-spec-caps*** 8 [ 1.251806] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.257022] sunxi-mmc 4020000.sdmmc: No vmmc regulator found [ 1.269944] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 400000Hz bm OD pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.274929] sunxi-mmc 4020000.sdmmc: No vqmmc regulator found [ 1.292986] sunxi-mmc 4020000.sdmmc: No vdmmc regulator found [ 1.299422] sunxi-mmc 4020000.sdmmc: No vd33sw regulator found [ 1.305988] sunxi-mmc 4020000.sdmmc: No vd18sw regulator found [ 1.312538] sunxi-mmc 4020000.sdmmc: No vq33sw regulator found [ 1.319085] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 400000Hz bm OD pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.319088] sunxi-mmc 4020000.sdmmc: No vq18sw regulator found [ 1.319570] sunxi-mmc 4020000.sdmmc: Got CD GPIO [ 1.330808] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 400000Hz bm OD pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.354222] sunxi-mmc 4020000.sdmmc: set cd-gpios as 24M fail [ 1.360912] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.361957] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 400000Hz bm OD pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.372108] sunxi-mmc 4020000.sdmmc: no vqmmc,Check if there is regulator [ 1.403255] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.403797] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.426544] sunxi-mmc 4020000.sdmmc: failed to get DS26_SDR12 used default [ 1.445644] sunxi-mmc 4022000.sdmmc: avoid to switch power_off_notification to POWERED_ON(0x01) [ 1.447112] sunxi-mmc 4020000.sdmmc: detmode:gpio irq [ 1.455431] sunxi-mmc 4022000.sdmmc: avoid to switch power_off_notification to POWERED_ON(0x01) [ 1.461612] sunxi-mmc 4021000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.23 2021-06-16 10:10) [ 1.471035] sunxi-mmc 4022000.sdmmc: avoid to switch power_off_notification to POWERED_ON(0x01) [ 1.480786] sunxi-mmc 4021000.sdmmc: ***ctl-spec-caps*** 8 [ 1.490378] sunxi-mmc 4022000.sdmmc: avoid to switch power_off_notification to POWERED_ON(0x01) [ 1.496561] sunxi-mmc 4021000.sdmmc: No vmmc regulator found [ 1.512610] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing MMC-HS(SDR20) dt B [ 1.512613] sunxi-mmc 4021000.sdmmc: No vqmmc regulator found [ 1.512620] sunxi-mmc 4021000.sdmmc: No vdmmc regulator found [ 1.530662] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 1 timing MMC-HS(SDR20) dt B [ 1.537097] sunxi-mmc 4021000.sdmmc: No vd33sw regulator found [ 1.555443] sunxi-mmc 4021000.sdmmc: No vd18sw regulator found [ 1.555452] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 4 timing MMC-HS(SDR20) dt B [ 1.573871] sunxi-mmc 4022000.sdmmc: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 4 timing MMC-DDR52 dt B [ 1.573874] sunxi-mmc 4021000.sdmmc: No vq33sw regulator found [ 1.573881] sunxi-mmc 4021000.sdmmc: No vq18sw regulator found [ 1.598481] sunxi-mmc 4021000.sdmmc: Cann't get pin bias hs pinstate,check if needed [ 1.598486] mmc0: new DDR MMC card at address 0001 [ 1.599792] mmcblk0: mmc0:0001 8GTF4R 7.28 GiB [ 1.618170] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.629374] mmcblk0rpmb: mmc0:0001 8GTF4R partition 3 512 KiB, chardev (244:0) [ 1.629589] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator [ 1.646419] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 [ 1.652068] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B [ 1.663196] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.663287] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default [ 1.695313] sunxi-mmc 4021000.sdmmc: detmode:manually by software [ 1.702472] sunxi-mmc 4021000.sdmmc: smc 2 p1 err, cmd 52, RE !! [ 1.703404] usbcore: registered new interface driver usbhid [ 1.715504] usbhid: USB HID core driver [ 1.715773] sunxi-mmc 4021000.sdmmc: smc 2 p1 err, cmd 52, RE !! [ 1.719800] exFAT: Version 1.3.0 [ 1.730188] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.741941] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default [ 1.744285] usbcore: registered new interface driver snd-usb-audio [ 1.757904] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B [ 1.758693] sunxi-daudio 2034000.daudio: regulator missing or invalid [ 1.770024] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default [ 1.777754] [AUDIOCODEC][sunxi_codec_parse_params][2412]:digital_vol:0, lineout_vol:26, mic1gain:31, mic2gain:31 pa_msleep:120, pa_level:1, pa_pwr_level:1 [ 1.777754] [ 1.801741] sunxi-mmc 4021000.sdmmc: smc 2 p1 err, cmd 5, RE !! [ 1.808453] sunxi-mmc 4021000.sdmmc: smc 2 p1 err, cmd 5, RE !! [ 1.815112] sunxi-mmc 4021000.sdmmc: smc 2 p1 err, cmd 5, RE !! [ 1.821759] sunxi-mmc 4021000.sdmmc: smc 2 p1 err, cmd 5, RE !! [ 1.821789] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B [ 1.828421] [AUDIOCODEC][sunxi_codec_parse_params][2448]:adcdrc_cfg:0, adchpf_cfg:1, dacdrc_cfg:0, dachpf:0 [ 1.828471] sun8iw20-pinctrl 2000000.pinctrl: pin PF2 already requested by 4020000.sdmmc; cannot claim for 2000000.pinctrl:162 [ 1.863205] sun8iw20-pinctrl 2000000.pinctrl: pin-162 (2000000.pinctrl:162) status -22 [ 1.872084] [AUDIOCODEC][sunxi_codec_parse_params][2463]:gpio-spk set failed, SPK not work! [ 1.881461] sun8iw20-pinctrl 2000000.pinctrl: pin PF4 already requested by 4020000.sdmmc; cannot claim for 2000000.pinctrl:164 [ 1.894240] sun8iw20-pinctrl 2000000.pinctrl: pin-164 (2000000.pinctrl:164) status -22 [ 1.903130] [AUDIOCODEC][sunxi_codec_parse_params][2482]:gpio-spk-pwr set failed, SPK not work! [ 1.913349] [AUDIOCODEC][sunxi_internal_codec_probe][2609]:codec probe finished [ 1.922743] debugfs: Directory '203034c.dummy_cpudai' with parent 'audiocodec' already present! [ 1.932576] [SNDCODEC][sunxi_card_init][583]:card init finished [ 1.939801] sunxi-codec-machine 2030340.sound: 2030000.codec <-> 203034c.dummy_cpudai mapping ok [ 1.950943] input: audiocodec sunxi Audio Jack as /devices/platform/soc@3000000/2030340.sound/sound/card0/input2 [ 1.963065] [SNDCODEC][sunxi_card_dev_probe][832]:register card finished [ 1.972356] NET: Registered protocol family 10 [ 1.978445] Segment Routing with IPv6 [ 1.982624] [SNDCODEC][sunxi_hs_init_work][259]:resume-->report switch [ 1.990093] NET: Registered protocol family 17 [ 1.995160] 8021q: 802.1Q VLAN Support v1.8 [ 2.000619] Registering SWP/SWPB emulation handler [ 2.006401] Loading compiled-in X.509 certificates [ 2.014094] HDMI 2.0 driver init start! [ 2.018416] boot_hdmi=false [ 2.021591] ERROR: can not get hdmi_cts_compatibility [ 2.027294] ERROR: pinctrl_get for HDMI2.0 DDC fail [ 2.034365] HDMI2.0 module init end [ 2.058130] sun8iw20-pinctrl 2000000.pinctrl: pin PF4 already requested by 4020000.sdmmc; cannot claim for 2000000.pinctrl:164 [ 2.070945] sun8iw20-pinctrl 2000000.pinctrl: pin-164 (2000000.pinctrl:164) status -22 [ 2.086212] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 1008000 KHz [ 2.094668] cpu cpu0: dev_pm_opp_set_rate: failed to find current OPP for freq 1008000000 (-34) [ 2.136291] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 912000 KHz [ 2.147105] debugfs: Directory '2034000.daudio' with parent 'sndhdmi' already present! [ 2.156620] sunxi-audio-card 20340a0.sounddaudio2: 20340a4.hdmiaudio <-> 2034000.daudio mapping ok [ 2.168117] get ehci0-controller wakeup-source is fail. [ 2.174176] sunxi ehci0-controller don't init wakeup source [ 2.180440] [sunxi-ehci0]: probe, pdev->name: 4101000.ehci0-controller, sunxi_ehci: 0xc0c816a0, 0x:e08d6000, irq_no:36 [ 2.192477] [sunxi-ehci0]: Not init ehci0 [ 2.197413] get ohci0-controller wakeup-source is fail. [ 2.203428] sunxi ohci0-controller don't init wakeup source [ 2.209690] [sunxi-ohci0]: probe, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xc0c81930 [ 2.219373] [sunxi-ohci0]: Not init ohci0 [ 2.224323] get ehci1-controller wakeup-source is fail. [ 2.230304] sunxi ehci1-controller don't init wakeup source [ 2.236609] [sunxi-ehci1]: probe, pdev->name: 4200000.ehci1-controller, sunxi_ehci: 0xc0c81bc0, 0x:e08df000, irq_no:38 [ 2.248952] sunxi-ehci 4200000.ehci1-controller: 4200000.ehci1-controller supply hci not found, using dummy regulator [ 2.262468] sunxi-ehci 4200000.ehci1-controller: EHCI Host Controller [ 2.269731] sunxi-ehci 4200000.ehci1-controller: new USB bus registered, assigned bus number 1 [ 2.279758] sunxi-ehci 4200000.ehci1-controller: irq 56, io mem 0x04200000 [ 2.312015] sunxi-ehci 4200000.ehci1-controller: USB 2.0 started, EHCI 1.00 [ 2.319836] sunxi-ehci 4200000.ehci1-controller: ehci_irq: highspeed device connect [ 2.329084] hub 1-0:1.0: USB hub found [ 2.333405] hub 1-0:1.0: 1 port detected [ 2.338828] get ohci1-controller wakeup-source is fail. [ 2.344862] sunxi ohci1-controller don't init wakeup source [ 2.351129] [sunxi-ohci1]: probe, pdev->name: 4200400.ohci1-controller, sunxi_ohci: 0xc0c81e50 [ 2.361124] sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller supply hci not found, using dummy regulator [ 2.373522] sunxi-ohci 4200400.ohci1-controller: OHCI Host Controller [ 2.380800] sunxi-ohci 4200400.ohci1-controller: new USB bus registered, assigned bus number 2 [ 2.390815] sunxi-ohci 4200400.ohci1-controller: irq 57, io mem 0x04200400 [ 2.467039] hub 2-0:1.0: USB hub found [ 2.471307] hub 2-0:1.0: 1 port detected [ 2.476591] sun8iw20-pinctrl 2000000.pinctrl: pin PF4 already requested by 4020000.sdmmc; cannot claim for 2000000.pinctrl:164 [ 2.489410] sun8iw20-pinctrl 2000000.pinctrl: pin-164 (2000000.pinctrl:164) status -22 [ 2.498967] sun8iw20-pinctrl 2000000.pinctrl: pin PF4 already requested by 4020000.sdmmc; cannot claim for 2000000.pinctrl:164 [ 2.511813] sun8iw20-pinctrl 2000000.pinctrl: pin-164 (2000000.pinctrl:164) status -22 [ 2.524430] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 2.533387] sun8iw20-pinctrl 2000000.pinctrl: pin PF4 already requested by 4020000.sdmmc; cannot claim for 2000000.pinctrl:164 [ 2.545398] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 2.546218] sun8iw20-pinctrl 2000000.pinctrl: pin-164 (2000000.pinctrl:164) status -22 [ 2.553815] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 2.562966] clk: Not disabling unused clocks [ 2.572190] cfg80211: failed to load regulatory.db [ 2.576966] ALSA device list: [ 2.585676] #0: audiocodec [ 2.588910] #1: sndhdmi [ 2.591863] alloc_fd: slot 0 not NULL! [ 2.600261] VFS: Mounted root (squashfs filesystem) readonly on device 179:5. [ 2.612762] devtmpfs: mounted [ 2.618215] Freeing unused kernel memory: 1024K [ 2.652032] [HDMI receive params]: tv mode: 0xa format:0x0 data bits:0x0 eotf:0x4 cs:0x101 dvi_hdmi:2 range:2 scan:0 aspect_ratio:8 [ 2.665531] Run /sbin/init as init process [ 2.732070] usb 1-1: new high-speed USB device number 2 using sunxi-ehci [ 2.945257] sun8iw20-pinctrl 2000000.pinctrl: pin PF4 already requested by 4020000.sdmmc; cannot claim for 2000000.pinctrl:164 [ 2.958279] sun8iw20-pinctrl 2000000.pinctrl: pin-164 (2000000.pinctrl:164) status -22 [ 2.958594] init: Console is alive [ 2.971312] init: - watchdog - [ 2.974936] init: - preinit - /dev/by-name/UDISK already format by ext4 [ 3.451478] mount_root: mounting /dev/root [ 3.456814] mount_root: loading kmods from internal overlay [ 3.520695] block: attempting to load /etc/config/fstab [ 3.748208] disp_al_manager_apply ouput_type:0 [ 3.753590] disp_al_hdmi_cfg [ 3.756836] [DISP] disp_device_attached_and_enable,line:233: [ 3.756841] attached ok, mgr0<-->dev0 [ 3.767347] [DISP] disp_device_attached_and_enable,line:236: [ 3.767356] type:4,mode:10,fmt:rgb,bits:8bits,eotf:4,cs:257 dvi_hdmi:2, range:2 scan:0 ratio:8 e2fsck 1.42.12 (29-Aug-2014) /dev/by-name/UDISK: recovering journal Setting free blocks count to 1823993 (was 1823994) /dev/by-name/UDISK: clean, 50/473280 files, 66670/1890663[ 3.909609] random: procd: uninitialized urandom read (4 bytes read) blocks [ 3.911152] EXT4-fs (mmcblk0p8): mounted filesystem with ordered data mode. Opts: [ 3.930966] block: extroot: UUID match (root: 7b6709b9-ccc4c4ae-e8b740a9-30e51a3e, overlay: 7b6709b9-ccc4c4ae-e8b740a9-30e51a3e) [ 3.955677] mount_root: switched to extroot [ 3.970003] procd: - early - [ 3.973449] procd: - watchdog - [ 4.034437] random: procd: uninitialized urandom read (4 bytes read) [ 4.167578] procd: - watchdog - [ 4.171419] procd: - ubus - [ 4.175260] procd (1): /proc/1185/oom_adj is deprecated, please use /proc/1185/oom_score_adj instead. [ 4.215925] random: ubusd: uninitialized urandom read (4 bytes read) [ 4.278566] procd: - init - Please press Enter to activate this console. [ 4.938628] fuse: init (API version 7.31) \FF
最新发布
12-04
springboot连接达梦数据库 spring: application: name: day0704 datasource: driver-class-name: dm.jdbc.driver.DmDriver url: jdbc:dm://localhost:5236/ROOT?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8 username: ROOT password: 20050528Hyn D:\develop\Java21\jdk-21\bin\java.exe -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:D:\JAVA\IntelliJ IDEA 2024.1.4\lib\idea_rt.jar=59885:D:\JAVA\IntelliJ IDEA 2024.1.4\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\2024javaweb\代码\2024javaweb\day0704\target\classes;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\3.3.13\spring-boot-starter-jdbc-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter\3.3.13\spring-boot-starter-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot\3.3.13\spring-boot-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\3.3.13\spring-boot-autoconfigure-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.3.13\spring-boot-starter-logging-3.3.13.jar;C:\Users\H\.m2\repository\ch\qos\logback\logback-classic\1.5.18\logback-classic-1.5.18.jar;C:\Users\H\.m2\repository\ch\qos\logback\logback-core\1.5.18\logback-core-1.5.18.jar;C:\Users\H\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.23.1\log4j-to-slf4j-2.23.1.jar;C:\Users\H\.m2\repository\org\apache\logging\log4j\log4j-api\2.23.1\log4j-api-2.23.1.jar;C:\Users\H\.m2\repository\org\slf4j\jul-to-slf4j\2.0.17\jul-to-slf4j-2.0.17.jar;C:\Users\H\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\H\.m2\repository\org\yaml\snakeyaml\2.2\snakeyaml-2.2.jar;C:\Users\H\.m2\repository\com\zaxxer\HikariCP\5.1.0\HikariCP-5.1.0.jar;C:\Users\H\.m2\repository\org\springframework\spring-jdbc\6.1.21\spring-jdbc-6.1.21.jar;C:\Users\H\.m2\repository\org\springframework\spring-beans\6.1.21\spring-beans-6.1.21.jar;C:\Users\H\.m2\repository\org\springframework\spring-tx\6.1.21\spring-tx-6.1.21.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\3.3.13\spring-boot-starter-data-jpa-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-aop\3.3.13\spring-boot-starter-aop-3.3.13.jar;C:\Users\H\.m2\repository\org\aspectj\aspectjweaver\1.9.24\aspectjweaver-1.9.24.jar;C:\Users\H\.m2\repository\org\hibernate\orm\hibernate-core\6.5.3.Final\hibernate-core-6.5.3.Final.jar;C:\Users\H\.m2\repository\jakarta\persistence\jakarta.persistence-api\3.1.0\jakarta.persistence-api-3.1.0.jar;C:\Users\H\.m2\repository\jakarta\transaction\jakarta.transaction-api\2.0.1\jakarta.transaction-api-2.0.1.jar;C:\Users\H\.m2\repository\org\jboss\logging\jboss-logging\3.5.3.Final\jboss-logging-3.5.3.Final.jar;C:\Users\H\.m2\repository\org\hibernate\common\hibernate-commons-annotations\6.0.6.Final\hibernate-commons-annotations-6.0.6.Final.jar;C:\Users\H\.m2\repository\io\smallrye\jandex\3.1.2\jandex-3.1.2.jar;C:\Users\H\.m2\repository\com\fasterxml\classmate\1.7.0\classmate-1.7.0.jar;C:\Users\H\.m2\repository\net\bytebuddy\byte-buddy\1.14.19\byte-buddy-1.14.19.jar;C:\Users\H\.m2\repository\jakarta\inject\jakarta.inject-api\2.0.1\jakarta.inject-api-2.0.1.jar;C:\Users\H\.m2\repository\org\antlr\antlr4-runtime\4.13.0\antlr4-runtime-4.13.0.jar;C:\Users\H\.m2\repository\org\springframework\data\spring-data-jpa\3.3.13\spring-data-jpa-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\data\spring-data-commons\3.3.13\spring-data-commons-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\spring-orm\6.1.21\spring-orm-6.1.21.jar;C:\Users\H\.m2\repository\org\springframework\spring-aspects\6.1.21\spring-aspects-6.1.21.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-data-ldap\3.3.13\spring-boot-starter-data-ldap-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\data\spring-data-ldap\3.3.13\spring-data-ldap-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\ldap\spring-ldap-core\3.2.13\spring-ldap-core-3.2.13.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-security\3.3.13\spring-boot-starter-security-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\spring-aop\6.1.21\spring-aop-6.1.21.jar;C:\Users\H\.m2\repository\org\springframework\security\spring-security-config\6.3.10\spring-security-config-6.3.10.jar;C:\Users\H\.m2\repository\org\springframework\security\spring-security-web\6.3.10\spring-security-web-6.3.10.jar;C:\Users\H\.m2\repository\org\springframework\spring-expression\6.1.21\spring-expression-6.1.21.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-thymeleaf\3.3.13\spring-boot-starter-thymeleaf-3.3.13.jar;C:\Users\H\.m2\repository\org\thymeleaf\thymeleaf-spring6\3.1.3.RELEASE\thymeleaf-spring6-3.1.3.RELEASE.jar;C:\Users\H\.m2\repository\org\thymeleaf\thymeleaf\3.1.3.RELEASE\thymeleaf-3.1.3.RELEASE.jar;C:\Users\H\.m2\repository\org\attoparser\attoparser\2.0.7.RELEASE\attoparser-2.0.7.RELEASE.jar;C:\Users\H\.m2\repository\org\unbescape\unbescape\1.1.6.RELEASE\unbescape-1.1.6.RELEASE.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-web\3.3.13\spring-boot-starter-web-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-json\3.3.13\spring-boot-starter-json-3.3.13.jar;C:\Users\H\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.17.3\jackson-datatype-jdk8-2.17.3.jar;C:\Users\H\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.17.3\jackson-datatype-jsr310-2.17.3.jar;C:\Users\H\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.17.3\jackson-module-parameter-names-2.17.3.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\3.3.13\spring-boot-starter-tomcat-3.3.13.jar;C:\Users\H\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\10.1.42\tomcat-embed-core-10.1.42.jar;C:\Users\H\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.42\tomcat-embed-websocket-10.1.42.jar;C:\Users\H\.m2\repository\org\springframework\spring-web\6.1.21\spring-web-6.1.21.jar;C:\Users\H\.m2\repository\io\micrometer\micrometer-observation\1.13.15\micrometer-observation-1.13.15.jar;C:\Users\H\.m2\repository\io\micrometer\micrometer-commons\1.13.15\micrometer-commons-1.13.15.jar;C:\Users\H\.m2\repository\org\springframework\spring-webmvc\6.1.21\spring-webmvc-6.1.21.jar;C:\Users\H\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\3.0.4\mybatis-spring-boot-starter-3.0.4.jar;C:\Users\H\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\3.0.4\mybatis-spring-boot-autoconfigure-3.0.4.jar;C:\Users\H\.m2\repository\org\mybatis\mybatis\3.5.17\mybatis-3.5.17.jar;C:\Users\H\.m2\repository\org\mybatis\mybatis-spring\3.0.4\mybatis-spring-3.0.4.jar;C:\Users\H\.m2\repository\org\springframework\session\spring-session-jdbc\3.3.7\spring-session-jdbc-3.3.7.jar;C:\Users\H\.m2\repository\org\springframework\session\spring-session-core\3.3.7\spring-session-core-3.3.7.jar;C:\Users\H\.m2\repository\org\springframework\spring-jcl\6.1.21\spring-jcl-6.1.21.jar;C:\Users\H\.m2\repository\org\springframework\spring-context\6.1.21\spring-context-6.1.21.jar;C:\Users\H\.m2\repository\org\thymeleaf\extras\thymeleaf-extras-springsecurity6\3.1.3.RELEASE\thymeleaf-extras-springsecurity6-3.1.3.RELEASE.jar;C:\Users\H\.m2\repository\org\slf4j\slf4j-api\2.0.17\slf4j-api-2.0.17.jar;C:\Users\H\.m2\repository\com\mysql\mysql-connector-j\8.3.0\mysql-connector-j-8.3.0.jar;C:\Users\H\.m2\repository\org\projectlombok\lombok\1.18.38\lombok-1.18.38.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-test\3.3.13\spring-boot-starter-test-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-test\3.3.13\spring-boot-test-3.3.13.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\3.3.13\spring-boot-test-autoconfigure-3.3.13.jar;C:\Users\H\.m2\repository\com\jayway\jsonpath\json-path\2.9.0\json-path-2.9.0.jar;C:\Users\H\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\4.0.2\jakarta.xml.bind-api-4.0.2.jar;C:\Users\H\.m2\repository\jakarta\activation\jakarta.activation-api\2.1.3\jakarta.activation-api-2.1.3.jar;C:\Users\H\.m2\repository\net\minidev\json-smart\2.5.2\json-smart-2.5.2.jar;C:\Users\H\.m2\repository\net\minidev\accessors-smart\2.5.2\accessors-smart-2.5.2.jar;C:\Users\H\.m2\repository\org\ow2\asm\asm\9.7.1\asm-9.7.1.jar;C:\Users\H\.m2\repository\org\assertj\assertj-core\3.25.3\assertj-core-3.25.3.jar;C:\Users\H\.m2\repository\org\awaitility\awaitility\4.2.2\awaitility-4.2.2.jar;C:\Users\H\.m2\repository\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;C:\Users\H\.m2\repository\org\junit\jupiter\junit-jupiter\5.10.5\junit-jupiter-5.10.5.jar;C:\Users\H\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.10.5\junit-jupiter-api-5.10.5.jar;C:\Users\H\.m2\repository\org\opentest4j\opentest4j\1.3.0\opentest4j-1.3.0.jar;C:\Users\H\.m2\repository\org\junit\platform\junit-platform-commons\1.10.5\junit-platform-commons-1.10.5.jar;C:\Users\H\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\H\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.10.5\junit-jupiter-params-5.10.5.jar;C:\Users\H\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.10.5\junit-jupiter-engine-5.10.5.jar;C:\Users\H\.m2\repository\org\junit\platform\junit-platform-engine\1.10.5\junit-platform-engine-1.10.5.jar;C:\Users\H\.m2\repository\org\mockito\mockito-core\5.11.0\mockito-core-5.11.0.jar;C:\Users\H\.m2\repository\net\bytebuddy\byte-buddy-agent\1.14.19\byte-buddy-agent-1.14.19.jar;C:\Users\H\.m2\repository\org\objenesis\objenesis\3.3\objenesis-3.3.jar;C:\Users\H\.m2\repository\org\mockito\mockito-junit-jupiter\5.11.0\mockito-junit-jupiter-5.11.0.jar;C:\Users\H\.m2\repository\org\skyscreamer\jsonassert\1.5.3\jsonassert-1.5.3.jar;C:\Users\H\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\H\.m2\repository\org\springframework\spring-core\6.1.21\spring-core-6.1.21.jar;C:\Users\H\.m2\repository\org\springframework\spring-test\6.1.21\spring-test-6.1.21.jar;C:\Users\H\.m2\repository\org\xmlunit\xmlunit-core\2.9.1\xmlunit-core-2.9.1.jar;C:\Users\H\.m2\repository\org\springframework\security\spring-security-core\6.3.10\spring-security-core-6.3.10.jar;C:\Users\H\.m2\repository\org\springframework\security\spring-security-crypto\6.3.10\spring-security-crypto-6.3.10.jar;C:\Users\H\.m2\repository\org\springframework\boot\spring-boot-starter-validation\3.3.13\spring-boot-starter-validation-3.3.13.jar;C:\Users\H\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\10.1.42\tomcat-embed-el-10.1.42.jar;C:\Users\H\.m2\repository\org\hibernate\validator\hibernate-validator\8.0.2.Final\hibernate-validator-8.0.2.Final.jar;C:\Users\H\.m2\repository\jakarta\validation\jakarta.validation-api\3.0.2\jakarta.validation-api-3.0.2.jar;C:\Users\H\.m2\repository\com\auth0\java-jwt\4.4.0\java-jwt-4.4.0.jar;C:\Users\H\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.17.3\jackson-databind-2.17.3.jar;C:\Users\H\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.17.3\jackson-annotations-2.17.3.jar;C:\Users\H\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.17.3\jackson-core-2.17.3.jar;C:\Users\H\.m2\repository\com\github\pagehelper\pagehelper-spring-boot-starter\1.4.6\pagehelper-spring-boot-starter-1.4.6.jar;C:\Users\H\.m2\repository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.4.6\pagehelper-spring-boot-autoconfigure-1.4.6.jar;C:\Users\H\.m2\repository\com\github\pagehelper\pagehelper\5.3.2\pagehelper-5.3.2.jar;C:\Users\H\.m2\repository\com\github\jsqlparser\jsqlparser\4.5\jsqlparser-4.5.jar;C:\Users\H\.m2\repository\com\aliyun\oss\aliyun-sdk-oss\3.17.4\aliyun-sdk-oss-3.17.4.jar;C:\Users\H\.m2\repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\H\.m2\repository\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;C:\Users\H\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\H\.m2\repository\commons-codec\commons-codec\1.16.1\commons-codec-1.16.1.jar;C:\Users\H\.m2\repository\org\jdom\jdom2\2.0.6.1\jdom2-2.0.6.1.jar;C:\Users\H\.m2\repository\org\codehaus\jettison\jettison\1.5.4\jettison-1.5.4.jar;C:\Users\H\.m2\repository\com\aliyun\aliyun-java-sdk-core\4.5.10\aliyun-java-sdk-core-4.5.10.jar;C:\Users\H\.m2\repository\com\google\code\gson\gson\2.10.1\gson-2.10.1.jar;C:\Users\H\.m2\repository\org\jacoco\org.jacoco.agent\0.8.5\org.jacoco.agent-0.8.5-runtime.jar;C:\Users\H\.m2\repository\org\ini4j\ini4j\0.5.4\ini4j-0.5.4.jar;C:\Users\H\.m2\repository\io\opentracing\opentracing-api\0.33.0\opentracing-api-0.33.0.jar;C:\Users\H\.m2\repository\io\opentracing\opentracing-util\0.33.0\opentracing-util-0.33.0.jar;C:\Users\H\.m2\repository\io\opentracing\opentracing-noop\0.33.0\opentracing-noop-0.33.0.jar;C:\Users\H\.m2\repository\com\aliyun\aliyun-java-sdk-ram\3.1.0\aliyun-java-sdk-ram-3.1.0.jar;C:\Users\H\.m2\repository\com\aliyun\aliyun-java-sdk-kms\2.11.0\aliyun-java-sdk-kms-2.11.0.jar;C:\Users\H\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\H\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\H\.m2\repository\javax\activation\activation\1.1.1\activation-1.1.1.jar;C:\Users\H\.m2\repository\org\glassfish\jaxb\jaxb-runtime\2.3.3\jaxb-runtime-2.3.3.jar;C:\Users\H\.m2\repository\org\glassfish\jaxb\txw2\4.0.5\txw2-4.0.5.jar;C:\Users\H\.m2\repository\com\sun\istack\istack-commons-runtime\4.1.2\istack-commons-runtime-4.1.2.jar;C:\Users\H\.m2\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\Users\H\.m2\repository\com\dm\DmJdbcDriver\1.8.0\DmJdbcDriver-1.8.0.jar com.example.day0704.Day0704Application . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.3.13) 2025-07-04T11:38:43.764+08:00 INFO 26280 --- [day0704] [ main] com.example.day0704.Day0704Application : Starting Day0704Application using Java 21.0.3 with PID 26280 (D:\2024javaweb\代码\2024javaweb\day0704\target\classes started by H in D:\2024javaweb\代码\2024javaweb\day0704) 2025-07-04T11:38:43.765+08:00 INFO 26280 --- [day0704] [ main] com.example.day0704.Day0704Application : No active profile set, falling back to 1 default profile: "default" 2025-07-04T11:38:44.114+08:00 INFO 26280 --- [day0704] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode 2025-07-04T11:38:44.114+08:00 INFO 26280 --- [day0704] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2025-07-04T11:38:44.125+08:00 INFO 26280 --- [day0704] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 JPA repository interfaces. 2025-07-04T11:38:44.131+08:00 INFO 26280 --- [day0704] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode 2025-07-04T11:38:44.131+08:00 INFO 26280 --- [day0704] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data LDAP repositories in DEFAULT mode. 2025-07-04T11:38:44.134+08:00 INFO 26280 --- [day0704] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 3 ms. Found 0 LDAP repository interfaces. 2025-07-04T11:38:44.441+08:00 INFO 26280 --- [day0704] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) 2025-07-04T11:38:44.448+08:00 INFO 26280 --- [day0704] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2025-07-04T11:38:44.448+08:00 INFO 26280 --- [day0704] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.42] 2025-07-04T11:38:44.506+08:00 INFO 26280 --- [day0704] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2025-07-04T11:38:44.506+08:00 INFO 26280 --- [day0704] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 720 ms 2025-07-04T11:38:44.556+08:00 INFO 26280 --- [day0704] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2025-07-04T11:38:44.602+08:00 INFO 26280 --- [day0704] [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection dm.jdbc.driver.DmdbConnection@6b162ecc 2025-07-04T11:38:44.603+08:00 INFO 26280 --- [day0704] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2025-07-04T11:38:44.611+08:00 WARN 26280 --- [day0704] [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Failed to initialize dependency 'jdbcSessionDataSourceScriptDatabaseInitializer' of LoadTimeWeaverAware bean 'entityManagerFactory': Error creating bean with name 'jdbcSessionDataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/session/JdbcSessionConfiguration.class]: Failed to instantiate [org.springframework.boot.autoconfigure.session.JdbcSessionDataSourceScriptDatabaseInitializer]: Factory method 'jdbcSessionDataSourceScriptDatabaseInitializer' threw exception with message: Unable to detect database type 2025-07-04T11:38:44.611+08:00 INFO 26280 --- [day0704] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2025-07-04T11:38:44.612+08:00 INFO 26280 --- [day0704] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 2025-07-04T11:38:44.613+08:00 INFO 26280 --- [day0704] [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2025-07-04T11:38:44.618+08:00 INFO 26280 --- [day0704] [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-07-04T11:38:44.626+08:00 ERROR 26280 --- [day0704] [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Failed to initialize dependency 'jdbcSessionDataSourceScriptDatabaseInitializer' of LoadTimeWeaverAware bean 'entityManagerFactory': Error creating bean with name 'jdbcSessionDataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/session/JdbcSessionConfiguration.class]: Failed to instantiate [org.springframework.boot.autoconfigure.session.JdbcSessionDataSourceScriptDatabaseInitializer]: Factory method 'jdbcSessionDataSourceScriptDatabaseInitializer' threw exception with message: Unable to detect database type at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:326) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:954) ~[spring-context-6.1.21.jar:6.1.21] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) ~[spring-context-6.1.21.jar:6.1.21] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.13.jar:3.3.13] at com.example.day0704.Day0704Application.main(Day0704Application.java:10) ~[classes/:na] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdbcSessionDataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/session/JdbcSessionConfiguration.class]: Failed to instantiate [org.springframework.boot.autoconfigure.session.JdbcSessionDataSourceScriptDatabaseInitializer]: Factory method 'jdbcSessionDataSourceScriptDatabaseInitializer' threw exception with message: Unable to detect database type at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313) ~[spring-beans-6.1.21.jar:6.1.21] ... 10 common frames omitted Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.autoconfigure.session.JdbcSessionDataSourceScriptDatabaseInitializer]: Factory method 'jdbcSessionDataSourceScriptDatabaseInitializer' threw exception with message: Unable to detect database type at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) ~[spring-beans-6.1.21.jar:6.1.21] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ~[spring-beans-6.1.21.jar:6.1.21] ... 20 common frames omitted Caused by: java.lang.IllegalStateException: Unable to detect database type at org.springframework.util.Assert.state(Assert.java:76) ~[spring-core-6.1.21.jar:6.1.21] at org.springframework.boot.jdbc.init.PlatformPlaceholderDatabaseDriverResolver.determinePlatform(PlatformPlaceholderDatabaseDriverResolver.java:133) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.jdbc.init.PlatformPlaceholderDatabaseDriverResolver.lambda$resolveAll$0(PlatformPlaceholderDatabaseDriverResolver.java:97) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.jdbc.init.PlatformPlaceholderDatabaseDriverResolver.resolveAll(PlatformPlaceholderDatabaseDriverResolver.java:122) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.jdbc.init.PlatformPlaceholderDatabaseDriverResolver.resolveAll(PlatformPlaceholderDatabaseDriverResolver.java:97) ~[spring-boot-3.3.13.jar:3.3.13] at org.springframework.boot.autoconfigure.session.JdbcSessionDataSourceScriptDatabaseInitializer.resolveSchemaLocations(JdbcSessionDataSourceScriptDatabaseInitializer.java:86) ~[spring-boot-autoconfigure-3.3.13.jar:3.3.13] at org.springframework.boot.autoconfigure.session.JdbcSessionDataSourceScriptDatabaseInitializer.getSettings(JdbcSessionDataSourceScriptDatabaseInitializer.java:74) ~[spring-boot-autoconfigure-3.3.13.jar:3.3.13] at org.springframework.boot.autoconfigure.session.JdbcSessionDataSourceScriptDatabaseInitializer.<init>(JdbcSessionDataSourceScriptDatabaseInitializer.java:48) ~[spring-boot-autoconfigure-3.3.13.jar:3.3.13] at org.springframework.boot.autoconfigure.session.JdbcSessionConfiguration.jdbcSessionDataSourceScriptDatabaseInitializer(JdbcSessionConfiguration.java:65) ~[spring-boot-autoconfigure-3.3.13.jar:3.3.13] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[spring-beans-6.1.21.jar:6.1.21] ... 21 common frames omitted 进程已结束,退出代码为 1 如何解决以上问题
07-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值