2015年11月

Google brillo编译体验

近期Google又又发布了一款新的操作系统,是应用于物联网方向,所以对芯片的要求也降低了不少,由其是RAM和FLASH上,对低端的芯片比较友好了,像工业用的芯片,A8,A9还是属于比较高端了。这两天Google已经开放brillo的代码,至于什么时候能应用到设备还要等一等了,先体验下再说了。还是老调重弹,如果有国外的VPS服务器,直接在VPS下载Google原版的就可以了,我这里还是使用镜像吧,因为brillo是修改自Android的,所以同属aosp代码之下,国内有同步的网站都可以下载到。

1.准备工作

这里推荐使用64位的debian或ubuntu系统,java使用jdk7的版本,提前安装即可。brillo的代码大概需要16GB的空间,所以还是准备个50G以内比较合适。

2.下载brillo代码

mkdir ~/bin curl https://storage-googleapis.lug.ustc.edu.cn/git-repo-downloads/repo > ~/bin/repo 
export PATH=$HOME/bin:$PATH 
mkdir brillo-src 
cd brillo-src 
repo init -u https://aosp.tuna.tsinghua.edu.cn/brillo/manifest -b master 
repo sync -c

清华的源还是比较给力,如果是100M网络的话,基本三小时内能下完。

3.编译brillo

source build/envsetup.sh lunch You're building on Linux

Lunch menu... pick a combo:

  1. aosp_arm-eng
  2. aosp_arm64-eng
  3. aosp_mips-eng
  4. aosp_mips64-eng
  5. aosp_x86-eng
  6. aospx8664-eng
  7. brilloemulator_arm64-eng
  8. brilloemulator_arm-eng
  9. brilloemulatorx8664-eng
  10. brilloemulator_x86-eng
  11. edison-eng
  12. miniemulatorarm64-userdebug
  13. mearm-userdebug
  14. miniemulatorx86_64-userdebug
  15. miniemulatorx86-userdebug
  16. brillo_gpios-userdebug
  17. brillo_i2c-userdebug
  18. brillo_leds-userdebug
  19. ledflasher-userdebug

Which would you like? [aosp_arm-eng]9

make -j5

这里我们先编译x86-64版本的就可以了,然后等待完成就可以了,比android快很多了,比竟没有GUI么

4.体验brillo

./out/host/linux-x86/bin/brilloemulator-x86
# ps
USER      PID   PPID  VSIZE  RSS   WCHAN            PC  NAME
root      1     0     3840   1580     ep_poll 0813c895 S /init
root      2     0     0      0       kthreadd 00000000 S kthreadd
root      3     2     0      0     smpboot_th 00000000 S ksoftirqd/0
root      4     2     0      0     worker_thr 00000000 S kworker/0:0
root      5     2     0      0     worker_thr 00000000 S kworker/0:0H
root      6     2     0      0     worker_thr 00000000 S kworker/u2:0
root      7     2     0      0     rcu_gp_kth 00000000 S rcu_sched
root      8     2     0      0     rcu_gp_kth 00000000 S rcu_bh
root      9     2     0      0     smpboot_th 00000000 S migration/0
root      10    2     0      0     rescuer_th 00000000 S khelper
root      11    2     0      0      devtmpfsd 00000000 S kdevtmpfs
root      12    2     0      0     rescuer_th 00000000 S netns
root      13    2     0      0     worker_thr 00000000 S kworker/u2:1
root      14    2     0      0     rescuer_th 00000000 S perf
root      49    2     0      0     rescuer_th 00000000 S writeback
root      51    2     0      0     rescuer_th 00000000 S crypto
root      53    2     0      0     rescuer_th 00000000 S bioset
root      55    2     0      0     rescuer_th 00000000 S kblockd
root      145   2     0      0     rescuer_th 00000000 S ata_sff
root      150   2     0      0     rescuer_th 00000000 S md
root      158   2     0      0     worker_thr 00000000 S kworker/0:1
root      159   2     0      0     rescuer_th 00000000 S cfg80211
root      279   2     0      0     rescuer_th 00000000 S rpciod
root      301   2     0      0         kswapd 00000000 S kswapd0
root      320   2     0      0     fsnotify_m 00000000 S fsnotify_mark
root      327   2     0      0     rescuer_th 00000000 S nfsiod
root      354   2     0      0     rescuer_th 00000000 S acpi_thermal_pm
root      356   2     0      0     worker_thr 00000000 S kworker/u2:2
root      757   2     0      0     scsi_error 00000000 S scsi_eh_0
root      760   2     0      0     rescuer_th 00000000 S scsi_tmf_0
root      761   2     0      0     scsi_error 00000000 S scsi_eh_1
root      763   2     0      0     rescuer_th 00000000 S scsi_tmf_1
root      765   2     0      0     worker_thr 00000000 S kworker/u2:3
root      776   2     0      0     rescuer_th 00000000 S kpsmoused
root      778   2     0      0     worker_thr 00000000 S kworker/0:2
root      787   2     0      0     rescuer_th 00000000 S binder
root      805   2     0      0     rescuer_th 00000000 S ipv6_addrconf
root      819   2     0      0     rescuer_th 00000000 S deferwq
root      821   2     0      0     worker_thr 00000000 S kworker/u2:4
root      887   2     0      0     worker_thr 00000000 S kworker/0:3
root      898   2     0      0     kjournald2 00000000 S jbd2/vda-8
root      899   2     0      0     rescuer_th 00000000 S ext4-rsv-conver
root      901   1     3404   1316  poll_sched 0813c970 S /sbin/ueventd
root      1172  2     0      0     worker_thr 00000000 S kworker/0:1H
root      1173  2     0      0     kjournald2 00000000 S jbd2/vdb-8
root      1174  2     0      0     rescuer_th 00000000 S ext4-rsv-conver
logd      1175  1     11364  2760  sigsuspend b75e0991 S /system/bin/logd
dbus      1179  1     5704   3020  poll_sched b7388770 S /system/bin/dbus-daemon
system    1180  1     4628   2056  binder_thr b75d3676 S /system/bin/servicemanager
shell     1183  1     4480   2300  sigsuspend b759f991 S /system/bin/sh
root      1184  1     3652   676   poll_sched 08112160 S /sbin/adbd
system    1185  1     5352   3144  poll_sched b74df770 S avahi-daemon: running [linux.local]
keystore  1186  1     29000  8688  binder_thr b6fe0676 S /system/bin/keystore
media     1187  1     71668  16896 binder_thr b5f97676 S /system/bin/mediaserver
system    1188  1     28740  8764     ep_poll b7437475 S /system/bin/nativepowerman
root      1189  1     30332  8776  binder_thr b7472676 S /system/bin/sensorservice
system    1190  1     30484  9780  poll_sched b5d737f5 S /system/bin/wpa_supplicant
root      1192  1     4480   2368  poll_sched b75627f5 S /system/bin/sh
system    1193  1     33412  12784    ep_poll b562f475 S /system/bin/metrics_collector
system    1194  1     9984   3788     ep_poll b7114475 S /system/bin/metricsd
root      1195  1     4732   2072  hrtimer_na b75fb8f1 S /system/xbin/perfprofd
root      1196  1     10672  6984     ep_poll b7329475 S /system/bin/shill
tlsdate   1197  1     6204   3288     ep_poll b7376475 S /system/bin/tlsdated
root      1199  1     11804  7588     ep_poll b7339475 S /system/bin/update_engine
system    1200  1     34656  14092    ep_poll b5937475 S /system/bin/weaved
system    1201  1     33352  13000    ep_poll b58bf475 S /system/bin/webservd
root      1206  1197  6204   364    pipe_wait b7377af6 S /system/bin/tlsdated
root      1221  2     0      0     kauditd_th 00000000 S kauditd
system    1247  1     7724   5588     ep_poll b7486475 S /system/bin/firewalld
root      1258  1183  4480   2340  sigsuspend b75f2991 S /system/bin/sh
root      1267  1258  4684   2132           0 b7477af6 R ps

看进程只有一些web,daemon,firewall,不知道后期有没有GUI集成。

cubieboard2下编译ushare

uShare是一款提供dlna服务端的应用程序,可以支持如下格式:

- Video files : asf, avi, dv, divx, wmv, mjpg, mjpeg, mpeg, mpg, mpe,
mp2p, vob, mp2t, m1v, m2v, m4v, m4p, mp4ps, ts, ogm, mkv,
rmvb, mov, qt
- Audio files : aac, ac3, aif, aiff, at3p, au, snd, dts, rmi, mp1, mp2, mp3,
mp4, mpa, ogg, wav, pcm, lpcm, l16, wma, mka, ra, rm, ram
- Images files : bmp, ico, gif, jpeg, jpg, jpe, pcd, png, pnm, ppm,
qti, qtf, qtif, tif, tiff
- Playlist files : pls, m3u, asx

我的cubieboard2上安装的是debian系统,只提供了minidlna,因其不支持mkv, rmvb。所以换到uShare上试,毕竟多一个选择嘛。

uShare的安装只需要两个依赖包,libupnp和libdlna。libupnp可以使用aptitude安装,libdlna需要自己从源码安装。

  1. 安装libdlna

    wget http://libdlna.geexbox.org/releases/libdlna-0.2.4.tar.bz2
    tar xvf libdlna-0.2.4
    ./configure
    sudo make install

  2. 修改libupnp

我直接使用aptitude安装1:1.6.17-1.2的libupnp6后,在编译ushare.c文件出现问题,这里需要修改/usr/include/upnp/upnp.h

vi /usr/include/upnp/upnp.h
//在606行的struct Upnp_Action_Request定义中,有个成员struct sockaddr_storage CtrlPtIPAddr;修改为
struct sockaddr CtrlPtIPAddr;
  1. 编译uShare

首先修改src/ushare.c文件

vi src/ushare.c //修改191行的ip = request->CtrlPtIPAddr.sa_data;修改为
ip = request->CtrlPtIPAddr.addr;

然后就可以编译了

./configure --enable-dlna
make
sudo make install

最新文章

最近回复

  • Blackrose: 感谢拍砖!嗯,那句话...
  • aa: “Raspberry...
  • Blackrose: 外部只是帮你把芯片启...
  • : 内部时钟比外部的频率...
  • Blackrose: 你这评论比正文更有内容么
  • 7hao: CR+LF ...
  • Blackrose: 可以是你更新软件源后...
  • sxk: 博主,我的系统是ub...
  • Blackrose: 你深得精髓么
  • qihao: 这篇文章的简单总结就...

分类

归档

其它