Linux学习笔记(11)——linux移植(上)

  1. 准备linux源文件——从NXP官网找到IM6ULL开发板linux相关资料
    1)http://git.freescale.com/git/cgit.cgi/imx/linux-imx.git/
    2)按图示选择rel_imx_4.1.15.2.1.0_ga.tar.bz2进行下载
    在这里插入图片描述
  2. 解压完linux文件,在目录顶层创建shell脚本(名字自定义),运行脚本文件,即开始编译。
 	#!/bin/sh
	make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
	make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_mfg_defconfig
	make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
	make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j4

编译完成,显示zImage已制作成功

  ......
  LD [M]  fs/fat/msdos.ko
  LD [M]  fs/configfs/configfs.ko
  LD [M]  fs/isofs/isofs.ko
  LD [M]  fs/udf/udf.ko
  LD [M]  fs/nls/nls_iso8859-15.ko
  LD [M]  lib/crc-ccitt.ko
  LD [M]  lib/crc-itu-t.ko
  LD [M]  lib/libcrc32c.ko
  LD [M]  sound/core/snd-hwdep.ko
  LD [M]  sound/core/snd-rawmidi.ko
  LD [M]  lib/crc7.ko
  LD [M]  sound/usb/snd-usb-audio.ko
  LD [M]  sound/usb/snd-usbmidi-lib.ko
  AS      arch/arm/boot/compressed/piggy.lzo.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready

把zImage和设备树文件imx6ull-14x14-evk-emmc.dtb 拷贝到ubuntu tftp共享目录下。
3. 开发板通电,使用tftp命令分别读取zImage和设备树文件,然后启动内核
1)在使用tftp命令之前先ping一下tftp服务器(即ubuntu的ip地址)环境,出现下面的提示表示开发板与tftp服务器之间的网络通信OK.

=> ping 192.168.1.55
Using FEC1 device
host 192.168.1.55 is alive

2)把zImage加载到内存地址0x80800000

=> tftp 80800000 zImage
Using FEC1 device
TFTP from server 192.168.1.55; our IP address is 192.168.1.50
Filename 'zImage'.
Load address: 0x80800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #
         1 MiB/s
done
Bytes transferred = 6680408 (65ef58 hex)

3)把设备树文件加载到内存地址0x83000000

=> tftp 83000000 imx6ull-14x14-evk-emmc.dtb
Using FEC1 device
TFTP from server 192.168.1.55; our IP address is 192.168.1.50
Filename 'imx6ull-14x14-evk-emmc.dtb'.
Load address: 0x83000000
Loading: ###
         1 MiB/s
done
Bytes transferred = 36093 (8cfd hex)

4)出现下面的提示,启动内核成功,但因为没有根文件系统,无法进入linux系统。

=> bootz 80800000 - 83000000
Kernel image @ 0x80800000 [ 0x000000 - 0x65ef58 ]
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Using Device Tree in place at 83000000, end 8300bcfc

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.1.15 (glen@ubuntu) (gcc version 4.9.4 (Linaro GCC 4.9-2017.01) ) #1 SMP PREEMPT Wed Jan 8 22:55:52 CST 2020
......
mmc1: MAN_BKOPS_EN bit is not set
gpio_dvfs: disabling
can-3v3: disabling
ALSA device list:
  #0: wm8960-audio
VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
0100           65536 ram0  (driver?)
0101           65536 ram1  (driver?)
0102           65536 ram2  (driver?)
0103           65536 ram3  (driver?)
0104           65536 ram4  (driver?)
0105           65536 ram5  (driver?)
0106           65536 ram6  (driver?)
0107           65536 ram7  (driver?)
0108           65536 ram8  (driver?)
0109           65536 ram9  (driver?)
010a           65536 ram10  (driver?)
010b           65536 ram11  (driver?)
010c           65536 ram12  (driver?)
010d           65536 ram13  (driver?)
010e           65536 ram14  (driver?)
010f           65536 ram15  (driver?)
b300        15558144 mmcblk0  driver: mmcblk
  b301         3275776 mmcblk0p1 abf077bd-01
  b302               1 mmcblk0p2 
mmc1: new HS200 MMC card at address 0001
mmcblk1: mmc1:0001 8GTF4R 7.28 GiB 

  b303         5727744 mmcblk0p3 abf077bd-03
mmcblk1boot0: mmc1:0001 8GTF4R partition 1 4.00 MiB

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: nonblocking pool is initialized
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值