U-Boot 2018.01-05679-g013ca45-dirty (Dec 25 2018 - 17:56:19 +0800) Allwinner Technology
CPU: Allwinner F Series (SUNIV)
Model: Lichee Pi Nano
DRAM: 32 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
Setting up a 480x272 lcd console (overscan 0x0)
In: serial@1c25000
Out: serial@1c25000
Err: serial@1c25000
Net: No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x4000
SF: 16384 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
(大概过了7-8分钟后,输出了如下信息)
## Flattened Device Tree blob at 80c00000
Booting using the fdt blob at 0x80c00000
Loading Device Tree to 80e5f000, end 80e63f26 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.19.0-rc3-licheepi-nano+ (ziotlab@ziotlab-VirtualBox) (gcc version 7.2.1 20178
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] OF: fdt: Machine model: Lichee Pi Nano
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] random: get_random_bytes called from start_kernel+0x84/0x3f8 with crng_init=0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock3 rw rootfstype2
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Memory: 24788K/32768K available (4096K kernel code, 202K rwdata, 1144K rodata, 1024K init, 2)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xc2800000 - 0xff800000 ( 976 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0x(ptrval) - 0x(ptrval) (5088 kB)
[ 0.000000] .init : 0x(ptrval) - 0x(ptrval) (1024 kB)
[ 0.000000] .data : 0x(ptrval) - 0x(ptrval) ( 203 kB)
[ 0.000000] .bss : 0x(ptrval) - 0x(ptrval) ( 217 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000048] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000129] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000669] Console: colour dummy device 80x30
[ 0.000775] Calibrating delay loop... 203.16 BogoMIPS (lpj=1015808)
[ 0.070260] pid_max: default: 32768 minimum: 301
[ 0.070723] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.070764] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.072295] CPU: Testing write buffer coherency: ok
[ 0.074274] Setting up static identity map for 0x80100000 - 0x80100058
[ 0.079313] devtmpfs: initialized
[ 0.085313] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000s
[ 0.085378] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.085703] pinctrl core: initialized pinctrl subsystem
[ 0.088303] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.090466] cpuidle: using governor menu
[ 0.111533] SCSI subsystem initialized
[ 0.111922] usbcore: registered new interface driver usbfs
[ 0.112073] usbcore: registered new interface driver hub
[ 0.112262] usbcore: registered new device driver usb
[ 0.112694] pps_core: LinuxPPS API ver. 1 registered
[ 0.112720] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.113398] clocksource: Switched to clocksource timer
[ 0.144183] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.146163] Initialise system trusted keyrings
[ 0.146751] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[ 0.159908] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.176320] Key type asymmetric registered
[ 0.176357] Asymmetric key parser 'x509' registered
[ 0.176562] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 0.176596] io scheduler noop registered
[ 0.176614] io scheduler deadline registered
[ 0.177126] io scheduler cfq registered (default)
[ 0.177156] io scheduler mq-deadline registered
[ 0.177174] io scheduler kyber registered
[ 0.179029] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO
[ 0.190318] suniv-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.377290] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.384424] console [ttyS0] disabled
[ 0.404674] 1c25000.serial: ttyS0 at MMIO 0x1c25000 (irq = 23, base_baud = 6250000) is a 16550A
[ 0.794492] console [ttyS0] enabled
[ 0.820436] 1c25400.serial: ttyS1 at MMIO 0x1c25400 (irq = 24, base_baud = 6250000) is a 16550A
[ 0.837024] panel-simple panel: panel supply power not found, using dummy regulator
[ 0.845037] panel-simple panel: Linked as a consumer to regulator.0
[ 0.852981] SCSI Media Changer driver v0.25
[ 0.860967] m25p80 spi0.0: w25q128 (16384 Kbytes)
[ 0.866888] 4 fixed-partitions partitions found on MTD device spi0.0
[ 0.873252] Creating 4 MTD partitions on "spi0.0":
[ 0.878189] 0x000000000000-0x000000100000 : "u-boot"
[ 0.886149] 0x000000100000-0x000000110000 : "dtb"
[ 0.893664] 0x000000110000-0x000000510000 : "kernel"
[ 0.901341] 0x000000510000-0x000001000000 : "rootfs"
[ 0.910611] i2c /dev entries driver
[ 0.916427] sunxi-mmc 1c0f000.mmc: Linked as a consumer to regulator.1
[ 0.950000] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[ 0.959279] usbcore: registered new interface driver usbhid
[ 0.964987] usbhid: USB HID core driver
[ 0.972456] Loading compiled-in X.509 certificates
[ 0.989440] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dr
[ 1.000462] usb_phy_generic usb_phy_generic.0.auto: Linked as a consumer to regulator.0
[ 1.009519] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 1.015456] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[ 1.026053] hub 1-0:1.0: USB hub found
[ 1.030112] hub 1-0:1.0: 1 port detected
[ 1.040733] random: fast init done
[ 1.192914] random: crng init done
[ 4.979599] jffs2: Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes
[ 4.988130] jffs2: empty_blocks 0, bad_blocks 0, c->nr_blocks 175
[ 4.994582] VFS: Cannot open root device "mtdblock3" or unknown-block(31,3): error -5
[ 5.002397] Please append a correct "root=" boot option; here are the available partitions:
[ 5.010826] 1f00 1024 mtdblock0
[ 5.010837] (driver?)
[ 5.017436] 1f01 64 mtdblock1
[ 5.017445] (driver?)
[ 5.024027] 1f02 4096 mtdblock2
[ 5.024035] (driver?)
[ 5.030575] 1f03 11200 mtdblock3
[ 5.030581] (driver?)
[ 5.037160] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
[ 5.045498] CPU: 0 PID: 1 Comm: swapper Not tainted 4.19.0-rc3-licheepi-nano+ #4
[ 5.052870] Hardware name: Allwinner suniv Family
[ 5.057655] [<c010e918>] (unwind_backtrace) from [<c010bb80>] (show_stack+0x10/0x14)
[ 5.065410] [<c010bb80>] (show_stack) from [<c0117440>] (panic+0xc8/0x244)
[ 5.072309] [<c0117440>] (panic) from [<c0701234>] (mount_block_root+0x1ec/0x2e4)
[ 5.079799] [<c0701234>] (mount_block_root) from [<c07014d8>] (prepare_namespace+0x128/0x188)
[ 5.088323] [<c07014d8>] (prepare_namespace) from [<c0700e70>] (kernel_init_freeable+0x17c/0x1c4)
[ 5.097187] [<c0700e70>] (kernel_init_freeable) from [<c0484b0c>] (kernel_init+0x8/0x110)
[ 5.105359] [<c0484b0c>] (kernel_init) from [<c01010e0>] (ret_from_fork+0x14/0x34)
[ 5.112907] Exception stack(0xc1831fb0 to 0xc1831ff8)
[ 5.117957] 1fa0: 00000000 00000000 00000000 00000000
[ 5.126124] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 5.134287] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 5.140898] Rebooting in 5 seconds..
[ 11.120129] Reboot failed -- System halted
离线
我还没做镜像,就是想先第一步跑下kernel,看下是否真的支持w25q128
离线
今天上午做了测试了,找到了为啥前面提到的会过个7-8分钟才加载内核。
过程是这样的,我按照官方的指导进行了如下操作
错误的产生就是因为红框里的那个冒号是多余的,应该去掉。
在没去掉之前,uboot运行下来,就会有如下的log打印:
spi_flash@0:50000000: failed to activate chip-select 50000000
SF: error -2 reading JEDEC ID
Failed to initialize SPI flash at 0:50000000 (error -2)
No SPI flash selected. Please run `sf probe'
No SPI flash selected. Please run `sf probe'
我第一次解决这个问题的时候,使用的咱们坑网里的这个人提供的参考信息,
https://whycan.cn/t_1014.html 55楼的做法(因为他跟我一样,遇到了相同的问题)
这种解决方式就导致了spi 的频率非常慢,估计默认值为1吧。所以导致了本文一楼里提到的等待7-8分钟才继续执行。
正确做法是去掉上图中的冒号,才是正确的命令格式。我也看了下sf的命令格式,确实是这样,荔枝好心写个文档都不忘坑我一波,心累。
正确做法是在http://bbs.lichee.pro/d/31-spi-flash/20这里看到的。
下面就是实现加载文件系统的事了。
跑过assert哥提供的镜像(基于w25q128的),打印看过uboot环境变量,里面的bootargs 的root=31:03。感觉和http://bbs.lichee.pro/d/31-spi-flash/26有点默契与相同,感觉荔枝又要坑我了,这回可以少踩一个坑
最近编辑记录 科技植 (2018-12-26 12:58:27)
离线
按照http://bbs.lichee.pro/d/31-spi-flash/23的提示,终于挂载了rootfs了。
不过挂载后报了kernel panic,log 如下(我是用的busybox做的文件系统,按以前的经验启动的时候,应该去启动/linuxrc,而logo最后两三行显示去启动了/sbin/init,我估计八成都是这里的问题了):
U-Boot SPL 2018.01-05679-g013ca45-dirty (Dec 26 2018 - 15:19:33)
DRAM: 32 MiB
Trying to boot from MMC1
Card did not respond to voltage select!
mmc_init: -95, time 22
spl: mmc init failed with error: -95
Trying to boot from sunxi SPI
U-Boot 2018.01-05679-g013ca45-dirty (Dec 26 2018 - 15:19:33 +0800) Allwinner Technology
CPU: Allwinner F Series (SUNIV)
Model: Lichee Pi Nano
DRAM: 32 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
Setting up a 480x272 lcd console (overscan 0x0)
In: serial@1c25000
Out: serial@1c25000
Err: serial@1c25000
Net: No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0x100000, size 0x4000
SF: 16384 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 80c00000
Booting using the fdt blob at 0x80c00000
Loading Device Tree to 80e5f000, end 80e63f26 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.19.0-rc3-licheepi-nano+ (ziotlab@ziotlab-VirtualBox) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #5 Wed Dec 8
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] OF: fdt: Machine model: Lichee Pi Nano
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] random: get_random_bytes called from start_kernel+0x84/0x398 with crng_init=0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait root=31:03 rw rootfstype=jffs2
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Memory: 24788K/32768K available (4096K kernel code, 202K rwdata, 1144K rodata, 1024K init, 216K bss, 7980K reserved, 0K cma-reserved, )
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xc2800000 - 0xff800000 ( 976 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0x(ptrval) - 0x(ptrval) (5088 kB)
[ 0.000000] .init : 0x(ptrval) - 0x(ptrval) (1024 kB)
[ 0.000000] .data : 0x(ptrval) - 0x(ptrval) ( 203 kB)
[ 0.000000] .bss : 0x(ptrval) - 0x(ptrval) ( 217 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000050] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000130] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000672] Console: colour dummy device 80x30
[ 0.000772] Calibrating delay loop... 203.16 BogoMIPS (lpj=1015808)
[ 0.070254] pid_max: default: 32768 minimum: 301
[ 0.070724] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.070768] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.072292] CPU: Testing write buffer coherency: ok
[ 0.074237] Setting up static identity map for 0x80100000 - 0x80100058
[ 0.079278] devtmpfs: initialized
[ 0.085277] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.085350] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.085667] pinctrl core: initialized pinctrl subsystem
[ 0.088301] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.090516] cpuidle: using governor menu
[ 0.111856] SCSI subsystem initialized
[ 0.112242] usbcore: registered new interface driver usbfs
[ 0.112391] usbcore: registered new interface driver hub
[ 0.112590] usbcore: registered new device driver usb
[ 0.113028] pps_core: LinuxPPS API ver. 1 registered
[ 0.113055] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.113747] clocksource: Switched to clocksource timer
[ 0.144356] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.146309] Initialise system trusted keyrings
[ 0.146868] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[ 0.160197] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.176767] Key type asymmetric registered
[ 0.176807] Asymmetric key parser 'x509' registered
[ 0.177005] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 0.177038] io scheduler noop registered
[ 0.177056] io scheduler deadline registered
[ 0.177573] io scheduler cfq registered (default)
[ 0.177607] io scheduler mq-deadline registered
[ 0.177625] io scheduler kyber registered
[ 0.179493] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO
[ 0.190905] suniv-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.380584] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.387842] console [ttyS0] disabled
[ 0.408105] 1c25000.serial: ttyS0 at MMIO 0x1c25000 (irq = 23, base_baud = 6250000) is a 16550A
[ 0.797092] console [ttyS0] enabled
[ 0.823028] 1c25400.serial: ttyS1 at MMIO 0x1c25400 (irq = 24, base_baud = 6250000) is a 16550A
[ 0.839651] panel-simple panel: panel supply power not found, using dummy regulator
[ 0.847666] panel-simple panel: Linked as a consumer to regulator.0
[ 0.855732] SCSI Media Changer driver v0.25
[ 0.863583] m25p80 spi0.0: w25q128 (16384 Kbytes)
[ 0.868501] 4 fixed-partitions partitions found on MTD device spi0.0
[ 0.874925] Creating 4 MTD partitions on "spi0.0":
[ 0.879736] 0x000000000000-0x000000100000 : "u-boot"
[ 0.887535] 0x000000100000-0x000000110000 : "dtb"
[ 0.895050] 0x000000110000-0x000000510000 : "kernel"
[ 0.902698] 0x000000510000-0x000001000000 : "rootfs"
[ 0.911962] i2c /dev entries driver
[ 0.917809] sunxi-mmc 1c0f000.mmc: Linked as a consumer to regulator.1
[ 0.951378] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[ 0.960735] usbcore: registered new interface driver usbhid
[ 0.966436] usbhid: USB HID core driver
[ 0.974080] Loading compiled-in X.509 certificates
[ 0.990916] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[ 1.001937] usb_phy_generic usb_phy_generic.0.auto: Linked as a consumer to regulator.0
[ 1.010964] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 1.016891] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[ 1.027516] hub 1-0:1.0: USB hub found
[ 1.031556] hub 1-0:1.0: 1 port detected
[ 1.041843] random: fast init done
[ 1.149056] random: crng init done
[ 1.506309] VFS: Mounted root (jffs2 filesystem) on device 31:3.
[ 1.513285] devtmpfs: mounted
[ 1.520861] Freeing unused kernel memory: 1024K
[ 1.525587] Run /sbin/init as init process
[ 5.390489] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 5.390489]
[ 5.399636] CPU: 0 PID: 1 Comm: init Not tainted 4.19.0-rc3-licheepi-nano+ #5
[ 5.406750] Hardware name: Allwinner suniv Family
离线
又看了下当初assert哥uboot的bootargs 里也又init=/linuxrc ,在看了一眼荔枝教程中,使用的参数"console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock3 rw rootfstype=jffs2" 没有init=/linuxrc(注:root =/dev/mtdblock3还是错的,得改为root=31:03),立刻去把init=/linuxrc添上再试试
离线
改后,log也变成了如下,但还是panic了,看来又要研究一波了
[ 1.525587] Run /linuxrc as init process
[ 5.390489] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 5.390489]
[ 5.399636] CPU: 0 PID: 1 Comm: init Not tainted 4.19.0-rc3-licheepi-nano+ #5
[ 5.406750] Hardware name: Allwinner suniv Family
离线
是的,我也是这么认为的。把assert哥的固件下载进去看了下打印信息,后面把自己文件系统的rcS里第一行加了一个/bin/echo "start kernel end",看下效果。
离线
并卵,logo还是老样子,:(
离线
晕哥,你那里有能放入spi-nor的文件系统吗,我来试一波
离线
换了文件系统后,直接起来了。
感谢坑网救我狗命,2333.
离线
@晕哥,你用的busybox还是buildroot生成的文件系统。感觉问了等于白问,你肯定两个都用过。我去查先前的报错信息,居然有说是gcc与busybox版本导致的
离线
我还是先试一波buildroot吧
离线
用官方的buildroot确实能跑起来,但启动文件系统的时候,遇到这个问题了,如图。
纳闷怎么一上来就没权限,buildroot生成的rootfs我都没改过,etc目录里德东西,我也看过,感觉没啥问题呀,先在这里记录一波,后面有机会再来填坑
离线
@msro6rr etc里环境配好了应该是可以的。我稍后测试了,把结果发上来。
@晕哥 创建 /dev/console 设备文件和 /dev/pts/ /dev/shm 文件夹关系不大。console这个设备文件是因为/etc/inittab里有一句"/dev/console ::respawn:/sbin/getty -L /dev/console 115200 vt100"。因为我一开始对buildroot进行了make distclean,再make的(这样生成的文件系统只有1.6M),所以inittab出现了这句话,而我先前用默认的配置,通过buildroot生成的inittab,就是"/dev/ttyS0::respawn:/sbin/getty -L /dev/ttyS0 115200 vt100".只是默认配置生成的文件系统有97M,无法搞进spi nor里。而那两个文件夹,本身生成的文件系统里就有。
现在,先把昨天+今天的测试结果总结一下,(在做了大量测试后),简单来说就是,当我使用http://nano.lichee.pro/get_started/first_eat.html#u-boot教程中的工具链来编译busybox,制作出的rootfs运行时就是10楼的运行结果,死活起不来。后面也查了些资料,看到过两篇有说是编译工具链与busybox版本的问题,其中一篇https://blog.csdn.net/chuanzhilong/article/details/52901973。一周前逛坑网时,也有看到说因为工具链导致的问题,不过不是导致的问下系统起不来,貌似是和uboot有关。
我把buildroot生成的busybox可执行程序,替换busybox生成的busybox可执行程序,运行的时候,也是死在10楼的地方,只是报错信息稍微有些不同。
俗话说,在排除了所有不可能,剩下的那个再不可能,也是真相了。
于是我想到用buildroot里的工具链来编译busybox,结果这次就成功跑起来了。
离线
如果文件系统起来后,有遇到这种的信息:cant run '/etc/init.d/rcS' : permission denied。如此链接来解决https://blog.csdn.net/pkuyjxu/article/details/5440296
离线
文件系统起来后,测试了下/dev/ttyS1,也就是荔枝派nano的uart1了。通过echo "1" > /dev/ttyS1可以通过PA3发送字符出来,PC也能收到(PC接收波特率要设置为9600),但cat /dev/ttyS1后,上位机发的字符,minicom上却一直不显示,用了assert哥的镜像,测试效果也根我的一样。不知道坑网里有调过uart1的没有
离线
@lilo是的,我以前在972,210上是可以这么玩的。刚刚一直了一个串口接收程序(以前写的972串口接收例程),确实可以接收
离线
下一步就开始往f1c100s上移植xpt2046的触摸了
离线
触摸移植完了。琢磨了两天,没搞懂为啥没有/dev/fb0生成.
dts没修改过,相关地方为 compatible = “qiaodian,qd43003c0-40”, “simple-panel”,而且可以看到Linux源码里看到,panel-simple.c被编译为了panel-simple.o
同时panel-simple.c里我也在probe函数的开头加了打印信息,内核启动时也没看到我定义的打印信息,按理来说,就是设备和驱动没有匹配上。但不应该呀,panel-simple.c里的.of_match_table = platform_of_match里也有定义“qiaodian,qd43003c0-40”。
不知道有没有跟我类似经历的小伙伴
离线
无意中在log里发现了一段内容(以前也有,只是自己没注意到),如下:
panel-simple panel:panel supply power not found, using dummy regulator
panel-simple panel:Linked as a consumer to regulator.0
根据前两天我移植触摸驱动时,内核启动打印的log以及对比assert哥固件的启动log,几乎可以确认,没生成fb跟这里有非常大的关系
离线
这内核是通过咱们坑网的帖子https://whycan.cn/t_1672.html#p10579来的,因为帖子里有小伙伴们贴出的log信息,所以去查了下,发现他们的log信息里也有我这段。
离线
而这段log本身是由:
drivers/regulator/core.c:1683: "%s supply %s not found, using dummy regulator\n"来打印的
离线
科技植 说:这内核是通过咱们坑网的帖子https://whycan.cn/t_1672.html#p10579来的,因为帖子里有小伙伴们贴出的log信息,所以去查了下,发现他们的log信息里也有我这段。
有可能没有驱动 LCD 哦,因为前几天 @chong 问我f1c100s支持什么液晶屏
看到晕哥,如此回复,果断觉得回家吃饭先。2333
离线
在dts中,加入power-supply = <®_vcc3v3>;解决了
panel-simple panel:panel supply power not found, using dummy regulator
panel: panel {
compatible = "qiaodian,qd43003c0-40", "simple-panel";
#address-cells = <1>;
#size-cells = <0>;
enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>;
power-supply = <®_vcc3v3>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
panel_input: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_out_lcd>;
};
};
};
离线
不过还是没有fb出现
离线
今天换荔枝派的主线Linux内核来试了试,内核的配置是从http://nano.lichee.pro/build_sys/kernel.html里下的,启动后也确实看到了fb0.然后对比我4.19内核的log可以发现,我的log少了大概如下几句
[ 1.087039] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc0739bf8)
[ 1.095823] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc0738edc)
[ 1.103610] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.110268] [drm] No driver support for vblank timestamp query.
[ 1.164209] Console: switching to colour frame buffer device 60x34
[ 1.187599] sun4i-drm display-engine: fb0: frame buffer device
[ 1.194806] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
这几条log就是生成fb的关键了。
主线的dtb与4.19的dtb我也做了对比,可以说几乎一模一样,特别是在和display相关的地方,一模一样。
离线