- 编译
$ . build/envsetup.sh $ lunch rpi-eng $ make -j 4
又是漫长的等待。。。
- 下载
先对SD卡进行分区,并进行格式化。需要3个分区, 第一个分区存放bootcode.bin, config.txt, start.elf, fixup.dat, cmdline.txt, kernel7.img, ramdisk7.img;第二个区公为系统分区:会写入system.img;第三个分区为data分区,用于存放运行时的配置文件等。
可以参考这个(一定要知道SD卡是属于哪个设备文件, 可以用dmesg | tail 查看):
$ sudo fdisk /dev/sd? Command (m for help): o Building a new DOS disklabel with disk identifier 0x29767d95. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p Partition number (1-4, default 1): Using default value 1 First sector (2048-15523839, default 2048): 8192 Last sector, +sectors or +size{K,M,G} (8192-15523839, default 15523839): +400M Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): Using default response p Partition number (1-4, default 2): Using default value 2 First sector (2048-15523839, default 2048): 827392 Last sector, +sectors or +size{K,M,G} (827392-15523839, default 15523839): +112M Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): Using default response p Partition number (1-4, default 3): Using default value 3 First sector (2048-15523839, default 2048): 1056768 Last sector, +sectors or +size{K,M,G} (1056768-15523839, default 15523839): +512M Command (m for help): p Disk /dev/sd?: 7948 MB, 7948206080 bytes 245 heads, 62 sectors/track, 1021 cylinders, total 15523840 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x29767d95 Device Boot Start End Blocks Id System /dev/sd?1 8192 827391 409600 83 Linux /dev/sd?2 827392 1056767 114688 83 Linux /dev/sd?3 1056768 2105343 524288 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
可以看到/dev/sd?1为linux分区(id为83),一定要将其改成b (FAT32)分区,不然系统无法识别,开不了机。
下面是格式化分区:
$ sudo mkfs.vfat /dev/sd?1 $ sudo mkfs.ext4 /dev/sd?3
挂载/dev/sd?1分区,将out/target/product/rpi/boot中的文件copy过去,再将kernel, ramdisk.img也copy过去:
$ sudo mount /dev/sd?1 /mnt/ $ sudo cp out/target/product/rpi/boot/* /mnt/ $ sudo cp out/target/product/rpi/kernel /mnt/kernel7.img $ sudo cp out/target/product/rpi/ramdisk.img /mnt/ramdisk7.img $ sudo umount /mnt $ sync
接着将system.img写到/dev/sd?2分区中(一定要按照下面的方法进行操作,如果进行mount, cp, umount的操作,开机的时候会出现意想不到的问题,因为system.img中的文件是有SELinux context的,使用cp命令无法进行完整的将SELinux context copy过去; SELinux context可以通过ls -Z or ps -Z查看):
$ sudo dd if=out/target/product/rpi/system.img of=/dev/sd?2 $ sync
做完这些,你就可以将TF卡插入Raspberry Pi 2B上开机运行了。
不错的想法,在raspberry pi 2b上做开发,硬件相当便宜(相对于google默认支持的开发板,intel edison以及qualcomm dragon board)
我想跟你合作一起做这个brillo怎么样?
好啊,不知道你想怎么做?
我在github.com/yudatun这里创建了一个orgnization, 用于brillo的深度定制,目前我已经做了不少工作了,我觉得我们可以把彼此好的想法融合在一起,方便留个邮箱交流下么?
brobwind@126.com
1
不好意思,
我用您的步驟方法,
畫面和輸出都與您的相同,
不過在用avahi-daemon看輸出時,
完全沒有反應,
只能看到自己,
我用HDMI接上螢幕,
螢幕也是黑的,
不知道可以提供一些建議嗎??
感恩感恩~~
——————————————————————————————————————————-
$ avahi-browse -a -r
+ eth0 IPv6 my-ubuntu [4c:72:b9:c8:32:a4] Workstation local
+ eth0 IPv4 my-ubuntu [4c:72:b9:c8:32:a4] Workstation local
= eth0 IPv6 my-ubuntu [4c:72:b9:c8:32:a4] Workstation local
hostname = [my-ubuntu.local]
address = [fe80::4e72:b9ff:fec8:32a4]
port = [9]
txt = []
= eth0 IPv4 my-ubuntu [4c:72:b9:c8:32:a4] Workstation local
hostname = [my-ubuntu.local]
address = [192.168.157.2]
port = [9]
txt = []
目前存在的问题是有时候有线网络可能会分配不到IPv4的IP地址,也就无法通过avahi-browse查看。(也有可以是有线网络使用的是固定的IP地址)
你可以通过串口查看kernel log及执行shell命令查看问题出在哪里。
你可以查看我这篇文章https://www.brobwind.com/archives/975,运行我预编译的系统,同时这里包含最新的RPi BSP代码,你可以编译看看(很可惜有线网络有时候也不能自动获取IP地址,无线网络(RPi 3B)没有发现问题)。
1