2017-04-05 16 views
-1

알테라 DE2-115 FPGA 용 최신 버전 Linux from Altera을 만들었습니다. 파일 시스템으로 인해 부팅되지 않습니다. 내가 뭘해야하는지 알지? 나는 그것이 make menuconfig의 약간의 옵션이다라고 생각한다. 그러나 나는 무엇을해야하는지에 관해 모른다. buildroot 및 Nios2 FPGA로 initramfs 소스 파일을 선택하는 방법

enter image description here

Linux version 4.9.0-00104-g84d4f8a-dirty ([email protected]) (gcc version 6.2.0 (Sourcery CodeBench Lite 2016.11-32)) #28 Wed Apr 5 04:23:07 CEST 2017 
bootconsole [early0] enabled 
early_console initialized at 0xe8001440 
On node 0 totalpages: 32768 
free_area_init_node: node 0, pgdat c022166c, node_mem_map c0254b80 
    Normal zone: 256 pages used for memmap 
    Normal zone: 0 pages reserved 
    Normal zone: 32768 pages, LIFO batch:7 
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 
pcpu-alloc: [0] 0 
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 
Kernel command line: debug console=ttyAL0,115200 
PID hash table entries: 512 (order: -1, 2048 bytes) 
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) 
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) 
Sorting __ex_table... 
Memory: 127528K/131072K available (1750K kernel code, 66K rwdata, 284K rodata, 76K init, 191K bss, 3544K reserved, 0K cma-reserved) 
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 
NR_IRQS:64 nr_irqs:64 0 
clocksource: nios2-clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 38225208935 ns 
Console: colour dummy device 80x25 
Calibrating delay loop (skipped), value calculated using timer frequency.. 100.00 BogoMIPS (lpj=50000) 
pid_max: default: 32768 minimum: 301 
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) 
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) 
cpu cpu0: Error -2 creating of_node link 
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns 
random: fast init done 
clocksource: Switched to clocksource nios2-clksrc 
futex hash table entries: 256 (order: -1, 3072 bytes) 
workingset: timestamp_bits=30 max_order=15 bucket_order=0 
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) 
io scheduler noop registered 
io scheduler deadline registered 
io scheduler cfq registered (default) 
8001440.serial: ttyJ0 at MMIO 0x8001440 (irq = 2, base_baud = 0) is a Altera JTAG UART 
mousedev: PS/2 mouse device common for all mice 
Warning: unable to open an initial console. 
List of all partitions: 
No filesystem could mount root, tried: 
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) 
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) 
random: crng init done 
나는 menuconfig를에서 옵션을 발견하고 지금은 다른 오류 얻을 :

Linux version 4.9.0-00104-g84d4f8a-dirty ([email protected]) (gcc version 6.2.0 (Sourcery CodeBench Lite 2016.11-32)) #37 Wed Apr 5 11:23:36 CEST 2017 
bootconsole [early0] enabled 
early_console initialized at 0xe8001440 
On node 0 totalpages: 32768 
free_area_init_node: node 0, pgdat c03cf6b0, node_mem_map c0402b80 
    Normal zone: 256 pages used for memmap 
    Normal zone: 0 pages reserved 
    Normal zone: 32768 pages, LIFO batch:7 
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 
pcpu-alloc: [0] 0 
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 
Kernel command line: debug console=ttyAL0,115200 
PID hash table entries: 512 (order: -1, 2048 bytes) 
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) 
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) 
Sorting __ex_table... 
Memory: 125808K/131072K available (1775K kernel code, 67K rwdata, 288K rodata, 1768K init, 191K bss, 5264K reserved, 0K cma-reserved) 
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 
NR_IRQS:64 nr_irqs:64 0 
clocksource: nios2-clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 38225208935 ns 
Console: colour dummy device 80x25 
Calibrating delay loop (skipped), value calculated using timer frequency.. 100.00 BogoMIPS (lpj=50000) 
pid_max: default: 32768 minimum: 301 
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) 
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) 
cpu cpu0: Error -2 creating of_node link 
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns 
random: fast init done 
clocksource: Switched to clocksource nios2-clksrc 
futex hash table entries: 256 (order: -1, 3072 bytes) 
workingset: timestamp_bits=30 max_order=15 bucket_order=0 
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) 
io scheduler noop registered 
io scheduler deadline registered 
io scheduler cfq registered (default) 
8001440.serial: ttyJ0 at MMIO 0x8001440 (irq = 2, base_baud = 0) is a Altera JTAG UART 
mousedev: PS/2 mouse device common for all mice 
Warning: unable to open an initial console. 
Freeing unused kernel memory: 1768K (c01bd000 - c0377000) 
This architecture does not have kernel memory protection. 
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100 

---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100 

random: crng init done 

enter image description here

지금 내가, 내 buildroot 파일의 디렉토리를 선택을

~$ ls -ahl /home/developer/nios2/buildroot/output/images/ 
total 9,6M 
drwxr-xr-x 2 developer developer 4,0K apr 5 07:56 . 
drwxrwxr-x 6 developer developer 4,0K apr 5 07:33 .. 
-rw-r--r-- 1 developer developer 3,7M apr 5 07:56 rootfs.cpio 
-rw-r--r-- 1 developer developer 2,1M apr 5 07:56 rootfs.jffs2 
-rw-r--r-- 1 developer developer 3,8M apr 5 07:56 rootfs.tar 
,210

는 당신이 그것을 명령 줄에서 유효한 루트 = 매개 변수를 제공하는 것을 잊었다 당신이 당신의 커널을 컴파일 할 때 주/기본 루트를 설정하는 것을 잊었다이 출력

Linux version 4.9.0-00104-g84d4f8a-dirty ([email protected]) (gcc version 6.2.0 (Sourcery CodeBench Lite 2016.11-32)) #40 Wed Apr 5 11:35:15 CEST 2017 
bootconsole [early0] enabled 
early_console initialized at 0xe8001440 
On node 0 totalpages: 32768 
free_area_init_node: node 0, pgdat c07736b0, node_mem_map c07a6b80 
    Normal zone: 256 pages used for memmap 
    Normal zone: 0 pages reserved 
    Normal zone: 32768 pages, LIFO batch:7 
�pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 
pcpu-alloc: [0] 0 
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 
Kernel command line: debug console=ttyAL0,115200 
PID hash table entries: 512 (order: -1, 2048 bytes) 
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) 
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) 
Sorting __ex_table... 
�Memory: 122080K/131072K available (1775K kernel code, 67K rwdata, 288K rodata, 5496K init, 191K bss, 8992K reserved, 0K cma-reserved) 
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 
NR_IRQS:64 nr_irqs:64 0 
clocksource: nios2-clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 38225208935 ns 
Console: colour dummy device 80x25 
Calibrating delay loop (skipped), value calculated using timer frequency.. 100.00 BogoMIPS (lpj=50000) 
pid_max: default: 32768 minimum: 301 
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) 
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) 
cpu cpu0: Error -2 creating of_node link 
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns 
random: fast init done 
clocksource: Switched to clocksource nios2-clksrc 
futex hash table entries: 256 (order: -1, 3072 bytes) 
workingset: timestamp_bits=30 max_order=15 bucket_order=0 
random: crng init done 
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) 
io scheduler noop registered 
io scheduler deadline registered 
io scheduler cfq registered (default) 
8001440.serial: ttyJ0 at MMIO 0x8001440 (irq = 2, base_baud = 0) is a Altera JTAG UART 
mousedev: PS/2 mouse device common for all mice 
Warning: unable to open an initial console. 
Failed to create /dev/root: -2 
List of all partitions: 
No filesystem could mount root, tried: 
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) 
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) 

답변

0

처음에는 rocketboard wiki 페이지의 지침이 완전하지 않음에 유의하십시오. Nios2의 커널을 다시 컴파일하는 것은 쉬운 일이 아닙니다. 많은 버그와 지시 사항, 그리고 관리자들의 혼란이 많기 때문입니다. 둘째, 리눅스 커널 자체는 꽤 큰 소프트웨어입니다. 고대 (예 : 가상 터미널 tty0) 기술을 비롯한 기타 지식이 필요합니다. 그래서, 'make menuconfig'와 'make'명령이 모든 것을 잘 할 것이라고 생각하는 것은 환상입니다. 위의 대답을 'initrd는 어디에 있습니까?'라고 진지하게 생각해보십시오.

+0

질문에만 대답하면 어떻게 알 수 있습니까? 나는 initrd에 대해 봤는데 정보가 완전하지 않고 정보가 사방에 다르다. –

+1

이전 버전 (ver2.6.34?)을 부팅하고 initrd를 사용하는 데 성공하지 못했습니까? menuconfig 및 설정을 참조하십시오. 그리고 Flexo 씨, 당신의 사업을 염두에 두십시오. – KAZUYASU

+1

> 이제 initrd에 대한 350 줄의 문서를 읽었습니다. 이 문서 'Linux/Documentation/initrd.txt'을 읽고 계십니까? http://lxr.free-electrons.com/source/Documentation/initrd.txt?v=4.9 이 문서는 initrd fs의 역할과 내부를 설명하고 작성 절차를 설명하지 않습니다. > 작가는 의도적으로 독자의 방해 행위를하고 있습니다. Linux의 경우처럼 많은 문서가 과거와 현재 사용되지 않고 작성되었습니다. 때로는 소스 코드 자체가 최상의 지침입니다. – KAZUYASU

1

를 얻을. 메이저/마이너 설정은 크로스 컴파일 할 때 커널을 16 진수 화하지 않으면 실제로 작동하지 않으므로 루트 = 매개 변수를 전달해야합니다.

파티션을 찾을 수 없습니다. initrd는 어디에 있습니까?

/init이 initrd에서 발견되지 않거나 종료되면 initrd가 마운트 해제되고 rootfs가 마운트됩니다.

+0

나는 파일 시스템이 없다고 생각합니다. 내가 사용할 수있는 SD 카드가 있습니다. 나는 rt * m해야 Nios 2와이 FPGA로 파일 시스템을 만드는 방법을 생각해 보았다. –

+0

파일 시스템이없고 initrd가 없다면 커널은 아무것도하지 않을 것입니다. – Joshua