tiny210v2-uboot之四编译内核+文件系统+烧写到MMC

1. 编译内核:

>cp mini210_linux_deconfig .config

>make zImage -j4

>mkimage -n 'linux-2.6.32' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage uImage

2. 格式化mmc

//分成三个区,第一个为FAT(存放40new_uimage文件等,测试用),第二个为linux区,第三个为rootfs区

fdisk -c /dev/sdb

sudo mkfs.vfat -F 32 /dev/sdb1 //或者mkdosfs -F32 -v -n "" /dev/sdb1

sudo mkfs.ext2 /dev/sd2

sudo mkfs.ext3 /dev/sd3

成功后显示:

sudo fdisk -l /dev/sdb

[sudo] password for rlk:

Disk /dev/sdb: 7.37 GiB, 7902068736 bytes, 15433728 sectors

Disk model: Storage Device

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x6791577f

Device Boot Start End Sectors Size Id Type

//注意sudo mkfs.vfat -F 32 /dev/sd1并没有成功显示为FAT16 ,这里是我插卡到windows,手动格式化为FAT后再到linux里显示的样子

/dev/sdb1 2048 1026047 1024000 500M e W95 FAT16 (LBA)

/dev/sdb2 1026048 1128447 102400 50M 83 Linux

/dev/sdb3 1128448 15433727 14305280 6.8G 83 Linux

3. 制作文件系统(最终会把roofs.img烧写到mmc的第三个分区)

1)方法一

>dd if=/dev/zero of=rootfs bs=1k count=8192

>mkfs.ext2 -F rootfs

>sudo mount -t ext2 -o loop rootfs mnt

>cp ~/news5pv210/nfs/* mnt

>sudo umount mnt

>gzip --best -c rootfs > rootfs.gz

//虽然这里是ramdisk类型,但是会烧写到mmc的第三个分区,并不是把它加载到内存的文件系统

>mkimage -n "rootfs" -A arm -O linux -T ramdisk -C gzip -d rootfs.gz rootfs.img

>dd if= rootfs.img of=/dev/sdb3 seek=1128448

2)方法二:

mount /dev/sdb3 mnt

>cp ~/news5pv210/nfs/* mnt

>sudo umount mnt

4.uboot启动

>setenv bootargs "noinitrd console=ttySAC0,115200 root=/dev/mmcblk0p3 rw init=/linuxrc rootfstype=ext3"

//这里我没有烧写Linux到/dev/sdb2,而是先从dev/sdb1里加载到内存再启动

[Friendlyjimmy-TINY210]# fatload mmc 0:1 20008000 40new_uimage

[Friendlyjimmy-TINY210]# bootm 20008000

输出如下:


## Booting kernel from Legacy Image at 20008000 ...

Image Name: linux-3.0.8

Image Type: ARM Linux Kernel Image (uncompressed)

Data Size: 4825000 Bytes = 4.6 MiB

Load Address: 20008000

Entry Point: 20008040

Verifying Checksum ... OK

XIP Kernel Image ... OK

OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

[ 0.000000] Initializing cgroup subsys cpu

[ 0.000000] Linux version 3.0.8-FriendlyARM (rlk@rlk) (gcc version 4.5.1 (ctn g-1.8.1-FA) ) #2 PREEMPT Thu Jan 19 00:20:06 CST 2023

[ 0.000000] CPU: ARMv7 Processor [412fc082] revision 2 (ARMv7), cr=10c53c7f

[ 0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache

[ 0.000000] Machine: MINI210

[ 0.000000] Memory policy: ECC disabled, Data cache writeback

[ 0.000000] CPU S5PV210/S5PC110 (id 0x43110220)

[ 0.000000] S3C24XX Clocks, Copyright 2004 Simtec Electronics

[ 0.000000] S5PV210: PLL settings, A=1000000000, M=667000000, E=80000000 V=54 000000

[ 0.000000] S5PV210: ARMCLK=1000000000, HCLKM=200000000, HCLKD=166750000

[ 0.000000] HCLKP=133400000, PCLKM=100000000, PCLKD=83375000, PCLKP=66700000

。。。

0.000000] Virtual kernel memory layout:

[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

[ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB)

[ 0.000000] vmalloc : 0xe0800000 - 0xfd000000 ( 456 MB)

[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)

[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)

[ 0.000000] .init : 0xc0008000 - 0xc0174000 (1456 kB)

[ 0.000000] .text : 0xc0174000 - 0xc08d10c8 (7541 kB)

[ 0.000000] .data : 0xc08d2000 - 0xc092a300 ( 353 kB)

[ 0.000000] .bss : 0xc092a324 - 0xc096f820 ( 278 kB)

0.989021] s5pv210-uart.0: ttySAC0 at MMIO 0xe2900000 (irq = 16) is a S3C640 0/10

[ 0.996099] s5pv210-uart.1: ttySAC1 at MMIO 0xe2900400 (irq = 20) is a S3C640 0/10

[ 1.006031] s5pv210-uart.2: ttySAC2 at MMIO 0xe2900800 (irq = 24) is a S3C640 0/10

[ 1.016019] s5pv210-uart.3: ttySAC3 at MMIO 0xe2900c00 (irq = 28) is a S3C640 0/10

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值