최신 커널을 사용하려고 합니다.크리에이터 CI20(v1), 그러나 Linux 커널 버전 4.11.1을 사용하면 u-boot 후에 어떤 출력도 얻을 수 없습니다. 결과는 다음과 같습니다.
ci20# bootm 0x88000000;
## Booting kernel from Legacy Image at 88000000 ...
Image Name: Linux-4.11.1
Image Type: MIPS Linux Kernel Image (uncompressed)
Data Size: 5043676 Bytes = 4.8 MiB
Load Address: 80010000
Entry Point: 8035d440
Verifying Checksum ... OK
Loading Kernel Image ... OK
Starting
노트북 단계:
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
$ git checkout v4.11.1
$ make ARCH=mips ci20_defconfig
$ make ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- uImage
$ sudo cp arch/mips/boot/uImage.bin /tftpboot/uImage.4.11.1
$ sudo screen /dev/ttyUSB0 115200
ci20의 단계:
dhcp 0x88000000 192.168.0.14:uImage.4.11.1
bootm 0x88000000;
이제 4.10.1을 사용하여 똑같은 단계를 반복하면 모든 것이 예상대로 작동하고 커널이 정상적으로 부팅되는 것을 볼 수 있습니다.
$ git checkout v4.10.1
$ make ARCH=mips ci20_defconfig
$ make ARCH=mips CROSS_COMPILE=mipsel-linux-gnu- uImage
$ sudo cp arch/mips/boot/uImage.bin /tftpboot/uImage.4.10.1
참고로:
$ grep CONFIG_CMDLINE ./arch/mips/configs/ci20_defconfig
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="earlycon console=ttyS4,115200 clk_ignore_unused"
tty/uart가 아무것도 표시하지 않는 문제(git bisect 작업을 사용하지 않고)를 어떻게 추적해야 합니까?
답변1
아무런 답변이나 제안을 받지 못했기 때문에 마침내 git bisect
v4.10.1(좋음)과 v4.11.1(나쁨)이라는 두 태그 사이에서 고통스러운 과정(~13번 반복)을 거치기로 결정했습니다.
이로 인해 다음이 수행됩니다.
% git bisect good
73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411 is the first bad commit
commit 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
Author: Marcin Nowakowski <[email protected]>
Date: Wed Nov 23 14:43:49 2016 +0100
MIPS: fix mem=X@Y commandline processing
When a memory offset is specified through the commandline, add the
memory in range PHYS_OFFSET:Y as reserved memory area.
Otherwise the bootmem allocator is initialised with low page equal to
min_low_pfn = PHYS_OFFSET, and in free_all_bootmem will process pages
starting from min_low_pfn instead of PFN(Y).
Signed-off-by: Marcin Nowakowski <[email protected]>
Cc: [email protected]
Patchwork: https://patchwork.linux-mips.org/patch/14613/
Signed-off-by: Ralf Baechle <[email protected]>
:040000 040000 fe26fcf6d072cbaedac5a417f9f6424df16d331c b99681a22464164b88c6a3cf77b1b87957cd95d6 M arch
온라인으로 코드를 바라보며여기문제가 현재 u-boot 설정에 있다는 것을 깨달았습니다.
ci20# printenv
baudrate=115200
board_date=20140704
board_mfr=NP
bootargs=console=ttyS4,115200 console=tty0 mem=256M@0x0
mem=768M@0x30000000 rootwait quiet rw root=/dev/mmcblk0p1
bootcmd=run ethargs; ext4load mmc 0:1 0x88000000 /boot/uImage; bootm 0x88000000
bootdelay=1
ethact=dm9000
ethaddr=d0:31:10:ff:7d:20
ethargs=env set bootargs ${bootargs} dm9000.mac_addr=${ethaddr}
loads_echo=1
serial#=1255
stderr=eserial0,eserial4
stdin=eserial0,eserial4
stdout=eserial0,eserial4
Environment size: 488/32764 bytes
테스트해보지는 않았지만 mem
env 변수가 항상 false 값으로 초기화되는 것 같습니다.지시하다), 그러나 최근에야 이것이 문제가 되기 시작했습니다.
다음과 같은가능한복사/붙여넣기 오류를 나타냅니다.
bootargs=console=ttyS4,115200 console=tty0 mem=256M@0x0
mem=768M@0x30000000 rootwait quiet rw root=/dev/mmcblk0p1
이것이 실제로 도입된 회귀임이 밝혀졌습니다.