在《龙芯2k0300 - 久久派开发环境搭建及内核升级(上)》我们对久久派开发板以及uboot、内核、文件系统的编译进行了介绍,本节主要介绍固件的升级,以及驱动移植。
一、更新固件
久久派开发板默认配套的是PMON固件以及linux 4.19的内核,这里我们打算将其替换换为uboot以及linux 6.12版本。
1.1 准备工作
1.1.1 串口连接
供电:久久派开发板集成了一个Type-C接口,用于给板子供电,板子上丝印标注DC-5V。
串口:龙邱久久派扩展板上也有一个Type-C接口,其连接久久派UART0,电脑通过Type-C数据线可直接控制久久派,使用更方便。
注意:实际上如果通过串口连接,供电接口可以不用了,因为久久派和龙邱久久派扩展板5V是连通的,所以任意一个Type-C接口提供5V电源都可以。
我们将扩展板上的串口连接到电脑,然后打开电脑的MobaXterm,选择串口端口(我这里是COM4),设置波特率115200。
1.1.2 测试
当我们按照前面的步骤接好线,给久久派复位上电,刚买的板子默认会输出如下信息:
点击查看详情- PMON2000 LOONGARCH Initializing. Standby...lock scache 90000000 - 90040000Lock Scache Done.copy text section to lock cache done.run in cache.mem init done!Copy Bios to memory OK, Uncompressing Bios..........OK, Booting Biosunlock scache windows firstflush scache to unlock scacheunlock_base 0x9000000090000000raw_memsz: 0x1memorysize_high: 0x10000000FREQRTC init donecpu freq 1000000000, cnt 50000021cpu freq 1000000000DONEset ebase doneDEVIENVIMAPVin envinitnvram=1c000000NVRAM is invalid!NVRAM@1c000000STDV80100000: memory between f800000-f800000 is already been allocated,heap is already above this pointSBDDIcache 0x8000Dcache 0x8000L2 cache 0x100000L3 cache 0x1NETIRTCLin configuremainbus0 (root)localbus0 at mainbus0emmc0 at localbus0syn0 at localbus0 phy device ID is: adb4, phy vendor ID is: 412==== Warning: unrecognized gmac phy!in if attachsyn1 at localbus0 phy device ID is: 0, phy vendor ID is: 0==== Warning: unrecognized gmac phy!in if attachohci0 at localbus0OHCI revision: 0x00000010 RH: a: 0x02000901 b: 0x00000000early period(0x0)OHCI b01f800 initialized okdrive at ohci0 devnum 1, Product OHCI Root Hub not configuredlotg0 at localbus0Halt all channels to put them into a known stateUSB DWC2drive at lotg0 devnum 2, Product U-Boot Root Hub not configuredloopdev0 at mainbus0out configurebegin dc_initenter dc_init...frame buffer addr: 7000000pll found pstdiv[0x26], loopc[0x3e], frefc[0x4]pll out[0x261f0408]display controller reg config complete!fbaddress = 9000000007000000cfb_console init,fb=9000000007000000CONSOLE_SIZE 1228800devconfig done.ifinit done.domaininit done.init_proc....HSTISYMISBDE||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||| ||||| |||| ||||| ||||| ||||| ||||| |||| ||||| |||| |||||||| |||| ||| |||| ||| |||| |||| |||| ||| |||| ||| |||| ||| |||| |||| |||||||| |||||| ||| |||||| ||| | ||| ||| |||||||||||| ||||||| |||||| ||| | ||| |||| |||||||| |||||| ||| |||||| ||| || || ||| ||| ||||||| |||| |||||| ||| || || |||| |||||||| |||||| ||| |||||| ||| ||| | ||| ||||| |||||||||| ||| |||||| ||| ||| | |||| |||||||| |||| ||| |||| ||| |||| ||| |||| ||| ||| |||| |||| ||| |||| |||| |||| ||||| |||| ||||| |||| ||||| |||||| |||| ||||| |||||||||||||||||||||||||||||||||||||||||[2020 LOONGSON]|||||||||||||||||||||||||||||||||||||||||||Configuration [loongson,EL,NET,IDE]Version: PMON 5.0.3-Release (ls2k300) #2: Mon Jun 3 16:45:51 CST 2024 commit bc99ebfd9b4292970989b3a74070ad9897321272 Author: niupengju Date: Fri May 31 14:08:48 2024 +0800 .Supported loaders [txt, srec, elf, bin]Supported filesystems [tfcard, emmc, mtd, net, ext4, fat, fs, disk, iso9660, socket, tty, ram]This software may be redistributed under the BSD copyright.Copyright 2000-2002, Opsycon AB, Sweden.Copyright 2005, ICT CAS.CPU 3A5000 @ 1000.00 MHzMemory size 512 MB .L1 Instruction cache size 32KB (128 Line, 4 Way)L1 Data cache size 32KB (128 Line, 4 Way)L2 cache size 1024KBL3 cache size 0KB |BEV1BEV in SR set to zero.dtb chsum err! you should load_dtb before boot kernel!!! ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Ŀ▒ Boot Menu List ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Ĵ▒ -> 1 'LoongOS (2k300)' ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ Please Select Boot Menu [1] ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Use the UP and DOWN keys to select the entry.Press ENTER to boot selected OS.Press 'c' to command-line. Booting system in [0] second(s)Now booting the 'LoongOS (2k300)' /Loading file: (emmc0,0)/boot/vmlinuz (elf) -(elf)0x9000000001410000/5966336 + 0x19c0a00/4202528(z) +Entry address is 9000000001410000Boot with parameters: console=tty console=ttyS0,115200 rdinit=/sbin/init rootdelay=5 root=/dev/mmcblk0p1dtb chsum err!!![ 0.000000] Linux version 4.19.190+ (loongson@loongson) (gcc version 8.3.0 (LoongArch GNU toolchain rc1.2 (20230615))) #3 SMP Mon Jun 3 10:20:57 CST 2024[ 0.000000] 64-bit Loongson Processor probed (LA264 Core)[ 0.000000] CPU0 revision is: 0014a030 (Loongson-64bit)[ 0.000000] FPU0 revision is: 00000001[ 0.000000] efi:[ 0.000000] DMI not present or invalid.[ 0.000000] The BIOS Version: (null)[ 0.000000] UEFI runtime services will not be available![ 0.000000] software IO TLB: mapped [mem 0x014a0000-0x054a0000] (64MB)[ 0.000000] PM: Registered nosave memory: [mem 0x011c0000-0x011c3fff][ 0.000000] Detected 1 available CPU(s)[ 0.000000] Zone ranges:[ 0.000000] DMA32 [mem 0x0000000000200000-0x00000000ffffffff][ 0.000000] Normal empty[ 0.000000] Movable zone start for each node[ 0.000000] Early memory node ranges[ 0.000000] node 0: [mem 0x0000000000200000-0x000000000effffff][ 0.000000] node 0: [mem 0x0000000090000000-0x000000009fffffff][ 0.000000] Zeroed struct page in unavailable ranges: 1152 pages[ 0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x000000009fffffff][ 0.000000] percpu: Embedded 7 pages/cpu s62808 r8192 d43688 u114688[ 0.000000] CPU0 __my_cpu_offset: 4118000[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 31507[ 0.000000] Kernel command line: earlycon console=tty console=ttyS0,115200 rdinit=/sbin/init rootdelay=5 root=/dev/mmcblk0p1[ 0.000000] Dentry cache hash table entries: 65536 (order: 5, 524288 bytes)[ 0.000000] Inode-cache hash table entries: 32768 (order: 4, 262144 bytes)[ 0.000000] Memory: 386992K/505856K available (11820K kernel code, 1386K rwdata, 4288K rodata, 992K init, 570K bss, 118864K reserved, 0K cma-reserved)[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1[ 0.000000] ftrace: allocating 39093 entries in 39 pages[ 0.000000] rcu: Hierarchical RCU implementation.[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1[ 0.000000] NR_IRQS: 4160, nr_irqs: 4160, preallocated irqs: 16[ 0.000000] timer_probe: no matching timers found[ 0.000000] Constant clock event device register[ 0.000000] clocksource: Constant: mask: 0xffffffffffffffff max_cycles: 0x3759f22983, max_idle_ns: 881590413697 ns[ 0.000005] sched_clock: 64 bits at 120MHz, resolution 8ns, wraps every 4398046511102ns[ 0.000009] Constant clock source device register[ 0.000140] Console: colour dummy device 80x25[ 0.000565] console [tty0] enabled[ 0.000638] Calibrating delay loop (skipped), value calculated using timer frequency.. 240.00 BogoMIPS (lpj=480000)[ 0.000679] pid_max: default: 32768 minimum: 301[ 0.000793] Security Framework initialized[ 0.000878] Mount-cache hash table entries: 2048 (order: 0, 16384 bytes)[ 0.000926] Mountpoint-cache hash table entries: 2048 (order: 0, 16384 bytes)[ 0.002398] Performance counters: loongarch/loongson64 PMU enabled, 4 64-bit counters available to each CPU.[ 0.002564] rcu: Hierarchical SRCU implementation.[ 0.003065] smp: Bringing up secondary CPUs ...[ 0.003089] smp: Brought up 1 node, 1 CPU[ 0.003748] devtmpfs: initialized[ 0.007927] random: get_random_u32 called from bucket_table_alloc.isra.9+0x94/0x1e0 with crng_init=0[ 0.008865] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns[ 0.008919] futex hash table entries: 256 (order: 0, 16384 bytes)[ 0.009169] pinctrl core: initialized pinctrl subsystem[ 0.010176] NET: Registered protocol family 16[ 0.010933] audit: initializing netlink subsys (disabled)[ 0.011871] cpuidle: using governor menu[ 0.013252] audit: type=2000 audit(1577836800.008:1): state=initialized audit_enabled=0 res=1[ 0.021173] loongson pinctrl 16000490.pinctrl: 7 gpio chip add success, pins 112[ 0.022501] loongson pinctrl 16000490.pinctrl: loongson pinctrl probe success[ 0.083205] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages[ 0.084590] ACPI: Interpreter disabled.[ 0.086341] vgaarb: loaded[ 0.086922] SCSI subsystem initialized[ 0.087944] usbcore: registered new interface driver usbfs[ 0.089380] usbcore: registered new interface driver hub[ 0.089496] usbcore: registered new device driver usb[ 0.090500] pps_core: LinuxPPS API ver. 1 registered[ 0.090531] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti [ 0.090648] PTP clock support registered[ 0.094111] Advanced Linux Sound Architecture Driver Initialized.[ 0.095048] Bluetooth: Core ver 2.22[ 0.095128] NET: Registered protocol family 31[ 0.095148] Bluetooth: HCI device and connection manager initialized[ 0.095248] Bluetooth: HCI socket layer initialized[ 0.095273] Bluetooth: L2CAP socket layer initialized[ 0.095319] Bluetooth: SCO socket layer initialized[ 0.095942] clocksource: Switched to clocksource Constant[ 0.180045] pnp: PnP ACPI: disabled[ 0.199393] NET: Registered protocol family 2[ 0.200323] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 16384 bytes)[ 0.200380] TCP established hash table entries: 4096 (order: 1, 32768 bytes)[ 0.200430] TCP bind hash table entries: 4096 (order: 2, 65536 bytes)[ 0.200520] TCP: Hash tables configured (established 4096 bind 4096)[ 0.200628] UDP hash table entries: 512 (order: 0, 16384 bytes)[ 0.200664] UDP-Lite hash table entries: 512 (order: 0, 16384 bytes)[ 0.200921] NET: Registered protocol family 1[ 0.201931] RPC: Registered named UNIX socket transport module.[ 0.201961] RPC: Registered udp transport module.[ 0.201981] RPC: Registered tcp transport module.[ 0.202000] RPC: Registered tcp NFSv4.1 backchannel transport module.[ 0.205739] Initialise system trusted keyrings[ 0.206638] workingset: timestamp_bits=62 max_order=15 bucket_order=0[ 0.225701] NFS: Registering the id_resolver key type[ 0.225776] Key type id_resolver registered[ 0.225797] Key type id_legacy registered[ 0.225826] nfs4filelayout_init: NFSv4 File Layout Driver Registering...[ 0.225862] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...[ 0.225895] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).[ 0.227316] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.[ 0.227864] SGI XFS with security attributes, no debug enabled[ 1.023911] random: fast init done[ 1.587976] Key type asymmetric registered[ 1.588027] Asymmetric key parser 'x509' registered[ 1.588153] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)[ 1.588190] io scheduler noop registered[ 1.588385] io scheduler cfq registered (default)[ 1.588407] io scheduler mq-deadline registered[ 1.588427] io scheduler kyber registered[ 1.597067] Serial: 8250/16550 driver, 16 ports, IRQ sharing disabled[ 1.605376] console [ttyS0] disabled[ 1.605476] 16100000.serial: ttyS0 at MMIO 0x16100000 (irq = 16, base_baud = 6250000) is a Loongson 2k1500 16550[ 2.248935] console [ttyS0] enabled[ 2.253507] 16100400.serial: ttyS1 at MMIO 0x16100400 (irq = 17, base_baud = 6250000) is a Loongson 2k1500 16550[ 2.264877] 16100800.serial: ttyS2 at MMIO 0x16100800 (irq = 18, base_baud = 6250000) is a Loongson 2k1500 16550[ 2.276161] loongarch_iommu_ivrs_init get ivrs table failed[ 2.281806] Failed to init iommu by ivrs[ 2.288605] [drm] loongson kernel modesetting driver enable[ 2.295423] [drm] No OF Graph in dtb, fallback to legacy[ 2.301021] [drm] found 1 display timings for connector-0[ 2.306463] [drm] connector0 is DPI[ 2.310029] [drm] Total 1 outputs[ 2.313672] lsdc 16090000.dc: register irq(71) handler for ls7a2000[ 2.319979] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).[ 2.326616] [drm] No driver support for vblank timestamp query.[ 2.333276] [drm] Initialized lsdc 1.1.1 20190831 for 16090000.dc on minor 0[ 2.386398] Console: switching to colour frame buffer device 128x37[ 2.409123] lsdc 16090000.dc: fb0: DRM emulated frame buffer device[ 2.431364] loop: module loaded[ 2.436665] ls-nand driver initializing[ 2.441621] ls-quadspi 16010000.spi0: unable to setup flash chip[ 2.448042] ls-quadspi: probe of 16010000.spi0 failed with error -1[ 2.456343] ls-spi-v1 1610c000.spi2: driver initialized[ 2.462582] libphy: Fixed MDIO Bus: probed[ 2.469950] CAN device driver interface[ 2.477324] lbx----->ctucan_platform_probe,76[ 2.485060] lscanfd 16110800.can: probe addr=ffffff81020d8800,irq=19 can_clk=100000000 ntxbufs=8 res->start=16110800[ 2.498762] lscanfd 16110800.can: lbx----device id :babe[ 2.508637] lbx----->ctucan_platform_probe,76[ 2.516493] lscanfd 16110c00.can: probe addr=ffffff81020e0c00,irq=20 can_clk=100000000 ntxbufs=8 res->start=16110c00[ 2.530183] lscanfd 16110c00.can: lbx----device id :babe[ 2.540629] stmmaceth 16020000.ethernet: no reset control found[ 2.550509] stmmaceth 16020000.ethernet: User ID: 0x11, Synopsys ID: 0x37[ 2.560321] stmmaceth 16020000.ethernet: DWMAC1000[ 2.568095] stmmaceth 16020000.ethernet: DMA HW capability register supported[ 2.578018] stmmaceth 16020000.ethernet: RX Checksum Offload Engine supported[ 2.587886] stmmaceth 16020000.ethernet: COE Type 2[ 2.595443] stmmaceth 16020000.ethernet: TX Checksum insertion supported[ 2.604824] stmmaceth 16020000.ethernet: Wake-Up On Lan supported[ 2.613843] stmmaceth 16020000.ethernet: Enhanced/Alternate descriptors[ 2.623214] stmmaceth 16020000.ethernet: Enabled extended descriptors[ 2.632318] stmmaceth 16020000.ethernet: Ring mode enabled[ 2.640384] stmmaceth 16020000.ethernet: Enable RX Mitigation via HW Watchdog Timer[ 2.658621] libphy: stmmac: probed[ 2.664724] mdio_bus stmmac-0:01: attached PHY driver [unbound] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)[ 2.679279] dwc2 16040000.otg: 16040000.otg supply vusb_d not found, using dummy regulator[ 2.691323] dwc2 16040000.otg: Linked as a consumer to regulator.0[ 2.700492] dwc2 16040000.otg: 16040000.otg supply vusb_a not found, using dummy regulator[ 2.712124] dwc2 16040000.otg: Configuration mismatch. dr_mode forced to host[ 2.772143] dwc2 16040000.otg: dwc2_check_params: Invalid parameter lpm=1[ 2.781683] dwc2 16040000.otg: dwc2_check_params: Invalid parameter lpm_clock_gating=1[ 2.792310] dwc2 16040000.otg: dwc2_check_params: Invalid parameter besl=1[ 2.801859] dwc2 16040000.otg: dwc2_check_params: Invalid parameter hird_threshold_en=1[ 2.813286] dwc2 16040000.otg: DWC OTG Controller[ 2.821063] dwc2 16040000.otg: new USB bus registered, assigned bus number 1[ 2.831117] dwc2 16040000.otg: irq 48, io mem 0x16040000[ 2.840707] hub 1-0:1.0: USB hub found[ 2.847729] hub 1-0:1.0: 1 port detected[ 2.855743] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver[ 2.864939] ehci-pci: EHCI PCI platform driver[ 2.872940] ehci-platform: EHCI generic platform driver[ 2.881717] ehci-platform 16080000.ehci: EHCI Host Controller[ 2.890209] ehci-platform 16080000.ehci: new USB bus registered, assigned bus number 2[ 2.901114] ehci-platform 16080000.ehci: irq 46, io mem 0x16080000[ 2.923957] ehci-platform 16080000.ehci: USB 2.0 started, EHCI 1.00[ 2.934152] hub 2-0:1.0: USB hub found[ 2.940850] hub 2-0:1.0: 1 port detected[ 2.948650] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver[ 2.958327] ohci-platform: OHCI generic platform driver[ 2.966705] ohci-platform 16088000.ohci: Generic Platform OHCI controller[ 2.976246] ohci-platform 16088000.ohci: new USB bus registered, assigned bus number 3[ 2.987345] ohci-platform 16088000.ohci: irq 47, io mem 0x16088000[ 3.061163] hub 3-0:1.0: USB hub found[ 3.068125] hub 3-0:1.0: 1 port detected[ 3.076704] usbcore: registered new interface driver usb-storage[ 3.086621] udc-core: couldn't find an available UDC - added [g_ether] to list of pending drivers[ 3.099208] i8042: PNP: No PS/2 controller found.[ 3.106448] i8042: Probing ports directly.[ 3.113843] i8042: No controller found[ 3.121443] mousedev: PS/2 mouse device common for all mice[ 3.130511] Gt9xx driver installing..[ 3.139496] ls2x-rtc 16128000.rtc: rtc core: registered 16128000.rtc as rtc0[ 3.150505] i2c /dev entries driver[ 3.158742] goodix-ts 0-0014: GTP Driver Version: V2.8.0.2[ 3.168047] goodix-ts 0-0014: GTP I2C Address: 0x14[ 3.176585] goodix-ts 0-0014: Unset touchscreen-max-id, use default[ 3.185536] goodix-ts 0-0014: Unset touchscreen-size-x, use default[ 3.194372] goodix-ts 0-0014: Unset touchscreen-size-y, use default[ 3.203169] goodix-ts 0-0014: Unset touchscreen-max-w, use default[ 3.211876] goodix-ts 0-0014: Unset touchscreen-max-p, use default[ 3.220507] goodix-ts 0-0014: touch input parameters is [id x y w p][ 3.231337] goodix-ts 0-0014: int-sync enabled[ 3.238255] goodix-ts 0-0014: auto-update enabled[ 3.245686] goodix-ts 0-0014: 0-0014 supply vdd_ana not found, using dummy regulator[ 3.256422] goodix-ts 0-0014: Linked as a consumer to regulator.0[ 3.265180] goodix-ts 0-0014: 0-0014 supply vcc_i2c not found, using dummy regulator[ 3.275816] goodix-ts 0-0014: No pinctrl found[ 3.282903] goodix-ts 0-0014: Success request irq-gpio[ 3.290569] goodix-ts 0-0014: Success request rst-gpio[ 3.298145] goodix-ts 0-0014: Guitar reset[ 3.403121] goodix-ts 0-0014: I2c read failed,dev:14,reg:8047,size:1[ 3.411885] goodix-ts 0-0014: GTP i2c test failed time 1[ 3.441819] goodix-ts 0-0014: I2c read failed,dev:14,reg:8047,size:1[ 3.450617] goodix-ts 0-0014: GTP i2c test failed time 2[ 3.480469] goodix-ts 0-0014: I2c read failed,dev:14,reg:8047,size:1[ 3.489206] goodix-ts 0-0014: GTP i2c test failed time 3[ 3.507858] goodix-ts 0-0014: Failed communicate with IC use I2C[ 3.516328] goodix-ts 0-0014: Regulator vcc_i2c disabled[ 3.523864] goodix-ts 0-0014: Regulator vdd_ana disabled[ 3.531735] goodix-ts: probe of 0-0014 failed with error -11[ 3.539761] ls-i2c 16108000.i2c: driver initialized[ 3.548514] ls-i2c 16109000.i2c: driver initialized[ 3.557986] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com[ 3.568707] Bluetooth: HCI UART driver ver 2.3[ 3.575373] Bluetooth: HCI UART protocol H4 registered[ 3.584655] ls2k_sdio 16140000.mmc0: Use exclusive dma engine.[ 4.019986] err: get cd, can't find gpio chip[ 4.027254] ls2k_sdio 16148000.sdio1: Use exclusive dma engine.[ 5.040287] usbcore: registered new interface driver usbhid[ 5.048193] usbhid: USB HID core driver[ 5.058599] soc-audio soc-audio: ASoC: machine LOONGSON-I2S should use snd_soc_register_card()[ 5.471466] err: get cd, can't find gpio chip[ 6.894015] mmc1: new high speed SDIO card at address 390b[ 7.118840] soc-audio soc-audio: ES8323.0-0010 loongson-i2s-dai mapping ok[ 7.128796] soc-audio soc-audio: ASoC: DAPM unknown pin MicIn[ 7.142923] soc-audio soc-audio: ES8323.0-0010 loongson-i2s-dai mapping ok[ 7.152838] soc-audio soc-audio: ASoC: no DMI vendor name![ 7.164209] Initializing XFRM netlink socket[ 7.172879] NET: Registered protocol family 10[ 7.181778] Segment Routing with IPv6[ 7.188282] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver[ 7.198303] NET: Registered protocol family 17[ 7.205910] NET: Registered protocol family 15[ 7.212868] can: controller area network core (rev 20170425 abi 9)[ 7.222019] NET: Registered protocol family 29[ 7.229246] can: raw protocol (rev 20170425)[ 7.236319] can: broadcast manager protocol (rev 20170425 t)[ 7.444828] can: netlink gateway (rev 20170425) max_hops=1[ 7.453855] Bluetooth: RFCOMM TTY layer initialized[ 7.461768] Bluetooth: RFCOMM socket layer initialized[ 7.469748] Bluetooth: RFCOMM ver 1.11[ 7.476214] Bluetooth: BNEP (Ethernet Emulation) ver 1.3[ 7.484203] Bluetooth: BNEP filters: protocol multicast[ 7.492178] Bluetooth: BNEP socket layer initialized[ 7.499714] Bluetooth: HIDP (Human Interface Emulation) ver 1.2[ 7.508246] Bluetooth: HIDP socket layer initialized[ 7.516477] Key type dns_resolver registered[ 7.524913] Loading compiled-in X.509 certificates[ 7.736624] mmc0: new HS200 MMC card at address 0001[ 7.745566] ls2x-rtc 16128000.rtc: setting system clock to 2000-01-01 00:08:44 UTC (946685324)[ 7.757751] mmcblk0: mmc0:0001 08A391 7.28 GiB[ 7.765957] mmcblk0boot0: mmc0:0001 08A391 partition 1 4.00 MiB[ 7.774610] cfg80211: Loading compiled-in X.509 certificates for regulatory database[ 7.785771] mmcblk0boot1: mmc0:0001 08A391 partition 2 4.00 MiB[ 7.800895] mmcblk0: p1[ 7.957281] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'[ 7.966724] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2[ 7.977958] cfg80211: failed to load regulatory.db[ 7.985464] ALSA device list:[ 7.991099] #0: LOONGSON-I2S[ 7.997402] Waiting 5 sec before mounting root device...[ 13.037973] EXT4-fs (mmcblk0p1): INFO: recovery required on readonly filesystem[ 13.047905] EXT4-fs (mmcblk0p1): write access will be enabled during recovery[ 13.065451] EXT4-fs (mmcblk0p1): recovery complete[ 13.073784] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)[ 13.084868] VFS: Mounted root (ext4 filesystem) readonly on device 179:1.[ 13.100161] devtmpfs: mounted[ 13.132257] Freeing unused kernel memory: 992K[ 13.139399] This architecture does not have kernel memory protection.[ 13.148602] Run /sbin/init as init process[ 13.292965] systemd[1]: System time before build time, advancing clock.[ 13.317252] systemd[1]: systemd 247 running in system mode. (+PAM +AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL +XZ -LZ4 -ZSTD -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)[ 13.345912] systemd[1]: Detected architecture loongarch64.Welcome to LoongOS v0.1 (master)![ 13.372645] systemd[1]: Set hostname to .[ 13.541539] systemd-sysv-generator[988]: SysV service '/etc/init.d/psplash.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.[ 13.580208] systemd-sysv-generator[988]: SysV service '/etc/init.d/dropbear' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.[ 13.892968] systemd[1]: Queued start job for default target Multi-User System.[ 13.906062] random: systemd: uninitialized urandom read (16 bytes read)[ 13.917950] systemd[1]: Created slice system-getty.slice.[ OK ] Created slice system-getty.slice.[ 13.944213] random: systemd: uninitialized urandom read (16 bytes read)[ 13.955768] systemd[1]: Created slice system-modprobe.slice.[ OK ] Created slice system-modprobe.slice.[ 13.980261] random: systemd: uninitialized urandom read (16 bytes read)[ 13.991815] systemd[1]: Created slice system-serial\x2dgetty.slice.[ OK ] Created slice system-serial\x2dgetty.slice.[ 14.020920] systemd[1]: Created slice User and Session Slice.[ OK ] Created slice User and Session Slice.[ 14.048791] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.[ OK ] Started Dispatch Password …ts to Console Directory Watch.[ 14.080667] systemd[1]: Started Forward Password Requests to Wall Directory Watch.[ OK ] Started Forward Password R…uests to Wall Directory Watch.[ 14.108637] systemd[1]: Reached target Host and Network Name Lookups.[ OK ] Reached target Host and Network Name Lookups.[ 14.136351] systemd[1]: Reached target Paths.[ OK ] Reached target Paths.[ 14.160413] systemd[1]: Reached target Remote File Systems.[ OK ] Reached target Remote File Systems.[ 14.184385] systemd[1]: Reached target Slices.[ OK ] Reached target Slices.[ 14.208408] systemd[1]: Reached target Swap.[ OK ] Reached target Swap.[ 14.233489] systemd[1]: Listening on RPCbind Server Activation Socket.[ OK ] Listening on RPCbind Server Activation Socket.[ 14.260387] systemd[1]: Reached target RPC Port Mapper.[ OK ] Reached target RPC Port Mapper.[ 14.289869] systemd[1]: Listening on Syslog Socket.[ OK ] Listening on Syslog Socket.[ 14.312817] systemd[1]: Listening on initctl Compatibility Named Pipe.[ OK ] Listening on initctl Compatibility Named Pipe.[ 14.341348] systemd[1]: Listening on Journal Audit Socket.[ OK ] Listening on Journal Audit Socket.[ 14.369027] systemd[1]: Listening on Journal Socket (/dev/log).[ OK ] Listening on Journal Socket (/dev/log).[ 14.397149] systemd[1]: Listening on Journal Socket.[ OK ] Listening on Journal Socket.[ 14.421315] systemd[1]: Listening on Network Service Netlink Socket.[ OK ] Listening on Network Service Netlink Socket.[ 14.449268] systemd[1]: Listening on udev Control Socket.[ OK ] Listening on udev Control Socket.[ 14.472931] systemd[1]: Listening on udev Kernel Socket.[ OK ] Listening on udev Kernel Socket.[ 14.497154] systemd[1]: Listening on User Database Manager Socket.[ OK ] Listening on User Database Manager Socket.[ 14.527169] systemd[1]: Mounting Huge Pages File System... Mounting Huge Pages File System...[ 14.551484] systemd[1]: Mounting POSIX Message Queue File System... Mounting POSIX Message Queue File System...[ 14.586795] systemd[1]: Mounting Kernel Debug File System... Mounting Kernel Debug File System...[ 14.618755] systemd[1]: Mounting Kernel Trace File System... Mounting Kernel Trace File System...[ 14.654547] systemd[1]: Mounting Temporary Directory (/tmp)... Mounting Temporary Directory (/tmp)...[ 14.685309] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.[ 14.703004] systemd[1]: Starting Load Kernel Module configfs... Starting Load Kernel Module configfs...[ 14.731230] systemd[1]: Starting Load Kernel Module drm... Starting Load Kernel Module drm...[ 14.763024] systemd[1]: Starting Load Kernel Module fuse... Starting Load Kernel Module fuse...[ 14.795085] systemd[1]: Starting Start psplash boot splash screen... Starting Start psplash boot splash screen...[ 14.827060] systemd[1]: Starting RPC Bind... Starting RPC Bind...[ 14.863652] systemd[1]: Starting File System Check on Root Device... Starting File System Check on Root Device...[ 14.908759] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.[ 14.941918] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)[ 14.956480] systemd[1]: Starting Journal Service... Starting Journal Service...[ 14.981195] systemd[1]: Condition check resulted in Load Kernel Modules being skipped.[ 15.013528] systemd[1]: Mounting NFSD configuration filesystem... Mounting NFSD configuration filesystem...[ 15.058979] systemd[1]: Starting Apply Kernel Variables... Starting Apply Kernel Variables...[ 15.099211] systemd[1]: Starting Coldplug All udev Devices... Starting Coldplug All udev Devices...[ 15.161368] systemd[1]: Started Start psplash boot splash screen.[ OK ] Started Start psplash boot splash screen.[ 15.197743] systemd[1]: Started RPC Bind.[ 15.201950] audit: type=1130 audit(1616581519.900:2): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=psplash-start comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ OK ] Started RPC Bind.[ 15.245072] systemd[1]: Mounted Huge Pages File System.[ OK ] Mounted Huge Pages F[ 15.260185] audit: type=1130 audit(1616581519.948:3): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rpcbind comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'ile System.[ 15.293308] systemd[1]: Mounted POSIX Message Queue File System.[ OK ] Mounted POSIX Message Queue File System.[ 15.333293] systemd[1]: Mounted Kernel Debug File System.[ OK ] Mounted Kernel Debug File System.[ 15.369254] systemd[1]: Mounted Kernel Trace File System.[ OK ] Mounted Kernel Trace File System.[ 15.397011] systemd[1]: Mounted Temporary Directory (/tmp).[ OK ] Mounted Temporary Directory (/tmp).[ 15.425619] systemd[1]: modprobe@configfs.service: Succeeded.[ 15.441010] systemd[1]: Finished Load Kernel Module configfs.[ OK ] Finished Load Kernel Module configfs.[ 15.469800] systemd[1]: modprobe@drm.service: Succeeded.[ 15.475363] audit: type=1130 audit(1616581520.172:4): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@configfs comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ 15.501106] systemd[1]: Finished Load Kernel Module drm.[ OK 15.513497] audit: type=1131 audit(1616581520.172:5): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@configfs comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'm] Finished Load Kernel Module drm.[ 15.549097] systemd[1]: Started Journal Service.[ 15.553842] audit: type=1130 audit(1616581520.252:6): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@drm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ OK 15.573232] audit: type=1131 audit(1616581520.252:7): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@drm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'm] Started Journal Service.[ 15.608314] audit: type=1130 audit(1616581520.308:8): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-journald comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ OK ] Finished Load Kernel Module fuse.[ OK 15.646580] audit: type=1130 audit(1616581520.348:9): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@fuse comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'm] Finished 15.666977] audit: type=1131 audit(1616581520.348:10): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=modprobe@fuse comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'1;39mFile System Check on Root Device.[ OK 15.701912] audit: type=1130 audit(1616581520.404:11): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-fsck-root comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'm] Mounted NFSD configuration filesystem.[ OK ] Finished Apply Kernel Variables. Mounting Kernel Configuration File System...[ OK ] Started Start psplash-syst…progress communication helper. Starting Remount Root and Kernel File Systems...[ OK ] Mounted Kernel Configuration File System.[ 15.895183] EXT4-fs (mmcblk0p1): re-mounted. Opts: (null)[ OK ] Finished Remount Root and Kernel File Systems. Starting Flush Journal to Persistent Storage... Starting Create Static Device Nodes in /dev...[ 15.996449] systemd-journald[1005]: Received client request to flush runtime journal.[ OK ] Finished Flush Journal to Persistent Storage.[ OK ] Finished Create Static Device Nodes in /dev.[ OK ] Reached target Local File Systems (Pre). Mounting /var/volatile... Starting Rule-based Manage…for Device Events and Files...[ OK ] Mounted /var/volatile. Starting Load/Save Random Seed...[ OK ] Reached target Local File Systems. Starting Create Volatile Files and Directories...[ OK ] Finished Coldplug All udev Devices.[ OK ] Started Rule-based Manager for Device Events and Files.[ OK ] Finished Create Volatile Files and Directories. Starting Network Time Synchronization... Starting Update UTMP about System Boot/Shutdown...[ OK ] Finished Update UTMP about System Boot/Shutdown.[ OK ] Started Network Time Synchronization.[ OK ] Reached target Sound Card.[ OK ] Reached target Syste[ 18.059977] random: crng init donem Initialization[ 18.064012] random: 7 urandom warning(s) missed due to ratelimiting.[ OK ] Started Daily Cleanup of Temporary Directories.[ OK ] Reached target System Time Set.[ OK ] Reached target System Time Synchronized.[ OK ] Reached target Timers.[ OK ] Listening on D-Bus System Message Bus Socket.[ OK ] Listening on dropbear.socket.[ OK ] Reached target Sockets.[ OK ] Reached target Basic System.[ OK ] Started Kernel Logging Service.[ OK ] Started System Logging Service.[ OK ] Started D-Bus System Message Bus. Starting IPv6 Packet Filtering Framework... Starting IPv4 Packet Filtering Framework... Starting User Login Management...[ OK ] Finished Load/Save Random Seed.[ OK ] Finished IPv6 Packet Filtering Framework.[ OK ] Finished IPv4 Packet Filtering Framework.[ OK ] Reached target Network (Pre). Starting Connection service... Starting Network Service...[ OK ] Started User Login Management.[ OK ] Started Connection service.[ OK ] Started Network Service.[ OK ] Reached target Network.[ OK 18.966472] Generic PHY stmmac-0:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)m] Started NFS status monitor for NFSv2/3 locking..[ 19.008056] stmmaceth 16020000.ethernet eth0: No Safety Features support found[ OK ] Started Respond to IPv6 Node Information Queries.[ 19.027351] stmmaceth 16020000.ethernet eth0: IEEE 1588-2008 Advanced Timestamp supported Starting /etc/rc.local Compatibility...[ 19.083113] stmmaceth 16020000.ethernet eth0: registered PTP clock[ OK ] Started Network Router Discovery Daemon.[ 19.135040] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready Starting Permit User Sessions...[ 19.160159] aic8800_bsp: loading out-of-tree module taints kernel.[ 19.259503] aicbsp_init[ 19.262081] RELEASE_DATE:2024_0327_3561b08f[ 19.266390] aicbsp_resv_mem_init[ OK ] Finished Permit User Sessions. Starting Hostname Service...[ OK ] Started Hostname Service.[ 20.553690] kauditd_printk_skb: 24 callbacks suppressed[ 20.553697] audit: type=1130 audit(1616581525.256:36): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-hostnamed comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ 20.586400] aicbsp: aicbsp_set_subsys, subsys: AIC_WIFI, state to: 1[ 20.592859] aicbsp: aicbsp_set_subsys, power state change to 1 dure to AIC_WIFI[ 20.600185] aicbsp: aicbsp_platform_power_on[ 20.638246] aicbsp: aicbsp_sdio_probe:1 vid:0xC8A1 did:0x0082[ 20.646567] aicbsp: aicbsp_sdio_probe:2 vid:0xC8A1 did:0x0182[ 20.652482] aicbsp: aicbsp_sdio_probe after replace:1[ 20.659740] AICWFDBG(LOGINFO) aicwf_sdio_chipmatch USE AIC8800D80[ 20.666019] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz[ 20.672553] aicbsp: aicwf_sdio_reg_init[ 20.683016] AICWFDBG(LOGINFO) aicbsp: aicbsp_driver_fw_init, chip rev: 7[ 20.689970] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fw_patch_table_8800d80_u02.bin[ 20.705272] file md5:0c9bf9c9c10f7a90a22a4c35fa58c967[ 20.710540] rwnx_plat_bin_fw_upload_android[ 20.715742] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fw_adid_8800d80_u02.bin[ 20.725399] file md5:f546881a81b960d89a672578eb45a809[ 20.748037] rwnx_plat_bin_fw_upload_android[ 20.752270] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fw_patch_8800d80_u02.bin[ 20.763114] file md5:35d137b8a76daaeb4f5034df8e15bcde[ 21.172027] aicbt_patch_table_load bt btmode[3]:5[ 21.176933] aicbt_patch_table_load bt uart_baud[3]:115200[ 21.182527] aicbt_patch_table_load bt uart_flowctrl[3]:0[ 21.188017] aicbt_patch_table_load bt lpm_enable[3]:0[ 21.193245] aicbt_patch_table_load bt tx_pwr[3]:28463[ 21.328024] aicbsp: bt patch version: - Mar 07 2024 14:29:05 - git f94a3e4[ 21.335021] rwnx_plat_bin_fw_upload_android[ 21.340339] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fmacfw_8800d80_u02.bin[ 21.363855] file md5:13e6f0e58aae342d260d8672ab61c31f[ 22.700031] rd_version_val=06090101[ 22.768262] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz[ 22.774822] aicsdio: aicwf_sdio_reg_init[ 22.786161] aicbsp: aicbsp_resv_mem_alloc_skb, alloc resv_mem_txdata succuss, id: 0, size: 98304[ 22.795508] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz[ 22.803507] AICWFDBG(LOGINFO) aicwf_prealloc_txq_alloc size is diff will to be kzalloc[ 22.811661] aicbsp: sdio_err:: bus down[* [ 22.819376] AICWFDBG(LOGINFO) aicwf_prealloc_txq_alloc txq kzalloc successful ] A start job is running for /etc/rc.local Compatibility (8s / no limit)[ 22.844574] AICWFDBG(LOGERROR) invalid cmd: lvl_adj_5g_chan_42[ 22.850455] AICWFDBG(LOGERROR) invalid cmd: lvl_adj_5g_chan_58[ 22.856327] AICWFDBG(LOGERROR) invalid cmd: lvl_adj_5g_chan_106[ 22.862264] AICWFDBG(LOGERROR) invalid cmd: lvl_adj_5g_chan_122[ 22.868199] AICWFDBG(LOGERROR) invalid cmd: lvl_adj_5g_chan_138[** ] A start job is running for /etc/rc.local Compatibility (9s / no limit)[ 23.520044] ieee80211 phy0: HT supp 1, VHT supp 1, HE supp 1[ 23.540873] ieee80211 phy0:[ 23.540873] *******************************************************[ 23.540873] ** CAUTION: USING PERMISSIVE CUSTOM REGULATORY RULES ** Stopping Connection service... Starting Network Name Resolution...[ OK ] Stopped Connection service.[ 26.817156] audit: type=1131 audit(1616581531.520:37): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=connman comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ OK ] Started Network Name Resolution.[ 26.997264] audit: type=1130 audit(1616581531.700:38): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-resolved comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ OK ] Started /etc/rc.local Compatibility.[ 29.710560] audit: type=1130 audit(1616581534.412:39): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rc-local comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ OK ] Started Getty on tty1.[ 29.761766] audit: type=1130 audit(1616581534.460:40): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=getty@tty1 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ OK ] Started Serial Getty on ttyS0.[ OK 29.804362] audit: type=1130 audit(1616581534.504:41): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=serial-getty@ttyS0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'm] Reached target Login Prompts.[ OK ] Reached target Multi-User System. Starting Update UTMP about System Runlevel Changes...[ 29.898042] audit: type=1129 audit(1616581534.600:42): pid=1854 uid=0 auid=4294967295 ses=4294967295 msg='old-level=N new-level=3 comm="systemd-update-utmp" exe="/usr/lib/systemd/systemd-update-utmp" hostname=? addr=? terminal=? res=success'[ OK ] Finished Update UTMP about System Runlevel Changes.[ 29.957677] audit: type=1130 audit(1616581534.652:43): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-update-utmp-runlevel comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'[ 29.992600] audit: type=1131 audit(1616581534.652:44): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-update-utmp-runlevel comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'.--.| || | .------. .------. .------. .------.| | | | | | | | | || ------. | | | | | | '------|'--------' '------' '------' ' ' | ------'The LoongOS Distribution LoongOS ttyS0LoongOS v0.1 - KernelLoongOS login: [ 50.606131] audit: type=1131 audit(1616581555.308:45): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-hostnamed comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
复制代码 1.2 刷写uboot
uboot烧写参考资料:
- 龙芯2K300-99派更新u-boot固件:《https://www.bilibili.com/video/BV1FTqPYLER2?vd_source=9e5530c6fa951aaadc66d0d7b35a6103》;
- 久久派新世界系统烧录:《https://www.bilibili.com/video/BV12tsJeXEWK?vd_source=9e5530c6fa951aaadc66d0d7b35a6103 》。
1.2.1 搭建tftp服务器
由于我们要通过PMON中更新PMON固件,首先需要在我们的ubuntu虚拟机搭建一个tftp服务器,具体可以参考《嵌入式Linux开发环境搭建》,这里我在/opt 目录下创建一个子目录tftpboot;- zhengyang@ubuntu:/opt$ sudo mkdir tftpbootzhengyang@ubuntu:/opt$ sudo chmod 0777 tftpboot
复制代码 并按照教程中进行搭建tftp服务器,我们需要将我们的固件u-boot-with-spl.bin放在这个目录下;- zhengyang@ubuntu:/opt$ cp /opt/2k0300/build-2k0300/workspace/u-boot/u-boot-with-spl.bin ./tftpboot/
复制代码 1.1.2 进入PMON命令行
给久久派复位上电,疯狂按c进入进入PMON命令行模式;- ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Ŀ▒ Boot Menu List ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Ĵ▒ -> 1 'LoongOS (2k300)' ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ Please Select Boot Menu [1] ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Use the UP and DOWN keys to select the entry.Press ENTER to boot selected OS.Press 'c' to command-line. Booting system in [3] second(s)PMON>
复制代码 直到出现 PMON> 提示符,首先给开发板配置一个与tftp服务器同网段的IP地址:- PMON> ifaddr syn0 172.23.34.188bootp=f00b740synopGMAC_linux_open calledVersion = 0x1137MacAddr = 0x0 0x55 0x7b 0xb5 0x7d 0xf7===phy HALFDUPLEX MODEDMA status reg = 0x0 before cleared!DMA status reg = 0x0 after cleared!register poll interrupt: gmac 0==arp_ifinit done===phy FULLDUPLEX MODELink is with 1000M Speed
复制代码 把IP设置为172.23.34.188 ,这样开发板 (172.23.34.188) 和ubuntu虚拟机 (172.23.34.187) 就在同一个网段上,可以开始传文件刷机了;- PMON> ping 172.23.34.187PING 172.23.34.187 (172.23.34.187): 56 data bytes64 bytes from 172.23.34.187: icmp_seq=0 ttl=64 time=9.343 ms64 bytes from 172.23.34.187: icmp_seq=1 ttl=64 time=1.292 ms64 bytes from 172.23.34.187: icmp_seq=2 ttl=64 time=1.328 ms64 bytes from 172.23.34.187: icmp_seq=3 ttl=64 time=1.724 ms--- 172.23.34.187 ping statistics ---4 packets transmitted, 4 packets received, 0% packet lossround-trip min/avg/max = 1.292/3.410/9.343 ms
复制代码 1.2.3 烧录
从tftp服务器下载指定的固件文件(u-boot-with-spl.bin),并直接将其烧录到当前开发板的引导闪存SPI Nor Flash的起始位置:- PMON> fload tftp://172.23.34.187/u-boot-with-spl.binLoading file: tftp://172.23.34.187/u-boot-with-spl.bin dl_offset 900000000f800000 addr 900000000f800000(bin) |Loaded 940877 bytesProgramming flash 900000000f800000:e5b4d into 800000001c000000Erase end! -Programming end!PMON>
复制代码 此过程中,务必保持板卡通电,严禁断电。耐心等待加载及烧录完成,直至界面依次出现Erase end!、Programming end!,且PMON命令行再次出现,即表示PMON烧录完成。
给久久派复位上电,等待终端出现大大的LOONGSON和=>字样说明更新uboot固件成功;- LoongArch Initializing ...RAM(Cache AS RAM) Initializing ...Lock Scache Done.Copy spl code to locked scache...Jump to board_init_f... _ __ __ _ _ ___ ___ __ _ _ / ___ __ \ | | | | | |\ | | __ [__ | | |\ | | | __ | \ | |___ |__| |__| | \| |__] ___] |__| | \| \ |__] |__/ /============ddr4 init and training done!========Trying to boot from BootSpaceU-boot start ...Jump to board_init_f...U-Boot 2022.04-g96038f5a (Mar 20 2026 - 16:36:39 +0800)CPU: LA264Speed: Cpu @ 1000 MHz/ Mem @ 800 MHz/ Bus @ 200 MHzModel: loongson-2k300Board: LS2K300-99PI-WIFIDRAM: 512 MiB512 MiBJump to board_init_r....Core: 36 devices, 20 uclasses, devicetree: boardWDT: Not starting watchdog_dSF: Detected xt25f08 with page size 256 Bytes, erase size 4 KiB, total 1 MiBuse the default bdinfobdinfo is defaultMMC: emmc@0x16140000: 0 (eMMC)Loading Environment from SPIFlash... *** Warning - bad CRC, using default environmentframe buffer addr: 0x900000000dc00000In: serialOut: serialErr: serial vidconsoleNet: eth0: ethernet@0x16020000************************** Notice **************************Press c to enter u-boot console, m to enter boot menu************************************************************Bus ehci@0x16080000: USB EHCI 1.00Bus ohci@0x16088000: USB OHCI 1.0Bus otg@0x16040000: dwc2_usb otg@0x16040000: Core Release: 2.93aUSB DWC2scanning bus ehci@0x16080000 for devices... 1 USB Device(s) foundscanning bus ohci@0x16088000 for devices... 1 USB Device(s) foundscanning bus otg@0x16040000 for devices... 1 USB Device(s) foundinit ls_trigger_boot and set it default valueinit ls_trigger_u_kernel and set it default valueinit ls_trigger_u_rootfs and set it default valueinit ls_trigger_u_uboot and set it default valueinit ls_trigger_ab_sys_status and set it default valueinit ls_trigger_mac_sync and set it default valueSaving Environment to SPIFlash... Erasing SPI flash...Writing to SPI flash...doneOKAutoboot in 0 secondsSF: Detected xt25f08 with page size 256 Bytes, erase size 4 KiB, total 1 MiBdevice 0 offset 0xf0000, size 0xd000SF: 53248 bytes @ 0xf0000 Read: OKFailed to load '/boot/uImage'Wrong Image Format for bootm commandERROR: can't get kernel image!Bootcmd="setenv bootargs ${bootargs} root=/dev/mmcblk0p${syspart} mtdparts=${mtdparts} fbcon=rotate:${rotate} panel=${panel};sf probe;sf read ${fdt_addr} dtb;ext4load mmc 0:${syspart} ${loadaddr} /boot/uImage;bootm"Boot Kernel failed. Kernel not found or bad.=>
复制代码 1.3 uboot测试
uboot启动后无法正确引导内核的,此时会进入uboot命令行模式,支持许多命令,有兴趣可以查看《Rockchip RK3399 - TPL/SPL方式加载uboot》。
1.3.1 查看板子信息
查看板子信息:- => bdinfoboot_params = 0x900000000cc12210DRAM bank = 0x0000000000000000-> start = 0x9000000000000000-> size = 0x0000000010000000DRAM bank = 0x0000000000000001-> start = 0x9000000090000000-> size = 0x0000000010000000flashstart = 0x0000000000000000flashsize = 0x0000000000000000flashoffset = 0x0000000000000000baudrate = 115200 bpsrelocaddr = 0x900000000dc00000reloc off = 0x0000000000000000Build = 64-bitcurrent eth = ethernet@0x16020000ethaddr = d6:ec:6f:2f:22:c4IP addr = 192.168.1.20fdt_blob = 0x900000000ecc7600new_fdt = 0x900000000cbf9c10fdt_size = 0x00000000000021c0Video = dvo@0 activeFB base = 0x900000000dc00000FB size = 1024x600x32lmb_dump_all: memory.cnt = 0x2 memory[0] [0x9000000000000000-0x900000000fffffff], 0x10000000 bytes flags: 0 memory[1] [0x9000000090000000-0x900000009fffffff], 0x10000000 bytes flags: 0 reserved.cnt = 0x2 reserved[0] [0x900000000cbf67c0-0x900000000ebfffff], 0x02009840 bytes flags: 0 reserved[1] [0x900000000f000000-0x900000000fffffff], 0x01000000 bytes flags: 4devicetree = board
复制代码 1.3.2 查看环境变量
查看环境变量:- => printenvbaudrate=115200bootargs=console=ttyS0,115200 rw noinitrd init=/sbin/init rootfstype=ext4 rootwaitbootcmd=setenv bootargs ${bootargs} root=/dev/mmcblk0p${syspart} mtdparts=${mtdparts} fbcon=rotate:${rotate} panel=${panel};sf probe;sf read ${fdt_addr} dtb;ext4load mmc 0:${syspart} ${loadaddr} /boot/uImage;bootmbootdelay=0bootmenu_0=System boot select=updatemenu bootselect 1bootmenu_1=Update kernel=updatemenu kernel 1bootmenu_2=Update rootfs=updatemenu rootfs 1bootmenu_3=Update u-boot=updatemenu uboot 1bootmenu_4=Update dtb=updatemenu dtb 1bootmenu_5=Update ALL=updatemenu all 1bootmenu_6=System install or recover=updatemenu system 1bootmenu_7=Video resolution select=updatemenu resolution 1bootmenu_8=Video rotation select=updatemenu rotation 1bootmenu_delay=10eth1addr=2e:67:a7:f6:8a:89ethaddr=d6:ec:6f:2f:22:c4fdt_addr=0x900000000a000000fdt_size=0xE000fdtcontroladdr=900000000ecc7600ipaddr=192.168.1.20loadaddr=0x9000000003000000ls_trigger_ab_sys_status=0ls_trigger_boot=0ls_trigger_mac_sync=0ls_trigger_u_kernel=0ls_trigger_u_rootfs=0ls_trigger_u_uboot=0menucmd=bootmenumtdids=nor0=spi0.0mtdparts=spi0.0:924k(uboot),32k(uboot_env),4k(bdinfo),52k(dtb),4k(bdinfo_e),8k(ddr_context)nand_pagesize=2048netmask=255.255.255.0panel=defaultrd_size=0x2000000rd_start=0x9000000007000000rotate=0serverip=192.168.1.2splashimage=0x9000000003000000splashpos=m,mstderr=serial,vidconsole,vidconsole1stdin=serial,,usbkbdstdout=serial,vidconsole,vidconsole1syspart=1syspart_ch=0syspart_last=4ver=U-Boot 2022.04-g96038f5a (Mar 20 2026 - 16:36:39 +0800)Environment size: 1587/16380 bytes
复制代码 重点关注:
- bootargs:启动参数为console=ttyS0,115200 rw noinitrd init=/sbin/init rootfstype=ext4 rootwait;
- bootcmd:启动命令为setenv bootargs ${bootargs} root=/dev/mmcblk0p${syspart} mtdparts=${mtdparts} fbcon=rotate:${rotate} panel=${panel};sf probe;sf read ${fdt_addr} dtb;ext4load mmc 0:${syspart} ${loadaddr} /boot/uImage;bootm,这个我们在前面已经介绍过;
- syspart:系统分为1;
- fdt_addr:设备树加载地址为0x900000000a000000;
- loadaddr:内核加载地址为0x9000000003000000;
- mtdparts:板载的SPI Nor Flash分区信息为spi0.0:924k(uboot),32k(uboot_env),4k(bdinfo),52k(dtb),4k(bdinfo_e),8k(ddr_context)。
1.3.3 mmc命令测试
在命令行输入mmc list命令用于来查看当前开发板一共有几个MMC设备:- => mmc listemmc@0x16140000: 0 (eMMC)
复制代码 因为久久派只有一个eMMC,并且大小为8G,编号是 mmc 0,编号是mmc 0。
需要查看eMMC信息,运行如下命令:- => mmc infoDevice: emmc@0x16140000Manufacturer ID: d6OEM: 3Name: 08A391 → 芯片型号Bus Speed: 52000000 → 速率 52MHz Mode: MMC High Speed (52MHz) → 高速模式Rd Block Len: 512MMC version 5.1High Capacity: YesCapacity: 7.3 GiBBus Width: 8-bit → 8位数据线(速度快)Erase Group Size: 512 KiBHC WP Group Size: 4 MiBUser Capacity: 7.3 GiB WRRELBoot Capacity: 4 MiB ENHRPMB Capacity: 4 MiB ENHBoot area 0 is not write protectedBoot area 1 is not write protected
复制代码 可以使用命令mmc part来查看其分区,比如查看eMMC的分区情况,输入如下命令:- => mmc partPartition Map for MMC device 0 -- Partition Type: DOSPart Start Sector Num Sectors UUID Type 1 16 15269872 00000000-01 83
复制代码 只有1个分区,整个Linux系统都在mmcblk0p1。
1.3.4 sf
用于操作SPI Flash的命令集,支持探测、擦除、读写SPI NOR Flash芯片,是嵌入式开发中烧录固件、更新uboot、操作环境变量分区的核心工具;
子命令语法作用probesf probe初始化 SPI 控制器并探测 Flash 芯片。在使用任何其他 sf 命令前必须先执行,以检测 Flash 是否存在并获取其大小、型号等信息。readsf read 将 Flash 中指定偏移和长度的数据读入内存指定地址。writesf write 将内存中的数据写入 Flash 指定偏移(必须先擦除)。erasesf erase 擦除 Flash 指定区域(以扇区为单位)。擦除后区域变为 0xFF。updatesf update 比较内存和 Flash 内容,仅更新不同的部分(节省时间)。常用于升级固件。testsf test 对 Flash 区域进行读写测试,用于验证硬件是否正常。初始化SPI初始化SPI控制器并探测Flash芯片控制器并探测Flash芯片- => sf probeSF: Detected xt25f08 with page size 256 Bytes, erase size 4 KiB, total 1 MiB
复制代码 在进行读、写、擦除时,如果已配置mtdparts,可以直接用分区名代替偏移和长度,比如:- => sf read ${fdt_addr} dtb # 从 dtb 分区读取设备树
复制代码 1.3.5 mtdparts
mtdparts 是用于管理MTD分区表的命令。它可以为为SPI Nor Flash、Nand Flash等MTD设备定义逻辑分区,之后就可以用分区名来替代具体的偏移地址和长度,让操作更直观、更安全。
命令说明mtdparts列出当前所有 MTD 设备及其分区mtdparts default恢复默认分区表(由 CONFIG_MTDPARTS_DEFAULT 定义)mtdparts add 动态添加或修改分区(例如 mtdparts add nor0 1m(data))mtdparts del 删除该设备的所有分区定义参考文章:《linux驱动移植-Nand Flash ONFI标准和MTD子系统》。
列出当前所有MTD设备及其分区:- => mtdpartsdevice nor0 , # parts = 6 #: name size offset mask_flags 0: uboot 0x000e7000 0x00000000 0 1: uboot_env 0x00008000 0x000e7000 0 2: bdinfo 0x00001000 0x000ef000 0 3: dtb 0x0000d000 0x000f0000 0 4: bdinfo_e 0x00001000 0x000fd000 0 5: ddr_context 0x00002000 0x000fe000 0active partition: nor0,0 - (uboot) 0x000e7000 @ 0x00000000defaults:mtdids : nor0=spi0.0mtdparts: spi0.0:924k(uboot),32k(uboot_env),4k(bdinfo),52k(dtb),4k(bdinfo_e),8k(ddr_context)
复制代码 可以查看到SPI Nor Flash的分区表;
- nor0:: 这是SPI Nor Flash芯片;
- spi0.0: 接在SPI 0总线上;
- # parts = 6: 这个Flash被分成了6个分区。
1.3.6 设置ip
我们需要通过网线将宿主机和开发板连接到同一个路由器的网卡。接着设置久久派ip ,网关等,根据自己网段修改, 保证局域网内没有其他设备使用;- => setenv ipaddr 172.23.34.188=> setenv netmask 255.255.128.0=> setenv gatewayip 172.23.0.1
复制代码 设置网关,根据自己局域网设置;- => setenv serverip 172.23.34.187
复制代码 测试与ubuntu虚拟机是否连通;- => ping 172.23.34.187Speed: 1000, full duplexUsing ethernet@0x16020000 devicehost 172.23.34.187 is alive
复制代码 保存环境变量:- => saveenvSaving Environment to SPIFlash... Erasing SPI flash...Writing to SPI flash...doneOK
复制代码 1.4 bootmenu烧录
此外我们可以看到支持bootmenu命令,通过这个命令我们也可以实现设备树、内核、根文件系统的烧录。- => bootmenu *** U-Boot Boot Menu *** [1] System boot select [2] Update kernel [3] Update rootfs [4] Update u-boot [5] Update dtb [6] Update ALL [7] System install or recover [8] Video resolution select [9] Video rotation select [a] U-Boot console
复制代码 当然了也可以参考《WwuSama/21届智能车走马观碑开源仓库》中介绍的挂载NFS文件系统,然后再进行烧录的方式,不过这里我们就使用bootmenu进行烧录。
我们需要将如下文件拷贝到U盘的update目录;
- 将uboot文件u-boot-with-spl.bin拷贝到U盘的update目录;
- 将设备树ls2k300_99pi_wifi.dtb修改为dtb.bin拷贝到U盘的update目录;
- 将内核uImage.gz修改为uImage拷贝到U盘的update目录,注意这里不要直接使用编译出来的uImage文件(这是个超链接文件);
- 将根文件系统rootfs.ext2.gz修改为rootfs.img拷贝到U盘的update目录,注意这里不要直接使用编译出来的rootfs.img文件(这是个超链接文件)。
我们在windows系统通过DiskGenius工具将U盘格式化为EXT4文件系统;
然后双击右侧的可移动磁盘(G),然后进入磁盘创建目录update,并将准备的文件拷贝进去;
接着将U盘插入久久派开发板上面那个USB接口上。在下面进行更新的过程中如果出现U盘无法被识别的问题,尝试开发板复位。
1.4.1 更新设备树
执行bootmenu命令;- => bootmenu *** U-Boot Boot Menu *** [1] System boot select [2] Update kernel [3] Update rootfs [4] Update u-boot [5] Update dtb [6] Update ALL [7] System install or recover [8] Video resolution select [9] Video rotation select [a] U-Boot console Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit
复制代码 选择Update dtb:- *** U-Boot Boot Menu *** [1] Update DTB (dtb.bin) to spi flash (by usb) [2] Update DTB (dtb.bin) to spi flash (by mmc) [3] Update DTB (dtb.bin) to spi flash (by tftp) [4] Clean DTB parts [5] Return Press UP/DOWN to move, ENTER to select
复制代码 选择第一个:- resetting USB...Bus ehci@0x16080000: USB EHCI 1.00Bus ohci@0x16088000: USB OHCI 1.0Bus otg@0x16040000: dwc2_usb otg@0x16040000: Core Release: 2.93aUSB DWC2scanning bus ehci@0x16080000 for devices... 1 USB Device(s) foundscanning bus ohci@0x16088000 for devices... 1 USB Device(s) foundscanning bus otg@0x16040000 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found Device 0: Vendor: SanDisk Rev: 1.00 Prod: Ultra Type: Removable Hard Disk Capacity: 29327.3 MB = 28.6 GB (60062500 x 512)update dtb.............### cur test cmd : fatload usb 0:0 ${loadaddr} /update/dtb.binCan't set block device### cur test cmd : ext4load usb 0:0 ${loadaddr} /update/dtb.bin21862 bytes read in 6 ms (3.5 MiB/s)SF: Detected xt25f08 with page size 256 Bytes, erase size 4 KiB, total 1 MiBSF: 57344 bytes @ 0xf0000 Erased: OKdevice 0 offset 0xf0000, size 0x556621862 bytes written, 0 bytes skipped in 0.284s, speed 78002 B/s######################################################### update target: dtb### update way : usb### update result: success######################################################
复制代码 这里会将U盘/update/dtb.bin文件烧录到内核SPI Nor Flash的dtb分区,核心命令:- # 尝试从 USB 设备 0 的整个设备(无分区表)中读取 FAT 文件系统上的 /update/dtb.bin。fatload usb 0:0 ${loadaddr} /update/dtb.bin# 尝试从 USB 设备 0 的整个设备中读取 ext4 文件系统上的 /update/dtb.binext4load usb 0:0 ${loadaddr} /update/dtb.bin
复制代码 dtb文件被成功读取后,Uboot将数据写入了SPI Nor Flash的dtb分区(0xf0000 偏移),写入成功。
1.4.2 更新根文件系统
执行bootmenu命令;- => bootmenu *** U-Boot Boot Menu *** [1] System boot select [2] Update kernel [3] Update rootfs [4] Update u-boot [5] Update dtb [6] Update ALL [7] System install or recover [8] Video resolution select [9] Video rotation select [a] U-Boot console Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit
复制代码 选择Update rootfs:- *** U-Boot Boot Menu *** [1] Update rootfs (rootfs.img) (by usb) [2] Update rootfs (rootfs.img) (by tftp) [3] Update rootfs (rootfs.img) (by mmc) [4] Return Press UP/DOWN to move, ENTER to select
复制代码 选择第一个:- resetting USB...Bus ehci@0x16080000: USB EHCI 1.00Bus ohci@0x16088000: USB OHCI 1.0Bus otg@0x16040000: dwc2_usb otg@0x16040000: Core Release: 2.93aUSB DWC2scanning bus ehci@0x16080000 for devices... 1 USB Device(s) foundscanning bus ohci@0x16088000 for devices... 1 USB Device(s) foundscanning bus otg@0x16040000 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found--if usb0 --fmt ext4 --sym /update/rootfs.img--of mmc0 --fmt --sym--extra 0x1loading...loaded&burning 157529897 bytes ...536870912/536870912 536870912 bytes, crc 0xe8c26beeload&burn 157529897 finished
复制代码 从日志大概可以看到从U盘(usb0,ext4格式)加载了/update/rootfs.img(rootfs.ext2经过gz压缩的根文件系统镜像)文件,并将其写入了整个eMMC设备(mmc0)。
这里:我们必须先烧录根文件系统,才能烧录内核,因为内核是烧录到根文件系统/boot目录下的。
1.4.3 更新内核
执行bootmenu命令;- => bootmenu *** U-Boot Boot Menu *** [1] System boot select [2] Update kernel [3] Update rootfs [4] Update u-boot [5] Update dtb [6] Update ALL [7] System install or recover [8] Video resolution select [9] Video rotation select [a] U-Boot console Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit
复制代码 选择Update rootfs:- *** U-Boot Boot Menu *** [1] Update kernel (uImage) (by usb) [2] Update kernel (uImage) (by mmc) [3] Update kernel (uImage) (by tftp) [4] Return Press UP/DOWN to move, ENTER to select
复制代码 选择第一个:- resetting USB...Bus ehci@0x16080000: USB EHCI 1.00Bus ohci@0x16088000: USB OHCI 1.0Bus otg@0x16040000: dwc2_usb otg@0x16040000: Core Release: 2.93aUSB DWC2scanning bus ehci@0x16080000 for devices... 1 USB Device(s) foundscanning bus ohci@0x16088000 for devices... 1 USB Device(s) foundscanning bus otg@0x16040000 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found--if usb0 --fmt ext4 --sym /update/uImage--of mmc0:1 --fmt ext4 --sym /boot/uImage--extra 0x0loading...loaded&burning 10361144 bytes ...File System is consistentfile found, deletingupdate journal finishedFile System is consistentupdate journal finishedload&burn 10361144 finishedloading...
复制代码 从日志大概可以看到从U盘(usb0,ext4格式)加载了/update/uImage文件,并将其写入/boot/uImage。
1.4.4 启动
在uboot命令行输入boot命令;
点击查看详情- => bootSF: Detected xt25f08 with page size 256 Bytes, erase size 4 KiB, total 1 MiBdevice 0 offset 0xf0000, size 0xd000SF: 53248 bytes @ 0xf0000 Read: OK10361144 bytes read in 232 ms (42.6 MiB/s)## Booting kernel from Legacy Image at 9000000003000000 ... Image Name: Linux-6.12.0.lsgd+ Image Type: LoongArch Linux Kernel Image (gzip compressed) Data Size: 10361080 Bytes = 9.9 MiB Load Address: 00200000 Entry Point: 00f33000 Verifying Checksum ... OK Uncompressing Kernel Image512 MiB[ 0.000000] Linux version 6.12.0.lsgd+ (zhengyang@ubuntu) (loongarch64-linux-gnu-gcc.br_real (Buildroot -ga9f4f28a-dirty) 13.3.0, GNU ld (GNU Binutils) 2.42) #2 PREEMPT d9c34db49 Mon Mar 23 21:47:49 CST 2026[ 0.000000] Loongson-64bit Processor probed (LA264 Core)[ 0.000000] CPU0 revision is: 0014a030 (Loongson-64bit)[ 0.000000] FPU0 revision is: 00000000[ 0.000000] efi: EFI v2.9 by LoongSon[ 0.000000] efi: SMBIOS=0xfffe000 FDTPTR=0x900000000a000000[ 0.000000] convert legacy mem map to new mem map.[ 0.000000] bootloader memmap block 0 type : 1 start : 200000 size : ee00000[ 0.000000] bootloader memmap block 1 type : 2 start : f000000 size : 1000000[ 0.000000] bootloader memmap block 2 type : 1 start : 90000000 size : 10000000[ 0.000000] ACPI: OSL: System description tables not found[ 0.000000] earlycon: ns16550a0 at MMIO 0x0000000016100000 (options '115200n8')[ 0.000000] printk: legacy bootconsole [ns16550a0] enabled[ 0.000000] ACPI: Early table checksum verification disabled[ 0.000000] ACPI: OSL: System description tables not found[ 0.000000] Reserved memory: created CMA memory pool at 0x000000009c000000, size 32 MiB[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool[ 0.000000] OF: reserved mem: 0x000000009c000000..0x000000009dffffff (32768 KiB) map reusable linux,cma[ 0.000000] SMBIOS 3.0 present.[ 0.000000] DMI: Loongson LS2K300/LS2K300-99PI-WIFI, BIOS 2022.04-g96038f5a-dirty 04/01/2022[ 0.000000] DMI: Memory slots populated: 0/0[ 0.000000] CpuClock = 0[ 0.000000] The BIOS Version: 2022.04-g96038f5a-dirty[ 0.000000] software IO TLB: area num 1.[ 0.000000] software IO TLB: mapped [mem 0x0000000001cf0000-0x0000000005cf0000] (64MB)[ 0.000000] Zone ranges:[ 0.000000] DMA32 [mem 0x0000000000200000-0x00000000ffffffff][ 0.000000] Normal empty[ 0.000000] Movable zone start for each node[ 0.000000] Early memory node ranges[ 0.000000] node 0: [mem 0x0000000000200000-0x000000000effffff][ 0.000000] node 0: [mem 0x0000000090000000-0x000000009fffffff][ 0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x000000009fffffff][ 0.000000] On node 0, zone DMA32: 128 pages in unavailable ranges[ 0.000000] On node 0, zone DMA32: 33792 pages in unavailable ranges[ 0.000000] Kernel command line: earlycon fbcon=logo-pos:center fbcon=logo-count:1 console=ttyS0,115200 rw noinitrd init=/sbin/init rootfstype=ext4 rootwait root=/dev/mmcblk0p1 mtdparts=spi0.0:924k(uboot),32k(uboot_env),4k(bdinfo),52k(dtb),4k(bdinfo_e),8k(ddr_context) fbcon=rotate:0 panel=default bp_start=0x900000000f030400 board_name=LS2K300-99PI-WIFI[ 0.000000] Unknown kernel command line parameters "panel=default board_name=LS2K300-99PI-WIFI", will be passed to user space.[ 0.000000] Dentry cache hash table entries: 65536 (order: 5, 524288 bytes, linear)[ 0.000000] Inode-cache hash table entries: 32768 (order: 4, 262144 bytes, linear)[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 31616[ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1[ 0.000000] rcu: Preemptible hierarchical RCU implementation.[ 0.000000] rcu: RCU event tracing is enabled.[ 0.000000] Trampoline variant of Tasks RCU enabled.[ 0.000000] Tracing variant of Tasks RCU enabled.[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.[ 0.000000] RCU Tasks: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.[ 0.000000] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.[ 0.000000] NR_IRQS: 2368, nr_irqs: 64, preallocated irqs: 16[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.[ 0.000000] Constant clock event device register[ 0.000000] clocksource: Constant: mask: 0xffffffffffffffff max_cycles: 0x3759f22983, max_idle_ns: 881590413697 ns[ 0.000000] sched_clock: 64 bits at 120MHz, resolution 8ns, wraps every 4398046511102ns[ 0.008086] Constant clock source device register[ 0.013245] Console: colour dummy device 80x25[ 0.017831] Calibrating delay loop (skipped), value calculated using timer frequency.. 240.00 BogoMIPS (lpj=120000)[ 0.028394] pid_max: default: 32768 minimum: 301[ 0.039524] LSM: initializing lsm=capability,yama[ 0.044332] Yama: becoming mindful.[ 0.050711] Mount-cache hash table entries: 2048 (order: 0, 16384 bytes, linear)[ 0.058207] Mountpoint-cache hash table entries: 2048 (order: 0, 16384 bytes, linear)[ 0.083373] rcu: Hierarchical SRCU implementation.[ 0.088257] rcu: Max phase no-delay instances is 400.[ 0.094535] Memory: 343248K/505856K available (13440K kernel code, 8160K rwdata, 4272K rodata, 576K init, 1007K bss, 127856K reserved, 32768K cma-reserved)[ 0.110964] devtmpfs: initialized[ 0.118812] Performance counters: loongarch/loongson64 PMU enabled, 4 64-bit counters available to each CPU.[ 0.129453] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns[ 0.139331] futex hash table entries: 256 (order: -2, 6144 bytes, linear)[ 0.161763] pinctrl core: initialized pinctrl subsystem[ 0.169626] NET: Registered PF_NETLINK/PF_ROUTE protocol family[ 0.176266] audit: initializing netlink subsys (disabled)[ 0.182094] audit: type=2000 audit(0.073:1): state=initialized audit_enabled=0 res=1[ 0.190573] thermal_sys: Registered thermal governor 'step_wise'[ 0.190700] Final SIMD width = 0[ 0.200231] ISA Bridge: /2k300-soc/isa@16400000[ 0.204862] IO 0x0000000016400000..0x0000000016403fff -> 0x0000000000000000[ 0.212337] hw-breakpoint: Found 4 breakpoint and 2 watchpoint registers.[ 0.231074] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages[ 0.237962] HugeTLB: 112 KiB vmemmap can be freed for a 32.0 MiB page[ 0.250287] gpio gpiochip0: Static allocation of GPIO base is deprecated, use dynamic allocation.[ 0.263644] gpio-lsirq 16104000.gpio: register irqnum=107, vhwirq-base=128, rirq-base=28[ 0.272463] ACPI: Interpreter disabled.[ 0.277722] loongson-lsia-dma 1612c000.dma: DMA driver registered[ 0.284407] SCSI subsystem initialized[ 0.288729] usbcore: registered new interface driver usbfs[ 0.294337] usbcore: registered new interface driver hub[ 0.299764] usbcore: registered new device driver usb[ 0.305052] mc: Linux media interface: v0.10[ 0.309423] videodev: Linux video capture interface: v2.00[ 0.315032] pps_core: LinuxPPS API ver. 1 registered[ 0.320053] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti [ 0.329304] PTP clock support registered[ 0.333576] Advanced Linux Sound Architecture Driver Initialized.[ 0.340854] clocksource: Switched to clocksource Constant[ 0.347769] VFS: Disk quotas dquot_6.6.0[ 0.351793] VFS: Dquot-cache hash table entries: 2048 (order 0, 16384 bytes)[ 0.359507] pnp: PnP ACPI: disabled[ 0.373439] NET: Registered PF_INET protocol family[ 0.378735] IP idents hash table entries: 8192 (order: 2, 65536 bytes, linear)[ 0.394842] tcp_listen_portaddr_hash hash table entries: 2048 (order: 0, 16384 bytes, linear)[ 0.403529] Table-perturb hash table entries: 65536 (order: 4, 262144 bytes, linear)[ 0.411377] TCP established hash table entries: 4096 (order: 1, 32768 bytes, linear)[ 0.419231] TCP bind hash table entries: 4096 (order: 2, 65536 bytes, linear)[ 0.426490] TCP: Hash tables configured (established 4096 bind 4096)[ 0.434082] MPTCP token hash table entries: 1024 (order: 0, 24576 bytes, linear)[ 0.441701] UDP hash table entries: 512 (order: 0, 16384 bytes, linear)[ 0.448422] UDP-Lite hash table entries: 512 (order: 0, 16384 bytes, linear)[ 0.456639] NET: Registered PF_UNIX/PF_LOCAL protocol family[ 0.463354] RPC: Registered named UNIX socket transport module.[ 0.469365] RPC: Registered udp transport module.[ 0.474123] RPC: Registered tcp transport module.[ 0.478877] RPC: Registered tcp-with-tls transport module.[ 0.484421] RPC: Registered tcp NFSv4.1 backchannel transport module.[ 0.490941] NET: Registered PF_XDP protocol family[ 0.495803] PCI: CLS 0 bytes, default 64[ 0.501947] Initialise system trusted keyrings[ 0.506667] workingset: timestamp_bits=46 max_order=15 bucket_order=0[ 0.513237] zbud: loaded[ 0.554391] NFS: Registering the id_resolver key type[ 0.559543] Key type id_resolver registered[ 0.563775] Key type id_legacy registered[ 0.567961] nfs4filelayout_init: NFSv4 File Layout Driver Registering...[ 0.574741] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...[ 0.582248] ntfs3: Warning: Activated 64 bits per cluster. Windows does not support this[ 0.590427] ntfs3: Read-only LZX/Xpress compression included[ 0.692038] Key type asymmetric registered[ 0.696201] Asymmetric key parser 'x509' registered[ 0.707751] io scheduler mq-deadline registered[ 0.712408] io scheduler kyber registered[ 0.716993] io scheduler bfq registered[ 0.730007] pinctrl-single 16000490.pinmux: 128 pins, size 32[ 0.743054] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled[ 0.754809] printk: legacy console [ttyS0] disabled[ 0.760276] 16100000.serial: ttyS0 at MMIO 0x16100000 (irq = 19, base_baud = 12500000) is a 16550A[ 0.769459] printk: legacy console [ttyS0] enabled[ 0.769459] printk: legacy console [ttyS0] enabled[ 0.779127] printk: legacy bootconsole [ns16550a0] disabled[ 0.779127] printk: legacy bootconsole [ns16550a0] disabled[ 0.793067] 16100400.serial: ttyS1 at MMIO 0x16100400 (irq = 20, base_baud = 12500000) is a 16550A[ 0.803304] 16100800.serial: ttyS2 at MMIO 0x16100800 (irq = 143, base_baud = 12500000) is a 16550A[ 0.826716] brd: module loaded[ 0.836794] loop: module loaded[ 0.842614] CAN device driver interface[ 0.846826] lscanfd 16110800.can: Clock frequency from DT: 200000000[ 0.853401] lscanfd 16110800.can: lscanfd tx-gpio[73] HIGH[ 0.859044] lscanfd 16110800.can: lscanfd---->src_addr#16110898,src_addr_width#4 priv->rx_dma_buf=0x66b8000[ 0.869497] lscanfd 16110800.can: lscanfd stb-gpio not configured, may cause can network crash![ 0.878606] lscanfd 16110c00.can: Clock frequency from DT: 200000000[ 0.885140] lscanfd 16110c00.can: lscanfd tx-gpio[75] HIGH[ 0.890762] lscanfd 16110c00.can: lscanfd---->src_addr#16110c98,src_addr_width#4 priv->rx_dma_buf=0x66bc000[ 0.901180] lscanfd 16110c00.can: lscanfd stb-gpio not configured, may cause can network crash![ 0.910377] stmmaceth 16020000.ethernet: IRQ eth_wake_irq not found[ 0.916715] stmmaceth 16020000.ethernet: IRQ eth_lpi not found[ 0.922601] stmmaceth 16020000.ethernet: IRQ sfty not found[ 0.928307] stmmaceth 16020000.ethernet: Cannot get CSR clock[ 0.934096] stmmaceth 16020000.ethernet: PTP uses main clock[ 0.940128] stmmaceth 16020000.ethernet: User ID: 0x11, Synopsys ID: 0x37[ 0.946964] stmmaceth 16020000.ethernet: DWMAC1000[ 0.951871] stmmaceth 16020000.ethernet: DMA HW capability register supported[ 0.959043] stmmaceth 16020000.ethernet: RX Checksum Offload Engine supported[ 0.966212] stmmaceth 16020000.ethernet: COE Type 2[ 0.971116] stmmaceth 16020000.ethernet: TX Checksum insertion supported[ 0.977852] stmmaceth 16020000.ethernet: Wake-Up On Lan supported[ 0.983983] stmmaceth 16020000.ethernet: Enhanced/Alternate descriptors[ 0.990630] stmmaceth 16020000.ethernet: Enabled extended descriptors[ 0.997102] stmmaceth 16020000.ethernet: Ring mode enabled[ 1.002616] stmmaceth 16020000.ethernet: Enable RX Mitigation via HW Watchdog Timer[ 1.010313] stmmaceth 16020000.ethernet: device MAC address d6:ec:6f:2f:22:c4[ 1.020057] usbcore: registered new interface driver cdc_ether[ 1.026023] usbcore: registered new interface driver cdc_eem[ 1.031769] usbcore: registered new interface driver net1080[ 1.037506] usbcore: registered new interface driver cdc_subset[ 1.043490] usbcore: registered new interface driver zaurus[ 1.049125] usbcore: registered new interface driver cdc_ncm[ 1.055266] dwc2 16040000.otg: Configuration mismatch. dr_mode forced to host[ 1.112963] dwc2 16040000.otg: Loongson Fix Param: 0[ 1.118296] dwc2 16040000.otg: DWC OTG Controller[ 1.123055] dwc2 16040000.otg: new USB bus registered, assigned bus number 1[ 1.130168] dwc2 16040000.otg: irq 147, io mem 0x16040000[ 1.136407] hub 1-0:1.0: USB hub found[ 1.140256] hub 1-0:1.0: 1 port detected[ 1.145456] ehci-platform 16080000.ehci: EHCI Host Controller[ 1.151506] usbcore: registered new interface driver cdc_acm[ 1.157364] ohci-platform 16088000.ohci: Generic Platform OHCI controller[ 1.164264] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters[ 1.172574] ehci-platform 16080000.ehci: new USB bus registered, assigned bus number 2[ 1.180688] ohci-platform 16088000.ohci: new USB bus registered, assigned bus number 3[ 1.189080] ehci-platform 16080000.ehci: irq 148, io mem 0x16080000[ 1.195482] usbcore: registered new interface driver uas[ 1.201001] ohci-platform 16088000.ohci: irq 149, io mem 0x16088000[ 1.207383] usbcore: registered new interface driver usb-storage[ 1.213436] ehci-platform 16080000.ehci: USB 2.0 started, EHCI 1.00[ 1.219953] usbcore: registered new interface driver option[ 1.226374] hub 2-0:1.0: USB hub found[ 1.230223] usbserial: USB Serial support registered for GSM modem (1-port)[ 1.237263] hub 2-0:1.0: 1 port detected[ 1.242132] mousedev: PS/2 mouse device common for all mice[ 1.249147] loongson-rtc 16128000.rtc: registered as rtc0[ 1.255243] loongson-rtc 16128000.rtc: setting system clock to 2000-01-01T10:17:22 UTC (946721842)[ 1.265428] i2c_dev: i2c /dev entries driver[ 1.274936] usbcore: registered new interface driver uvcvideo[ 1.281390] hub 3-0:1.0: USB hub found[ 1.285206] hub 3-0:1.0: 1 port detected[ 1.289178] Driver for 1-wire Dallas network protocol.[ 1.296768] ls2k_sdio 16140000.sdio: Use exclusive dma engine.[ 1.482872] usb 1-1: new high-speed USB device number 2 using dwc2[ 1.721217] usb-storage 1-1:1.0: USB Mass Storage device detected[ 1.728994] scsi host0: usb-storage 1-1:1.0[ 1.741186] ls2k_sdio 16148000.sdio: Use exclusive dma engine.[ 1.756101] ls2k_sdio 16148000.sdio: Got CD GPIO[ 2.583334] hid: raw HID events driver (C) Jiri Kosina[ 2.595006] usbcore: registered new interface driver usbhid[ 2.605856] usbhid: USB HID core driver[ 2.616039] ls2k300_adc 1611c000.adc: ADC Device registered successfully[ 2.631700] Initializing XFRM netlink socket[ 2.644605] NET: Registered PF_INET6 protocol family[ 2.658116] Segment Routing with IPv6[ 2.665922] In-situ OAM (IOAM) with IPv6[ 2.674028] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver[ 2.686621] NET: Registered PF_PACKET protocol family[ 2.697867] NET: Registered PF_KEY protocol family[ 2.707863] can: controller area network core[ 2.716975] NET: Registered PF_CAN protocol family[ 2.725861] can: raw protocol[ 2.731864] can: broadcast manager protocol[ 2.740865] can: netlink gateway - max_hops=1[ 2.752563] NET: Registered PF_RDS protocol family[ 2.762918] Key type dns_resolver registered[ 2.796160] registered taskstats version 1[ 2.805030] Loading compiled-in X.509 certificates[ 2.879821] ls-spi 16010000.spi: controller is unqueued, this is deprecated[ 2.914166] 6 cmdlinepart partitions found on MTD device spi0.0[ 2.937858] Creating 6 MTD partitions on "spi0.0":[ 2.956904] scsi 0:0:0:0: Direct-Access SanDisk Ultra 1.00 PQ: 0 ANSI: 6[ 2.965868] 0x000000000000-0x0000000e7000 : "uboot"[ 2.983577] 0x0000000e7000-0x0000000ef000 : "uboot_env"[ 3.005877] sd 0:0:0:0: [sda] 60062500 512-byte logical blocks: (30.8 GB/28.6 GiB)[ 3.021566] 0x0000000ef000-0x0000000f0000 : "bdinfo"[ 3.042026] sd 0:0:0:0: [sda] Write Protect is off[ 3.052236] 0x0000000f0000-0x0000000fd000 : "dtb"[ 3.070998] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA[ 3.090599] 0x0000000fd000-0x0000000fe000 : "bdinfo_e"[ 3.115138] 0x0000000fe000-0x000000100000 : "ddr_context"[ 3.149222] sd 0:0:0:0: [sda] Attached SCSI removable disk[ 3.162131] ls-spi 16018000.spi: controller is unqueued, this is deprecated[ 3.191687] ls-spi-io 1610c000.spi: controller is unqueued, this is deprecated[ 3.223650] clk: Disabling unused clocks[ 3.236886] ALSA device list:[ 3.248861] No soundcards found.[ 3.262256] Waiting for root device /dev/mmcblk0p1...[ 5.972459] mmc0: new high speed MMC card at address 0001[ 5.978576] mmcblk0: mmc0:0001 08A391 7.28 GiB[ 5.985583] mmcblk0: p1[ 5.988902] mmcblk0boot0: mmc0:0001 08A391 4.00 MiB[ 5.995365] mmcblk0boot1: mmc0:0001 08A391 4.00 MiB[ 6.084551] EXT4-fs (mmcblk0p1): mounted filesystem 77fabf5f-333f-4f1b-9c30-f01c7422efda r/w with ordered data mode. Quota mode: none.[ 6.096886] VFS: Mounted root (ext4 filesystem) on device 179:1.[ 6.103321] devtmpfs: mounted[ 6.107568] Freeing unused kernel image (initmem) memory: 576K[ 6.113513] This architecture does not have kernel memory protection.[ 6.120015] Run /sbin/init as init process[ 6.466135] systemd[1]: System time before build time, advancing clock.[ 6.566012] systemd[1]: systemd 256.4 running in system mode (+PAM -AUDIT -SELINUX -APPARMOR -IMA -SMACK -SECCOMP -GCRYPT -GNUTLS +OPENSSL -ACL +BLKID +CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP -LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 +BZIP2 -LZ4 +XZ +ZLIB -ZSTD -BPF_FRAMEWORK +XKBCOMMON -UTMP -SYSVINIT -LIBARCHIVE)[ 6.598715] systemd[1]: Detected architecture loongarch64.Welcome to Buildroot 2024.08![ 6.622923] systemd[1]: Hostname set to .[ 7.086170] systemd[1]: multi-user.target: Wants dependency dropin /usr/lib/systemd/system/multi-user.target.wants/boot_run_service is not a valid unit name, ignoring.[ 7.448312] systemd[1]: Queued start job for default target Multi-User System.[ 7.475102] systemd[1]: Created slice Slice /system/getty.[ OK ] Created slice Slice /system/getty.[ 7.491700] systemd[1]: Created slice Slice /system/modprobe.[ OK ] Created slice Slice /system/modprobe.[ 7.507738] systemd[1]: Created slice Slice /system/serial-getty.[ OK ] Created slice Slice /system/serial-getty.[ 7.523506] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.[ OK ] Started Dispatch Password Requests to Console Directory Watch.[ 7.542385] systemd[1]: Started Forward Password Requests to Wall Directory Watch.[ OK ] Started Forward Password Requests to Wall Directory Watch.[ 7.559197] systemd[1]: Expecting device /dev/ttyS0... Expecting device /dev/ttyS0...[ 7.570227] systemd[1]: Reached target NFS client services.[ OK ] Reached target NFS client services.[ 7.583075] systemd[1]: Reached target Path Units.[ OK ] Reached target Path Units.[ 7.594060] systemd[1]: Reached target Preparation for Remote File Systems.[ OK ] Reached target Preparation for Remote File Systems.[ 7.610041] systemd[1]: Reached target Remote File Systems.[ OK ] Reached target Remote File Systems.[ 7.623079] systemd[1]: Reached target Slice Units.[ OK ] Reached target Slice Units.[ 7.634117] systemd[1]: Reached target Swaps.[ OK ] Reached target Swaps.[ 7.669218] systemd[1]: Listening on RPCbind Server Activation Socket.[ OK ] Listening on RPCbind Server Activation Socket.[ 7.685187] systemd[1]: Reached target RPC Port Mapper.[ OK ] Reached target RPC Port Mapper.[ 7.709606] systemd[1]: Listening on Credential Encryption/Decryption.[ OK ] Listening on Credential Encryption/Decryption.[ 7.726521] systemd[1]: Listening on Journal Audit Socket.[ OK ] Listening on Journal Audit Socket.[ 7.740909] systemd[1]: Listening on Journal Socket (/dev/log).[ OK ] Listening on Journal Socket (/dev/log).[ 7.754895] systemd[1]: Listening on Journal Sockets.[ OK ] Listening on Journal Sockets.[ 7.768091] systemd[1]: Listening on Network Service Netlink Socket.[ OK ] Listening on Network Service Netlink Socket.[ 7.782966] systemd[1]: Listening on udev Control Socket.[ OK ] Listening on udev Control Socket.[ 7.796659] systemd[1]: Listening on udev Kernel Socket.[ OK ] Listening on udev Kernel Socket.[ 7.823252] systemd[1]: Mounting Huge Pages File System... Mounting Huge Pages File System...[ 7.856306] systemd[1]: Mounting POSIX Message Queue File System... Mounting POSIX Message Queue File System...[ 7.900439] systemd[1]: Mounting NFSD configuration filesystem... Mounting NFSD configuration filesystem...[ 7.948332] systemd[1]: Mounting Kernel Debug File System... Mounting Kernel Debug File System...[ 7.971782] systemd[1]: Kernel Trace File System was skipped because of an unmet condition check (ConditionPathExists=/sys/kernel/tracing).[ 8.017462] systemd[1]: Mounting Temporary Directory /tmp... Mounting Temporary Directory /tmp...[ 8.037966] systemd[1]: Create List of Static Device Nodes was skipped because of an unmet condition check (ConditionFileNotEmpty=/lib/modules/6.12.0.lsgd+/modules.devname).[ 8.073921] systemd[1]: Starting loongson-resize... Starting loongson-resize...[ 8.108517] systemd[1]: Starting Load Kernel Module configfs... Starting Load Kernel Module configfs...[ 8.160973] systemd[1]: Starting Load Kernel Module efi_pstore... Starting Load Kernel Module efi_pstore...[ 8.217028] systemd[1]: Starting Load Kernel Module fuse... Starting Load Kernel Module fuse...[ 8.286809] systemd[1]: Starting Starts Psplash Boot screen... Starting Starts Psplash Boot screen...[ 8.350716] systemd[1]: Starting RPC Bind... Starting RPC Bind...[ 8.369833] systemd[1]: File System Check on Root Device was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/).[ 8.391917] random: crng init done[ 8.412202] (rpcbind)[134]: rpcbind.service: Referenced but unset environment variable evaluates to an empty string: RPCBIND_OPTIONS[ 8.437984] systemd[1]: Starting Journal Service... Starting Journal Service...[ 8.487389] systemd[1]: Load Kernel Modules was skipped because no trigger condition checks were met.[ 8.519287] systemd[1]: Starting Generate network units from Kernel command line... Starting Generate network units from Kernel command line...[ 8.574585] systemd-journald[135]: Collecting audit messages is enabled.[ 8.586723] systemd[1]: Starting Remount Root and Kernel File Systems... Starting Remount Root and Kernel File Systems...[ 8.668532] systemd[1]: Starting Apply Kernel Variables... Starting Apply Kernel Variables...[ 8.762640] systemd[1]: Starting Create Static Device Nodes in /dev gracefully...[ 8.799970] EXT4-fs (mmcblk0p1): re-mounted 77fabf5f-333f-4f1b-9c30-f01c7422efda r/w. Quota mode: none. Starting Create Static Device Nodes in /dev gracefully...[ 8.879840] systemd[1]: Starting Load udev Rules from Credentials... Starting Load udev Rules from Credentials...[ 8.986698] systemd[1]: Starting Coldplug All udev Devices... Starting Coldplug All udev Devices...[ 9.137368] systemd[1]: Started Starts Psplash Boot screen.[ OK ] Started Starts Psplash Boot screen.[ 9.160146] systemd[1]: Started RPC Bind.[ OK ] Started RPC Bind.[ 9.174812] systemd[1]: Started Journal Service.[ OK ] Started Journal Service.[ OK ] Mounted Huge Pages File System.[ OK ] Mounted POSIX Message Queue File System.[FAILED] Failed to mount NFSD configuration filesystem.See 'systemctl status proc-fs-nfsd.mount' for details.[DEPEND] Dependency failed for NFS Mount Daemon.[DEPEND] Dependency failed for NFS server and services.[ OK ] Mounted Kernel Debug File System.[ OK ] Mounted Temporary Directory /tmp.[ OK ] Finished loongson-resize.[ OK ] Finished Load Kernel Module configfs.[ OK ] Finished Load Kernel Module efi_pstore.[ OK ] Finished Load Kernel Module fuse.[ OK ] Finished Generate network units from Kernel command line.[ OK ] Finished Remount Root and Kernel File Systems.[ OK ] Finished Apply Kernel Variables.[ OK ] Finished Load udev Rules from Credentials.[ OK ] Reached target Preparation for Network. Mounting Kernel Configuration File System...[DEPEND] Dependency failed for Start psplas…temd progress communication helper. Starting Flush Journal to Persistent Storage...[ OK ] Mounted Kernel Configuration File System.[ OK ] Finished Create Static Device Nodes in /dev gracefu[ 9.756967] systemd-journald[135]: Received client request to flush runtime journal.lly. Starting Create Static Device Nodes in /dev...[ 9.930177] systemd-journald[135]: /var/log/journal/73290f76f2754cf68b0288f191767faa/system.journal: Realtime clock jumped backwards relative to last journal entry, rotating.[ 9.980732] systemd-journald[135]: Rotating system journal.[ OK ] Finished Create Static Device Nodes in /dev.[ OK ] Reached target Preparation for Local File Systems.[ OK ] Reached target Local File Systems.[ 10.064105] audit: type=1334 audit(1721825382.597:2): prog-id=6 op=LOAD[ 10.085949] audit: type=1334 audit(1721825382.604:3): prog-id=7 op=LOAD Starting Rule-based Manager for Device Events and Files...[ OK ] Finished Flush Journal to Persistent Storage. Starting Create System Files and Directories...[ OK ] Finished Coldplug All udev Devices.[ OK ] Started Rule-based Manager for Device Events and Files.[ 10.868957] audit: type=1334 audit(1721825383.401:4): prog-id=8 op=LOAD Starting Network Configuration...[ OK ] Finished Create System Files and Directories.[ 11.280924] audit: type=1334 audit(1721825383.812:5): prog-id=9 op=LOAD Starting Network Name Resolution...[ OK ] Started Network Configuration. Starting Enable Persistent Storage in systemd-networkd... Starting Wait for Network to be Configured...[ OK ] Finished Enable Persistent Storage in systemd-networkd.[ OK ] Started Network Name Resolution.[ OK ] Reached target Host and Network Name Lookups.[ OK ] Reached target System Initialization.[ OK ] Started Discard unused filesystem blocks once a week.[ OK ] Started Daily Cleanup of Temporary Directories.[ OK ] Reached target Timer Units.[ OK ] Listening on D-Bus System Message Bus Socket.[ OK ] Listening on OpenSSH Server Socket…temd-ssh-generator, AF_UNIX Local).[ OK ] Listening on Hostname Service Socket.[ OK ] Reached target Socket Units.[ OK ] Reached target Basic System. Starting Modem Manager... Starting run a update_system to check ab system status... Starting D-Bus System Message Bus...[ OK ] Started NFS FSID Daemon.[ OK ] Found device /dev/ttyS0.[ 13.650264] do_page_fault(): sending SIGSEGV to update_system for invalid read access from 0000000000000000[ 13.687880] era = 0000007ff36fa81c in libc.so.6[8e81c,7ff366c000+168000][ 13.710910] ra = 00000001200053a4 in update_system[53a4,120000000+10000][ 13.734064] audit: type=1701 audit(1721825386.267:6): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=212 comm="update_system" exe="/usr/local/sys_config_tool/update_system" sig=11 res=1[ OK ] Started D-Bus System Message Bus.[FAILED] Failed to start run a update_system to check ab system status.See 'systemctl status ab_system_check_boot.service' for details. Starting Network Manager... Starting WPA supplicant...[ OK ] Started Modem Manager.[ OK ] Started WPA supplicant.[ 15.349545] audit: type=1334 audit(1721825387.882:7): prog-id=10 op=LOAD[ 15.377000] audit: type=1334 audit(1721825387.894:8): prog-id=11 op=LOAD Starting Hostname Service...[ 15.406479] audit: type=1334 audit(1721825387.894:9): prog-id=12 op=LOAD[ OK ] Started Hostname Service. Starting Network Manager Script Dispatcher Service...[ OK ] Started Network Manager Script Dispatcher Service.[ 16.927934] stmmaceth 16020000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0[ 16.944924] stmmaceth 16020000.ethernet eth0: PHY [stmmac-0:01] driver [Generic PHY] (irq=POLL)[ 16.965709] stmmaceth 16020000.ethernet eth0: No Safety Features support found[ 16.981930] stmmaceth 16020000.ethernet eth0: IEEE 1588-2008 Advanced Timestamp supported[ 17.001301] stmmaceth 16020000.ethernet eth0: registered PTP clock[ 17.016297] stmmaceth 16020000.ethernet eth0: configuring for phy/rgmii-id link mode[ OK ] Started Network Manager.[ OK ] Reached target Network. Starting Network Manager Wait Online... Starting Statistics collection and monitoring daemon... Starting OpenSSH server daemon... Starting Permit User Sessions...[ OK ] Finished Permit User Sessions.[ OK ] Started OpenSSH server daemon.[ OK ] Started Statistics collection and monitoring daemon.[ OK ] Started Getty on tty0. Starting run a script(default:/root/boot_run.sh) after boot...[ OK ] Started Serial Getty on ttyS0.[ OK ] Reached target Login Prompts.[ OK ] Started run a script(default:/root/boot_run.sh) after boot.[ 20.093655] stmmaceth 16020000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off[ OK ] Finished Network Manager Wait Online. Starting Virtual Console Setup...[ OK ] Finished Virtual Console Setup.Welcome to Loongson-gdLS-GD login: root (automatic login)[root@LS-GD ~]#
复制代码 1.5 系统设置
1.5.1 网络设置
执行ifconfig命令查看支持的网络信息;- [root@LS-GD ~]# ifconfigeth0 Link encap:Ethernet HWaddr D6:EC:6F:2F:22:C4 inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a815:6e80:765f:a196/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:397 errors:0 dropped:393 overruns:0 frame:0 TX packets:35 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:23844 (23.2 KiB) TX bytes:3036 (2.9 KiB) Interrupt:146lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
复制代码 配置网络IP和和子网掩码:- ifconfig eth0 172.23.34.188 netmask 255.255.128.0
复制代码 添加直连路由:- ip route add 172.23.0.0/17 dev eth0 proto kernel scope link src 172.23.34.188
复制代码 注意:某些嵌入式Linux系统(尤其是使用旧版ifconfig工具或特定内核版本)中,仅仅设置IP和掩码并不总是会自动在路由表中生成一条完美的网段路由。
添加默认网关:- route add default gw 172.23.0.1 eth0
复制代码 验证路由表:二、驱动移植
在前面章节中我们介绍了如何将久久派默认带有的PMON固件以及内核linux 4.19升级为uboot及linux 6.12版本。当我们的板子执行了升级操作后,我们的系统环境已经搭建完成了,接下来的任务就是移植驱动程序和编写应用程序。其中涉及的模块有:
- VL53L0X测距模块;
- 1.8寸SPI TFT屏幕(驱动芯片ST7735);
- MPU6050陀螺仪;
这里我们参考的资料主要来源以下两个仓库:
- 《龙芯2K300_301软件开源库》;
- 《WwuSama 21届智能车走马观碑开源仓库》。
2.1 创建项目目录
在/opt/2k0300目录下创建子目录loongson_2k300_lib;- zhengyang@ubuntu:/opt/2k0300$ mkdir loongson_2k300_libzhengyang@ubuntu:/opt/2k0300$ cd loongson_2k300_lib
复制代码 创建驱动子目录:- zhengyang@ubuntu:/opt/2k0300/loongson_2k300_lib$ mkdir driver
复制代码 创建测试用例子目录:- zhengyang@ubuntu:/opt/2k0300/loongson_2k300_lib$ mkdir example
复制代码 创建走马观碑项目子目录:- zhengyang@ubuntu:/opt/2k0300/loongson_2k300_lib$ mkdir car_project
复制代码 2.2 拷贝驱动
这里我们将《WwuSama/21届智能车走马观碑开源仓库》开源的linux 6.9源码下载下来,需要注意的是仓库中已经将linux内核源码移除了,但是其QQ交流群依然提供了内核源码,这里我下载了linux-6.9-WuwuSama-99pi.tar.gz,其驱动位于drivers/wuwu_drivers/:- zhengyang@ubuntu:/opt/2k0300/build-2k0300/workspace/linux-6.9-WuwuSama-99pi$ ll drivers/wuwu_drivers/-rw-rw-r-- 1 zhengyang zhengyang 7109 12月 17 16:42 imc20602.h-rw-rw-r-- 1 zhengyang zhengyang 4144 12月 17 16:42 wuwu_brushless.c-rw-rw-r-- 1 zhengyang zhengyang 3601 12月 17 16:42 wuwu_buzzer.c-rw-rw-r-- 1 zhengyang zhengyang 4134 12月 17 16:42 wuwu_fans.c-rw-rw-r-- 1 zhengyang zhengyang 9198 12月 17 16:42 wuwu_icm42688.c-rw-rw-r-- 1 zhengyang zhengyang 5306 12月 17 16:42 wuwu_icm42688.h-rw-rw-r-- 1 zhengyang zhengyang 11666 12月 17 16:42 wuwu_imc20602.c-rw-rw-r-- 1 zhengyang zhengyang 13770 12月 17 16:42 wuwu_motor.c-rw-rw-r-- 1 zhengyang zhengyang 1488 12月 17 16:42 wuwu_motor.h-rw-rw-r-- 1 zhengyang zhengyang 4416 12月 17 16:42 wuwu_servo.c-rw-rw-r-- 1 zhengyang zhengyang 30204 12月 17 16:42 wuwu_vl53l0x.c-rw-rw-r-- 1 zhengyang zhengyang 877 12月 17 16:42 wuwu_vl53l0x.h
复制代码 我们将这些驱动拷贝到loongson_2k300_lib/driver目录,供我们参考使用;- zhengyang@ubuntu:/opt/2k0300/loongson_2k300_lib/driver$ cp /opt/2k0300/build-2k0300/workspace/linux-6.9-WuwuSama-99pi/drivers/wuwu_drivers/* ./
复制代码 2.3 准备工作
先在内核源码目录执行如下命令,生成 Module.symvers:- zhengyang@ubuntu:/opt/2k0300/build-2k0300/workspace/linux-6.12$ source ../set_env.sh && make loongson_2k300_defconfig V=1# 生成Module.symvers的命令zhengyang@ubuntu:/opt/2k0300/build-2k0300/workspace/linux-6.12$ source ../set_env.sh && make modules_prepare -j$(nproc)# 如果没有Module.symvers才需要执行下面这条指令zhengyang@ubuntu:/opt/2k0300/build-2k0300/workspace/linux-6.12$ cp vmlinux.symvers Module.symvers
复制代码 这一步会生成完整的 Module.symvers,其中记录了内核导出的所有符号信息,这个后面编译驱动需要使用到。
参考文章
[1] Rockchip RK3399 - NanoPC-T4开发板介绍
[2] Rockchip RK3588 - NanoPC-T6开发板介绍
[3] 龙邱科技 龙芯2k301核心板软件开源库
[4] 龙芯LS2K0300久久派上手体验
[5] Loongson-2K0300-99PAI(久久派资料,推荐)
[6] 三、龙芯智能车学习之路 – 内核编译篇
[7] open-loongarch(官方仓库)
[8] SeekFree/逐飞科技LS2K0300开源库
[9] WwuSama/21届智能车走马观碑开源仓库
[10] NCNN模型推理资料链接 提取码: tihd
[11] LS2K0300久久派_V1.1板卡使用手册v1.2_20240705.pdf
[12] 第一卷-pmon软件使用手册.pdf
[13] 第二卷-pinctrl与dts开发手册.pdf
[14] 第三卷-2k300内核开发手册.pdf
[15] 第四卷-文件系统开发手册.pdf
[16] 第五卷-qt相关解决方案.pdf
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |